[beignet] 02/04: Imported Upstream version 1.0.2

Andreas Beckmann anbe at moszumanska.debian.org
Tue Mar 17 22:48:04 UTC 2015


This is an automated email from the git hooks/post-receive script.

anbe pushed a commit to branch master
in repository beignet.

commit af8f78ad08746795ff0f5ff2808071588db0d13e
Author: Andreas Beckmann <anbe at debian.org>
Date:   Tue Mar 17 23:28:24 2015 +0100

    Imported Upstream version 1.0.2
---
 CMake/FindLLVM.cmake                               |    20 +-
 CMakeLists.txt                                     |    55 +-
 backend/src/CMakeLists.txt                         |     4 +
 backend/src/backend/gen8_instruction.hpp           |     4 +-
 backend/src/backend/gen_encoder.cpp                |    43 +-
 backend/src/backend/gen_insn_scheduling.cpp        |     4 +-
 backend/src/backend/gen_insn_selection.cpp         |    30 +-
 backend/src/backend/gen_insn_selection.hpp         |     2 +
 backend/src/backend/gen_program.cpp                |    29 +-
 backend/src/backend/gen_register.hpp               |     1 +
 backend/src/backend/program.cpp                    |     6 +-
 backend/src/ir/context.cpp                         |     3 +-
 backend/src/ir/immediate.hpp                       |     3 +-
 backend/src/ir/instruction.cpp                     |     5 +-
 backend/src/ir/printf.cpp                          |    25 +-
 backend/src/ir/printf.hpp                          |     2 +-
 backend/src/ir/structural_analysis.cpp             |     5 +
 backend/src/libocl/include/ocl_types.h             |     2 +-
 backend/src/libocl/script/gen_vector.py            |    45 +-
 backend/src/libocl/tmpl/ocl_integer.tmpl.cl        |     7 +-
 backend/src/libocl/tmpl/ocl_math.tmpl.cl           |     2 +-
 backend/src/llvm/ExpandConstantExpr.cpp            |   193 +
 backend/src/llvm/ExpandLargeIntegers.cpp           |   822 +
 backend/src/llvm/ExpandUtils.cpp                   |   117 +
 backend/src/llvm/PromoteIntegers.cpp               |   655 +
 backend/src/llvm/llvm_bitcode_link.cpp             |    49 +-
 backend/src/llvm/llvm_gen_backend.cpp              |   350 +-
 backend/src/llvm/llvm_gen_backend.hpp              |    17 +-
 backend/src/llvm/llvm_passes.cpp                   |    31 +-
 backend/src/llvm/llvm_printf_parser.cpp            |    20 +-
 backend/src/llvm/llvm_scalarize.cpp                |     4 +-
 backend/src/llvm/llvm_to_gen.cpp                   |    35 +-
 backend/src/llvm/llvm_unroll.cpp                   |    32 +-
 backend/src/sys/platform.hpp                       |    10 +-
 benchmark/benchmark_use_host_ptr_buffer.cpp        |     2 +-
 docs/Beignet.mdwn                                  |    12 +-
 docs/Beignet/Backend.mdwn                          |     9 +-
 docs/NEWS.mdwn                                     |     3 +
 docs/howto/libva-buffer-sharing-howto.mdwn         |    67 +
 examples/CMakeLists.txt                            |    35 +
 examples/libva_buffer_sharing/256_128.nv12         |     1 +
 .../libva_buffer_sharing/libva_buffer_sharing.cpp  |   465 +
 examples/thirdparty/libva/.cvsignore               |     3 +
 examples/thirdparty/libva/.gitignore               |    63 +
 examples/thirdparty/libva/Android.mk               |     4 +
 examples/thirdparty/libva/COPYING                  |    19 +
 examples/thirdparty/libva/Makefile.am              |    47 +
 examples/thirdparty/libva/NEWS                     |    97 +
 examples/thirdparty/libva/autogen.sh               |    51 +
 examples/thirdparty/libva/build/gen_version.sh     |    54 +
 examples/thirdparty/libva/configure.ac             |   359 +
 .../thirdparty/libva/debian.upstream/Makefile.am   |    36 +
 .../thirdparty/libva/debian.upstream/README.Debian |     7 +
 .../thirdparty/libva/debian.upstream/changelog.in  |     5 +
 examples/thirdparty/libva/debian.upstream/compat   |     1 +
 .../thirdparty/libva/debian.upstream/control.in    |   111 +
 .../thirdparty/libva/debian.upstream/copyright     |    44 +
 .../libva/debian.upstream/libva-dev.install        |     3 +
 .../libva/debian.upstream/libva-drm.install.in     |     1 +
 .../libva/debian.upstream/libva-egl.install.in     |     1 +
 .../libva/debian.upstream/libva-glx.install.in     |     1 +
 .../libva/debian.upstream/libva-wayland.install.in |     1 +
 .../libva/debian.upstream/libva-x11.install.in     |     1 +
 .../libva/debian.upstream/libva.install.in         |     1 +
 examples/thirdparty/libva/debian.upstream/rules    |    14 +
 .../libva/debian.upstream/vainfo.install           |     1 +
 examples/thirdparty/libva/doc/Doxyfile             |  1679 ++
 examples/thirdparty/libva/doc/Makefile.am          |    63 +
 examples/thirdparty/libva/doc/va_footer.html       |     4 +
 .../thirdparty/libva/dummy_drv_video/Makefile.am   |    33 +
 .../libva/dummy_drv_video/dummy_drv_video.c        |  1232 +
 .../libva/dummy_drv_video/dummy_drv_video.h        |    83 +
 .../thirdparty/libva/dummy_drv_video/object_heap.c |   267 +
 .../thirdparty/libva/dummy_drv_video/object_heap.h |   100 +
 examples/thirdparty/libva/libva.spec               |   151 +
 examples/thirdparty/libva/pkgconfig/Makefile.am    |    57 +
 .../thirdparty/libva/pkgconfig/libva-drm.pc.in     |    12 +
 .../thirdparty/libva/pkgconfig/libva-egl.pc.in     |    13 +
 .../thirdparty/libva/pkgconfig/libva-glx.pc.in     |    12 +
 .../thirdparty/libva/pkgconfig/libva-tpi.pc.in     |    11 +
 .../thirdparty/libva/pkgconfig/libva-wayland.pc.in |    12 +
 .../thirdparty/libva/pkgconfig/libva-x11.pc.in     |    12 +
 examples/thirdparty/libva/pkgconfig/libva.pc.in    |    11 +
 examples/thirdparty/libva/style_unify              |    10 +
 examples/thirdparty/libva/test/Android.mk          |     4 +
 examples/thirdparty/libva/test/Makefile.am         |    29 +
 examples/thirdparty/libva/test/basic/Android.mk    |   234 +
 examples/thirdparty/libva/test/basic/Makefile.am   |    87 +
 examples/thirdparty/libva/test/basic/test.c        |   151 +
 examples/thirdparty/libva/test/basic/test_01.c     |    42 +
 examples/thirdparty/libva/test/basic/test_02.c     |    42 +
 examples/thirdparty/libva/test/basic/test_03.c     |    67 +
 examples/thirdparty/libva/test/basic/test_04.c     |    84 +
 examples/thirdparty/libva/test/basic/test_05.c     |    77 +
 examples/thirdparty/libva/test/basic/test_06.c     |   123 +
 examples/thirdparty/libva/test/basic/test_07.c     |   119 +
 examples/thirdparty/libva/test/basic/test_08.c     |    92 +
 examples/thirdparty/libva/test/basic/test_09.c     |   109 +
 examples/thirdparty/libva/test/basic/test_10.c     |   140 +
 examples/thirdparty/libva/test/basic/test_11.c     |   179 +
 .../thirdparty/libva/test/basic/test_android.c     |    62 +
 examples/thirdparty/libva/test/basic/test_common.c |   161 +
 examples/thirdparty/libva/test/basic/test_x11.c    |    61 +
 examples/thirdparty/libva/test/basic/testplan.txt  |   106 +
 examples/thirdparty/libva/test/common/Makefile.am  |    63 +
 examples/thirdparty/libva/test/common/va_display.c |   166 +
 examples/thirdparty/libva/test/common/va_display.h |    64 +
 .../libva/test/common/va_display_android.cpp       |   105 +
 .../thirdparty/libva/test/common/va_display_drm.c  |    91 +
 .../libva/test/common/va_display_wayland.c         |   193 +
 .../thirdparty/libva/test/common/va_display_x11.c  |   139 +
 examples/thirdparty/libva/test/decode/Android.mk   |    27 +
 examples/thirdparty/libva/test/decode/Makefile.am  |    49 +
 examples/thirdparty/libva/test/decode/loadjpeg.c   |   137 +
 examples/thirdparty/libva/test/decode/mpeg2-I.gif  |   Bin 0 -> 103275 bytes
 examples/thirdparty/libva/test/decode/mpeg2-I.m2v  |   Bin 0 -> 197 bytes
 .../thirdparty/libva/test/decode/mpeg2vldemo.cpp   |   282 +
 .../libva/test/decode/tinyjpeg-internal.h          |   120 +
 examples/thirdparty/libva/test/decode/tinyjpeg.c   |   758 +
 examples/thirdparty/libva/test/decode/tinyjpeg.h   |    71 +
 examples/thirdparty/libva/test/encode/Android.mk   |    50 +
 examples/thirdparty/libva/test/encode/Makefile.am  |    66 +
 examples/thirdparty/libva/test/encode/avcenc.c     |  2062 ++
 examples/thirdparty/libva/test/encode/h264encode.c |  2387 ++
 examples/thirdparty/libva/test/encode/jpegenc.c    |   971 +
 .../thirdparty/libva/test/encode/jpegenc_utils.h   |   353 +
 examples/thirdparty/libva/test/encode/mpeg2vaenc.c |  1546 +
 examples/thirdparty/libva/test/loadsurface.h       |   480 +
 examples/thirdparty/libva/test/loadsurface_yuv.h   | 28836 +++++++++++++++++++
 .../thirdparty/libva/test/putsurface/Android.mk    |    24 +
 .../thirdparty/libva/test/putsurface/Makefile.am   |    59 +
 .../libva/test/putsurface/putsurface_android.cpp   |   124 +
 .../libva/test/putsurface/putsurface_common.c      |   688 +
 .../libva/test/putsurface/putsurface_wayland.c     |   332 +
 .../libva/test/putsurface/putsurface_x11.c         |   172 +
 .../thirdparty/libva/test/v4l_h264/Makefile.am     |    27 +
 examples/thirdparty/libva/test/v4l_h264/README.txt |    23 +
 .../libva/test/v4l_h264/decode/Makefile.am         |    39 +
 .../libva/test/v4l_h264/decode/TCPSocketServer.cpp |   192 +
 .../libva/test/v4l_h264/decode/TCPSocketServer.h   |   128 +
 .../libva/test/v4l_h264/decode/decode_x11.cpp      |   704 +
 .../libva/test/v4l_h264/encode/Makefile.am         |    39 +
 .../libva/test/v4l_h264/encode/TCPSocketClient.cpp |   123 +
 .../libva/test/v4l_h264/encode/TCPSocketClient.h   |   102 +
 .../libva/test/v4l_h264/encode/avcenc.cpp          |   508 +
 .../libva/test/v4l_h264/encode/capture.cpp         |   851 +
 examples/thirdparty/libva/test/vainfo/Android.mk   |    27 +
 examples/thirdparty/libva/test/vainfo/Makefile.am  |    44 +
 examples/thirdparty/libva/test/vainfo/vainfo.c     |   157 +
 examples/thirdparty/libva/va/Android.mk            |   175 +
 examples/thirdparty/libva/va/Makefile.am           |   144 +
 examples/thirdparty/libva/va/android/Makefile.am   |    24 +
 .../thirdparty/libva/va/android/va_android.cpp     |   229 +
 examples/thirdparty/libva/va/drm/Makefile.am       |    58 +
 examples/thirdparty/libva/va/drm/va_drm.c          |   132 +
 examples/thirdparty/libva/va/drm/va_drm.h          |    61 +
 examples/thirdparty/libva/va/drm/va_drm_auth.c     |    78 +
 examples/thirdparty/libva/va/drm/va_drm_auth.h     |    39 +
 examples/thirdparty/libva/va/drm/va_drm_auth_x11.c |   172 +
 examples/thirdparty/libva/va/drm/va_drm_auth_x11.h |    35 +
 examples/thirdparty/libva/va/drm/va_drm_utils.c    |   101 +
 examples/thirdparty/libva/va/drm/va_drm_utils.h    |    83 +
 examples/thirdparty/libva/va/egl/Makefile.am       |    43 +
 examples/thirdparty/libva/va/egl/va_backend_egl.h  |    41 +
 examples/thirdparty/libva/va/egl/va_egl.c          |    82 +
 examples/thirdparty/libva/va/egl/va_egl.h          |    27 +
 examples/thirdparty/libva/va/glx/Makefile.am       |    51 +
 examples/thirdparty/libva/va/glx/va_backend_glx.h  |    54 +
 examples/thirdparty/libva/va/glx/va_glx.c          |   167 +
 examples/thirdparty/libva/va/glx/va_glx.h          |   109 +
 examples/thirdparty/libva/va/glx/va_glx_impl.c     |  1104 +
 examples/thirdparty/libva/va/glx/va_glx_impl.h     |    37 +
 examples/thirdparty/libva/va/glx/va_glx_private.h  |    86 +
 examples/thirdparty/libva/va/libva.syms            |    11 +
 examples/thirdparty/libva/va/sysdeps.h             |    79 +
 examples/thirdparty/libva/va/va.c                  |  1721 ++
 examples/thirdparty/libva/va/va.h                  |  2741 ++
 examples/thirdparty/libva/va/va_android.h          |    82 +
 examples/thirdparty/libva/va/va_backend.h          |   560 +
 examples/thirdparty/libva/va/va_backend_tpi.h      |    69 +
 examples/thirdparty/libva/va/va_backend_vpp.h      |    71 +
 examples/thirdparty/libva/va/va_compat.c           |    43 +
 examples/thirdparty/libva/va/va_compat.h           |   116 +
 examples/thirdparty/libva/va/va_dec_hevc.h         |   428 +
 examples/thirdparty/libva/va/va_dec_jpeg.h         |   178 +
 examples/thirdparty/libva/va/va_dec_vp8.h          |   243 +
 examples/thirdparty/libva/va/va_drmcommon.h        |    76 +
 examples/thirdparty/libva/va/va_enc_h264.h         |   592 +
 examples/thirdparty/libva/va/va_enc_jpeg.h         |   158 +
 examples/thirdparty/libva/va/va_enc_mpeg2.h        |   287 +
 examples/thirdparty/libva/va/va_enc_vp8.h          |   330 +
 examples/thirdparty/libva/va/va_fool.c             |   375 +
 examples/thirdparty/libva/va/va_fool.h             |    91 +
 examples/thirdparty/libva/va/va_tpi.c              |    98 +
 examples/thirdparty/libva/va/va_tpi.h              |   103 +
 examples/thirdparty/libva/va/va_trace.c            |  3563 +++
 examples/thirdparty/libva/va/va_trace.h            |   238 +
 examples/thirdparty/libva/va/va_version.h.in       |    87 +
 examples/thirdparty/libva/va/va_vpp.h              |   750 +
 examples/thirdparty/libva/va/va_x11.h              |    70 +
 examples/thirdparty/libva/va/wayland/Makefile.am   |    66 +
 .../libva/va/wayland/protocol/Makefile.am          |    28 +
 .../libva/va/wayland/protocol/wayland-drm.xml      |   155 +
 .../libva/va/wayland/va_backend_wayland.h          |    65 +
 examples/thirdparty/libva/va/wayland/va_wayland.c  |   194 +
 examples/thirdparty/libva/va/wayland/va_wayland.h  |   131 +
 .../thirdparty/libva/va/wayland/va_wayland_drm.c   |   223 +
 .../thirdparty/libva/va/wayland/va_wayland_drm.h   |    52 +
 .../thirdparty/libva/va/wayland/va_wayland_emgd.c  |   157 +
 .../thirdparty/libva/va/wayland/va_wayland_emgd.h  |    52 +
 .../libva/va/wayland/va_wayland_private.h          |    44 +
 .../libva/va/wayland/wayland-drm-client-protocol.h |   213 +
 examples/thirdparty/libva/va/x11/Makefile.am       |    58 +
 examples/thirdparty/libva/va/x11/dri2_util.c       |   239 +
 examples/thirdparty/libva/va/x11/va_dri2.c         |   428 +
 examples/thirdparty/libva/va/x11/va_dri2.h         |    73 +
 examples/thirdparty/libva/va/x11/va_dri2str.h      |   227 +
 examples/thirdparty/libva/va/x11/va_dri2tokens.h   |    48 +
 examples/thirdparty/libva/va/x11/va_dricommon.c    |   138 +
 examples/thirdparty/libva/va/x11/va_dricommon.h    |    94 +
 examples/thirdparty/libva/va/x11/va_fglrx.c        |   247 +
 examples/thirdparty/libva/va/x11/va_fglrx.h        |    35 +
 examples/thirdparty/libva/va/x11/va_nvctrl.c       |   400 +
 examples/thirdparty/libva/va/x11/va_nvctrl.h       |    38 +
 examples/thirdparty/libva/va/x11/va_x11.c          |   250 +
 intel-beignet.icd.in                               |     2 +-
 kernels/compiler_long_bitcast.cl                   |    47 +
 kernels/runtime_mirror_effect.cl                   |    24 +
 src/CMakeLists.txt                                 |     5 +-
 src/cl_command_queue.c                             |     8 +-
 src/cl_command_queue_gen7.c                        |     2 +-
 src/cl_context.h                                   |     7 +
 src/cl_device_id.c                                 |    13 +-
 src/cl_gen75_device.h                              |     2 +-
 src/cl_gen7_device.h                               |     2 +-
 src/cl_mem.c                                       |   131 +-
 src/cl_mem.h                                       |     1 +
 src/intel/intel_driver.c                           |    29 +-
 .../cl_internal_copy_image_1d_array_to_1d_array.cl |    21 +
 .../cl_internal_copy_image_2d_array_to_2d.cl       |    21 +
 .../cl_internal_copy_image_2d_array_to_2d_array.cl |    23 +
 .../cl_internal_copy_image_2d_array_to_3d.cl       |    23 +
 .../cl_internal_copy_image_2d_to_2d_array.cl       |    21 +
 .../cl_internal_copy_image_2d_to_buffer_align16.cl |    19 +
 .../cl_internal_copy_image_3d_to_2d_array.cl       |    23 +
 utests/CMakeLists.txt                              |     1 +
 utests/compiler_fill_image_1d_array.cpp            |    14 +-
 utests/compiler_long_bitcast.cpp                   |   227 +
 utests/runtime_use_host_ptr_buffer.cpp             |     2 +-
 249 files changed, 73414 insertions(+), 462 deletions(-)

diff --git a/CMake/FindLLVM.cmake b/CMake/FindLLVM.cmake
index 5fb996d..c98bc13 100644
--- a/CMake/FindLLVM.cmake
+++ b/CMake/FindLLVM.cmake
@@ -8,12 +8,12 @@
 # LLVM_FOUND       - True if llvm found.
 if (LLVM_INSTALL_DIR)
   find_program(LLVM_CONFIG_EXECUTABLE
-               NAMES llvm-config-33 llvm-config-3.3 llvm-config-35 llvm-config-3.5 llvm-config-34 llvm-config-3.4 llvm-config
+               NAMES llvm-config-35 llvm-config-3.5 llvm-config-33 llvm-config-3.3 llvm-config-34 llvm-config-3.4 llvm-config
                DOC "llvm-config executable"
                PATHS ${LLVM_INSTALL_DIR} NO_DEFAULT_PATH)
 else (LLVM_INSTALL_DIR)
   find_program(LLVM_CONFIG_EXECUTABLE
-               NAMES llvm-config-33 llvm-config-3.3 llvm-config-35 llvm-config-3.5 llvm-config-34 llvm-config-3.4 llvm-config
+               NAMES llvm-config-35 llvm-config-3.5 llvm-config-33 llvm-config-3.3 llvm-config-34 llvm-config-3.4 llvm-config
                DOC "llvm-config executable")
 endif (LLVM_INSTALL_DIR)
 
@@ -23,6 +23,11 @@ else (LLVM_CONFIG_EXECUTABLE)
   message(FATAL_ERROR "Could NOT find LLVM executable, please add -DLLVM_INSTALL_DIR=/path/to/llvm-config/ in cmake command")
 endif (LLVM_CONFIG_EXECUTABLE)
 
+SET(LLVM_STABLE_VERSION_MAJOR "3")
+SET(LLVM_STABLE_VERSION_MINOR "5")
+SET(LLVM_STABLE_VERSION_NODOT "${LLVM_STABLE_VERSION_MAJOR}${LLVM_STABLE_VERSION_MINOR}")
+SET(LLVM_STABLE_VERSION "${LLVM_STABLE_VERSION_MAJOR}.${LLVM_STABLE_VERSION_MINOR}")
+
 if (LLVM_FIND_VERSION_MAJOR AND LLVM_FIND_VERSION_MINOR)
   SET(LLVM_FIND_VERSION_NODOT "${LLVM_FIND_VERSION_MAJOR}${LLVM_FIND_VERSION_MINOR}")
   execute_process(
@@ -33,11 +38,12 @@ if (LLVM_FIND_VERSION_MAJOR AND LLVM_FIND_VERSION_MINOR)
   if (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
     message(FATAL_ERROR "imcompatible LLVM version ${LLVM_VERSION} required ${LLVM_FIND_VERSION}")
   else (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
-    if (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_FIND_VERSION_NODOT)
-      message(STATUS "find stable LLVM version ${LLVM_VERSION}")
-    else (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_FIND_VERSION_NODOT)
-      message(STATUS "find unstable LLVM version ${LLVM_VERSION}")
-    endif (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_FIND_VERSION_NODOT)
+    if (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_STABLE_VERSION_NODOT)
+      message(STATUS "Found stable LLVM version ${LLVM_VERSION}")
+    else (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_STABLE_VERSION_NODOT)
+      message(STATUS "\tWarning: found unstable LLVM version ${LLVM_VERSION}")
+      message(STATUS "\tWarning: Stable version is ${LLVM_STABLE_VERSION}")
+    endif (LLVM_VERSION_NODOT VERSION_EQUAL LLVM_STABLE_VERSION_NODOT)
     add_definitions("-DLLVM_${LLVM_VERSION_NODOT}")
   endif (LLVM_VERSION_NODOT VERSION_LESS LLVM_FIND_VERSION_NODOT)
 endif (LLVM_FIND_VERSION_MAJOR AND LLVM_FIND_VERSION_MINOR)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bfe0431..9aa838a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -18,7 +18,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0)
 PROJECT(OCL)
 set (LIBCL_DRIVER_VERSION_MAJOR 1)
 set (LIBCL_DRIVER_VERSION_MINOR 0)
-set (LIBCL_DRIVER_VERSION_PATCH 1)
+set (LIBCL_DRIVER_VERSION_PATCH 2)
 set (LIBCL_C_VERSION_MAJOR 1)
 set (LIBCL_C_VERSION_MINOR 2)
 if( ${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
@@ -39,14 +39,27 @@ INCLUDE (FindPkgConfig)
 
 SET(CMAKE_VERBOSE_MAKEFILE "false")
 set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/CMake/")
+INCLUDE (GNUInstallDirs OPTIONAL)
+# support old CMake without GNUInstallDirs
+if (NOT CMAKE_INSTALL_FULL_LIBDIR)
+  set (CMAKE_INSTALL_FULL_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib")
+  set (CMAKE_LIBRARY_ARCHITECTURE "")
+endif (NOT CMAKE_INSTALL_FULL_LIBDIR)
+
 if (NOT LIB_INSTALL_DIR)
-  set (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib")
+  set (LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}")
 endif (NOT LIB_INSTALL_DIR)
 if (NOT BEIGNET_INSTALL_DIR)
   set (BEIGNET_INSTALL_DIR "${LIB_INSTALL_DIR}/beignet/")
 endif (NOT BEIGNET_INSTALL_DIR)
 
-ADD_DEFINITIONS(-D__$(USER)__)
+# allow co-installation of 32- and 64-bit versions:
+# https://wiki.debian.org/Multiarch
+if (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/")
+  set (ICD_FILE_NAME "intel-beignet.icd")
+else (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/")
+  set (ICD_FILE_NAME "intel-beignet-${CMAKE_LIBRARY_ARCHITECTURE}.icd")
+endif (BEIGNET_INSTALL_DIR STREQUAL "${CMAKE_INSTALL_PREFIX}/lib/beignet/")
 
 # Force Release with debug info
 if (NOT CMAKE_BUILD_TYPE)
@@ -83,12 +96,12 @@ IF (USE_STANDALONE_GBE_COMPILER STREQUAL "true")
 ELSE (USE_STANDALONE_GBE_COMPILER STREQUAL "true")
   # Front end stuff we need
   #INCLUDE(CMake/FindLLVM.cmake)
-  Find_Package(LLVM 3.3)
+  Find_Package(LLVM 3.5)
   SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
 ENDIF (USE_STANDALONE_GBE_COMPILER STREQUAL "true")
 
 
-set (CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${LLVM_LDFLAGS}")
+set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,-Bsymbolic -Wl,--no-undefined ${LLVM_LDFLAGS}")
 
 # XLib
 Find_Package(X11)
@@ -175,15 +188,39 @@ IF(OCLIcd_FOUND)
   MESSAGE(STATUS "Looking for OCL ICD header file - found")
   configure_file (
     "intel-beignet.icd.in"
-    "intel-beignet.icd"
+    "${ICD_FILE_NAME}"
   )
-  install (FILES ${CMAKE_CURRENT_BINARY_DIR}/intel-beignet.icd DESTINATION /etc/OpenCL/vendors)
+  install (FILES ${CMAKE_CURRENT_BINARY_DIR}/${ICD_FILE_NAME} DESTINATION /etc/OpenCL/vendors)
 ELSE(OCLIcd_FOUND)
   MESSAGE(STATUS "Looking for OCL ICD header file - not found")
 ENDIF(OCLIcd_FOUND)
 
 Find_Package(PythonInterp)
 
+OPTION(BUILD_EXAMPLES "Build examples" OFF)
+IF(BUILD_EXAMPLES)
+IF(NOT X11_FOUND)
+  MESSAGE(FATAL_ERROR "XLib is necessary for examples - not found")
+ENDIF(NOT X11_FOUND)
+# libva
+pkg_check_modules(LIBVA REQUIRED libva>=0.36.0)
+IF(LIBVA_FOUND)
+  MESSAGE(STATUS "Looking for LIBVA - found at ${LIBVA_PREFIX} ${LIBVA_VERSION}")
+  INCLUDE_DIRECTORIES(${LIBVA_INCLUDE_DIRS})
+ELSE(LIBVA_FOUND)
+  MESSAGE(STATUS "Looking for LIBVA (>= 0.36.0) - not found")
+ENDIF(LIBVA_FOUND)
+
+# libva-x11
+pkg_check_modules(LIBVA-X11 REQUIRED libva-x11>=0.36.0)
+IF(LIBVA-X11_FOUND)
+  MESSAGE(STATUS "Looking for LIBVA-X11 - found at ${LIBVA-X11_PREFIX} ${LIBVA-X11_VERSION}")
+  INCLUDE_DIRECTORIES(${LIBVA-X11_INCLUDE_DIRS})
+ELSE(LIBVA-X11_FOUND)
+  MESSAGE(STATUS "Looking for LIBVA-X11 (>= 0.36.0) - not found")
+ENDIF(LIBVA-X11_FOUND)
+ENDIF(BUILD_EXAMPLES)
+
 ADD_SUBDIRECTORY(include)
 ADD_SUBDIRECTORY(backend)
 ADD_SUBDIRECTORY(src)
@@ -194,6 +231,10 @@ IF (NOT (USE_STANDALONE_GBE_COMPILER STREQUAL "true"))
 ADD_SUBDIRECTORY(benchmark)
 ENDIF (NOT (USE_STANDALONE_GBE_COMPILER STREQUAL "true"))
 
+IF(BUILD_EXAMPLES)
+ADD_SUBDIRECTORY(examples)
+ENDIF(BUILD_EXAMPLES)
+
 SET(CPACK_PACKAGE_VERSION_MAJOR "${LIBCL_DRIVER_VERSION_MAJOR}")
 SET(CPACK_PACKAGE_VERSION_MINOR "${LIBCL_DRIVER_VERSION_MINOR}")
 SET(CPACK_PACKAGE_VERSION_PATCH "${LIBCL_DRIVER_VERSION_PATCH}")
diff --git a/backend/src/CMakeLists.txt b/backend/src/CMakeLists.txt
index ce83c62..a21918c 100644
--- a/backend/src/CMakeLists.txt
+++ b/backend/src/CMakeLists.txt
@@ -84,6 +84,10 @@ set (GBE_SRC
     llvm/llvm_intrinsic_lowering.cpp
     llvm/llvm_barrier_nodup.cpp
     llvm/llvm_printf_parser.cpp
+    llvm/ExpandConstantExpr.cpp
+    llvm/ExpandUtils.cpp
+    llvm/PromoteIntegers.cpp
+    llvm/ExpandLargeIntegers.cpp
     llvm/llvm_to_gen.cpp
     llvm/llvm_loadstore_optimization.cpp
     llvm/llvm_gen_backend.hpp
diff --git a/backend/src/backend/gen8_instruction.hpp b/backend/src/backend/gen8_instruction.hpp
index 8981fe7..bfa86c7 100644
--- a/backend/src/backend/gen8_instruction.hpp
+++ b/backend/src/backend/gen8_instruction.hpp
@@ -96,9 +96,9 @@ union Gen8NativeInstruction
         uint32_t dest_reg_type:4;
         uint32_t src0_reg_file:2;
         uint32_t src0_reg_type:4;
-        int dest_indirect_offset_9:1;        /* offset against the deref'd address reg bit9 */
+        int dest_indirect_offset_9:1;      /* offset against the deref'd address reg bit9 */
         int dest_indirect_offset:9;        /* offset against the deref'd address reg bit0-8 */
-        uint32_t dest_subreg_nr:3; /* subnr for the address reg a0.x */
+        uint32_t dest_subreg_nr:4;         /* subnr for the address reg a0.x */
         uint32_t dest_horiz_stride:2;
         uint32_t dest_address_mode:1;
       } ia1;
diff --git a/backend/src/backend/gen_encoder.cpp b/backend/src/backend/gen_encoder.cpp
index e4df109..c1ef190 100644
--- a/backend/src/backend/gen_encoder.cpp
+++ b/backend/src/backend/gen_encoder.cpp
@@ -67,10 +67,44 @@ namespace gbe
       return false;
   }
 
+  INLINE bool isSrcDstDiffSpan(GenRegister dst, GenRegister src) {
+    if (src.hstride == GEN_HORIZONTAL_STRIDE_0) return false;
+
+    uint32_t typeSz = typeSize(dst.type);
+    uint32_t horizontal = stride(dst.hstride);
+    uint32_t spans = (dst.subnr / (horizontal * typeSz)) * (horizontal * typeSz)  + horizontal * typeSz * 16;
+    uint32_t dstSpan = spans / GEN_REG_SIZE;
+    dstSpan = dstSpan + (spans % GEN_REG_SIZE == 0 ? 0 : 1);
+    if (dstSpan < 2) return false;
+
+    typeSz = typeSize(src.type);
+    horizontal = stride(src.hstride);
+    spans = (src.subnr / (horizontal * typeSz)) * (horizontal * typeSz)  + horizontal * typeSz * 16;
+    uint32_t srcSpan = (horizontal * typeSz * 16) / GEN_REG_SIZE;
+    srcSpan = srcSpan + (spans % GEN_REG_SIZE == 0 ? 0 : 1);
+
+    GBE_ASSERT(srcSpan <= 2);
+    GBE_ASSERT(dstSpan == 2);
+
+    if (srcSpan == dstSpan) return false;
+
+    /* Special case, dst is DW and src is w.
+       the case:
+       mov (16) r10.0<1>:d r12<8;8,1>:w
+       is allowed. */
+    if ((dst.type == GEN_TYPE_UD || dst.type == GEN_TYPE_D)
+          && (src.type == GEN_TYPE_UW || src.type == GEN_TYPE_W)
+          && dstSpan == 2 && srcSpan == 1
+          && dst.subnr == 0 && src.subnr == 0) return false;
+
+    return true;
+  }
+
   INLINE bool needToSplitAlu1(GenEncoder *p, GenRegister dst, GenRegister src) {
     if (p->curr.execWidth != 16 || src.hstride == GEN_HORIZONTAL_STRIDE_0) return false;
     if (isVectorOfBytes(dst) == true) return true;
     if (isVectorOfBytes(src) == true) return true;
+    if (isSrcDstDiffSpan(dst, src)) return true;
     return false;
   }
 
@@ -79,17 +113,22 @@ namespace gbe
          (src0.hstride == GEN_HORIZONTAL_STRIDE_0 &&
           src1.hstride == GEN_HORIZONTAL_STRIDE_0))
       return false;
+
+    if (isSrcDstDiffSpan(dst, src0)) return true;
+    if (isSrcDstDiffSpan(dst, src1)) return true;
     if (isVectorOfBytes(dst) == true) return true;
     if (isVectorOfBytes(src0) == true) return true;
     if (isVectorOfBytes(src1) == true) return true;
     return false;
   }
 
-  INLINE bool needToSplitCmp(GenEncoder *p, GenRegister src0, GenRegister src1) {
+  INLINE bool needToSplitCmp(GenEncoder *p, GenRegister src0, GenRegister src1, GenRegister dst) {
     if (p->curr.execWidth != 16 ||
          (src0.hstride == GEN_HORIZONTAL_STRIDE_0 &&
           src1.hstride == GEN_HORIZONTAL_STRIDE_0))
       return false;
+    if (isSrcDstDiffSpan(dst, src0)) return true;
+    if (isSrcDstDiffSpan(dst, src1)) return true;
     if (isVectorOfBytes(src0) == true) return true;
     if (isVectorOfBytes(src1) == true) return true;
     if (src0.type == GEN_TYPE_D || src0.type == GEN_TYPE_UD || src0.type == GEN_TYPE_F)
@@ -864,7 +903,7 @@ namespace gbe
   }
 
   void GenEncoder::CMP(uint32_t conditional, GenRegister src0, GenRegister src1, GenRegister dst) {
-    if (needToSplitCmp(this, src0, src1) == false) {
+    if (needToSplitCmp(this, src0, src1, dst) == false) {
       if(!GenRegister::isNull(dst) && compactAlu2(this, GEN_OPCODE_CMP, dst, src0, src1, conditional, false)) {
         return;
       }
diff --git a/backend/src/backend/gen_insn_scheduling.cpp b/backend/src/backend/gen_insn_scheduling.cpp
index 5538a74..f849c52 100644
--- a/backend/src/backend/gen_insn_scheduling.cpp
+++ b/backend/src/backend/gen_insn_scheduling.cpp
@@ -379,7 +379,7 @@ namespace gbe
     }
 
     // Track writes in accumulators
-    if (insn.state.accWrEnable) {
+    if (insn.modAcc()) {
       const uint32_t index = this->getIndex(GenRegister::acc());
       this->nodes[index] = node;
     }
@@ -517,7 +517,7 @@ namespace gbe
         tracker.addDependency(node, getFlag(insn), WRITE_AFTER_WRITE);
 
       // write-after-write for accumulators
-      if (insn.state.accWrEnable)
+      if (insn.modAcc())
         tracker.addDependency(node, GenRegister::acc(), WRITE_AFTER_WRITE);
 
       // write-after-write in memory
diff --git a/backend/src/backend/gen_insn_selection.cpp b/backend/src/backend/gen_insn_selection.cpp
index f83edf5..0f5e496 100644
--- a/backend/src/backend/gen_insn_selection.cpp
+++ b/backend/src/backend/gen_insn_selection.cpp
@@ -115,7 +115,7 @@ namespace gbe
   uint32_t getGenType(ir::Type type) {
     using namespace ir;
     switch (type) {
-      case TYPE_BOOL: return GEN_TYPE_UW;
+      case TYPE_BOOL: return GEN_TYPE_W;
       case TYPE_S8: return GEN_TYPE_B;
       case TYPE_U8: return GEN_TYPE_UB;
       case TYPE_S16: return GEN_TYPE_W;
@@ -189,6 +189,20 @@ namespace gbe
            this->opcode == SEL_OP_DWORD_GATHER;
   }
 
+  bool SelectionInstruction::modAcc(void) const {
+    return this->opcode == SEL_OP_I64SUB ||
+           this->opcode == SEL_OP_I64ADD ||
+           this->opcode == SEL_OP_MUL_HI ||
+           this->opcode == SEL_OP_HADD ||
+           this->opcode == SEL_OP_RHADD ||
+           this->opcode == SEL_OP_I64MUL ||
+           this->opcode == SEL_OP_I64_MUL_HI ||
+           this->opcode == SEL_OP_I64MADSAT ||
+           this->opcode == SEL_OP_I64DIV ||
+           this->opcode == SEL_OP_I64REM ||
+           this->opcode == SEL_OP_MACH;
+  }
+
   bool SelectionInstruction::isWrite(void) const {
     return this->opcode == SEL_OP_UNTYPED_WRITE ||
            this->opcode == SEL_OP_WRITE64       ||
@@ -1839,7 +1853,7 @@ namespace gbe
       case TYPE_U8:  return GenRegister::immuw(imm.getIntegerValue() * sign);
       case TYPE_S8:  return GenRegister::immw((int8_t)imm.getIntegerValue() * sign);
       case TYPE_DOUBLE: return GenRegister::immdf(imm.getDoubleValue() * sign);
-      case TYPE_BOOL: return GenRegister::immuw(-imm.getIntegerValue());  //return 0xffff when true
+      case TYPE_BOOL: return GenRegister::immw((imm.getIntegerValue() == 0) ? 0 : -1);  //return 0xffff when true
       default: NOT_SUPPORTED; return GenRegister::immuw(0);
     }
   }
@@ -1939,10 +1953,14 @@ namespace gbe
   /*! Unary instruction patterns */
   DECL_PATTERN(UnaryInstruction)
   {
-    static ir::Type getType(const ir::Opcode opcode, const ir::Type insnType) {
+    static ir::Type getType(const ir::Opcode opcode, const ir::Type insnType, bool isSrc = false) {
+
+      if (opcode == ir::OP_CBIT)
+        return isSrc ? insnType : ir::TYPE_U32;
+
       if (insnType == ir::TYPE_S64 || insnType == ir::TYPE_U64 || insnType == ir::TYPE_S8 || insnType == ir::TYPE_U8)
         return insnType;
-      if (opcode == ir::OP_FBH || opcode == ir::OP_FBL || opcode == ir::OP_CBIT)
+      if (opcode == ir::OP_FBH || opcode == ir::OP_FBL)
         return ir::TYPE_U32;
       if (insnType == ir::TYPE_S16 || insnType == ir::TYPE_U16)
         return insnType;
@@ -1954,8 +1972,8 @@ namespace gbe
     INLINE bool emitOne(Selection::Opaque &sel, const ir::UnaryInstruction &insn, bool &markChildren) const {
       const ir::Opcode opcode = insn.getOpcode();
       const ir::Type insnType = insn.getType();
-      const GenRegister dst = sel.selReg(insn.getDst(0), getType(opcode, insnType));
-      const GenRegister src = sel.selReg(insn.getSrc(0), getType(opcode, insnType));
+      const GenRegister dst = sel.selReg(insn.getDst(0), getType(opcode, insnType, false));
+      const GenRegister src = sel.selReg(insn.getSrc(0), getType(opcode, insnType, true));
       sel.push();
         if (sel.isScalarReg(insn.getDst(0)) == true) {
           sel.curr.execWidth = 1;
diff --git a/backend/src/backend/gen_insn_selection.hpp b/backend/src/backend/gen_insn_selection.hpp
index 7fef11f..8bffb16 100644
--- a/backend/src/backend/gen_insn_selection.hpp
+++ b/backend/src/backend/gen_insn_selection.hpp
@@ -77,6 +77,8 @@ namespace gbe
     bool isRead(void) const;
     /*! Does it write memory? */
     bool isWrite(void) const;
+    /*! Does it modify the acc register. */
+    bool modAcc(void) const;
     /*! Is it a branch instruction (i.e. modify control flow) */
     bool isBranch(void) const;
     /*! Is it a label instruction (i.e. change the implicit mask) */
diff --git a/backend/src/backend/gen_program.cpp b/backend/src/backend/gen_program.cpp
index 2e391e1..53d6d86 100644
--- a/backend/src/backend/gen_program.cpp
+++ b/backend/src/backend/gen_program.cpp
@@ -33,12 +33,7 @@
 #include "llvm/IR/Module.h"
 #include "llvm/IR/DataLayout.h"
 #endif  /* LLVM_VERSION_MINOR <= 2 */
-
-#if LLVM_VERSION_MINOR >= 5
-#include "llvm/Linker/Linker.h"
-#else
-#include "llvm/Linker.h"
-#endif
+#include "llvm-c/Linker.h"
 #include "llvm/Transforms/Utils/Cloning.h"
 #include "llvm/Bitcode/ReaderWriter.h"
 #include "llvm/Support/raw_ostream.h"
@@ -253,9 +248,15 @@ namespace gbe {
     llvm::StringRef llvm_bin_str(binary_content);
     llvm::LLVMContext& c = llvm::getGlobalContext();
     llvm::SMDiagnostic Err;
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
+    std::unique_ptr<llvm::MemoryBuffer> memory_buffer = llvm::MemoryBuffer::getMemBuffer(llvm_bin_str, "llvm_bin_str");
+    acquireLLVMContextLock();
+    llvm::Module* module = llvm::parseIR(memory_buffer->getMemBufferRef(), Err, c).release();
+#else
     llvm::MemoryBuffer* memory_buffer = llvm::MemoryBuffer::getMemBuffer(llvm_bin_str, "llvm_bin_str");
     acquireLLVMContextLock();
     llvm::Module* module = llvm::ParseIR(memory_buffer, Err, c);
+#endif
     releaseLLVMContextLock();
     if(module == NULL){
       GBE_ASSERT(0);
@@ -371,23 +372,19 @@ namespace gbe {
   {
 #ifdef GBE_COMPILER_AVAILABLE
     using namespace gbe;
-    std::string errMsg;
+    char* errMsg;
     if(((GenProgram*)dst_program)->module == NULL){
       ((GenProgram*)dst_program)->module = llvm::CloneModule((llvm::Module*)((GenProgram*)src_program)->module);
       errSize = 0;
     }else{
       llvm::Module* src = (llvm::Module*)((GenProgram*)src_program)->module;
       llvm::Module* dst = (llvm::Module*)((GenProgram*)dst_program)->module;
-      llvm::Linker::LinkModules( dst,
-                                 src,
-                                 llvm::Linker::PreserveSource,
-                                 &errMsg);
-      if (errMsg.c_str() != NULL) {
+
+      if (LLVMLinkModules(wrap(dst), wrap(src), LLVMLinkerPreserveSource, &errMsg)) {
         if (err != NULL && errSize != NULL && stringSize > 0u) {
-          if(errMsg.length() < stringSize )
-            stringSize = errMsg.length();
-          strcpy(err, errMsg.c_str());
-          err[stringSize+1] = '\0';
+          strncpy(err, errMsg, stringSize-1);
+          err[stringSize-1] = '\0';
+          *errSize = strlen(err);
         }
       }
     }
diff --git a/backend/src/backend/gen_register.hpp b/backend/src/backend/gen_register.hpp
index da58c06..d539937 100644
--- a/backend/src/backend/gen_register.hpp
+++ b/backend/src/backend/gen_register.hpp
@@ -79,6 +79,7 @@ namespace gbe
         return 4;
       case GEN_TYPE_UW:
       case GEN_TYPE_W:
+      case GEN_TYPE_HF:
         return 2;
       case GEN_TYPE_UB:
       case GEN_TYPE_B:
diff --git a/backend/src/backend/program.cpp b/backend/src/backend/program.cpp
index 38ce9c8..eee7c3c 100644
--- a/backend/src/backend/program.cpp
+++ b/backend/src/backend/program.cpp
@@ -621,7 +621,11 @@ namespace gbe {
     if (!retVal)
       return false;
 
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
     llvm::Module *module = Act->takeModule();
+#else
+    llvm::Module *module = Act->takeModule().release();
+#endif
 
     *out_module = module;
     return true;
@@ -672,7 +676,7 @@ namespace gbe {
       const std::string unsupportedOptions("-cl-denorms-are-zero, -cl-strict-aliasing, -cl-opt-disable,"
                        "-cl-no-signed-zeros, -cl-fp32-correctly-rounded-divide-sqrt");
 
-      const std::string uncompatiblePCHOptions = ("-cl-single-precision-constant, -cl-fast-relaxed-math, -cl-std=CL1.1");
+      const std::string uncompatiblePCHOptions = ("-cl-single-precision-constant, -cl-fast-relaxed-math, -cl-std=CL1.1, -cl-finite-math-only");
       const std::string fastMathOption = ("-cl-fast-relaxed-math");
       while (end != std::string::npos) {
         end = optionStr.find(' ', start);
diff --git a/backend/src/ir/context.cpp b/backend/src/ir/context.cpp
index 875a529..2412fe9 100644
--- a/backend/src/ir/context.cpp
+++ b/backend/src/ir/context.cpp
@@ -76,7 +76,8 @@ namespace ir {
     // function
     lowerReturn(unit, fn->getName());
     // check if there is empty labels at first
-    fn->checkEmptyLabels();
+    // FIXME: I don't find a way to elimimate all empty blocks. temporary disable this check
+    //fn->checkEmptyLabels();
     // Properly order labels and compute the CFG, it's needed by FunctionArgumentLower
     fn->sortLabels();
     fn->computeCFG();
diff --git a/backend/src/ir/immediate.hpp b/backend/src/ir/immediate.hpp
index 756806b..10bd035 100644
--- a/backend/src/ir/immediate.hpp
+++ b/backend/src/ir/immediate.hpp
@@ -199,7 +199,8 @@ namespace ir {
     }
 
     INLINE float getFloatValue(void) const {
-      GBE_ASSERT(type == IMM_TYPE_FLOAT);
+      // we allow bitcast from u32/s32 immediate to float
+      GBE_ASSERT(type == IMM_TYPE_FLOAT || type == IMM_TYPE_U32 || type == IMM_TYPE_S32);
       return *data.f32;
     }
 
diff --git a/backend/src/ir/instruction.cpp b/backend/src/ir/instruction.cpp
index 82e7dda..039f085 100644
--- a/backend/src/ir/instruction.cpp
+++ b/backend/src/ir/instruction.cpp
@@ -814,7 +814,8 @@ namespace ir {
       const RegisterFamily family = getFamily(this->type);
       if (UNLIKELY(checkSpecialRegForWrite(dst[0], fn, whyNot) == false))
         return false;
-      if (UNLIKELY(checkRegisterData(family, dst[0], fn, whyNot) == false))
+      if (opcode != OP_CBIT &&
+          UNLIKELY(checkRegisterData(family, dst[0], fn, whyNot) == false))
         return false;
       for (uint32_t srcID = 0; srcID < srcNum; ++srcID)
         if (UNLIKELY(checkRegisterData(family, src[srcID], fn, whyNot) == false))
@@ -871,7 +872,6 @@ namespace ir {
         if (UNLIKELY(checkRegisterData(family, regID, fn, whyNot) == false))
           return false;
       }
-      CHECK_TYPE(this->type, allButBool);
       return true;
     }
 
@@ -887,7 +887,6 @@ namespace ir {
       for (uint32_t srcID = 0; srcID < 2; ++srcID)
         if (UNLIKELY(checkRegisterData(family, src[srcID], fn, whyNot) == false))
           return false;
-      CHECK_TYPE(this->type, allButBool);
       return true;
     }
 
diff --git a/backend/src/ir/printf.cpp b/backend/src/ir/printf.cpp
index fa108dc..3d9b2fd 100644
--- a/backend/src/ir/printf.cpp
+++ b/backend/src/ir/printf.cpp
@@ -34,8 +34,9 @@ namespace gbe
     uint32_t PrintfSet::append(PrintfFmt* fmt, Unit& unit)
     {
       fmts.push_back(*fmt);
+      vector<PrintfSlot>& vp = fmts.back().first;
 
-      for (PrintfFmt::iterator f = fmts.back().begin(); f != fmts.back().end(); ++f) {
+      for (vector<PrintfSlot>::iterator f = vp.begin(); f !=  vp.end(); ++f) {
         if (f->type == PRINTF_SLOT_TYPE_STRING)
           continue;
 
@@ -126,14 +127,27 @@ namespace gbe
       int stmt = 0;
 
       for (size_t count = 0; count < fmts.size(); ++count) {
-        PrintfFmt& pf = fmts[count];
         for (i = 0; i < global_wk_sz0; i++) {
           for (j = 0; j < global_wk_sz1; j++) {
             for (k = 0; k < global_wk_sz2; k++) {
-              int loop_num = ((int *)index_addr)[stmt*global_wk_sz0*global_wk_sz1*global_wk_sz2
-                                                 + k*global_wk_sz0*global_wk_sz1 + j*global_wk_sz0 + i];
+              int loop_num = ((int *)index_addr)[(stmt*global_wk_sz0*global_wk_sz1*global_wk_sz2
+                                                 + k*global_wk_sz0*global_wk_sz1 + j*global_wk_sz0 + i)*2];
+              int printf_num = ((int *)index_addr)[(stmt*global_wk_sz0*global_wk_sz1*global_wk_sz2
+                                                 + k*global_wk_sz0*global_wk_sz1 + j*global_wk_sz0 + i)*2 + 1];
+              if (!loop_num) continue;
+
+              PrintfFmt* ppf = NULL;
+              for (auto& f : fmts) {
+                if (f.second == printf_num) {
+                  ppf = &f;
+                  break;
+                }
+              }
+
+              PrintfFmt& pf = *ppf;
+
               for (int n = 0; n < loop_num; n++) {
-                for (PrintfFmt::iterator pfit = pf.begin(); pfit != pf.end(); ++pfit) {
+                for (vector<PrintfSlot>::iterator pfit = pf.first.begin(); pfit != pf.first.end(); ++pfit) {
                   PrintfSlot& slot = *pfit;
                   pf_str = "";
                   int vec_num;
@@ -146,6 +160,7 @@ namespace gbe
 
                   generatePrintfFmtString(*slot.state, pf_str);
 
+
                   vec_num = slot.state->vector_n > 0 ? slot.state->vector_n : 1;
 
                   for (int vec_i = 0; vec_i < vec_num; vec_i++) {
diff --git a/backend/src/ir/printf.hpp b/backend/src/ir/printf.hpp
index f6c6bcf..cbab759 100644
--- a/backend/src/ir/printf.hpp
+++ b/backend/src/ir/printf.hpp
@@ -198,7 +198,7 @@ namespace gbe
         }
       };
 
-      typedef vector<PrintfSlot> PrintfFmt;
+      typedef std::pair<vector<PrintfSlot>, int> PrintfFmt;
       uint32_t append(PrintfFmt* fmt, Unit &unit);
 
       uint32_t getPrintfNum(void) const {
diff --git a/backend/src/ir/structural_analysis.cpp b/backend/src/ir/structural_analysis.cpp
index 4c7e3d2..101570a 100644
--- a/backend/src/ir/structural_analysis.cpp
+++ b/backend/src/ir/structural_analysis.cpp
@@ -67,6 +67,11 @@ namespace analysis
     if (pbb->hasExtraBra)
       it--;
     ir::BranchInstruction* pinsn = static_cast<ir::BranchInstruction *>(&*it);
+
+    if(!pinsn->isPredicated()){
+      std::cout << "WARNING:" << "endless loop detected!" << std::endl;
+      return;
+    }
     ir::Register reg = pinsn->getPredicateIndex();
     /* since this node is an while node, so we remove the BRA instruction at the bottom of the exit BB of 'node',
      * and insert WHILE instead
diff --git a/backend/src/libocl/include/ocl_types.h b/backend/src/libocl/include/ocl_types.h
index 3b4ce97..487fe68 100644
--- a/backend/src/libocl/include/ocl_types.h
+++ b/backend/src/libocl/include/ocl_types.h
@@ -21,7 +21,7 @@
 #pragma OPENCL EXTENSION cl_khr_fp64 : enable
 #include "ocl_defines.h"
 
-#define NULL ((void*)0)
+#define NULL 0
 
 /////////////////////////////////////////////////////////////////////////////
 // OpenCL Common Defines
diff --git a/backend/src/libocl/script/gen_vector.py b/backend/src/libocl/script/gen_vector.py
index 291dd87..ffc573a 100755
--- a/backend/src/libocl/script/gen_vector.py
+++ b/backend/src/libocl/script/gen_vector.py
@@ -289,42 +289,9 @@ class builtinProto():
             formatStr += ';'
             self.append(formatStr)
             return formatStr
-        if self.functionName != 'select' and ptypeSeqs[0] == ptypeSeqs[self.paramCount-1] and ptype[1] > 4:
-            formatStr += '\n{ \n  union{'
-            formatStr = self.append(formatStr, '    {0} va[{1}];'.format(vtype[0], vtype[1]))
-            formatStr = self.append(formatStr, '    {0}{1} vv{2};'.format(vtype[0], vtype[1], vtype[1]))
-            formatStr += '\n  }uret;'
-            formatStr += '\n  union{'
-            formatStr = self.append(formatStr, '    {0} pa[{1}];'.format(ptype[0], ptype[1]))
-            formatStr = self.append(formatStr, '    {0}{1} pv{2};'.format(ptype[0], ptype[1], ptype[1]))
-            formatStr += '\n  }'
-            for n in range(0, self.paramCount):
-              formatStr += 'usrc{0}'.format(n)
-              if n+1 != self.paramCount:
-                formatStr +=', '
-            formatStr += ';'
-
-            for n in range(0, self.paramCount):
-              formatStr = self.append(formatStr, '  usrc{0}.pv{1} = param{2};'.format(n, ptype[1], n))
-            formatStr = self.append(formatStr, '  for(int i =0; i < {0}; i++)'.format(ptype[1]))
-            formatStr += '\n    uret.va[i] = '
-            if self.prefix == 'relational' and self.functionName != 'bitselect' and self.functionName != 'select':
-              formatStr += '-'
-            formatStr += '{0}('.format(self.functionName)
-
-            for n in range(0, self.paramCount):
-              formatStr += 'usrc{0}.pa[i]'.format(n)
-              if n+1 != self.paramCount:
-                formatStr +=', '
-            formatStr += ');'
-            formatStr = self.append(formatStr, ' return uret.vv{0};'.format(vtype[1]))
-            formatStr += '\n}'
-            formatStr = self.append(formatStr)
-            return formatStr
-        else:
-          formatStr = self.append(formatStr, '{{return ({0}{1})('.format(vtype[0], vtype[1]))
-          self.indent = len(formatStr)
-          for j in range(0, vtype[1]):
+        formatStr = self.append(formatStr, '{{return ({0}{1})('.format(vtype[0], vtype[1]))
+        self.indent = len(formatStr)
+        for j in range(0, vtype[1]):
             if (j != 0):
                 formatStr += ','
                 if (j + 1) % 2 == 0:
@@ -359,10 +326,10 @@ class builtinProto():
 
             formatStr += ')'
 
-          formatStr += '); }\n'
-          self.append(formatStr)
+        formatStr += '); }\n'
+        self.append(formatStr)
 
-          return formatStr
+        return formatStr
 
     def output(self):
         for line in self.outputStr:
diff --git a/backend/src/libocl/tmpl/ocl_integer.tmpl.cl b/backend/src/libocl/tmpl/ocl_integer.tmpl.cl
index 28b9c20..6da0bab 100644
--- a/backend/src/libocl/tmpl/ocl_integer.tmpl.cl
+++ b/backend/src/libocl/tmpl/ocl_integer.tmpl.cl
@@ -19,7 +19,12 @@
 
 PURE CONST uint __gen_ocl_fbh(uint);
 PURE CONST uint __gen_ocl_fbl(uint);
-PURE CONST uint __gen_ocl_cbit(uint);
+PURE CONST OVERLOADABLE uint __gen_ocl_cbit(uint);
+PURE CONST OVERLOADABLE uint __gen_ocl_cbit(int);
+PURE CONST OVERLOADABLE uint __gen_ocl_cbit(ushort);
+PURE CONST OVERLOADABLE uint __gen_ocl_cbit(short);
+PURE CONST OVERLOADABLE uint __gen_ocl_cbit(uchar);
+PURE CONST OVERLOADABLE uint __gen_ocl_cbit(char);
 
 OVERLOADABLE char clz(char x) {
   if (x < 0)
diff --git a/backend/src/libocl/tmpl/ocl_math.tmpl.cl b/backend/src/libocl/tmpl/ocl_math.tmpl.cl
index 49c4efa..fcc60fd 100644
--- a/backend/src/libocl/tmpl/ocl_math.tmpl.cl
+++ b/backend/src/libocl/tmpl/ocl_math.tmpl.cl
@@ -21,7 +21,7 @@
 #include "ocl_common.h"
 #include "ocl_integer.h"
 
-constant int __ocl_math_fastpath_flag = 1;
+extern constant int __ocl_math_fastpath_flag;
 
 PURE CONST float __gen_ocl_fabs(float x);
 PURE CONST float __gen_ocl_sin(float x);
diff --git a/backend/src/llvm/ExpandConstantExpr.cpp b/backend/src/llvm/ExpandConstantExpr.cpp
new file mode 100644
index 0000000..2da765e
--- /dev/null
+++ b/backend/src/llvm/ExpandConstantExpr.cpp
@@ -0,0 +1,193 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// Imported from pNaCl project
+// Copyright (c) 2003-2014 University of Illinois at Urbana-Champaign.
+// All rights reserved.
+//
+// Developed by:
+//
+//    LLVM Team
+//
+//    University of Illinois at Urbana-Champaign
+//
+//    http://llvm.org
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of
+// this software and associated documentation files (the "Software"), to deal with
+// the Software without restriction, including without limitation the rights to
+// use, copy, modify, merge, publish, distribute, sublicense, 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:
+//
+//    * Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimers.
+//
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//      this list of conditions and the following disclaimers in the
+//      documentation and/or other materials provided with the distribution.
+//
+//    * Neither the names of the LLVM Team, University of Illinois at
+//      Urbana-Champaign, nor the names of its contributors may be used to
+//      endorse or promote products derived from this Software without specific
+//      prior written permission.
+//
+// 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 NONINFRINGEMENT.  IN NO EVENT SHALL THE
+// CONTRIBUTORS OR COPYRIGHT HOLDERS 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 WITH THE
+// SOFTWARE.
+
+//===- ExpandConstantExpr.cpp - Convert ConstantExprs to Instructions------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License.
+//
+//===----------------------------------------------------------------------===//
+//
+// This pass expands out ConstantExprs into Instructions.
+//
+// Note that this only converts ConstantExprs that are referenced by
+// Instructions.  It does not convert ConstantExprs that are used as
+// initializers for global variables.
+//
+// This simplifies the language so that the PNaCl translator does not
+// need to handle ConstantExprs as part of a stable wire format for
+// PNaCl.
+//
+//===----------------------------------------------------------------------===//
+
+#include <map>
+
+#include "llvm/IR/IRBuilder.h"
+#include "llvm/IR/Constants.h"
+#include "llvm/IR/Function.h"
+#include "llvm/IR/Instructions.h"
+#include "llvm/Pass.h"
+#include "llvm_gen_backend.hpp"
+
+using namespace llvm;
+
+static bool expandInstruction(Instruction *Inst);
+
+namespace {
+  // This is a FunctionPass because our handling of PHI nodes means
+  // that our modifications may cross BasicBlocks.
+  struct ExpandConstantExpr : public FunctionPass {
+    static char ID; // Pass identification, replacement for typeid
+    ExpandConstantExpr() : FunctionPass(ID) {
+    }
+
+    virtual bool runOnFunction(Function &Func);
+  };
+}
+
+char ExpandConstantExpr::ID = 0;
+
+static Value *expandConstantExpr(Instruction *InsertPt, ConstantExpr *Expr) {
+  Instruction *NewInst = Expr->getAsInstruction();
+  NewInst->insertBefore(InsertPt);
+  NewInst->setName("expanded");
+  expandInstruction(NewInst);
+  return NewInst;
+}
+
+// For a constant vector, it may contain some constant expressions.
+// We need to expand each expressions then recreate this vector by
+// using InsertElement instruction. Thus we can eliminate all the
+// constant expressions.
+static Value *expandConstantVector(Instruction *InsertPt, ConstantVector *CV) {
+  int elemNum = CV->getType()->getNumElements();
+  Type *IntTy = IntegerType::get(CV->getContext(), 32);
+
+  BasicBlock::iterator InsertPos(InsertPt);
+  IRBuilder<> IRB(--InsertPos);
+  Value *vec = UndefValue::get(CV->getType());
+  for (int i = 0; i < elemNum; i++) {
+    Value *idx = ConstantInt::get(IntTy, i);
+    if (dyn_cast<ConstantVector>(CV->getOperand(i)))
+      vec = IRB.CreateInsertElement(vec, expandConstantVector(InsertPt, dyn_cast<ConstantVector>(CV->getOperand(i))), idx);
+    else if (dyn_cast<ConstantExpr>(CV->getOperand(i)))
+      vec = IRB.CreateInsertElement(vec, expandConstantExpr(InsertPt, dyn_cast<ConstantExpr>(CV->getOperand(i))), idx);
+    else
+      vec = IRB.CreateInsertElement(vec, CV->getOperand(i), idx);
+  }
+  return vec;
+}
+
+// Whether a constant vector contains constant expression which need to expand.
+static bool needExpand(ConstantVector *CV) {
+  int elemNum = CV->getType()->getNumElements();
+  for (int i = 0; i < elemNum; i++) {
+    Constant *C = CV->getOperand(i);
+    if (dyn_cast<ConstantExpr>(C))
+      return true;
+    if (dyn_cast<ConstantVector>(C))
+      if (needExpand(dyn_cast<ConstantVector>(C)))
+        return true;
+  }
+  return false;
+}
+
+static bool expandInstruction(Instruction *Inst) {
+  // A landingpad can only accept ConstantExprs, so it should remain
+  // unmodified.
+  if (isa<LandingPadInst>(Inst))
+    return false;
+
+  bool Modified = false;
+  for (unsigned OpNum = 0; OpNum < Inst->getNumOperands(); OpNum++) {
+    if (ConstantExpr *Expr =
+        dyn_cast<ConstantExpr>(Inst->getOperand(OpNum))) {
+      Modified = true;
+      Use *U = &Inst->getOperandUse(OpNum);
+      PhiSafeReplaceUses(U, expandConstantExpr(PhiSafeInsertPt(U), Expr));
+    }
+    else {
+      ConstantVector *CV = dyn_cast<ConstantVector>(Inst->getOperand(OpNum));
+      if (CV && needExpand(CV)) {
+        Modified = true;
+        Use *U = &Inst->getOperandUse(OpNum);
+        PhiSafeReplaceUses(U, expandConstantVector(PhiSafeInsertPt(U), CV));
+      }
+    }
+  }
+  return Modified;
+}
+
+bool ExpandConstantExpr::runOnFunction(Function &Func) {
+  bool Modified = false;
+  for (llvm::Function::iterator BB = Func.begin(), E = Func.end();
+       BB != E;
+       ++BB) {
+    for (BasicBlock::InstListType::iterator Inst = BB->begin(), E = BB->end();
+         Inst != E;
+         ++Inst) {
+      Modified |= expandInstruction(Inst);
+    }
+  }
+  return Modified;
+}
+
+FunctionPass *llvm::createExpandConstantExprPass() {
+  return new ExpandConstantExpr();
+}
diff --git a/backend/src/llvm/ExpandLargeIntegers.cpp b/backend/src/llvm/ExpandLargeIntegers.cpp
new file mode 100644
index 0000000..f7e59a5
--- /dev/null
+++ b/backend/src/llvm/ExpandLargeIntegers.cpp
@@ -0,0 +1,822 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// Copyright (c) 2003-2014 University of Illinois at Urbana-Champaign.
+// All rights reserved.
+//
+// Developed by:
+//
+//    LLVM Team
+//
+//    University of Illinois at Urbana-Champaign
+//
+//    http://llvm.org
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of
+// this software and associated documentation files (the "Software"), to deal with
+// the Software without restriction, including without limitation the rights to
+// use, copy, modify, merge, publish, distribute, sublicense, 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:
+//
+//    * Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimers.
+//
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//      this list of conditions and the following disclaimers in the
+//      documentation and/or other materials provided with the distribution.
+//
+//    * Neither the names of the LLVM Team, University of Illinois at
+//      Urbana-Champaign, nor the names of its contributors may be used to
+//      endorse or promote products derived from this Software without specific
+//      prior written permission.
+//
+// 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 NONINFRINGEMENT.  IN NO EVENT SHALL THE
+// CONTRIBUTORS OR COPYRIGHT HOLDERS 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 WITH THE
+// SOFTWARE.
+
+//===- ExpandLargeIntegers.cpp - Expand illegal integers for PNaCl ABI ----===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License.
+//
+// A limited set of transformations to expand illegal-sized int types.
+//
+//===----------------------------------------------------------------------===//
+//
+// Legal sizes for the purposes of expansion are anything 64 bits or less.
+// Operations on large integers are split into operations on smaller-sized
+// integers. The low parts should always be powers of 2, but the high parts may
+// not be. A subsequent pass can promote those. For now this pass only intends
+// to support the uses generated by clang, which is basically just for large
+// bitfields.
+//
+// Limitations:
+// 1) It can't change function signatures or global variables.
+// 3) Doesn't support mul, div/rem, switch.
+// 4) Doesn't handle arrays or structs (or GEPs) with illegal types.
+// 5) Doesn't handle constant expressions (it also doesn't produce them, so it
+//    can run after ExpandConstantExpr).
+//
+// The PNaCl version does not handle bitcast between vector and large integer.
+// So I develop the bitcast from/to vector logic.
+// TODO: 1. When we do lshr/trunc, and we know it is cast from a vector, we can
+//          optimize it to extractElement.
+//       2. OR x, 0 can be optimized as x. And x, 0 can be optimized as 0.
+//===----------------------------------------------------------------------===//
+
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/PostOrderIterator.h"
+#include "llvm/ADT/STLExtras.h"
+#include "llvm/ADT/SmallVector.h"
+#if LLVM_VERSION_MINOR >= 5
+#include "llvm/IR/CFG.h"
+#else
+#include "llvm/Support/CFG.h"
+#endif
+#include "llvm/IR/DataLayout.h"
+#include "llvm/IR/DerivedTypes.h"
+#include "llvm/IR/Function.h"
+#include "llvm/IR/IRBuilder.h"
+#include "llvm/IR/Instructions.h"
+#include "llvm/Pass.h"
+#include "llvm/Support/Debug.h"
+#include "llvm/Support/MathExtras.h"
+#include "llvm/Support/raw_ostream.h"
+#include "llvm_gen_backend.hpp"
+
+using namespace llvm;
+
+#if LLVM_VERSION_MINOR >= 5
+#define DEBUG_TYPE "nacl-expand-ints"
+#endif
+
+#ifdef DEBUG
+  #undef DEBUG
+  #define DEBUG(...)
+#endif
+// Break instructions up into no larger than 64-bit chunks.
+static const unsigned kChunkBits = 64;
+static const unsigned kChunkBytes = kChunkBits / CHAR_BIT;
+
+namespace {
+class ExpandLargeIntegers : public FunctionPass {
+public:
+  static char ID;
+  ExpandLargeIntegers() : FunctionPass(ID) {
+  }
+  bool runOnFunction(Function &F) override;
+};
+
+template <typename T> struct LoHiPair {
+  T Lo, Hi;
+  LoHiPair() : Lo(), Hi() {}
+  LoHiPair(T Lo, T Hi) : Lo(Lo), Hi(Hi) {}
+};
+typedef LoHiPair<IntegerType *> TypePair;
+typedef LoHiPair<Value *> ValuePair;
+typedef LoHiPair<unsigned> AlignPair;
+
+struct VectorElement {
+  Value *parent;
+  unsigned childId;
+  VectorElement() : parent(NULL), childId(0) {}
+  VectorElement(Value *p, unsigned i) : parent(p), childId(i) {}
+};
+
+// Information needed to patch a phi node which forward-references a value.
+struct ForwardPHI {
+  Value *Val;
+  PHINode *Lo, *Hi;
+  unsigned ValueNumber;
+  ForwardPHI(Value *Val, PHINode *Lo, PHINode *Hi, unsigned ValueNumber)
+      : Val(Val), Lo(Lo), Hi(Hi), ValueNumber(ValueNumber) {}
+};
+}
+
+char ExpandLargeIntegers::ID = 0;
+
+static bool isLegalBitSize(unsigned Bits) {
+  assert(Bits && "Can't have zero-size integers");
+  return Bits <= kChunkBits;
+}
+
+static TypePair getExpandedIntTypes(Type *Ty) {
+  unsigned BitWidth = Ty->getIntegerBitWidth();
+  assert(!isLegalBitSize(BitWidth));
+  return TypePair(IntegerType::get(Ty->getContext(), kChunkBits),
+                  IntegerType::get(Ty->getContext(), BitWidth - kChunkBits));
+}
+
+// Return true if Val is an int which should be converted.
+static bool shouldConvert(const Value *Val) {
+  Type *Ty = Val->getType();
+  if (IntegerType *ITy = dyn_cast<IntegerType>(Ty))
+    return !isLegalBitSize(ITy->getBitWidth());
+  return false;
+}
+
+// Return a pair of constants expanded from C.
+static ValuePair expandConstant(Constant *C) {
+  assert(shouldConvert(C));
+  TypePair ExpandedTypes = getExpandedIntTypes(C->getType());
+  if (isa<UndefValue>(C)) {
+    return ValuePair(UndefValue::get(ExpandedTypes.Lo),
+                     UndefValue::get(ExpandedTypes.Hi));
+  } else if (ConstantInt *CInt = dyn_cast<ConstantInt>(C)) {
+    Constant *ShiftAmt = ConstantInt::get(
+        CInt->getType(), ExpandedTypes.Lo->getBitWidth(), false);
+    return ValuePair(
+        ConstantExpr::getTrunc(CInt, ExpandedTypes.Lo),
+        ConstantExpr::getTrunc(ConstantExpr::getLShr(CInt, ShiftAmt),
+                               ExpandedTypes.Hi));
+  }
+  errs() << "Value: " << *C << "\n";
+  report_fatal_error("Unexpected constant value");
+}
+
+template <typename T>
+static AlignPair getAlign(const DataLayout &DL, T *I, Type *PrefAlignTy) {
+  unsigned LoAlign = I->getAlignment();
+  if (LoAlign == 0)
+    LoAlign = DL.getPrefTypeAlignment(PrefAlignTy);
+  unsigned HiAlign = MinAlign(LoAlign, kChunkBytes);
+  return AlignPair(LoAlign, HiAlign);
+}
+
+namespace {
+// Holds the state for converting/replacing values. We visit instructions in
+// reverse post-order, phis are therefore the only instructions which can be
+// visited before the value they use.
+class ConversionState {
+public:
+  // Return the expanded values for Val.
+  ValuePair getConverted(Value *Val) {
+    assert(shouldConvert(Val));
+    // Directly convert constants.
+    if (Constant *C = dyn_cast<Constant>(Val))
+      return expandConstant(C);
+    if (RewrittenIllegals.count(Val)) {
+      ValuePair Found = RewrittenIllegals[Val];
+      if (RewrittenLegals.count(Found.Lo))
+        Found.Lo = RewrittenLegals[Found.Lo];
+      if (RewrittenLegals.count(Found.Hi))
+        Found.Hi = RewrittenLegals[Found.Hi];
+      return Found;
+    }
+    errs() << "Value: " << *Val << "\n";
+    report_fatal_error("Expanded value not found in map");
+  }
+
+  // Returns whether a converted value has been recorded. This is only useful
+  // for phi instructions: they can be encountered before the incoming
+  // instruction, whereas RPO order guarantees that other instructions always
+  // use converted values.
+  bool hasConverted(Value *Val) {
+    assert(shouldConvert(Val));
+    return dyn_cast<Constant>(Val) || RewrittenIllegals.count(Val);
+  }
+
+  // Record a forward phi, temporarily setting it to use Undef. This will be
+  // patched up at the end of RPO.
+  ValuePair recordForwardPHI(Value *Val, PHINode *Lo, PHINode *Hi,
+                             unsigned ValueNumber) {
+    DEBUG(dbgs() << "\tRecording as forward PHI\n");
+    ForwardPHIs.push_back(ForwardPHI(Val, Lo, Hi, ValueNumber));
+    return ValuePair(UndefValue::get(Lo->getType()),
+                     UndefValue::get(Hi->getType()));
+  }
+
+  void recordConverted(Instruction *From, const ValuePair &To) {
+    DEBUG(dbgs() << "\tTo:  " << *To.Lo << "\n");
+    DEBUG(dbgs() << "\tAnd: " << *To.Hi << "\n");
+    ToErase.push_back(From);
+    RewrittenIllegals[From] = To;
+  }
+
+  // Replace the uses of From with To, give From's name to To, and mark To for
+  // deletion.
+  void recordConverted(Instruction *From, Value *To) {
+    assert(!shouldConvert(From));
+    DEBUG(dbgs() << "\tTo:  " << *To << "\n");
+    ToErase.push_back(From);
+    // From does not produce an illegal value, update its users in place.
+    From->replaceAllUsesWith(To);
+    To->takeName(From);
+    RewrittenLegals[From] = To;
+  }
+
+  void patchForwardPHIs() {
+    DEBUG(if (!ForwardPHIs.empty()) dbgs() << "Patching forward PHIs:\n");
+    for (ForwardPHI &F : ForwardPHIs) {
+      ValuePair Ops = getConverted(F.Val);
+      F.Lo->setIncomingValue(F.ValueNumber, Ops.Lo);
+      F.Hi->setIncomingValue(F.ValueNumber, Ops.Hi);
+      DEBUG(dbgs() << "\t" << *F.Lo << "\n\t" << *F.Hi << "\n");
+    }
+  }
+
+  void eraseReplacedInstructions() {
+    for (Instruction *I : ToErase)
+      I->dropAllReferences();
+
+    for (Instruction *I : ToErase)
+      I->eraseFromParent();
+  }
+
+  void addEraseCandidate(Instruction *c) {
+    ToErase.push_back(c);
+  }
+
+  void appendElement(Value *v, Value *e) {
+    if (ExtractElement.count(v) == 0) {
+      SmallVector<Value *, 16> tmp;
+      tmp.push_back(e);
+      ExtractElement[v] = tmp;
+    } else
+      ExtractElement[v].push_back(e);
+  }
+
+  Value *getElement(Value *v, unsigned id) {
+    return (ExtractElement[v])[id];
+  }
+  VectorElement &getVectorMap(Value *child) {
+    return VectorIllegals[child];
+  }
+
+  bool convertedVector(Value *vector) {
+    return VectorIllegals.count(vector) > 0 ? true : false;
+  }
+
+  void recordVectorMap(Value *child, VectorElement elem) {
+    VectorIllegals[child] = elem;
+  }
+
+private:
+  // Maps illegal values to their new converted lo/hi values.
+  DenseMap<Value *, ValuePair> RewrittenIllegals;
+  // Maps legal values to their new converted value.
+  DenseMap<Value *, Value *> RewrittenLegals;
+  // Illegal values which have already been converted, will be erased.
+  SmallVector<Instruction *, 32> ToErase;
+  // PHIs which were encountered but had forward references. They need to get
+  // patched up after RPO traversal.
+  SmallVector<ForwardPHI, 32> ForwardPHIs;
+  // helpers to solve bitcasting from vector to illegal integer types
+  // Maps a Value to its original Vector and elemId
+  DenseMap<Value *, VectorElement> VectorIllegals;
+  // cache the ExtractElement Values
+  DenseMap<Value *, SmallVector<Value *, 16>> ExtractElement;
+};
+} // Anonymous namespace
+
+static Value *buildVectorOrScalar(ConversionState &State, IRBuilder<> &IRB, SmallVector<Value *, 16> Elements) {
+  assert(!Elements.empty());
+  Type *IntTy = IntegerType::get(IRB.getContext(), 32);
+
+  if (Elements.size() > 1) {
+    Value * vec = NULL;
+    unsigned ElemNo = Elements.size();
+    Type *ElemTy = Elements[0]->getType();
+    bool KeepInsert = isLegalBitSize(ElemTy->getPrimitiveSizeInBits() * ElemNo);
+    for (unsigned i = 0; i < ElemNo; ++i) {
+      Value *tmp = vec ? vec : UndefValue::get(VectorType::get(ElemTy, ElemNo));
+      Value *idx = ConstantInt::get(IntTy, i);
+      vec = IRB.CreateInsertElement(tmp, Elements[i], idx);
+      if (!KeepInsert) {
+        State.addEraseCandidate(cast<Instruction>(vec));
+      }
+    }
+    return vec;
+  } else {
+    return Elements[0];
+  }
+}
+
+static void getSplitedValue(ConversionState &State, Value *Val, SmallVector<Value *, 16> &Result) {
+  while (shouldConvert(Val)) {
+    ValuePair Convert = State.getConverted(Val);
+    Result.push_back(Convert.Lo);
+    Val = Convert.Hi;
+  }
+  Result.push_back(Val);
+}
+
+// make all the elements in Src use the same llvm::Type, and return them in Dst
+static void unifyElementType(IRBuilder<> &IRB, SmallVector<Value *, 16> &Src, SmallVector<Value *, 16> &Dst) {
+  unsigned MinWidth = Src[0]->getType()->getPrimitiveSizeInBits();
+  bool Unified = true;
+  for (unsigned i = 0; i < Src.size(); i++) {
+    Type *Ty = Src[i]->getType();
+    unsigned BitWidth = Ty->getPrimitiveSizeInBits();
+    if(BitWidth != MinWidth) Unified = false;
+    if(BitWidth < MinWidth) MinWidth = BitWidth;
+  }
+
+  if (Unified) {
+    for (unsigned i = 0; i < Src.size(); i++)
+      Dst.push_back(Src[i]);
+  } else {
+    Type *IntTy = IntegerType::get(IRB.getContext(), 32);
+    Type *ElemTy = IntegerType::get(IRB.getContext(), MinWidth);
+    for (unsigned i = 0; i < Src.size(); i++) {
+      Type *Ty = Src[i]->getType();
+      unsigned Size = Ty->getPrimitiveSizeInBits();
+      assert((Size % MinWidth) == 0);
+
+      if (Size > MinWidth) {
+        VectorType *VecTy = VectorType::get(ElemTy, Size/MinWidth);
+        Value *Casted = IRB.CreateBitCast(Src[i], VecTy);
+        for (unsigned j = 0; j < Size/MinWidth; j++)
+          Dst.push_back(IRB.CreateExtractElement(Casted, ConstantInt::get(IntTy, j)));
+      } else {
+        Dst.push_back(Src[i]);
+      }
+    }
+  }
+}
+
+static void convertInstruction(Instruction *Inst, ConversionState &State,
+                               const DataLayout &DL) {
+  DEBUG(dbgs() << "Expanding Large Integer: " << *Inst << "\n");
+  // Set the insert point *after* Inst, so that any instructions inserted here
+  // will be visited again. That allows iterative expansion of types > i128.
+  BasicBlock::iterator InsertPos(Inst);
+  IRBuilder<> IRB(++InsertPos);
+  StringRef Name = Inst->getName();
+
+  if (PHINode *Phi = dyn_cast<PHINode>(Inst)) {
+    unsigned N = Phi->getNumIncomingValues();
+    TypePair OpTys = getExpandedIntTypes(Phi->getIncomingValue(0)->getType());
+    PHINode *Lo = IRB.CreatePHI(OpTys.Lo, N, Twine(Name + ".lo"));
+    PHINode *Hi = IRB.CreatePHI(OpTys.Hi, N, Twine(Name + ".hi"));
+    for (unsigned I = 0; I != N; ++I) {
+      Value *InVal = Phi->getIncomingValue(I);
+      BasicBlock *InBB = Phi->getIncomingBlock(I);
+      // If the value hasn't already been converted then this is a
+      // forward-reference PHI which needs to be patched up after RPO traversal.
+      ValuePair Ops = State.hasConverted(InVal)
+                          ? State.getConverted(InVal)
+                          : State.recordForwardPHI(InVal, Lo, Hi, I);
+      Lo->addIncoming(Ops.Lo, InBB);
+      Hi->addIncoming(Ops.Hi, InBB);
+    }
+    State.recordConverted(Phi, ValuePair(Lo, Hi));
+
+  } else if (ZExtInst *ZExt = dyn_cast<ZExtInst>(Inst)) {
+    Value *Operand = ZExt->getOperand(0);
+    Type *OpTy = Operand->getType();
+    TypePair Tys = getExpandedIntTypes(Inst->getType());
+    Value *Lo, *Hi;
+    if (OpTy->getIntegerBitWidth() <= kChunkBits) {
+      Lo = IRB.CreateZExt(Operand, Tys.Lo, Twine(Name, ".lo"));
+      Hi = ConstantInt::get(Tys.Hi, 0);
+    } else {
+      ValuePair Ops = State.getConverted(Operand);
+      Lo = Ops.Lo;
+      Hi = IRB.CreateZExt(Ops.Hi, Tys.Hi, Twine(Name, ".hi"));
+    }
+    State.recordConverted(ZExt, ValuePair(Lo, Hi));
+
+  } else if (TruncInst *Trunc = dyn_cast<TruncInst>(Inst)) {
+    Value *Operand = Trunc->getOperand(0);
+    assert(shouldConvert(Operand) && "TruncInst is expandable but not its op");
+    TypePair OpTys = getExpandedIntTypes(Operand->getType());
+    ValuePair Ops = State.getConverted(Operand);
+    if (!shouldConvert(Inst)) {
+      Value *NewInst = IRB.CreateTrunc(Ops.Lo, Trunc->getType(), Name);
+      State.recordConverted(Trunc, NewInst);
+    } else {
+      TypePair Tys = getExpandedIntTypes(Trunc->getType());
+      assert(Tys.Lo == OpTys.Lo);
+      Value *Lo = Ops.Lo;
+      Value *Hi = IRB.CreateTrunc(Ops.Hi, Tys.Hi, Twine(Name, ".hi"));
+      State.recordConverted(Trunc, ValuePair(Lo, Hi));
+    }
+
+  } else if (BitCastInst *Cast = dyn_cast<BitCastInst>(Inst)) {
+    Value *Operand = Cast->getOperand(0);
+    bool DstVec = Inst->getType()->isVectorTy();
+
+    Type *IntTy = IntegerType::get(Cast->getContext(), 32);
+    if (DstVec) {
+      // integer to vector, get all children and bitcast
+      SmallVector<Value *, 16> Split;
+      SmallVector<Value *, 16> Unified;
+      getSplitedValue(State, Operand, Split);
+      // unify element type, this is required by insertelement
+      unifyElementType(IRB, Split, Unified);
+
+      Value *vec = NULL;
+      unsigned ElemNo = Unified.size();
+      Type *ElemTy = Unified[0]->getType();
+      for (unsigned i = 0; i < ElemNo; ++i) {
+        Value *tmp = vec ? vec : UndefValue::get(VectorType::get(ElemTy, ElemNo));
+        Value *idx = ConstantInt::get(IntTy, i);
+        vec = IRB.CreateInsertElement(tmp, Unified[i], idx);
+      }
+      if (vec->getType() != Cast->getType())
+        vec = IRB.CreateBitCast(vec, Cast->getType());
+      State.recordConverted(Cast, vec);
+    } else {
+      // vector to integer
+      assert(Operand->getType()->isVectorTy());
+      VectorType *VecTy = cast<VectorType>(Operand->getType());
+      Type *LargeTy = Inst->getType();
+      Type *ElemTy = VecTy->getElementType();
+      unsigned ElemNo = VecTy->getNumElements();
+      Value * VectorRoot = NULL;
+      unsigned ChildIndex = 0;
+
+      if (State.convertedVector(Operand)) {
+        VectorElement VE = State.getVectorMap(Operand);
+        VectorRoot = VE.parent;
+        ChildIndex = VE.childId;
+      } else {
+        for (unsigned i =0; i < ElemNo; i++)
+          State.appendElement(Operand,
+                              IRB.CreateExtractElement(Operand, ConstantInt::get(IntTy, i))
+                             );
+        VectorRoot = Operand;
+      }
+
+      TypePair OpTys = getExpandedIntTypes(LargeTy);
+      Value *Lo, *Hi;
+      unsigned LowNo = OpTys.Lo->getIntegerBitWidth() / ElemTy->getPrimitiveSizeInBits();
+      unsigned HighNo = OpTys.Hi->getIntegerBitWidth() / ElemTy->getPrimitiveSizeInBits();
+
+      SmallVector<Value *, 16> LoElems;
+      for (unsigned i = 0; i < LowNo; ++i)
+        LoElems.push_back(State.getElement(VectorRoot, i+ChildIndex));
+
+      Lo = IRB.CreateBitCast(buildVectorOrScalar(State, IRB, LoElems), OpTys.Lo, Twine(Name, ".lo"));
+
+      SmallVector<Value *, 16> HiElem;
+      for (unsigned i = 0; i < HighNo; ++i)
+        HiElem.push_back(State.getElement(VectorRoot, i+LowNo+ChildIndex));
+
+      Value *NewVec = buildVectorOrScalar(State, IRB, HiElem);
+      Hi = IRB.CreateBitCast(NewVec, OpTys.Hi);
+
+      State.recordVectorMap(NewVec, VectorElement(VectorRoot, LowNo + ChildIndex));
+      State.recordConverted(Cast, ValuePair(Lo, Hi));
+    }
+
+  } else if (BinaryOperator *Binop = dyn_cast<BinaryOperator>(Inst)) {
+    ValuePair Lhs = State.getConverted(Binop->getOperand(0));
+    ValuePair Rhs = State.getConverted(Binop->getOperand(1));
+    TypePair Tys = getExpandedIntTypes(Binop->getType());
+    Instruction::BinaryOps Op = Binop->getOpcode();
+    switch (Op) {
+    case Instruction::And:
+    case Instruction::Or:
+    case Instruction::Xor: {
+      Value *Lo = IRB.CreateBinOp(Op, Lhs.Lo, Rhs.Lo, Twine(Name, ".lo"));
+      Value *Hi = IRB.CreateBinOp(Op, Lhs.Hi, Rhs.Hi, Twine(Name, ".hi"));
+      State.recordConverted(Binop, ValuePair(Lo, Hi));
+      break;
+    }
+
+    case Instruction::Shl: {
+      ConstantInt *ShlAmount = dyn_cast<ConstantInt>(Rhs.Lo);
+      // TODO(dschuff): Expansion of variable-sized shifts isn't supported
+      // because the behavior depends on whether the shift amount is less than
+      // the size of the low part of the expanded type, and I haven't yet
+      // figured out a way to do it for variable-sized shifts without splitting
+      // the basic block. I don't believe it's actually necessary for
+      // bitfields. Likewise for LShr below.
+      if (!ShlAmount) {
+        errs() << "Shift: " << *Binop << "\n";
+        report_fatal_error("Expansion of variable-sized shifts of > 64-bit-"
+                           "wide values is not supported");
+      }
+      unsigned ShiftAmount = ShlAmount->getZExtValue();
+      if (ShiftAmount >= Binop->getType()->getIntegerBitWidth())
+        ShiftAmount = 0; // Undefined behavior.
+
+      unsigned HiBits = Tys.Hi->getIntegerBitWidth();
+      // |<------------Hi---------->|<-------Lo------>|
+      // |                          |                 |
+      // +--------+--------+--------+--------+--------+
+      // |abcdefghijklmnopqrstuvwxyz|ABCDEFGHIJKLMNOPQ|
+      // +--------+--------+--------+--------+--------+
+      // Possible shifts:
+      // |efghijklmnopqrstuvwxyzABCD|EFGHIJKLMNOPQ0000| Some Lo into Hi.
+      // |vwxyzABCDEFGHIJKLMNOPQ0000|00000000000000000| Lo is 0, keep some Hi.
+      // |DEFGHIJKLMNOPQ000000000000|00000000000000000| Lo is 0, no Hi left.
+      Value *Lo, *Hi;
+      if (ShiftAmount < kChunkBits) {
+        Lo = IRB.CreateShl(Lhs.Lo, ShiftAmount, Twine(Name, ".lo"));
+        Hi = IRB.CreateZExtOrTrunc(IRB.CreateLShr(Lhs.Lo,
+                                                  kChunkBits - ShiftAmount,
+                                                  Twine(Name, ".lo.shr")),
+                                   Tys.Hi, Twine(Name, ".lo.ext"));
+      } else {
+        Lo = ConstantInt::get(Tys.Lo, 0);
+        if (ShiftAmount == kChunkBits) {
+          // Hi will be from Lo
+          Hi = IRB.CreateZExtOrTrunc(Lhs.Lo, Tys.Hi, Twine(Name, ".lo.ext"));
+        } else {
+          Hi = IRB.CreateShl(
+              IRB.CreateZExtOrTrunc(Lhs.Lo, Tys.Hi, Twine(Name, ".lo.ext")),
+              ShiftAmount - kChunkBits, Twine(Name, ".lo.shl"));
+        }
+      }
+      if (ShiftAmount < HiBits)
+        Hi = IRB.CreateOr(
+            Hi, IRB.CreateShl(Lhs.Hi, ShiftAmount, Twine(Name, ".hi.shl")),
+            Twine(Name, ".or"));
+      State.recordConverted(Binop, ValuePair(Lo, Hi));
+      break;
+    }
+
+    case Instruction::AShr:
+    case Instruction::LShr: {
+      ConstantInt *ShrAmount = dyn_cast<ConstantInt>(Rhs.Lo);
+      // TODO(dschuff): Expansion of variable-sized shifts isn't supported
+      // because the behavior depends on whether the shift amount is less than
+      // the size of the low part of the expanded type, and I haven't yet
+      // figured out a way to do it for variable-sized shifts without splitting
+      // the basic block. I don't believe it's actually necessary for bitfields.
+      if (!ShrAmount) {
+        errs() << "Shift: " << *Binop << "\n";
+        report_fatal_error("Expansion of variable-sized shifts of > 64-bit-"
+                           "wide values is not supported");
+      }
+      bool IsArith = Op == Instruction::AShr;
+      unsigned ShiftAmount = ShrAmount->getZExtValue();
+      if (ShiftAmount >= Binop->getType()->getIntegerBitWidth())
+        ShiftAmount = 0; // Undefined behavior.
+      unsigned HiBitWidth = Tys.Hi->getIntegerBitWidth();
+      // |<--Hi-->|<-------Lo------>|
+      // |        |                 |
+      // +--------+--------+--------+
+      // |abcdefgh|ABCDEFGHIJKLMNOPQ|
+      // +--------+--------+--------+
+      // Possible shifts (0 is sign when doing AShr):
+      // |0000abcd|defgABCDEFGHIJKLM| Some Hi into Lo.
+      // |00000000|00abcdefgABCDEFGH| Hi is 0, keep some Lo.
+      // |00000000|000000000000abcde| Hi is 0, no Lo left.
+      Value *Lo, *Hi;
+      if (ShiftAmount == 0) {
+        Lo = Lhs.Lo; Hi = Lhs.Hi;
+      } else {
+        if (ShiftAmount < kChunkBits) {
+          Lo = IRB.CreateShl(
+              IsArith
+                  ? IRB.CreateSExtOrTrunc(Lhs.Hi, Tys.Lo, Twine(Name, ".hi.ext"))
+                  : IRB.CreateZExtOrTrunc(Lhs.Hi, Tys.Lo, Twine(Name, ".hi.ext")),
+              kChunkBits - ShiftAmount, Twine(Name, ".hi.shl"));
+
+          Lo = IRB.CreateOr(
+              Lo, IRB.CreateLShr(Lhs.Lo, ShiftAmount, Twine(Name, ".lo.shr")),
+              Twine(Name, ".lo"));
+        } else if (ShiftAmount == kChunkBits) {
+          Lo = IsArith
+                  ? IRB.CreateSExtOrTrunc(Lhs.Hi, Tys.Lo, Twine(Name, ".hi.ext"))
+                  : IRB.CreateZExtOrTrunc(Lhs.Hi, Tys.Lo, Twine(Name, ".hi.ext"));
+
+        } else {
+          Lo = IRB.CreateBinOp(Op, Lhs.Hi,
+                               ConstantInt::get(Tys.Hi, ShiftAmount - kChunkBits),
+                               Twine(Name, ".hi.shr"));
+          Lo = IsArith
+                   ? IRB.CreateSExtOrTrunc(Lo, Tys.Lo, Twine(Name, ".lo.ext"))
+                   : IRB.CreateZExtOrTrunc(Lo, Tys.Lo, Twine(Name, ".lo.ext"));
+        }
+        if (ShiftAmount < HiBitWidth) {
+          Hi = IRB.CreateBinOp(Op, Lhs.Hi, ConstantInt::get(Tys.Hi, ShiftAmount),
+                               Twine(Name, ".hi"));
+        } else {
+          Hi = IsArith
+                   ? IRB.CreateAShr(Lhs.Hi, HiBitWidth - 1, Twine(Name, ".hi"))
+                   : ConstantInt::get(Tys.Hi, 0);
+        }
+      }
+      State.recordConverted(Binop, ValuePair(Lo, Hi));
+      break;
+    }
+
+    case Instruction::Add:
+    case Instruction::Sub: {
+      Value *Lo, *Hi;
+      if (Op == Instruction::Add) {
+        Value *Limit = IRB.CreateSelect(
+            IRB.CreateICmpULT(Lhs.Lo, Rhs.Lo, Twine(Name, ".cmp")), Rhs.Lo,
+            Lhs.Lo, Twine(Name, ".limit"));
+        // Don't propagate NUW/NSW to the lo operation: it can overflow.
+        Lo = IRB.CreateBinOp(Op, Lhs.Lo, Rhs.Lo, Twine(Name, ".lo"));
+        Value *Carry = IRB.CreateZExt(
+            IRB.CreateICmpULT(Lo, Limit, Twine(Name, ".overflowed")), Tys.Hi,
+            Twine(Name, ".carry"));
+        // TODO(jfb) The hi operation could be tagged with NUW/NSW.
+        Hi = IRB.CreateBinOp(
+            Op, IRB.CreateBinOp(Op, Lhs.Hi, Rhs.Hi, Twine(Name, ".hi")), Carry,
+            Twine(Name, ".carried"));
+      } else {
+        Value *Borrowed = IRB.CreateSExt(
+            IRB.CreateICmpULT(Lhs.Lo, Rhs.Lo, Twine(Name, ".borrow")), Tys.Hi,
+            Twine(Name, ".borrowing"));
+        Lo = IRB.CreateBinOp(Op, Lhs.Lo, Rhs.Lo, Twine(Name, ".lo"));
+        Hi = IRB.CreateBinOp(
+            Instruction::Add,
+            IRB.CreateBinOp(Op, Lhs.Hi, Rhs.Hi, Twine(Name, ".hi")), Borrowed,
+            Twine(Name, ".borrowed"));
+      }
+      State.recordConverted(Binop, ValuePair(Lo, Hi));
+      break;
+    }
+
+    default:
+      errs() << "Operation: " << *Binop << "\n";
+      report_fatal_error("Unhandled BinaryOperator type in "
+                         "ExpandLargeIntegers");
+    }
+
+  } else if (LoadInst *Load = dyn_cast<LoadInst>(Inst)) {
+    Value *Op = Load->getPointerOperand();
+    unsigned AddrSpace = Op->getType()->getPointerAddressSpace();
+    TypePair Tys = getExpandedIntTypes(Load->getType());
+    AlignPair Align = getAlign(DL, Load, Load->getType());
+    Value *Loty = IRB.CreateBitCast(Op, Tys.Lo->getPointerTo(AddrSpace),
+                                    Twine(Op->getName(), ".loty"));
+    Value *Lo =
+        IRB.CreateAlignedLoad(Loty, Align.Lo, Twine(Load->getName(), ".lo"));
+    Value *HiAddr =
+        IRB.CreateConstGEP1_32(Loty, 1, Twine(Op->getName(), ".hi.gep"));
+    Value *HiTy = IRB.CreateBitCast(HiAddr, Tys.Hi->getPointerTo(AddrSpace),
+                                    Twine(Op->getName(), ".hity"));
+    Value *Hi =
+        IRB.CreateAlignedLoad(HiTy, Align.Hi, Twine(Load->getName(), ".hi"));
+    State.recordConverted(Load, ValuePair(Lo, Hi));
+
+  } else if (StoreInst *Store = dyn_cast<StoreInst>(Inst)) {
+    Value *Ptr = Store->getPointerOperand();
+    unsigned AddrSpace = Ptr->getType()->getPointerAddressSpace();
+    TypePair Tys = getExpandedIntTypes(Store->getValueOperand()->getType());
+    ValuePair StoreVals = State.getConverted(Store->getValueOperand());
+    AlignPair Align = getAlign(DL, Store, Store->getValueOperand()->getType());
+    Value *Loty = IRB.CreateBitCast(Ptr, Tys.Lo->getPointerTo(AddrSpace),
+                                    Twine(Ptr->getName(), ".loty"));
+    Value *Lo = IRB.CreateAlignedStore(StoreVals.Lo, Loty, Align.Lo);
+    Value *HiAddr =
+        IRB.CreateConstGEP1_32(Loty, 1, Twine(Ptr->getName(), ".hi.gep"));
+    Value *HiTy = IRB.CreateBitCast(HiAddr, Tys.Hi->getPointerTo(AddrSpace),
+                                    Twine(Ptr->getName(), ".hity"));
+    Value *Hi = IRB.CreateAlignedStore(StoreVals.Hi, HiTy, Align.Hi);
+    State.recordConverted(Store, ValuePair(Lo, Hi));
+
+  } else if (ICmpInst *Icmp = dyn_cast<ICmpInst>(Inst)) {
+    ValuePair Lhs = State.getConverted(Icmp->getOperand(0));
+    ValuePair Rhs = State.getConverted(Icmp->getOperand(1));
+    switch (Icmp->getPredicate()) {
+    case CmpInst::ICMP_EQ:
+    case CmpInst::ICMP_NE: {
+      Value *Lo = IRB.CreateICmp(Icmp->getUnsignedPredicate(), Lhs.Lo, Rhs.Lo,
+                                 Twine(Name, ".lo"));
+      Value *Hi = IRB.CreateICmp(Icmp->getUnsignedPredicate(), Lhs.Hi, Rhs.Hi,
+                                 Twine(Name, ".hi"));
+      Value *Result =
+          IRB.CreateBinOp(Instruction::And, Lo, Hi, Twine(Name, ".result"));
+      State.recordConverted(Icmp, Result);
+      break;
+    }
+
+    // TODO(jfb): Implement the following cases.
+    case CmpInst::ICMP_UGT:
+    case CmpInst::ICMP_UGE:
+    case CmpInst::ICMP_ULT:
+    case CmpInst::ICMP_ULE:
+    case CmpInst::ICMP_SGT:
+    case CmpInst::ICMP_SGE:
+    case CmpInst::ICMP_SLT:
+    case CmpInst::ICMP_SLE:
+      errs() << "Comparison: " << *Icmp << "\n";
+      report_fatal_error("Comparisons other than equality not supported for"
+                         "integer types larger than 64 bit");
+    default:
+      llvm_unreachable("Invalid integer comparison");
+    }
+
+  } else if (SelectInst *Select = dyn_cast<SelectInst>(Inst)) {
+    Value *Cond = Select->getCondition();
+    ValuePair True = State.getConverted(Select->getTrueValue());
+    ValuePair False = State.getConverted(Select->getFalseValue());
+    Value *Lo = IRB.CreateSelect(Cond, True.Lo, False.Lo, Twine(Name, ".lo"));
+    Value *Hi = IRB.CreateSelect(Cond, True.Hi, False.Hi, Twine(Name, ".hi"));
+    State.recordConverted(Select, ValuePair(Lo, Hi));
+
+  } else {
+    errs() << "Instruction: " << *Inst << "\n";
+    report_fatal_error("Unhandle large integer expansion");
+  }
+}
+
+bool ExpandLargeIntegers::runOnFunction(Function &F) {
+  // Don't support changing the function arguments. Illegal function arguments
+  // should not be generated by clang.
+#if LLVM_VERSION_MINOR >= 5
+  for (const Argument &Arg : F.args())
+#else
+  for (const Argument &Arg : F.getArgumentList())
+#endif
+    if (shouldConvert(&Arg))
+      report_fatal_error("Function " + F.getName() +
+                         " has illegal integer argument");
+
+  // TODO(jfb) This should loop to handle nested forward PHIs.
+
+  ConversionState State;
+  DataLayout DL(F.getParent());
+  bool Modified = false;
+  ReversePostOrderTraversal<Function *> RPOT(&F);
+  for (ReversePostOrderTraversal<Function *>::rpo_iterator FI = RPOT.begin(),
+                                                           FE = RPOT.end();
+       FI != FE; ++FI) {
+    BasicBlock *BB = *FI;
+    for (Instruction &I : *BB) {
+      // Only attempt to convert an instruction if its result or any of its
+      // operands are illegal.
+      bool ShouldConvert = shouldConvert(&I);
+#if LLVM_VERSION_MINOR >= 5
+      for (Value *Op : I.operands())
+        ShouldConvert |= shouldConvert(Op);
+#else
+      for (auto it = I.op_begin(); it != I.op_end(); it++)
+        ShouldConvert |= shouldConvert(*it);
+#endif
+      if (ShouldConvert) {
+        convertInstruction(&I, State, DL);
+        Modified = true;
+      }
+    }
+  }
+  State.patchForwardPHIs();
+  State.eraseReplacedInstructions();
+  return Modified;
+}
+
+FunctionPass *llvm::createExpandLargeIntegersPass() {
+  return new ExpandLargeIntegers();
+}
diff --git a/backend/src/llvm/ExpandUtils.cpp b/backend/src/llvm/ExpandUtils.cpp
new file mode 100644
index 0000000..e6dfb52
--- /dev/null
+++ b/backend/src/llvm/ExpandUtils.cpp
@@ -0,0 +1,117 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// Imported from pNaCl project
+// Copyright (c) 2003-2014 University of Illinois at Urbana-Champaign.
+// All rights reserved.
+//
+// Developed by:
+//
+//    LLVM Team
+//
+//    University of Illinois at Urbana-Champaign
+//
+//    http://llvm.org
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of
+// this software and associated documentation files (the "Software"), to deal with
+// the Software without restriction, including without limitation the rights to
+// use, copy, modify, merge, publish, distribute, sublicense, 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:
+//
+//    * Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimers.
+//
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//      this list of conditions and the following disclaimers in the
+//      documentation and/or other materials provided with the distribution.
+//
+//    * Neither the names of the LLVM Team, University of Illinois at
+//      Urbana-Champaign, nor the names of its contributors may be used to
+//      endorse or promote products derived from this Software without specific
+//      prior written permission.
+//
+// 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 NONINFRINGEMENT.  IN NO EVENT SHALL THE
+// CONTRIBUTORS OR COPYRIGHT HOLDERS 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 WITH THE
+// SOFTWARE.
+
+//===-- ExpandUtils.cpp - Helper functions for expansion passes -----------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License.
+//
+//===----------------------------------------------------------------------===//
+
+#include "llvm/IR/BasicBlock.h"
+#include "llvm/IR/Constants.h"
+#include "llvm/IR/Function.h"
+#include "llvm/IR/Instructions.h"
+#include "llvm/IR/Module.h"
+#include "llvm/Support/raw_ostream.h"
+#include "llvm_gen_backend.hpp"
+
+using namespace llvm;
+namespace llvm {
+
+  Instruction *PhiSafeInsertPt(Use *U) {
+    Instruction *InsertPt = cast<Instruction>(U->getUser());
+    if (PHINode *PN = dyn_cast<PHINode>(InsertPt)) {
+      // We cannot insert instructions before a PHI node, so insert
+      // before the incoming block's terminator.  This could be
+      // suboptimal if the terminator is a conditional.
+      InsertPt = PN->getIncomingBlock(*U)->getTerminator();
+    }
+    return InsertPt;
+  }
+
+  void PhiSafeReplaceUses(Use *U, Value *NewVal) {
+    User *UR = U->getUser();
+    if (PHINode *PN = dyn_cast<PHINode>(UR)) {
+      // A PHI node can have multiple incoming edges from the same
+      // block, in which case all these edges must have the same
+      // incoming value.
+      BasicBlock *BB = PN->getIncomingBlock(*U);
+      for (unsigned I = 0; I < PN->getNumIncomingValues(); ++I) {
+        if (PN->getIncomingBlock(I) == BB)
+          PN->setIncomingValue(I, NewVal);
+      }
+    } else {
+      UR->replaceUsesOfWith(U->get(), NewVal);
+    }
+  }
+
+  Function *RecreateFunction(Function *Func, FunctionType *NewType) {
+    Function *NewFunc = Function::Create(NewType, Func->getLinkage());
+    NewFunc->copyAttributesFrom(Func);
+    Func->getParent()->getFunctionList().insert(Func, NewFunc);
+    NewFunc->takeName(Func);
+    NewFunc->getBasicBlockList().splice(NewFunc->begin(),
+                                        Func->getBasicBlockList());
+    Func->replaceAllUsesWith(
+        ConstantExpr::getBitCast(NewFunc,
+                                 Func->getFunctionType()->getPointerTo()));
+    return NewFunc;
+  }
+}
diff --git a/backend/src/llvm/PromoteIntegers.cpp b/backend/src/llvm/PromoteIntegers.cpp
new file mode 100644
index 0000000..aba42b9
--- /dev/null
+++ b/backend/src/llvm/PromoteIntegers.cpp
@@ -0,0 +1,655 @@
+/*
+ * Copyright © 2012 Intel Corporation
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+// Copyright (c) 2003-2014 University of Illinois at Urbana-Champaign.
+// All rights reserved.
+//
+// Developed by:
+//
+//    LLVM Team
+//
+//    University of Illinois at Urbana-Champaign
+//
+//    http://llvm.org
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of
+// this software and associated documentation files (the "Software"), to deal with
+// the Software without restriction, including without limitation the rights to
+// use, copy, modify, merge, publish, distribute, sublicense, 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:
+//
+//    * Redistributions of source code must retain the above copyright notice,
+//      this list of conditions and the following disclaimers.
+//
+//   * Redistributions in binary form must reproduce the above copyright notice,
+//      this list of conditions and the following disclaimers in the
+//      documentation and/or other materials provided with the distribution.
+//
+//    * Neither the names of the LLVM Team, University of Illinois at
+//      Urbana-Champaign, nor the names of its contributors may be used to
+//      endorse or promote products derived from this Software without specific
+//      prior written permission.
+//
+// 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 NONINFRINGEMENT.  IN NO EVENT SHALL THE
+// CONTRIBUTORS OR COPYRIGHT HOLDERS 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 WITH THE
+// SOFTWARE.
+
+//===- PromoteIntegers.cpp - Promote illegal integers for PNaCl ABI -------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License.
+//
+// A limited set of transformations to promote illegal-sized int types.
+//
+//===----------------------------------------------------------------------===//
+//
+// Legal sizes are currently 1, 8, 16, 32, 64 (and higher, see note below).
+// Operations on illegal integers are changed to operate on the next-higher
+// legal size.
+// It maintains no invariants about the upper bits (above the size of the
+// original type); therefore before operations which can be affected by the
+// value of these bits (e.g. cmp, select, lshr), the upper bits of the operands
+// are cleared.
+//
+// Limitations:
+// 1) It can't change function signatures or global variables
+// 2) It won't promote (and can't expand) types larger than i64
+// 3) Doesn't support div operators
+// 4) Doesn't handle arrays or structs with illegal types
+// 5) Doesn't handle constant expressions (it also doesn't produce them, so it
+//    can run after ExpandConstantExpr)
+//
+//===----------------------------------------------------------------------===//
+
+
+#include "llvm/ADT/DenseMap.h"
+#include "llvm/ADT/SmallVector.h"
+#include "llvm/IR/DerivedTypes.h"
+#include "llvm/IR/Function.h"
+#include "llvm/IR/Instructions.h"
+#include "llvm/IR/IRBuilder.h"
+#include "llvm/Pass.h"
+#include "llvm/Support/raw_ostream.h"
+#include "llvm_gen_backend.hpp"
+
+using namespace llvm;
+
+namespace {
+class PromoteIntegers : public FunctionPass {
+ public:
+  static char ID;
+  PromoteIntegers() : FunctionPass(ID) {
+  }
+  virtual bool runOnFunction(Function &F);
+};
+}
+
+char PromoteIntegers::ID = 0;
+
+// Legal sizes are currently 1, 8, 16, 32, and 64.
+// We can't yet expand types above 64 bit, so don't try to touch them for now.
+// TODO(dschuff): expand >64bit types or disallow >64bit packed bitfields.
+// There are currently none in our tests that use the ABI checker.
+// See https://code.google.com/p/nativeclient/issues/detail?id=3360
+static bool isLegalSize(unsigned Size) {
+  if (Size > 64) return true;
+  return Size == 1 || Size == 8 || Size == 16 || Size == 32 || Size == 64;
+}
+
+static Type *getPromotedIntType(IntegerType *Ty) {
+  unsigned Width = Ty->getBitWidth();
+  assert(Width <= 64 && "Don't know how to legalize >64 bit types yet");
+  if (isLegalSize(Width))
+    return Ty;
+  return IntegerType::get(Ty->getContext(),
+                          Width < 8 ? 8 : NextPowerOf2(Width));
+}
+
+// Return a legal integer type, promoting to a larger size if necessary.
+static Type *getPromotedType(Type *Ty) {
+  assert(isa<IntegerType>(Ty) && "Trying to convert a non-integer type");
+  return getPromotedIntType(cast<IntegerType>(Ty));
+}
+
+// Return true if Val is an int which should be converted.
+static bool shouldConvert(Value *Val) {
+  if (IntegerType *ITy = dyn_cast<IntegerType>(Val->getType())) {
+    if (!isLegalSize(ITy->getBitWidth())) {
+      return true;
+    }
+  }
+  return false;
+}
+
+// Return a constant which has been promoted to a legal size.
+static Value *convertConstant(Constant *C, bool SignExt=false) {
+  assert(shouldConvert(C));
+  if (isa<UndefValue>(C)) {
+    return UndefValue::get(getPromotedType(C->getType()));
+  } else if (ConstantInt *CInt = dyn_cast<ConstantInt>(C)) {
+    return ConstantInt::get(
+        getPromotedType(C->getType()),
+        SignExt ? CInt->getSExtValue() : CInt->getZExtValue(),
+        /*isSigned=*/SignExt);
+  } else {
+    errs() << "Value: " << *C << "\n";
+    report_fatal_error("Unexpected constant value");
+  }
+}
+
+namespace {
+// Holds the state for converting/replacing values. Conversion is done in one
+// pass, with each value requiring conversion possibly having two stages. When
+// an instruction needs to be replaced (i.e. it has illegal operands or result)
+// a new instruction is created, and the pass calls getConverted to get its
+// operands. If the original operand has already been converted, the new value
+// is returned. Otherwise, a placeholder is created and used in the new
+// instruction. After a new instruction is created to replace an illegal one,
+// recordConverted is called to register the replacement. All users are updated,
+// and if there is a placeholder, its users are also updated.
+// recordConverted also queues the old value for deletion.
+// This strategy avoids the need for recursion or worklists for conversion.
+class ConversionState {
+ public:
+  // Return the promoted value for Val. If Val has not yet been converted,
+  // return a placeholder, which will be converted later.
+  Value *getConverted(Value *Val) {
+    if (!shouldConvert(Val))
+        return Val;
+    if (isa<GlobalVariable>(Val))
+      report_fatal_error("Can't convert illegal GlobalVariables");
+    if (RewrittenMap.count(Val))
+      return RewrittenMap[Val];
+
+    // Directly convert constants.
+    if (Constant *C = dyn_cast<Constant>(Val))
+      return convertConstant(C, /*SignExt=*/false);
+
+    // No converted value available yet, so create a placeholder.
+    Value *P = new Argument(getPromotedType(Val->getType()));
+
+    RewrittenMap[Val] = P;
+    Placeholders[Val] = P;
+    return P;
+  }
+
+  // Replace the uses of From with To, replace the uses of any
+  // placeholders for From, and optionally give From's name to To.
+  // Also mark To for deletion.
+  void recordConverted(Instruction *From, Value *To, bool TakeName=true) {
+    ToErase.push_back(From);
+    if (!shouldConvert(From)) {
+      // From does not produce an illegal value, update its users in place.
+      From->replaceAllUsesWith(To);
+    } else {
+      // From produces an illegal value, so its users will be replaced. When
+      // replacements are created they will use values returned by getConverted.
+      if (Placeholders.count(From)) {
+        // Users of the placeholder can be updated in place.
+        Placeholders[From]->replaceAllUsesWith(To);
+        Placeholders.erase(From);
+      }
+      RewrittenMap[From] = To;
+    }
+    if (TakeName) {
+      To->takeName(From);
+    }
+  }
+
+  void eraseReplacedInstructions() {
+    for (SmallVectorImpl<Instruction *>::iterator I = ToErase.begin(),
+             E = ToErase.end(); I != E; ++I)
+      (*I)->dropAllReferences();
+    for (SmallVectorImpl<Instruction *>::iterator I = ToErase.begin(),
+             E = ToErase.end(); I != E; ++I)
+      (*I)->eraseFromParent();
+  }
+
+ private:
+  // Maps illegal values to their new converted values (or placeholders
+  // if no new value is available yet)
+  DenseMap<Value *, Value *> RewrittenMap;
+  // Maps illegal values with no conversion available yet to their placeholders
+  DenseMap<Value *, Value *> Placeholders;
+  // Illegal values which have already been converted, will be erased.
+  SmallVector<Instruction *, 8> ToErase;
+};
+} // anonymous namespace
+
+// Split an illegal load into multiple legal loads and return the resulting
+// promoted value. The size of the load is assumed to be a multiple of 8.
+static Value *splitLoad(LoadInst *Inst, ConversionState &State) {
+  if (Inst->isVolatile() || Inst->isAtomic())
+    report_fatal_error("Can't split volatile/atomic loads");
+  if (cast<IntegerType>(Inst->getType())->getBitWidth() % 8 != 0)
+    report_fatal_error("Loads must be a multiple of 8 bits");
+
+  unsigned AddrSpace = Inst->getPointerAddressSpace();
+  Value *OrigPtr = State.getConverted(Inst->getPointerOperand());
+  // OrigPtr is a placeholder in recursive calls, and so has no name
+  if (OrigPtr->getName().empty())
+    OrigPtr->setName(Inst->getPointerOperand()->getName());
+  unsigned Width = cast<IntegerType>(Inst->getType())->getBitWidth();
+  Type *NewType = getPromotedType(Inst->getType());
+  unsigned LoWidth = Width;
+
+  while (!isLegalSize(LoWidth)) LoWidth -= 8;
+  IntegerType *LoType = IntegerType::get(Inst->getContext(), LoWidth);
+  IntegerType *HiType = IntegerType::get(Inst->getContext(), Width - LoWidth);
+  IRBuilder<> IRB(Inst);
+
+  Value *BCLo = IRB.CreateBitCast(
+      OrigPtr,
+      LoType->getPointerTo(AddrSpace),
+      OrigPtr->getName() + ".loty");
+  Value *LoadLo = IRB.CreateAlignedLoad(
+      BCLo, Inst->getAlignment(), Inst->getName() + ".lo");
+  Value *LoExt = IRB.CreateZExt(LoadLo, NewType, LoadLo->getName() + ".ext");
+  Value *GEPHi = IRB.CreateConstGEP1_32(BCLo, 1, OrigPtr->getName() + ".hi");
+  Value *BCHi = IRB.CreateBitCast(
+        GEPHi,
+        HiType->getPointerTo(AddrSpace),
+        OrigPtr->getName() + ".hity");
+
+  Value *LoadHi = IRB.CreateLoad(BCHi, Inst->getName() + ".hi");
+  if (!isLegalSize(Width - LoWidth)) {
+    LoadHi = splitLoad(cast<LoadInst>(LoadHi), State);
+  }
+
+  Value *HiExt = IRB.CreateZExt(LoadHi, NewType, LoadHi->getName() + ".ext");
+  Value *HiShift = IRB.CreateShl(HiExt, LoWidth, HiExt->getName() + ".sh");
+  Value *Result = IRB.CreateOr(LoExt, HiShift);
+
+  State.recordConverted(Inst, Result);
+
+  return Result;
+}
+
+static Value *splitStore(StoreInst *Inst, ConversionState &State) {
+  if (Inst->isVolatile() || Inst->isAtomic())
+    report_fatal_error("Can't split volatile/atomic stores");
+  if (cast<IntegerType>(Inst->getValueOperand()->getType())->getBitWidth() % 8
+      != 0)
+    report_fatal_error("Stores must be a multiple of 8 bits");
+
+  unsigned AddrSpace = Inst->getPointerAddressSpace();
+  Value *OrigPtr = State.getConverted(Inst->getPointerOperand());
+  // OrigPtr is now a placeholder in recursive calls, and so has no name.
+  if (OrigPtr->getName().empty())
+    OrigPtr->setName(Inst->getPointerOperand()->getName());
+  Value *OrigVal = State.getConverted(Inst->getValueOperand());
+  unsigned Width = cast<IntegerType>(
+      Inst->getValueOperand()->getType())->getBitWidth();
+  unsigned LoWidth = Width;
+
+  while (!isLegalSize(LoWidth)) LoWidth -= 8;
+  IntegerType *LoType = IntegerType::get(Inst->getContext(), LoWidth);
+  IntegerType *HiType = IntegerType::get(Inst->getContext(), Width - LoWidth);
+  IRBuilder<> IRB(Inst);
+
+  Value *BCLo = IRB.CreateBitCast(
+      OrigPtr,
+      LoType->getPointerTo(AddrSpace),
+      OrigPtr->getName() + ".loty");
+  Value *LoTrunc = IRB.CreateTrunc(
+      OrigVal, LoType, OrigVal->getName() + ".lo");
+  IRB.CreateAlignedStore(LoTrunc, BCLo, Inst->getAlignment());
+
+  Value *HiLShr = IRB.CreateLShr(
+      OrigVal, LoWidth, OrigVal->getName() + ".hi.sh");
+  Value *GEPHi = IRB.CreateConstGEP1_32(BCLo, 1, OrigPtr->getName() + ".hi");
+  Value *HiTrunc = IRB.CreateTrunc(
+      HiLShr, HiType, OrigVal->getName() + ".hi");
+  Value *BCHi = IRB.CreateBitCast(
+        GEPHi,
+        HiType->getPointerTo(AddrSpace),
+        OrigPtr->getName() + ".hity");
+
+  Value *StoreHi = IRB.CreateStore(HiTrunc, BCHi);
+
+  if (!isLegalSize(Width - LoWidth)) {
+    // HiTrunc is still illegal, and is redundant with the truncate in the
+    // recursive call, so just get rid of it.
+    State.recordConverted(cast<Instruction>(HiTrunc), HiLShr,
+                          /*TakeName=*/false);
+    StoreHi = splitStore(cast<StoreInst>(StoreHi), State);
+  }
+  State.recordConverted(Inst, StoreHi, /*TakeName=*/false);
+  return StoreHi;
+}
+
+// Return a converted value with the bits of the operand above the size of the
+// original type cleared.
+static Value *getClearConverted(Value *Operand, Instruction *InsertPt,
+                                ConversionState &State) {
+  Type *OrigType = Operand->getType();
+  Instruction *OrigInst = dyn_cast<Instruction>(Operand);
+  Operand = State.getConverted(Operand);
+  // If the operand is a constant, it will have been created by
+  // ConversionState.getConverted, which zero-extends by default.
+  if (isa<Constant>(Operand))
+    return Operand;
+  Instruction *NewInst = BinaryOperator::Create(
+      Instruction::And,
+      Operand,
+      ConstantInt::get(
+          getPromotedType(OrigType),
+          APInt::getLowBitsSet(getPromotedType(OrigType)->getIntegerBitWidth(),
+                               OrigType->getIntegerBitWidth())),
+      Operand->getName() + ".clear",
+      InsertPt);
+  if (OrigInst)
+    CopyDebug(NewInst, OrigInst);
+  return NewInst;
+}
+
+// Return a value with the bits of the operand above the size of the original
+// type equal to the sign bit of the original operand. The new operand is
+// assumed to have been legalized already.
+// This is done by shifting the sign bit of the smaller value up to the MSB
+// position in the larger size, and then arithmetic-shifting it back down.
+static Value *getSignExtend(Value *Operand, Value *OrigOperand,
+                            Instruction *InsertPt) {
+  // If OrigOperand was a constant, NewOperand will have been created by
+  // ConversionState.getConverted, which zero-extends by default. But that is
+  // wrong here, so replace it with a sign-extended constant.
+  if (Constant *C = dyn_cast<Constant>(OrigOperand))
+    return convertConstant(C, /*SignExt=*/true);
+  Type *OrigType = OrigOperand->getType();
+  ConstantInt *ShiftAmt = ConstantInt::getSigned(
+      cast<IntegerType>(getPromotedType(OrigType)),
+      getPromotedType(OrigType)->getIntegerBitWidth() -
+        OrigType->getIntegerBitWidth());
+  BinaryOperator *Shl = BinaryOperator::Create(
+      Instruction::Shl,
+      Operand,
+      ShiftAmt,
+      Operand->getName() + ".getsign",
+      InsertPt);
+  if (Instruction *Inst = dyn_cast<Instruction>(OrigOperand))
+    CopyDebug(Shl, Inst);
+  return CopyDebug(BinaryOperator::Create(
+      Instruction::AShr,
+      Shl,
+      ShiftAmt,
+      Operand->getName() + ".signed",
+      InsertPt), Shl);
+}
+
+static void convertInstruction(Instruction *Inst, ConversionState &State) {
+  if (SExtInst *Sext = dyn_cast<SExtInst>(Inst)) {
+    Value *Op = Sext->getOperand(0);
+    Value *NewInst = NULL;
+    // If the operand to be extended is illegal, we first need to fill its
+    // upper bits with its sign bit.
+    if (shouldConvert(Op)) {
+      NewInst = getSignExtend(State.getConverted(Op), Op, Sext);
+    }
+    // If the converted type of the operand is the same as the converted
+    // type of the result, we won't actually be changing the type of the
+    // variable, just its value.
+    if (getPromotedType(Op->getType()) !=
+        getPromotedType(Sext->getType())) {
+      NewInst = CopyDebug(new SExtInst(
+          NewInst ? NewInst : State.getConverted(Op),
+          getPromotedType(cast<IntegerType>(Sext->getType())),
+          Sext->getName() + ".sext", Sext), Sext);
+    }
+    assert(NewInst && "Failed to convert sign extension");
+    State.recordConverted(Sext, NewInst);
+  } else if (ZExtInst *Zext = dyn_cast<ZExtInst>(Inst)) {
+    Value *Op = Zext->getOperand(0);
+    Value *NewInst = NULL;
+    if (shouldConvert(Op)) {
+      NewInst = getClearConverted(Op, Zext, State);
+    }
+    // If the converted type of the operand is the same as the converted
+    // type of the result, we won't actually be changing the type of the
+    // variable, just its value.
+    if (getPromotedType(Op->getType()) !=
+        getPromotedType(Zext->getType())) {
+      NewInst = CopyDebug(CastInst::CreateZExtOrBitCast(
+          NewInst ? NewInst : State.getConverted(Op),
+          getPromotedType(cast<IntegerType>(Zext->getType())),
+          "", Zext), Zext);
+    }
+    assert(NewInst);
+    State.recordConverted(Zext, NewInst);
+  } else if (TruncInst *Trunc = dyn_cast<TruncInst>(Inst)) {
+    Value *Op = Trunc->getOperand(0);
+    Value *NewInst;
+    // If the converted type of the operand is the same as the converted
+    // type of the result, we don't actually need to change the type of the
+    // variable, just its value. However, because we don't care about the values
+    // of the upper bits until they are consumed, truncation can be a no-op.
+    if (getPromotedType(Op->getType()) !=
+        getPromotedType(Trunc->getType())) {
+      NewInst = CopyDebug(new TruncInst(
+          State.getConverted(Op),
+          getPromotedType(cast<IntegerType>(Trunc->getType())),
+          State.getConverted(Op)->getName() + ".trunc",
+          Trunc), Trunc);
+    } else {
+      NewInst = State.getConverted(Op);
+    }
+    State.recordConverted(Trunc, NewInst);
+  } else if (LoadInst *Load = dyn_cast<LoadInst>(Inst)) {
+    if (shouldConvert(Load)) {
+      splitLoad(Load, State);
+    }
+  } else if (StoreInst *Store = dyn_cast<StoreInst>(Inst)) {
+    if (shouldConvert(Store->getValueOperand())) {
+      splitStore(Store, State);
+    }
+  } else if (isa<CallInst>(Inst)) {
+    report_fatal_error("can't convert calls with illegal types");
+  } else if (BinaryOperator *Binop = dyn_cast<BinaryOperator>(Inst)) {
+    Value *NewInst = NULL;
+    switch (Binop->getOpcode()) {
+      case Instruction::AShr: {
+        // The AShr operand needs to be sign-extended to the promoted size
+        // before shifting. Because the sign-extension is implemented with
+        // with AShr, it can be combined with the original operation.
+        Value *Op = Binop->getOperand(0);
+        Value *ShiftAmount = NULL;
+        APInt SignShiftAmt = APInt(
+            getPromotedType(Op->getType())->getIntegerBitWidth(),
+            getPromotedType(Op->getType())->getIntegerBitWidth() -
+            Op->getType()->getIntegerBitWidth());
+        NewInst = CopyDebug(BinaryOperator::Create(
+            Instruction::Shl,
+            State.getConverted(Op),
+            ConstantInt::get(getPromotedType(Op->getType()), SignShiftAmt),
+            State.getConverted(Op)->getName() + ".getsign",
+            Binop), Binop);
+        if (ConstantInt *C = dyn_cast<ConstantInt>(
+                State.getConverted(Binop->getOperand(1)))) {
+          ShiftAmount = ConstantInt::get(getPromotedType(Op->getType()),
+                                         SignShiftAmt + C->getValue());
+        } else {
+          // Clear the upper bits of the original shift amount, and add back the
+          // amount we shifted to get the sign bit.
+          ShiftAmount = getClearConverted(Binop->getOperand(1), Binop, State);
+          ShiftAmount = CopyDebug(BinaryOperator::Create(
+              Instruction::Add,
+              ShiftAmount,
+              ConstantInt::get(
+                  getPromotedType(Binop->getOperand(1)->getType()),
+                  SignShiftAmt),
+              State.getConverted(Op)->getName() + ".shamt", Binop), Binop);
+        }
+        NewInst = CopyDebug(BinaryOperator::Create(
+            Instruction::AShr,
+            NewInst,
+            ShiftAmount,
+            Binop->getName() + ".result", Binop), Binop);
+        break;
+      }
+
+      case Instruction::LShr:
+      case Instruction::Shl: {
+        // For LShr, clear the upper bits of the operand before shifting them
+        // down into the valid part of the value.
+        Value *Op = Binop->getOpcode() == Instruction::LShr
+                        ? getClearConverted(Binop->getOperand(0), Binop, State)
+                        : State.getConverted(Binop->getOperand(0));
+        NewInst = BinaryOperator::Create(
+            Binop->getOpcode(), Op,
+            // Clear the upper bits of the shift amount.
+            getClearConverted(Binop->getOperand(1), Binop, State),
+            Binop->getName() + ".result", Binop);
+        break;
+      }
+      case Instruction::Add:
+      case Instruction::Sub:
+      case Instruction::Mul:
+      case Instruction::And:
+      case Instruction::Or:
+      case Instruction::Xor:
+        // These operations don't care about the state of the upper bits.
+        NewInst = CopyDebug(BinaryOperator::Create(
+            Binop->getOpcode(),
+            State.getConverted(Binop->getOperand(0)),
+            State.getConverted(Binop->getOperand(1)),
+            Binop->getName() + ".result", Binop), Binop);
+        break;
+      case Instruction::FAdd:
+      case Instruction::FSub:
+      case Instruction::FMul:
+      case Instruction::UDiv:
+      case Instruction::SDiv:
+      case Instruction::FDiv:
+      case Instruction::URem:
+      case Instruction::SRem:
+      case Instruction::FRem:
+      case Instruction::BinaryOpsEnd:
+        // We should not see FP operators here.
+        // We don't handle div.
+        errs() << *Inst << "\n";
+        llvm_unreachable("Cannot handle binary operator");
+        break;
+    }
+
+    if (isa<OverflowingBinaryOperator>(NewInst)) {
+      cast<BinaryOperator>(NewInst)->setHasNoUnsignedWrap(
+          Binop->hasNoUnsignedWrap());
+      cast<BinaryOperator>(NewInst)->setHasNoSignedWrap(
+          Binop->hasNoSignedWrap());
+    }
+    State.recordConverted(Binop, NewInst);
+  } else if (ICmpInst *Cmp = dyn_cast<ICmpInst>(Inst)) {
+    Value *Op0, *Op1;
+    // For signed compares, operands are sign-extended to their
+    // promoted type. For unsigned or equality compares, the upper bits are
+    // cleared.
+    if (Cmp->isSigned()) {
+      Op0 = getSignExtend(State.getConverted(Cmp->getOperand(0)),
+                          Cmp->getOperand(0),
+                          Cmp);
+      Op1 = getSignExtend(State.getConverted(Cmp->getOperand(1)),
+                          Cmp->getOperand(1),
+                          Cmp);
+    } else {
+      Op0 = getClearConverted(Cmp->getOperand(0), Cmp, State);
+      Op1 = getClearConverted(Cmp->getOperand(1), Cmp, State);
+    }
+    Instruction *NewInst = CopyDebug(new ICmpInst(
+        Cmp, Cmp->getPredicate(), Op0, Op1, ""), Cmp);
+    State.recordConverted(Cmp, NewInst);
+  } else if (SelectInst *Select = dyn_cast<SelectInst>(Inst)) {
+    Instruction *NewInst = CopyDebug(SelectInst::Create(
+        Select->getCondition(),
+        State.getConverted(Select->getTrueValue()),
+        State.getConverted(Select->getFalseValue()),
+        "", Select), Select);
+    State.recordConverted(Select, NewInst);
+  } else if (PHINode *Phi = dyn_cast<PHINode>(Inst)) {
+    PHINode *NewPhi = PHINode::Create(
+        getPromotedType(Phi->getType()),
+        Phi->getNumIncomingValues(),
+        "", Phi);
+    CopyDebug(NewPhi, Phi);
+    for (unsigned I = 0, E = Phi->getNumIncomingValues(); I < E; ++I) {
+      NewPhi->addIncoming(State.getConverted(Phi->getIncomingValue(I)),
+                          Phi->getIncomingBlock(I));
+    }
+    State.recordConverted(Phi, NewPhi);
+  } else if (SwitchInst *Switch = dyn_cast<SwitchInst>(Inst)) {
+    Value *Condition = getClearConverted(Switch->getCondition(), Switch, State);
+    SwitchInst *NewInst = SwitchInst::Create(
+        Condition,
+        Switch->getDefaultDest(),
+        Switch->getNumCases(),
+        Switch);
+    CopyDebug(NewInst, Switch);
+    for (SwitchInst::CaseIt I = Switch->case_begin(),
+             E = Switch->case_end();
+         I != E; ++I) {
+      NewInst->addCase(cast<ConstantInt>(convertConstant(I.getCaseValue())),
+                       I.getCaseSuccessor());
+    }
+    Switch->eraseFromParent();
+  } else {
+    errs() << *Inst<<"\n";
+    llvm_unreachable("unhandled instruction");
+  }
+}
+
+bool PromoteIntegers::runOnFunction(Function &F) {
+  // Don't support changing the function arguments. This should not be
+  // generated by clang.
+  for (Function::arg_iterator I = F.arg_begin(), E = F.arg_end(); I != E; ++I) {
+    Value *Arg = I;
+    if (shouldConvert(Arg)) {
+      errs() << "Function " << F.getName() << ": " << *Arg << "\n";
+      llvm_unreachable("Function has illegal integer/pointer argument");
+    }
+  }
+
+  ConversionState State;
+  bool Modified = false;
+  for (Function::iterator FI = F.begin(), FE = F.end(); FI != FE; ++FI) {
+    for (BasicBlock::iterator BBI = FI->begin(), BBE = FI->end(); BBI != BBE;) {
+      Instruction *Inst = BBI++;
+      // Only attempt to convert an instruction if its result or any of its
+      // operands are illegal.
+      bool ShouldConvert = shouldConvert(Inst);
+      for (User::op_iterator OI = Inst->op_begin(), OE = Inst->op_end();
+           OI != OE; ++OI)
+        ShouldConvert |= shouldConvert(cast<Value>(OI));
+
+      if (ShouldConvert) {
+        convertInstruction(Inst, State);
+        Modified = true;
+      }
+    }
+  }
+  State.eraseReplacedInstructions();
+  return Modified;
+}
+
+FunctionPass *llvm::createPromoteIntegersPass() {
+  return new PromoteIntegers();
+}
diff --git a/backend/src/llvm/llvm_bitcode_link.cpp b/backend/src/llvm/llvm_bitcode_link.cpp
index d3058d6..17248c0 100644
--- a/backend/src/llvm/llvm_bitcode_link.cpp
+++ b/backend/src/llvm/llvm_bitcode_link.cpp
@@ -38,11 +38,7 @@
 #include "sys/cvar.hpp"
 #include "src/GBEConfig.h"
 #include "llvm/llvm_gen_backend.hpp"
-#if LLVM_VERSION_MINOR >= 5
-#include "llvm/Linker/Linker.h"
-#else
-#include "llvm/Linker.h"
-#endif
+#include "llvm-c/Linker.h"
 
 using namespace llvm;
 
@@ -67,18 +63,20 @@ namespace gbe
     }
     assert(findBC);
 
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
     oclLib = getLazyIRFileModule(FilePath, Err, ctx);
+#else
+    oclLib = getLazyIRFileModule(FilePath, Err, ctx).release();
+#endif
     if (!oclLib) {
       printf("Fatal Error: ocl lib can not be opened\n");
       return NULL;
     }
 
-    if (strictMath) {
-      llvm::GlobalVariable* mathFastFlag = oclLib->getGlobalVariable("__ocl_math_fastpath_flag");
-      assert(mathFastFlag);
-      Type* intTy = IntegerType::get(ctx, 32);
-      mathFastFlag->setInitializer(ConstantInt::get(intTy, 0));
-    }
+    llvm::GlobalVariable* mathFastFlag = oclLib->getGlobalVariable("__ocl_math_fastpath_flag");
+    assert(mathFastFlag);
+    Type* intTy = IntegerType::get(ctx, 32);
+    mathFastFlag->setInitializer(ConstantInt::get(intTy, strictMath ? 0 : 1));
 
     return oclLib;
   }
@@ -110,20 +108,26 @@ namespace gbe
         if (!newMF) {
           newMF = src.getFunction(fnName);
           if (!newMF) {
-	    printf("Can not find the lib: %s\n", fnName.c_str());
-	    return false;
+            printf("Can not find the lib: %s\n", fnName.c_str());
+            return false;
           }
-	  fromSrc = true;
+          fromSrc = true;
         }
 
         std::string ErrInfo;// = "Not Materializable";
         if (!fromSrc && newMF->isMaterializable()) {
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
           if (newMF->Materialize(&ErrInfo)) {
             printf("Can not materialize the function: %s, because %s\n", fnName.c_str(), ErrInfo.c_str());
             return false;
           }
+#else
+          if (std::error_code EC = newMF->materialize()) {
+            printf("Can not materialize the function: %s, because %s\n", fnName.c_str(), EC.message().c_str());
+            return false;
+          }
+#endif
         }
-
         if (!materializedFuncCall(src, lib, *newMF, MFS))
           return false;
 
@@ -209,12 +213,21 @@ namespace gbe
       }
       std::string ErrInfo;// = "Not Materializable";
       if (newMF->isMaterializable()) {
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
         if (newMF->Materialize(&ErrInfo)) {
           printf("Can not materialize the function: %s, because %s\n", fnName.c_str(), ErrInfo.c_str());
           delete clonedLib;
           return NULL;
         }
       }
+#else
+        if (std::error_code EC = newMF->materialize()) {
+          printf("Can not materialize the function: %s, because %s\n", fnName.c_str(), EC.message().c_str());
+          delete clonedLib;
+          return NULL;
+        }
+      }
+#endif
 
       if (!materializedFuncCall(*mod, *clonedLib, *newMF, materializedFuncs)) {
         delete clonedLib;
@@ -226,10 +239,10 @@ namespace gbe
 
     /* We use beignet's bitcode as dst because it will have a lot of
        lazy functions which will not be loaded. */
-    std::string errorMsg;
-    if(Linker::LinkModules(clonedLib, mod, Linker::DestroySource, &errorMsg)) {
+    char* errorMsg;
+    if(LLVMLinkModules(wrap(clonedLib), wrap(mod), LLVMLinkerDestroySource, &errorMsg)) {
       delete clonedLib;
-      printf("Fatal Error: link the bitcode error:\n%s\n", errorMsg.c_str());
+      printf("Fatal Error: link the bitcode error:\n%s\n", errorMsg);
       return NULL;
     }
 
diff --git a/backend/src/llvm/llvm_gen_backend.cpp b/backend/src/llvm/llvm_gen_backend.cpp
index 8d22c4e..813d0d3 100644
--- a/backend/src/llvm/llvm_gen_backend.cpp
+++ b/backend/src/llvm/llvm_gen_backend.cpp
@@ -100,7 +100,6 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Analysis/ConstantsScanner.h"
-#include "llvm/Analysis/FindUsedTypes.h"
 #include "llvm/Analysis/LoopInfo.h"
 #include "llvm/Analysis/ValueTracking.h"
 #include "llvm/CodeGen/Passes.h"
@@ -571,8 +570,6 @@ namespace gbe
     INLINE void newRegister(Value *value, Value *key = NULL, bool uniform = false);
     /*! get the register for a llvm::Constant */
     ir::Register getConstantRegister(Constant *c, uint32_t index = 0);
-    /*! get constant pointer */
-    ir::Register getConstantPointerRegister(ConstantExpr *ce, uint32_t index = 0);
     /*! Return a valid register from an operand (can use LOADI to make one) */
     INLINE ir::Register getRegister(Value *value, uint32_t index = 0);
     /*! Create a new immediate from a constant */
@@ -624,7 +621,7 @@ namespace gbe
 #undef DECL_VISIT_FN
 
     // Emit unary instructions from gen native function
-    void emitUnaryCallInst(CallInst &I, CallSite &CS, ir::Opcode opcode);
+    void emitUnaryCallInst(CallInst &I, CallSite &CS, ir::Opcode opcode, ir::Type = ir::TYPE_FLOAT);
     // Emit unary instructions from gen native function
     void emitAtomicInst(CallInst &I, CallSite &CS, ir::AtomicOps opcode);
 
@@ -652,6 +649,8 @@ namespace gbe
                   Value *llvmValue, const ir::Register ptr,
                   const ir::AddressSpace addrSpace, Type * elemType, bool isLoad, ir::BTI bti,
                   bool dwAligned);
+    // handle load of dword/qword with unaligned address
+    void emitUnalignedDQLoadStore(Value *llvmPtr, Value *llvmValues, ir::AddressSpace addrSpace, ir::BTI &binding, bool isLoad, bool dwAligned);
     void visitInstruction(Instruction &I) {NOT_SUPPORTED;}
     private:
       ir::ImmediateIndex processConstantImmIndexImpl(Constant *CPV, int32_t index = 0u);
@@ -1043,150 +1042,7 @@ namespace gbe
   ir::ImmediateIndex GenWriter::processConstantImmIndex(Constant *CPV, int32_t index) {
     if (dyn_cast<ConstantExpr>(CPV) == NULL)
       return processConstantImmIndexImpl(CPV, index);
-
-    if (dyn_cast<ConstantExpr>(CPV)) {
-      ConstantExpr *ce = dyn_cast<ConstantExpr>(CPV);
-
-      if (!isScalarType(ce->getType())) {
-        VectorType *vecType = cast<VectorType>(ce->getType());
-        GBE_ASSERT(ce->getOpcode() == Instruction::BitCast);
-        GBE_ASSERT(isScalarType(vecType->getElementType()));
-        ir::Type elemType = getType(ctx, vecType->getElementType());
-
-        const ir::ImmediateIndex immIndex = processConstantImmIndex(ce->getOperand(0), -1);
-        const ir::Immediate imm = ctx.getImmediate(immIndex);
-        GBE_ASSERT(vecType->getNumElements() == imm.getElemNum() &&
-                   getTypeByteSize(unit, vecType->getElementType()) == imm.getTypeSize());
-        return ctx.processImm(ir::IMM_BITCAST, immIndex, elemType);
-      }
-      ir::Type type = getType(ctx, ce->getType());
-      switch (ce->getOpcode()) {
-        default:
-          ce->dump();
-          GBE_ASSERT(0 && "unsupported ce opcode.\n");
-        case Instruction::FPTrunc:
-        case Instruction::Trunc:
-        {
-          const ir::ImmediateIndex immIndex = processConstantImmIndex(ce->getOperand(0), -1);
-          return ctx.processImm(ir::IMM_TRUNC, immIndex, type);
-        }
-        case Instruction::BitCast:
-        {
-          const ir::ImmediateIndex immIndex = processConstantImmIndex(ce->getOperand(0), -1);
-          if (type == ir::TYPE_LARGE_INT)
-            return immIndex;
-          return ctx.processImm(ir::IMM_BITCAST, immIndex, type);
-        }
-        case Instruction::FPToUI:
-        case Instruction::FPToSI:
-        case Instruction::SIToFP:
-        case Instruction::UIToFP:
-        case Instruction::SExt:
-        case Instruction::ZExt:
-        case Instruction::FPExt:
-        {
-          const ir::ImmediateIndex immIndex = processConstantImmIndex(ce->getOperand(0), -1);
-          switch (ce->getOpcode()) {
-            default:
-              GBE_ASSERT(0);
-            case Instruction::FPToUI: return ctx.processImm(ir::IMM_FPTOUI, immIndex, type);
-            case Instruction::FPToSI: return ctx.processImm(ir::IMM_FPTOSI, immIndex, type);
-            case Instruction::SIToFP: return ctx.processImm(ir::IMM_SITOFP, immIndex, type);
-            case Instruction::UIToFP: return ctx.processImm(ir::IMM_UITOFP, immIndex, type);
-            case Instruction::SExt:  return ctx.processImm(ir::IMM_SEXT, immIndex, type);
-            case Instruction::ZExt:  return ctx.processImm(ir::IMM_ZEXT, immIndex, type);
-            case Instruction::FPExt: return ctx.processImm(ir::IMM_FPEXT, immIndex, type);
-          }
-        }
-
-        case Instruction::ExtractElement:
-        case Instruction::FCmp:
-        case Instruction::ICmp:
-        case Instruction::FAdd:
-        case Instruction::Add:
-        case Instruction::Sub:
-        case Instruction::FSub:
-        case Instruction::Mul:
-        case Instruction::FMul:
-        case Instruction::SDiv:
-        case Instruction::UDiv:
-        case Instruction::FDiv:
-        case Instruction::SRem:
-        case Instruction::FRem:
-        case Instruction::Shl:
-        case Instruction::AShr:
-        case Instruction::LShr:
-        case Instruction::And:
-        case Instruction::Or:
-        case Instruction::Xor: {
-          const ir::ImmediateIndex lhs  = processConstantImmIndex(ce->getOperand(0), -1);
-          const ir::ImmediateIndex rhs  = processConstantImmIndex(ce->getOperand(1), -1);
-          switch (ce->getOpcode()) {
-          default:
-            //ce->dump();
-            GBE_ASSERTM(0, "Unsupported constant expression.\n");
-
-          case Instruction::ExtractElement:
-            return ctx.processImm(ir::IMM_EXTRACT, lhs, rhs, type);
-          case Instruction::Add:
-          case Instruction::FAdd:
-            return ctx.processImm(ir::IMM_ADD, lhs, rhs, type);
-          case Instruction::FSub:
-          case Instruction::Sub:
-            return ctx.processImm(ir::IMM_SUB, lhs, rhs, type);
-          case Instruction::Mul:
-          case Instruction::FMul:
-            return ctx.processImm(ir::IMM_MUL, lhs, rhs, type);
-          case Instruction::SDiv:
-          case Instruction::FDiv:
-            return ctx.processImm(ir::IMM_DIV, lhs, rhs, type);
-          case Instruction::SRem:
-          case Instruction::FRem:
-            return ctx.processImm(ir::IMM_REM, lhs, rhs, type);
-          case Instruction::Shl:
-            return ctx.processImm(ir::IMM_SHL, lhs, rhs, type);
-          case Instruction::AShr:
-            return ctx.processImm(ir::IMM_ASHR, lhs, rhs, type);
-          case Instruction::LShr:
-            return ctx.processImm(ir::IMM_LSHR, lhs, rhs, type);
-          case Instruction::And:
-            return ctx.processImm(ir::IMM_AND, lhs, rhs, type);
-          case Instruction::Or:
-            return ctx.processImm(ir::IMM_OR, lhs, rhs, type);
-          case Instruction::Xor:
-            return ctx.processImm(ir::IMM_XOR, lhs, rhs, type);
-          case Instruction::FCmp:
-          case Instruction::ICmp:
-            switch (ce->getPredicate()) {
-              default:
-                NOT_SUPPORTED;
-              case ICmpInst::ICMP_EQ:
-              case ICmpInst::FCMP_OEQ: return ctx.processImm(ir::IMM_OEQ, lhs, rhs, type);
-              case ICmpInst::ICMP_NE:
-              case ICmpInst::FCMP_ONE: return ctx.processImm(ir::IMM_ONE, lhs, rhs, type);
-              case ICmpInst::ICMP_ULE:
-              case ICmpInst::ICMP_SLE:
-              case ICmpInst::FCMP_OLE: return ctx.processImm(ir::IMM_OLE, lhs, rhs, type);
-              case ICmpInst::ICMP_UGE:
-              case ICmpInst::ICMP_SGE:
-              case ICmpInst::FCMP_OGE: return ctx.processImm(ir::IMM_OGE, lhs, rhs, type);
-              case ICmpInst::ICMP_ULT:
-              case ICmpInst::ICMP_SLT:
-              case ICmpInst::FCMP_OLT: return ctx.processImm(ir::IMM_OLT, lhs, rhs, type);
-              case ICmpInst::ICMP_UGT:
-              case ICmpInst::ICMP_SGT:
-              case ICmpInst::FCMP_OGT: return ctx.processImm(ir::IMM_OGT, lhs, rhs, type);
-              case ICmpInst::FCMP_ORD: return ctx.processImm(ir::IMM_ORD, lhs, rhs, type);
-              case ICmpInst::FCMP_TRUE:
-                Value *cv = ConstantInt::get(ce->getType(), 1);
-                return ctx.newImmediate(cv);
-            }
-            break;
-          }
-          break;
-        }
-      }
-    }
+    CPV->dump();
     GBE_ASSERT(0 && "unsupported constant.\n");
     return ctx.newImmediate((uint32_t)0);
   }
@@ -1230,64 +1086,6 @@ namespace gbe
     };
   }
 
-  ir::Register GenWriter::getConstantPointerRegister(ConstantExpr *expr, uint32_t elemID) {
-    Value* val = expr->getOperand(0);
-
-    if (expr->isCast()) {
-      ir::Register pointer_reg;
-      if(isa<ConstantExpr>(val)) {
-        // try to get the real pointer register, for case like:
-        // store i64 ptrtoint (i8 addrspace(3)* getelementptr inbounds ...
-        // in which ptrtoint and getelementptr are ConstantExpr.
-        pointer_reg = getConstantPointerRegister(dyn_cast<ConstantExpr>(val), elemID);
-      } else {
-        pointer_reg = regTranslator.getScalar(val, elemID);
-      }
-      // if ptrToInt request another type other than 32bit, convert as requested
-      ir::Type dstType = getType(ctx, expr->getType());
-      ir::Type srcType = getType(ctx, val->getType());
-      if(srcType != dstType && dstType != ir::TYPE_S32) {
-        ir::Register tmp = ctx.reg(getFamily(dstType));
-        ctx.CVT(dstType, srcType, tmp, pointer_reg);
-        return tmp;
-      }
-      return pointer_reg;
-    }
-    else if (expr->getOpcode() == Instruction::GetElementPtr) {
-      uint32_t constantOffset = 0;
-
-      Value *pointer = val;
-      CompositeType* CompTy = cast<CompositeType>(pointer->getType());
-      for(uint32_t op=1; op<expr->getNumOperands(); ++op) {
-        int32_t TypeIndex;
-        ConstantInt* ConstOP = dyn_cast<ConstantInt>(expr->getOperand(op));
-        if (ConstOP == NULL)
-          goto error;
-        TypeIndex = ConstOP->getZExtValue();
-        GBE_ASSERT(TypeIndex >= 0);
-        constantOffset += getGEPConstOffset(unit, CompTy, TypeIndex);
-        CompTy = dyn_cast<CompositeType>(CompTy->getTypeAtIndex(TypeIndex));
-      }
-
-      ir::Register pointer_reg;
-      if(isa<ConstantExpr>(pointer))
-        pointer_reg = getConstantPointerRegister(dyn_cast<ConstantExpr>(pointer), elemID);
-      else
-        pointer_reg = regTranslator.getScalar(pointer, elemID);
-
-      ir::Register offset_reg = ctx.reg(ir::RegisterFamily::FAMILY_DWORD);
-      ctx.LOADI(ir::Type::TYPE_S32, offset_reg, ctx.newIntegerImmediate(constantOffset, ir::Type::TYPE_S32));
-      ir::Register reg = ctx.reg(ir::RegisterFamily::FAMILY_DWORD);
-      ctx.ADD(ir::Type::TYPE_S32, reg, pointer_reg, offset_reg);
-      return reg;
-    }
-
-error:
-    expr->dump();
-    GBE_ASSERT(0 && "Unsupported constant expression");
-    return regTranslator.getScalar(val, elemID);
-  }
-
   ir::Register GenWriter::getConstantRegister(Constant *c, uint32_t elemID) {
     GBE_ASSERT(c != NULL);
     if(isa<GlobalValue>(c)) {
@@ -1310,15 +1108,6 @@ error:
       return reg;
     }
 
-    if(isa<ConstantExpr>(c)) {
-      // Check whether this is a constant drived from a pointer.
-      Constant *itC = c;
-      while(isa<ConstantExpr>(itC))
-        itC = dyn_cast<ConstantExpr>(itC)->getOperand(0);
-      if (itC->getType()->isPointerTy())
-        return getConstantPointerRegister(dyn_cast<ConstantExpr>(c), elemID);
-    }
-
     const ir::ImmediateIndex immIndex = this->newImmediate(c, elemID);
     const ir::Immediate imm = ctx.getImmediate(immIndex);
     const ir::Register reg = ctx.reg(getFamily(imm.getType()));
@@ -1467,7 +1256,12 @@ error:
     /* First find the meta data belong to this function. */
     for(uint i = 0; i < clKernelMetaDatas->getNumOperands(); i++) {
       node = clKernelMetaDatas->getOperand(i);
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
       if (node->getOperand(0) == &F) break;
+#else
+      auto *V = cast<ValueAsMetadata>(node->getOperand(0));
+      if (V && V->getValue() == &F) break;
+#endif
       node = NULL;
     }
 
@@ -1484,9 +1278,15 @@ error:
 
       if (attrName->getString() == "reqd_work_group_size") {
         GBE_ASSERT(attrNode->getNumOperands() == 4);
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
         ConstantInt *x = dyn_cast<ConstantInt>(attrNode->getOperand(1));
         ConstantInt *y = dyn_cast<ConstantInt>(attrNode->getOperand(2));
         ConstantInt *z = dyn_cast<ConstantInt>(attrNode->getOperand(3));
+#else
+        ConstantInt *x = mdconst::extract<ConstantInt>(attrNode->getOperand(1));
+        ConstantInt *y = mdconst::extract<ConstantInt>(attrNode->getOperand(2));
+        ConstantInt *z = mdconst::extract<ConstantInt>(attrNode->getOperand(3));
+#endif
         GBE_ASSERT(x && y && z);
         reqd_wg_sz[0] = x->getZExtValue();
         reqd_wg_sz[1] = y->getZExtValue();
@@ -1521,9 +1321,15 @@ error:
         functionAttributes += " ";
       } else if (attrName->getString() == "work_group_size_hint") {
         GBE_ASSERT(attrNode->getNumOperands() == 4);
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
         ConstantInt *x = dyn_cast<ConstantInt>(attrNode->getOperand(1));
         ConstantInt *y = dyn_cast<ConstantInt>(attrNode->getOperand(2));
         ConstantInt *z = dyn_cast<ConstantInt>(attrNode->getOperand(3));
+#else
+        ConstantInt *x = mdconst::extract<ConstantInt>(attrNode->getOperand(1));
+        ConstantInt *y = mdconst::extract<ConstantInt>(attrNode->getOperand(2));
+        ConstantInt *z = mdconst::extract<ConstantInt>(attrNode->getOperand(3));
+#endif
         GBE_ASSERT(x && y && z);
         hint_wg_sz[0] = x->getZExtValue();
         hint_wg_sz[1] = y->getZExtValue();
@@ -1561,8 +1367,11 @@ error:
       for (; I != E; ++I, ++argID) {
         const std::string &argName = I->getName().str();
         Type *type = I->getType();
-
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
         llvmInfo.addrSpace = (cast<ConstantInt>(addrSpaceNode->getOperand(1 + argID)))->getZExtValue();
+#else
+        llvmInfo.addrSpace = (mdconst::extract<ConstantInt>(addrSpaceNode->getOperand(1 + argID)))->getZExtValue();
+#endif
         llvmInfo.typeName = (cast<MDString>(typeNameNode->getOperand(1 + argID)))->getString();
         llvmInfo.accessQual = (cast<MDString>(accessQualNode->getOperand(1 + argID)))->getString();
         llvmInfo.typeQual = (cast<MDString>(typeQualNode->getOperand(1 + argID)))->getString();
@@ -2212,9 +2021,11 @@ error:
       case CallingConv::PTX_Kernel:
 #else
       case CallingConv::C:
+      case CallingConv::Fast:
 #endif
         break;
-      default: GBE_ASSERTM(false, "Unsupported calling convention");
+      default:
+        GBE_ASSERTM(false, "Unsupported calling convention");
     }
 
     ctx.startFunction(F.getName());
@@ -2342,8 +2153,6 @@ error:
   }
 
   void GenWriter::emitICmpInst(ICmpInst &I) {
-    GBE_ASSERT(I.getOperand(0)->getType() != Type::getInt1Ty(I.getContext()));
-
     // Get the element type and the number of elements
     Type *operandType = I.getOperand(0)->getType();
     const ir::Type type = getType(ctx, operandType);
@@ -2477,12 +2286,12 @@ error:
       case Instruction::PtrToInt:
       case Instruction::IntToPtr:
       {
-        Constant *CPV = dyn_cast<Constant>(srcValue);
-        if (CPV == NULL) {
+        Type *dstType = dstValue->getType();
+        Type *srcType = srcValue->getType();
+
+        if (getTypeByteSize(unit, dstType) == getTypeByteSize(unit, srcType))
+        {
 #if GBE_DEBUG
-          Type *dstType = dstValue->getType();
-          Type *srcType = srcValue->getType();
-          GBE_ASSERT(getTypeByteSize(unit, dstType) == getTypeByteSize(unit, srcType));
 #endif /* GBE_DEBUG */
           regTranslator.newValueProxy(srcValue, dstValue);
         } else
@@ -2525,12 +2334,13 @@ error:
       {
         Value *dstValue = &I;
         Value *srcValue = I.getOperand(0);
-        Constant *CPV = dyn_cast<Constant>(srcValue);
-        if (CPV != NULL) {
-          const ir::ImmediateIndex index = ctx.newImmediate(CPV);
-          const ir::Immediate imm = ctx.getImmediate(index);
-          const ir::Register reg = this->getRegister(dstValue);
-          ctx.LOADI(imm.getType(), reg, index);
+        Type *dstType = dstValue->getType();
+        Type *srcType = srcValue->getType();
+
+        if (getTypeByteSize(unit, dstType) != getTypeByteSize(unit, srcType)) {
+          const ir::Register dst = this->getRegister(&I);
+          const ir::Register src = this->getRegister(srcValue);
+          ctx.CVT(getType(ctx, dstType), getType(ctx, srcType), dst, src);
         }
       }
       break;
@@ -2986,7 +2796,7 @@ error:
     };
   }
 
-  void GenWriter::emitUnaryCallInst(CallInst &I, CallSite &CS, ir::Opcode opcode) {
+  void GenWriter::emitUnaryCallInst(CallInst &I, CallSite &CS, ir::Opcode opcode, ir::Type type) {
     CallSite::arg_iterator AI = CS.arg_begin();
 #if GBE_DEBUG
     CallSite::arg_iterator AE = CS.arg_end();
@@ -2994,7 +2804,7 @@ error:
     GBE_ASSERT(AI != AE);
     const ir::Register src = this->getRegister(*AI);
     const ir::Register dst = this->getRegister(&I);
-    ctx.ALU1(opcode, ir::TYPE_FLOAT, dst, src);
+    ctx.ALU1(opcode, type, dst, src);
   }
 
   void GenWriter::emitAtomicInst(CallInst &I, CallSite &CS, ir::AtomicOps opcode) {
@@ -3229,7 +3039,7 @@ error:
           }
           case GEN_OCL_FBH: this->emitUnaryCallInst(I,CS,ir::OP_FBH); break;
           case GEN_OCL_FBL: this->emitUnaryCallInst(I,CS,ir::OP_FBL); break;
-          case GEN_OCL_CBIT: this->emitUnaryCallInst(I,CS,ir::OP_CBIT); break;
+          case GEN_OCL_CBIT: this->emitUnaryCallInst(I,CS,ir::OP_CBIT, getUnsignedType(ctx, (*AI)->getType())); break;
           case GEN_OCL_ABS:
           {
             const ir::Register src = this->getRegister(*AI);
@@ -3859,6 +3669,67 @@ error:
     }
     GBE_ASSERT(bti.count <= MAX_MIXED_POINTER);
   }
+  // handle load of dword/qword with unaligned address
+  void GenWriter::emitUnalignedDQLoadStore(Value *llvmPtr, Value *llvmValues, ir::AddressSpace addrSpace, ir::BTI &binding, bool isLoad, bool dwAligned)
+  {
+    Type *llvmType = llvmValues->getType();
+    const ir::Type type = getType(ctx, llvmType);
+    unsigned byteSize = getTypeByteSize(unit, llvmType);
+    const ir::Register ptr = this->getRegister(llvmPtr);
+
+    Type *elemType = llvmType;
+    unsigned elemNum = 1;
+    if (!isScalarType(llvmType)) {
+      VectorType *vectorType = cast<VectorType>(llvmType);
+      elemType = vectorType->getElementType();
+      elemNum = vectorType->getNumElements();
+    }
+
+    vector<ir::Register> tupleData;
+    for (uint32_t elemID = 0; elemID < elemNum; ++elemID) {
+      ir::Register reg;
+      if(regTranslator.isUndefConst(llvmValues, elemID)) {
+        Value *v = Constant::getNullValue(elemType);
+        reg = this->getRegister(v);
+      } else
+        reg = this->getRegister(llvmValues, elemID);
+
+      tupleData.push_back(reg);
+    }
+    const ir::Tuple tuple = ctx.arrayTuple(&tupleData[0], elemNum);
+
+    vector<ir::Register> byteTupleData;
+    for (uint32_t elemID = 0; elemID < byteSize; ++elemID) {
+      byteTupleData.push_back(ctx.reg(ir::FAMILY_BYTE));
+    }
+    const ir::Tuple byteTuple = ctx.arrayTuple(&byteTupleData[0], byteSize);
+
+    if (isLoad) {
+      ctx.LOAD(ir::TYPE_U8, byteTuple, ptr, addrSpace, byteSize, dwAligned, binding);
+      ctx.BITCAST(type, ir::TYPE_U8, tuple, byteTuple, elemNum, byteSize);
+    } else {
+      ctx.BITCAST(ir::TYPE_U8, type, byteTuple, tuple, byteSize, elemNum);
+      // FIXME: byte scatter does not handle correctly vector store, after fix that,
+      //        we can directly use on store instruction like:
+      //        ctx.STORE(ir::TYPE_U8, byteTuple, ptr, addrSpace, byteSize, dwAligned, binding);
+      const ir::RegisterFamily pointerFamily = ctx.getPointerFamily();
+      for (uint32_t elemID = 0; elemID < byteSize; elemID++) {
+        const ir::Register reg = byteTupleData[elemID];
+        ir::Register addr;
+        if (elemID == 0)
+          addr = ptr;
+        else {
+          const ir::Register offset = ctx.reg(pointerFamily);
+          ir::ImmediateIndex immIndex;
+          immIndex = ctx.newImmediate(int32_t(elemID));
+          addr = ctx.reg(pointerFamily);
+          ctx.LOADI(ir::TYPE_S32, offset, immIndex);
+          ctx.ADD(ir::TYPE_S32, addr, ptr, offset);
+        }
+       ctx.STORE(type, addr, addrSpace, dwAligned, binding, reg);
+      }
+    }
+  }
 
   extern int OCL_SIMD_WIDTH;
   template <bool isLoad, typename T>
@@ -3874,6 +3745,19 @@ error:
     ir::BTI binding;
     gatherBTI(&I, binding);
 
+    Type *scalarType = llvmType;
+    if (!isScalarType(llvmType)) {
+      VectorType *vectorType = cast<VectorType>(llvmType);
+      scalarType = vectorType->getElementType();
+    }
+
+    if (!dwAligned
+       && (scalarType == IntegerType::get(I.getContext(), 64)
+          || scalarType == IntegerType::get(I.getContext(), 32))
+       ) {
+      emitUnalignedDQLoadStore(llvmPtr, llvmValues, addrSpace, binding, isLoad, dwAligned);
+      return;
+    }
     // Scalar is easy. We neednot build register tuples
     if (isScalarType(llvmType) == true) {
       const ir::Type type = getType(ctx, llvmType);
diff --git a/backend/src/llvm/llvm_gen_backend.hpp b/backend/src/llvm/llvm_gen_backend.hpp
index e127996..91a1166 100644
--- a/backend/src/llvm/llvm_gen_backend.hpp
+++ b/backend/src/llvm/llvm_gen_backend.hpp
@@ -40,7 +40,22 @@
 #include <algorithm>
 
 // LLVM Type
-namespace llvm { class Type; }
+namespace llvm {
+  class Type;
+  /* Imported from pNaCl */
+  llvm::Instruction *PhiSafeInsertPt(llvm::Use *U);
+
+  void PhiSafeReplaceUses(llvm::Use *U, llvm::Value *NewVal);
+
+  FunctionPass *createExpandConstantExprPass();
+  FunctionPass *createExpandLargeIntegersPass();
+  FunctionPass *createPromoteIntegersPass();
+  // Copy debug information from Original to New, and return New.
+  template <typename T> T *CopyDebug(T *New, llvm::Instruction *Original) {
+    New->setDebugLoc(Original->getDebugLoc());
+   return New;
+  }
+}
 
 namespace gbe
 {
diff --git a/backend/src/llvm/llvm_passes.cpp b/backend/src/llvm/llvm_passes.cpp
index d315d53..223f61b 100644
--- a/backend/src/llvm/llvm_passes.cpp
+++ b/backend/src/llvm/llvm_passes.cpp
@@ -59,7 +59,6 @@
 #include "llvm/ADT/SmallString.h"
 #include "llvm/ADT/STLExtras.h"
 #include "llvm/Analysis/ConstantsScanner.h"
-#include "llvm/Analysis/FindUsedTypes.h"
 #include "llvm/Analysis/LoopInfo.h"
 #include "llvm/Analysis/ValueTracking.h"
 #include "llvm/CodeGen/Passes.h"
@@ -119,7 +118,11 @@ namespace gbe
       uint32_t ops = md.getNumOperands();
       for(uint32_t x = 0; x < ops; x++) {
         MDNode* node = md.getOperand(x);
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR <= 5
         Value * op = node->getOperand(0);
+#else
+        Value * op = cast<ValueAsMetadata>(node->getOperand(0))->getValue();
+#endif
         if(op == &F) bKernel = true;
       }
     }
@@ -343,9 +346,11 @@ namespace gbe
           }
         }
 
-        BinaryOperator* tmpMul = 
-          BinaryOperator::Create(Instruction::Mul, newConstSize, operand,
-              "", GEPInst);
+        Value* tmpMul = operand;
+        if (size != 1) {
+          tmpMul = BinaryOperator::Create(Instruction::Mul, newConstSize, operand,
+                                         "", GEPInst);
+        }
         currentAddrInst = 
           BinaryOperator::Create(Instruction::Add, currentAddrInst, tmpMul,
               "", GEPInst);
@@ -355,14 +360,16 @@ namespace gbe
       CompTy = dyn_cast<CompositeType>(CompTy->getTypeAtIndex(TypeIndex));
     }
 
-    //insert addition of new offset before GEPInst
-    Constant* newConstOffset = 
-      ConstantInt::get(IntegerType::get(GEPInst->getContext(), 
-            ptrSize),
-          constantOffset);
-    currentAddrInst = 
-      BinaryOperator::Create(Instruction::Add, currentAddrInst, 
-          newConstOffset, "", GEPInst);
+    //insert addition of new offset before GEPInst when it is not zero
+    if (constantOffset != 0) {
+      Constant* newConstOffset =
+        ConstantInt::get(IntegerType::get(GEPInst->getContext(),
+              ptrSize),
+            constantOffset);
+      currentAddrInst =
+        BinaryOperator::Create(Instruction::Add, currentAddrInst,
+            newConstOffset, "", GEPInst);
+    }
 
     //convert offset to ptr type (nop)
     IntToPtrInst* intToPtrInst = 
diff --git a/backend/src/llvm/llvm_printf_parser.cpp b/backend/src/llvm/llvm_printf_parser.cpp
index 8fec683..8e662b3 100644
--- a/backend/src/llvm/llvm_printf_parser.cpp
+++ b/backend/src/llvm/llvm_printf_parser.cpp
@@ -268,7 +268,7 @@ again:
 
       if (p != begin) {
         std::string s = std::string(begin, size_t(p - begin));
-        printf_fmt->push_back(PrintfSlot(s.c_str()));
+        printf_fmt->first.push_back(PrintfSlot(s.c_str()));
       }
 
       if (p == end) // finish
@@ -279,7 +279,7 @@ again:
       if (ret_char < 0)
         goto error;
 
-      printf_fmt->push_back(&state);
+      printf_fmt->first.push_back(&state);
       num++;
 
       if (rend == end)
@@ -385,14 +385,14 @@ error:
 
     /////////////////////////////////////////////////////
     /* calculate index address.
-       index_addr = (index_offset + wg_offset )* sizeof(int) + index_buf_ptr
+       index_addr = (index_offset + wg_offset )* sizeof(int) * 2 + index_buf_ptr
        index_offset = global_size2 * global_size1 * global_size0 * printf_num */
 
     Value* index_offset = builder->CreateMul(g1Xg2Xg3, ConstantInt::get(intTy, printf_num));
     // index_offset + offset
     op0 = builder->CreateAdd(index_offset, wg_offset);
-    // (index_offset + offset)* sizeof(int)
-    op0 = builder->CreateMul(op0, ConstantInt::get(intTy, sizeof(int)));
+    // (index_offset + offset)* sizeof(int) * 2
+    op0 = builder->CreateMul(op0, ConstantInt::get(intTy, sizeof(int)*2));
     // Final index address = index_buf_ptr + (index_offset + offset)* sizeof(int)
     op0 = builder->CreateAdd(index_buf_ptr, op0);
     Value* index_addr = builder->CreateIntToPtr(op0, Type::getInt32PtrTy(module->getContext(), 1));
@@ -401,9 +401,13 @@ error:
     val = builder->CreateAdd(loop_num, ConstantInt::get(intTy, 1));
     builder->CreateStore(val, index_addr);// The loop number.
 
+    op0 = builder->CreateAdd(op0, ConstantInt::get(intTy, sizeof(int)));
+    index_addr = builder->CreateIntToPtr(op0, Type::getInt32PtrTy(module->getContext(), 1));
+    builder->CreateStore(ConstantInt::get(intTy, printf_num), index_addr);// The printf number.
+
     int i = 1;
     Value* data_addr = NULL;
-    for (auto &s : *pInfo.printf_fmt) {
+    for (auto &s : (*pInfo.printf_fmt).first) {
       if (s.type == PRINTF_SLOT_TYPE_STRING)
         continue;
 
@@ -458,6 +462,7 @@ error:
                               NULL)));
     assert(printfs[printf_inst] == NULL);
     printfs[printf_inst] = pInfo.printf_fmt;
+    printfs[printf_inst]->second = printf_num;
     printf_num++;
     return true;
   }
@@ -499,7 +504,7 @@ error:
 
     sizeof_size = 0;
     int i = 1;
-    for (auto &s : *printf_fmt) {
+    for (auto &s : (*printf_fmt).first) {
       int sz = 0;
       if (s.type == PRINTF_SLOT_TYPE_STRING)
         continue;
@@ -559,6 +564,7 @@ error:
       case CallingConv::PTX_Kernel:
 #else
       case CallingConv::C:
+      case CallingConv::Fast:
 #endif
         break;
       default:
diff --git a/backend/src/llvm/llvm_scalarize.cpp b/backend/src/llvm/llvm_scalarize.cpp
index cf2939d..860053f 100644
--- a/backend/src/llvm/llvm_scalarize.cpp
+++ b/backend/src/llvm/llvm_scalarize.cpp
@@ -764,9 +764,11 @@ namespace gbe {
     case CallingConv::PTX_Kernel:
 #else
     case CallingConv::C:
+    case CallingConv::Fast:
 #endif
       break;
-    default: GBE_ASSERTM(false, "Unsupported calling convention");
+    default:
+      GBE_ASSERTM(false, "Unsupported calling convention");
     }
 
     // As we inline all function calls, so skip non-kernel functions
diff --git a/backend/src/llvm/llvm_to_gen.cpp b/backend/src/llvm/llvm_to_gen.cpp
index e3b3822..89a22b6 100644
--- a/backend/src/llvm/llvm_to_gen.cpp
+++ b/backend/src/llvm/llvm_to_gen.cpp
@@ -80,7 +80,9 @@ namespace gbe
   {
     FunctionPassManager FPM(&mod);
 
-#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
+    FPM.add(new DataLayoutPass());
+#elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 5
     FPM.add(new DataLayoutPass(DL));
 #else
     FPM.add(new DataLayout(DL));
@@ -111,7 +113,9 @@ namespace gbe
   {
     llvm::PassManager MPM;
 
-#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
+    MPM.add(new DataLayoutPass());
+#elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 5
     MPM.add(new DataLayoutPass(DL));
 #else
     MPM.add(new DataLayout(DL));
@@ -230,7 +234,11 @@ namespace gbe
       cl_mod = reinterpret_cast<Module*>(const_cast<void*>(module));
     } else if (fileName){
       llvm::LLVMContext& c = llvm::getGlobalContext();
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
+      cl_mod = parseIRFile(fileName, Err, c).release();
+#else
       cl_mod = ParseIRFile(fileName, Err, c);
+#endif
     }
 
     if (!cl_mod) return false;
@@ -258,7 +266,9 @@ namespace gbe
     runFuntionPass(mod, libraryInfo, DL);
     runModulePass(mod, libraryInfo, DL, optLevel, strictMath);
     llvm::PassManager passes;
-#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 5
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
+    passes.add(new DataLayoutPass());
+#elif LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR == 5
     passes.add(new DataLayoutPass(DL));
 #else
     passes.add(new DataLayout(DL));
@@ -268,18 +278,23 @@ namespace gbe
     passes.add(createFunctionInliningPass(200000));
     passes.add(createScalarReplAggregatesPass(64, true, -1, -1, 64));
     passes.add(createLoadStoreOptimizationPass());
-    passes.add(createRemoveGEPPass(unit));
     passes.add(createConstantPropagationPass());
-    passes.add(createLowerSwitchPass());
     passes.add(createPromoteMemoryToRegisterPass());
     if(optLevel > 0)
-      passes.add(createGVNPass());                  // Remove redundancies
+      passes.add(createGVNPass());                 // Remove redundancies
     passes.add(createPrintfParserPass());
-    passes.add(createScalarizePass());        // Expand all vector ops
-    passes.add(createLegalizePass());
-    passes.add(createDeadInstEliminationPass());  // Remove simplified instructions
+    passes.add(createExpandConstantExprPass());    // expand ConstantExpr
+    passes.add(createScalarizePass());             // Expand all vector ops
+    passes.add(createExpandLargeIntegersPass());   // legalize large integer operation
+    passes.add(createInstructionCombiningPass());  // legalize will generate some silly instructions
+    passes.add(createConstantPropagationPass());   // propagate constant after scalarize/legalize
+    passes.add(createExpandConstantExprPass());    // constant prop may generate ConstantExpr
+    passes.add(createPromoteIntegersPass());       // align integer size to power of two
+    passes.add(createRemoveGEPPass(unit));         // Constant prop may generate gep
+    passes.add(createDeadInstEliminationPass());   // Remove simplified instructions
     passes.add(createCFGSimplificationPass());     // Merge & remove BBs
-    passes.add(createScalarizePass());        // Expand all vector ops
+    passes.add(createLowerSwitchPass());           // simplify cfg will generate switch-case instruction
+    passes.add(createScalarizePass());             // Expand all vector ops
 
     if(OCL_OUTPUT_CFG)
       passes.add(createCFGPrinterPass());
diff --git a/backend/src/llvm/llvm_unroll.cpp b/backend/src/llvm/llvm_unroll.cpp
index 7cd7c35..5d3fad8 100644
--- a/backend/src/llvm/llvm_unroll.cpp
+++ b/backend/src/llvm/llvm_unroll.cpp
@@ -95,7 +95,11 @@ namespace gbe {
           if (Name.equals(S->getString())) {
             assert(MD->getNumOperands() == 2 &&
                    "Unroll hint metadata should have two operands.");
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
+            return mdconst::extract<ConstantInt>(MD->getOperand(1));
+#else
             return cast<ConstantInt>(MD->getOperand(1));
+#endif
           }
         }
         return nullptr;
@@ -105,6 +109,15 @@ namespace gbe {
         if (!enable && disabledLoops.find(L) != disabledLoops.end())
            return;
         LLVMContext &Context = L->getHeader()->getContext();
+#if LLVM_VERSION_MAJOR == 3 && LLVM_VERSION_MINOR >= 6
+        SmallVector<Metadata *, 2> forceUnroll;
+        forceUnroll.push_back(MDString::get(Context, "llvm.loop.unroll.enable"));
+        forceUnroll.push_back(ConstantAsMetadata::get(ConstantInt::get(Type::getInt1Ty(Context), enable)));
+        MDNode *forceUnrollNode = MDNode::get(Context, forceUnroll);
+        SmallVector<Metadata *, 4> Vals;
+        Vals.push_back(NULL);
+        Vals.push_back(forceUnrollNode);
+#else
         SmallVector<Value *, 2> forceUnroll;
         forceUnroll.push_back(MDString::get(Context, "llvm.loop.unroll.enable"));
         forceUnroll.push_back(ConstantInt::get(Type::getInt1Ty(Context), enable));
@@ -112,6 +125,7 @@ namespace gbe {
         SmallVector<Value *, 4> Vals;
         Vals.push_back(NULL);
         Vals.push_back(forceUnrollNode);
+#endif
         MDNode *NewLoopID = MDNode::get(Context, Vals);
         // Set operand 0 to refer to the loop id itself.
         NewLoopID->replaceOperandWith(0, NewLoopID);
@@ -163,19 +177,25 @@ namespace gbe {
       bool handleParentLoops(Loop *L, LPPassManager &LPM) {
         Loop *currL = L;
         ScalarEvolution *SE = &getAnalysis<ScalarEvolution>();
-        BasicBlock *latchBlock = currL->getLoopLatch();
+        BasicBlock *ExitBlock = currL->getLoopLatch();
+        if (!ExitBlock || !L->isLoopExiting(ExitBlock))
+          ExitBlock = currL->getExitingBlock();
+
         unsigned currTripCount = 0;
         bool shouldUnroll = true;
-        if (latchBlock)
-          currTripCount = SE->getSmallConstantTripCount(L, latchBlock);
+        if (ExitBlock)
+          currTripCount = SE->getSmallConstantTripCount(L, ExitBlock);
 
         while(currL) {
           Loop *parentL = currL->getParentLoop();
           unsigned parentTripCount = 0;
           if (parentL) {
-            BasicBlock *parentLatchBlock = parentL->getLoopLatch();
-            if (parentLatchBlock)
-              parentTripCount = SE->getSmallConstantTripCount(parentL, parentLatchBlock);
+            BasicBlock *parentExitBlock = parentL->getLoopLatch();
+            if (!parentExitBlock || !parentL->isLoopExiting(parentExitBlock))
+              parentExitBlock = parentL->getExitingBlock();
+
+            if (parentExitBlock)
+              parentTripCount = SE->getSmallConstantTripCount(parentL, parentExitBlock);
           }
           if ((parentTripCount != 0 && currTripCount / parentTripCount > 16) ||
               (currTripCount > 32)) {
diff --git a/backend/src/sys/platform.hpp b/backend/src/sys/platform.hpp
index e7aeee6..173b880 100644
--- a/backend/src/sys/platform.hpp
+++ b/backend/src/sys/platform.hpp
@@ -258,10 +258,14 @@ private: \
 /*! Default alignment for the platform */
 #define GBE_DEFAULT_ALIGNMENT 16
 
+namespace gbe
+{
 /*! Useful constants */
-#define KB 1024
-#define MB (KB*KB)
-
+  enum {
+    KB = 1024,
+    MB = (KB*KB),
+  };
+}
 /*! Portable AlignOf */
 template <typename T>
 struct AlignOf {
diff --git a/benchmark/benchmark_use_host_ptr_buffer.cpp b/benchmark/benchmark_use_host_ptr_buffer.cpp
index 7ede576..80b6c5c 100644
--- a/benchmark/benchmark_use_host_ptr_buffer.cpp
+++ b/benchmark/benchmark_use_host_ptr_buffer.cpp
@@ -10,7 +10,7 @@ int benchmark_use_host_ptr_buffer(void)
   // Setup kernel and buffers
   OCL_CREATE_KERNEL("runtime_use_host_ptr_buffer");
 
-  int ret = posix_memalign(&buf_data[0], 4096, sizeof(uint32_t) * n);
+  int ret = posix_memalign(&buf_data[0], 64, sizeof(uint32_t) * n);
   OCL_ASSERT(ret == 0);
 
   for (uint32_t i = 0; i < n; ++i) ((uint32_t*)buf_data[0])[i] = i;
diff --git a/docs/Beignet.mdwn b/docs/Beignet.mdwn
index fea56b8..0c0c8be 100644
--- a/docs/Beignet.mdwn
+++ b/docs/Beignet.mdwn
@@ -38,14 +38,15 @@ with anything older.
 
 [http://llvm.org/releases/](http://llvm.org/releases/)
 
-LLVM 3.3 , 3.4 and 3.5 are supported. Till now, the recommended LLVM/CLANG version is 3.5.
-There are some severe OpenCL related regression in clang 3.4 version.
 
-**Note about LLVM 3.4**
+**The recommended LLVM/CLANG version is 3.5 and/or 3.6**
 
-* If you want to try Clang/LLVM 3.4, you need to disable terminfo:
---disable-terminfo. It's a llvm 3.4 bug.
+Based on our test result, LLVM 3.5 has best pass rate on all the test suites. LLVM 3.6
+has slightly less pass rate(caused by one front end bug at clang 3.6) than 3.5 but has
+better performance about 3% to 8% for different cases and different targets.
 
+For LLVM 3.3 and 3.4, Beignet still support them, but it may be limited to support the
+build and major functions.
 
 How to build and install
 ------------------------
@@ -238,6 +239,7 @@ Documents for OpenCL application developers
 -------------------------------------------
 - [[Cross compile|Beignet/howto/cross-compiler-howto]]
 - [[Kernel Optimization Guide|Beignet/optimization-guide]]
+- [[Libva Buffer Sharing|Beignet/howto/libva-buffer-sharing-howto]]
 
 The wiki URL is as below:
 [http://www.freedesktop.org/wiki/Software/Beignet/](http://www.freedesktop.org/wiki/Software/Beignet/)
diff --git a/docs/Beignet/Backend.mdwn b/docs/Beignet/Backend.mdwn
index 319ce81..e4259fb 100644
--- a/docs/Beignet/Backend.mdwn
+++ b/docs/Beignet/Backend.mdwn
@@ -5,10 +5,13 @@ This code base contains the compiler part of the Beignet OpenCL stack. The
 compiler is responsible to take a OpenCL language string and to compile it into
 a binary that can be executed on Intel integrated GPUs.
 
-Limitations
------------
+Status
+------
 
-Today, the compiler is far from complete. See [[here|Backend/TODO]] for a
+After two years development, beignet is mature now. It now supports all the
+OpenCL 1.2 mandatory features. Beignet get almost 100% pass rate with both
+OpenCV 3.0 test suite and the piglit opencl test suite. There are some 
+performance tuning related items remained, see [[here|Backend/TODO]] for a
 (incomplete) lists of things to do.
 
 Interface with the run-time
diff --git a/docs/NEWS.mdwn b/docs/NEWS.mdwn
index 2af2dda..27f510b 100644
--- a/docs/NEWS.mdwn
+++ b/docs/NEWS.mdwn
@@ -1,5 +1,8 @@
 # News
 
+## Mar 16, 2015
+[Beignet 1.0.2](https://01.org/beignet/downloads/beignet-1.0.2-2015-03-16) is released. This is a bug-fix release.
+
 ## Jan 19, 2015
 [Beignet 1.0.1](https://01.org/beignet/downloads/beignet-1.0.1-2015-01-19) is released. This is a bug-fix release.  
 
diff --git a/docs/howto/libva-buffer-sharing-howto.mdwn b/docs/howto/libva-buffer-sharing-howto.mdwn
new file mode 100644
index 0000000..fe64d73
--- /dev/null
+++ b/docs/howto/libva-buffer-sharing-howto.mdwn
@@ -0,0 +1,67 @@
+Libva Buffer Sharing HowTo
+==========================
+
+Beignet has extensions (clCreateBufferFromLibvaIntel/clCreateImageFromLibvaIntel)
+to share gpu buffer object with libva. So users can utilize OpenCL to do processing
+on VASurface or VABuffer without buffer copy.
+
+Prerequisite
+------------
+
+Libva api version >= 0.36.0. Please check your libva api version by command
+`pkg-config --modversion libva`.
+
+Steps
+-----
+
+In order to use the extension clCreateBufferFromLibvaIntel/clCreateImageFromLibvaIntel
+in your program, please follow the steps as below (We have added an example of using
+clCreateImageFromLibvaIntel, please read next section for details):
+
+- Get the address of this extension by the function:
+  clGetExtensionFunctionAddress("clCreateBufferFromLibvaIntel")
+  or clGetExtensionFunctionAddress("clCreateImageFromLibvaIntel")
+
+- Invoke vaAcquireBufferHandle to get VASurface/VABuffer's handle, which you want
+  to do processing by OpenCL.
+
+- Use clCreateBufferFromLibvaIntel/clCreateImageFromLibvaIntel to create corresponding
+  cl memory object from VASurface/VABuffer's handle. If you create a normal VASurface,
+  you should use clCreateImageFromLibvaIntel to create a cl image object from VASurface,
+  because VASurface is a tiling gpu buffer object. The only case you should use
+  clCreateBufferFromLibvaIntel to create a cl buffer object from VASurface is that: The
+  VASurface is created from an external untiling gpu buffer object. And You should use
+  clCreateBufferFromLibvaIntel to create a cl buffer object from VABuffer.
+
+- Use OpenCL to do post-processing.
+
+- Release this cl buffer object by clReleaseMemObject.
+
+- Unlock this VABuffer by vaReleaseBufferHandle.
+
+Sample code
+-----------
+
+We have developed an example of using clCreateImageFromLibvaIntel in examples/libva_buffer_sharing
+directory. This example read a source nv12 file to a VASurface, and create a target VASurface.
+Then create corresponding cl image objects from them. After using ocl to do a mirror effect
+post-processing on this source surface, target VASurface is shown on screen by default.
+
+- Add option -DBUILD_EXAMPLES=ON to enable building examples when running cmake, such as:
+  `> mkdir build`
+  `> cd build`
+  `> cmake -DBUILD_EXAMPLES=ON ../`
+
+- Build source code:
+  `> make`
+
+- Run:
+  `> cd examples`
+  `> . ../utests/setenv.sh`
+  `> ./example-libva_buffer_sharing`
+
+In addition, you can choose to save the result as a nv12 file. You can use gst-launch-1.0 to see
+the result. Just install gstreamer1.0-plugins-base, gstreamer1.0-plugins-bad and
+gstreamer1.0-x by apt on Ubuntu. Then running the following command:
+  `> gst-launch-1.0 filesrc location=file_name ! videoparse format=nv12 width=xxx height=xxx \
+   ! imagefreeze ! videoconvert ! video/x-raw, format=BGRx ! ximagesink`
diff --git a/examples/CMakeLists.txt b/examples/CMakeLists.txt
new file mode 100644
index 0000000..904f259
--- /dev/null
+++ b/examples/CMakeLists.txt
@@ -0,0 +1,35 @@
+EXEC_PROGRAM(ls ARGS "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva" OUTPUT_VARIABLE LS_OUTPUT)
+IF(NOT LS_OUTPUT)
+EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/.." ARGS "submodule init")
+EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/.." ARGS "submodule update")
+EXEC_PROGRAM(git "${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva" ARGS "checkout master")
+ENDIF(NOT LS_OUTPUT)
+
+INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}
+                    ${CMAKE_CURRENT_SOURCE_DIR}/../utests
+                    ${CMAKE_CURRENT_SOURCE_DIR}/../include
+                    ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva/va
+                    ${CMAKE_CURRENT_SOURCE_DIR}/thirdparty/libva/test/common
+                    ${X11_INCLUDE_DIR})
+
+link_directories (${LIBVA_LIBDIR}
+                  ${LIBVA-X11_LIBDIR})
+
+set (examples_sources
+  ../utests/utest_error.c
+  ../utests/utest_assert.cpp
+  ../utests/utest_file_map.cpp
+  ../utests/utest_helper.cpp
+  ./thirdparty/libva/test/common/va_display.c
+  ./thirdparty/libva/test/common/va_display_x11.c)
+
+
+ADD_DEFINITIONS(-DHAVE_VA_X11)
+ADD_DEFINITIONS(-DINPUT_NV12_DEFAULT="${CMAKE_CURRENT_SOURCE_DIR}/libva_buffer_sharing/256_128.nv12")
+
+ADD_LIBRARY(va_ocl_basic SHARED ${examples_sources})
+
+TARGET_LINK_LIBRARIES(va_ocl_basic cl m va va-x11 ${X11_X11_LIB})
+
+ADD_EXECUTABLE(example-libva_buffer_sharing ./libva_buffer_sharing/libva_buffer_sharing.cpp)
+TARGET_LINK_LIBRARIES(example-libva_buffer_sharing va_ocl_basic)
diff --git a/examples/libva_buffer_sharing/256_128.nv12 b/examples/libva_buffer_sharing/256_128.nv12
new file mode 100644
index 0000000..230f4cf
--- /dev/null
+++ b/examples/libva_buffer_sharing/256_128.nv12
@@ -0,0 +1 @@
+FDFGGGGIIIJHKLKLNLLOMOOOPRA)BNQPRRRSRRUTVXVTUVXWWYVXWXWYXXZYZYYYZZ[[[\[ZZ\[Z\\^]]]]]^]^^^^^____`_`_`_```a``acaaacbcbdcabdbccbdcdcdcadcdbccdbccdbdddccddcdcdabcbcbcbccbbcaabdcbbLhiututtuuusqomknopsqrstuuututsrqoponnmlkkkjj��������vWY[ZZZZZ[YZYXXYWWWWX[YSg_[CGGEHGHHIJHILJLLLNNMMOPOPO:(EPPRQRSSSTUTTTVWVVVVXWXVYXXXYXYYZYZZZZY[[Z[Z[[]\[[[]\\^]]^_]__^^^____a``aabaabababbaabaabcacbbabbcccddddcbcddbdcddccdddcdccdcdbdbccbcdcccbbcbcbbdb`Lhiuuuurqopqrsqtttuuuutvsrrqpoonmmlijiihfddb`��������wXX[Z[Z [...]
\ No newline at end of file
diff --git a/examples/libva_buffer_sharing/libva_buffer_sharing.cpp b/examples/libva_buffer_sharing/libva_buffer_sharing.cpp
new file mode 100644
index 0000000..88084fb
--- /dev/null
+++ b/examples/libva_buffer_sharing/libva_buffer_sharing.cpp
@@ -0,0 +1,465 @@
+/*
+ * Copyright (c) 2012, 2015 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 <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <errno.h>
+
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <va/va.h>
+#include "va_display.h"
+
+#include <va/va_drmcommon.h>
+#include "utest_helper.hpp"
+
+#include <getopt.h>             /* getopt_long() */
+
+typedef cl_mem (OCLCREATEIMAGEFROMLIBVAINTEL)(cl_context, const cl_libva_image *, cl_int *);
+OCLCREATEIMAGEFROMLIBVAINTEL *oclCreateImageFromLibvaIntel = NULL;
+
+const char *input_nv12;
+const char *output_nv12;
+int frame_size;
+int picture_width, picture_height;
+unsigned char *newImageBuffer;
+VADisplay	va_dpy;
+cl_int cl_status;
+VAStatus va_status;
+bool putsurface=true;
+
+static const char short_options[] = "i:r:o:h";
+
+static const struct option
+long_options[] = {
+  { "input", required_argument, NULL, 'i' },
+  { "help",   no_argument,       NULL, 'h' },
+  { "resolution", required_argument,       NULL, 'r' },
+  { "output",  required_argument, NULL, 'o' },
+  { 0, 0, 0, 0 }
+};
+
+#define WIDTH_DEFAULT 256
+#define HEIGHT_DEFAULT 128
+
+#define CHECK_VASTATUS(va_status,func)                                  \
+  if (va_status != VA_STATUS_SUCCESS) {                                   \
+    fprintf(stderr, "status = %d, %s:%s (%d) failed,exit\n",va_status, __func__, func, __LINE__); \
+    exit(1);                                                            \
+  }
+
+#define CHECK_CLSTATUS(status,func)                                  \
+  if (status != CL_SUCCESS) {                                   \
+    fprintf(stderr, "status = %d, %s:%s (%d) failed,exit\n", status, __func__, func, __LINE__); \
+    exit(1);                                                            \
+  }
+
+static void usage(FILE *fp, int argc, char **argv)
+{
+  fprintf(fp,
+      "\n"
+      "This example aims to demostrate the usage of gpu buffer sharing between libva and Beignet.\n"
+      "The result will be shown on screen if you haven't specified -o option.\n"
+      "The input and output file are nv12 format.\n"
+      "Please use the following command to see these files:\n"
+      "gst-launch-1.0 filesrc location=file_name ! videoparse format=nv12 width=xxx height=xxx ! imagefreeze ! videoconvert ! video/x-raw, format=BGRx ! ximagesink\n"
+      "(Please install gstreamer1.0-plugins-base, gstreamer1.0-plugins-bad, \n"
+      " gstreamer1.0-x by apt on Ubuntu, in order to use gst-launch-1.0)\n"
+      "For more details, please read docs/howto/libva-buffer-sharing-howto.mdwn.\n"
+      "\nUsage: %s [options]\n\n"
+      "Options:\n"
+      "-i | --input=<file_name>           Specify input nv12 file name like /home/xxx/in.nv12\n"
+      "-h | --help                        Print this message\n"
+      "-r | --resolution=<width,height>   Set input resolution\n"
+      "-o | --output=<file_name>          Specify input nv12 file name like /home/xxx/out.nv12\n"
+      "",
+      argv[0]);
+}
+
+static void analyse_args(int argc, char *argv[])
+{
+  input_nv12 = NULL;
+  picture_width = 0;
+  picture_height = 0;
+  output_nv12 = NULL;
+  putsurface = true;
+
+  int c, idx;
+  for (;;) {
+
+    c = getopt_long(argc, argv,
+        short_options, long_options, &idx);
+
+    if (-1 == c)
+      break;
+
+    switch (c) {
+      case 0: /* getopt_long() flag */
+        break;
+
+      case 'i':
+        input_nv12 = optarg;
+        break;
+
+      case '?':
+      case 'h':
+        usage(stdout, argc, argv);
+        exit(0);
+
+      case 'r':
+        sscanf(optarg, "%d,%d", &picture_width, &picture_height);
+        break;
+
+      case 'o':
+        output_nv12 = optarg;
+        putsurface = false;
+        break;
+
+      default:
+        usage(stderr, argc, argv);
+        exit(1);
+    }
+  }
+
+  if(!input_nv12){
+    input_nv12 = INPUT_NV12_DEFAULT;
+  }
+  if(picture_width == 0 && picture_height == 0){
+    picture_width = WIDTH_DEFAULT;
+    picture_height = HEIGHT_DEFAULT;
+  }
+  return;
+}
+
+
+static void initialize_va_ocl(){
+  int major_ver, minor_ver;
+
+  printf("\n***********************libva info: ***********************\n");
+  fflush(stdout);
+  va_dpy = va_open_display();
+  va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+  CHECK_VASTATUS(va_status, "vaInitialize");
+
+  //ocl initialization: basic & create kernel & get extension
+  printf("\n***********************OpenCL info: ***********************\n");
+  if ((cl_status = cl_test_init("runtime_mirror_effect.cl", "runtime_mirror_effect", SOURCE)) != 0){
+    fprintf(stderr, "cl_test_init error\n");
+    exit(1);
+  }
+
+#ifdef CL_VERSION_1_2
+  oclCreateImageFromLibvaIntel = (OCLCREATEIMAGEFROMLIBVAINTEL *)clGetExtensionFunctionAddressForPlatform(platform, "clCreateImageFromLibvaIntel");
+#else
+  oclCreateImageFromLibvaIntel = (OCLCREATEIMAGEFROMLIBVAINTEL *)clGetExtensionFunctionAddress("clCreateImageFromLibvaIntel");
+#endif
+  if(!oclCreateImageFromLibvaIntel){
+    fprintf(stderr, "Failed to get extension clCreateImageFromLibvaIntel\n");
+    exit(1);
+  }
+}
+
+static void upload_nv12_to_surface(FILE *nv12_fp, VASurfaceID surface_id)
+{
+  VAImage surface_image;
+  void *surface_p = NULL;
+  unsigned char *y_src, *u_src;
+  unsigned char *y_dst, *u_dst;
+  int y_size = picture_width * picture_height;
+  int row, col;
+  size_t n_items;
+
+  n_items = fread(newImageBuffer, frame_size, 1, nv12_fp);
+  if(n_items != 1){
+    fprintf(stderr, "Haven't read expected size data from file\n");
+    exit(1);
+  }
+
+  va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
+  CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+  va_status = vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
+  CHECK_VASTATUS(va_status,"vaMapBuffer");
+
+  y_src = newImageBuffer;
+  u_src = newImageBuffer + y_size; /* U offset for NV12 */
+
+  y_dst = (unsigned char *)surface_p + surface_image.offsets[0];
+  u_dst = (unsigned char *)surface_p + surface_image.offsets[1]; /* U offset for NV12 */
+
+  /* Y plane */
+  for (row = 0; row < surface_image.height; row++) {
+    memcpy(y_dst, y_src, surface_image.width);
+    y_dst += surface_image.pitches[0];
+    y_src += picture_width;
+  }
+
+  assert(surface_image.format.fourcc == VA_FOURCC_NV12); /* UV plane */
+  for (row = 0; row < surface_image.height / 2; row++) {
+    for (col = 0; col < surface_image.width / 2; col++) {
+      u_dst[col * 2] = u_src[col * 2];
+      u_dst[col * 2 + 1] = u_src[col * 2 + 1];
+    }
+    u_dst += surface_image.pitches[1];
+    u_src += picture_width;
+  }
+
+  vaUnmapBuffer(va_dpy, surface_image.buf);
+  vaDestroyImage(va_dpy, surface_image.image_id);
+}
+
+static void create_y_image_object_from_libva(VAImage *surface_image,
+                                             VABufferInfo *buf_info,
+                                             cl_mem *yio_p)
+{
+  cl_libva_image info_image;
+  info_image.bo_name = buf_info->handle;
+  info_image.offset = surface_image->offsets[0];
+  info_image.width = surface_image->width;
+  info_image.height = surface_image->height;
+  info_image.fmt.image_channel_order = CL_R;
+  info_image.fmt.image_channel_data_type = CL_UNSIGNED_INT8;
+  info_image.row_pitch = surface_image->pitches[0];
+  *yio_p = oclCreateImageFromLibvaIntel(ctx, &info_image, &cl_status);
+  CHECK_CLSTATUS(cl_status, "oclCreateImageFromLibvaIntel");
+  printf("\nSuccessfully create ocl image object from y plane of VASurface...\n");
+}
+
+static void create_uv_image_object_from_libva(VAImage *surface_image,
+                                              VABufferInfo *buf_info,
+                                              cl_mem *yio_p)
+{
+  cl_libva_image info_image;
+  info_image.bo_name = buf_info->handle;
+  info_image.offset = surface_image->offsets[1];
+  info_image.width = surface_image->width / 2;
+  info_image.height = surface_image->height / 2;
+  info_image.fmt.image_channel_order = CL_R;
+  info_image.fmt.image_channel_data_type = CL_UNSIGNED_INT16;
+  info_image.row_pitch = surface_image->pitches[1];
+  *yio_p = oclCreateImageFromLibvaIntel(ctx, &info_image, &cl_status);
+  CHECK_CLSTATUS(cl_status, "oclCreateImageFromLibvaIntel");
+  printf("\nSuccessfully create ocl image object from uv plane of VASurface...\n");
+}
+
+static void store_surface_to_nv12(VASurfaceID surface_id, FILE *nv12_fp)
+{
+  VAImage surface_image;
+  void *surface_p = NULL;
+  unsigned char *y_src, *u_src;
+  unsigned char *y_dst, *u_dst;
+  int y_size = picture_width * picture_height;
+  int row, col;
+
+  va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
+  CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+  va_status = vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
+  CHECK_VASTATUS(va_status,"vaMapBuffer");
+
+  y_src = (unsigned char *)surface_p + surface_image.offsets[0];
+  u_src = (unsigned char *)surface_p + surface_image.offsets[1]; /* U offset for NV12 */
+
+  y_dst = newImageBuffer;
+  u_dst = newImageBuffer + y_size; /* U offset for NV12 */
+
+  /* Y plane */
+  for (row = 0; row < surface_image.height; row++) {
+    memcpy(y_dst, y_src, surface_image.width);
+    y_src += surface_image.pitches[0];
+    y_dst += picture_width;
+  }
+
+  assert(surface_image.format.fourcc == VA_FOURCC_NV12); /* UV plane */
+  for (row = 0; row < surface_image.height / 2; row++) {
+    for (col = 0; col < surface_image.width / 2; col++) {
+      u_dst[col * 2] = u_src[col * 2];
+      u_dst[col * 2 + 1] = u_src[col * 2 + 1];
+    }
+    u_src += surface_image.pitches[1];
+    u_dst += picture_width;
+  }
+
+  fwrite(newImageBuffer, frame_size, 1, nv12_fp);
+
+  vaUnmapBuffer(va_dpy, surface_image.buf);
+  vaDestroyImage(va_dpy, surface_image.image_id);
+}
+
+static void load_process_store_nv12()
+{
+  frame_size = picture_width * picture_height +  ((picture_width * picture_height) >> 1) ;
+  newImageBuffer = (unsigned char *)malloc(frame_size);
+
+  VASurfaceID src_surface_id;
+  VASurfaceAttrib forcc;
+  forcc.type =VASurfaceAttribPixelFormat;
+  forcc.flags=VA_SURFACE_ATTRIB_SETTABLE;
+  forcc.value.type=VAGenericValueTypeInteger;
+  forcc.value.value.i = VA_FOURCC_NV12;
+  va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420,
+                               picture_width, picture_height,
+                               &src_surface_id, 1, &forcc, 1);
+  CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+  //load
+  FILE *in_nv12_fp;
+  in_nv12_fp = fopen(input_nv12, "rb");
+  if (in_nv12_fp == NULL){
+    fprintf(stderr, "Can't open input nv12 file\n");
+    exit(1);
+  }
+  fseek(in_nv12_fp, 0l, SEEK_END);
+  off_t file_size = ftell(in_nv12_fp);
+
+  if ((file_size < frame_size) || (file_size % frame_size) ) {
+    fclose(in_nv12_fp);
+    fprintf(stderr, "The nv12 file's size is not correct\n");
+    exit(1);
+  }
+  fseek(in_nv12_fp, 0l, SEEK_SET);
+  upload_nv12_to_surface(in_nv12_fp, src_surface_id);
+  fclose(in_nv12_fp);
+  printf("\nSuccessfully load source nv12 file(\"%s\") to VASurface...\n", input_nv12);
+
+
+  //create two corresponding ocl image objects from source VASurface
+  VAImage src_surface_image;
+  va_status = vaDeriveImage(va_dpy, src_surface_id, &src_surface_image);
+  CHECK_VASTATUS(va_status,"vaDeriveImage");
+  VABufferInfo buf_info;
+  buf_info.mem_type = VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM;
+  va_status = vaAcquireBufferHandle(va_dpy, src_surface_image.buf, &buf_info);
+  CHECK_VASTATUS(va_status,"vaAcquireBufferHandle");
+  cl_mem src_y, src_uv;
+  create_y_image_object_from_libva(&src_surface_image, &buf_info, &src_y);
+  OCL_CALL (clSetKernelArg, kernel, 0, sizeof(cl_mem), &src_y);
+
+  create_uv_image_object_from_libva(&src_surface_image, &buf_info, &src_uv);
+  OCL_CALL (clSetKernelArg, kernel, 1, sizeof(cl_mem), &src_uv);
+
+
+  //create one target VASurface & create corresponding target ocl image object from it
+  VASurfaceID dst_surface_id;
+  va_status = vaCreateSurfaces(va_dpy,VA_RT_FORMAT_YUV420,
+                               picture_width,picture_height,
+                               &dst_surface_id, 1, &forcc, 1);
+  CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+  VAImage dst_surface_image;
+  va_status = vaDeriveImage(va_dpy, dst_surface_id, &dst_surface_image);
+  CHECK_VASTATUS(va_status,"vaDeriveImage");
+  va_status = vaAcquireBufferHandle(va_dpy, dst_surface_image.buf, &buf_info);
+  CHECK_VASTATUS(va_status,"vaAcquireBufferHandle");
+  cl_mem dst_y, dst_uv;
+  create_y_image_object_from_libva(&dst_surface_image, &buf_info, &dst_y);
+  OCL_CALL (clSetKernelArg, kernel, 2, sizeof(cl_mem), &dst_y);
+  create_uv_image_object_from_libva(&dst_surface_image, &buf_info, &dst_uv);
+  OCL_CALL (clSetKernelArg, kernel, 3, sizeof(cl_mem), &dst_uv);
+  OCL_CALL (clSetKernelArg, kernel, 4, sizeof(int), &picture_height);
+
+
+  size_t global_size[2];
+  global_size[0] = picture_width;
+  global_size[1] = picture_height;
+  OCL_CALL (clEnqueueNDRangeKernel, queue, kernel, 2, NULL,
+            global_size, NULL, 0, NULL, NULL);
+  OCL_CALL (clFinish, queue);
+  printf("\nSuccessfully use ocl to do processing...\n");
+
+  va_status = vaReleaseBufferHandle(va_dpy, src_surface_image.buf);
+  CHECK_VASTATUS(va_status,"vaReleaseBufferHandle");
+  va_status = vaReleaseBufferHandle(va_dpy, dst_surface_image.buf);
+  CHECK_VASTATUS(va_status,"vaReleaseBufferHandle");
+
+  OCL_CALL (clReleaseMemObject, src_y);
+  OCL_CALL (clReleaseMemObject, src_uv);
+  OCL_CALL (clReleaseMemObject, dst_y);
+  OCL_CALL (clReleaseMemObject, dst_uv);
+  vaDestroyImage(va_dpy, src_surface_image.image_id);
+  vaDestroyImage(va_dpy, dst_surface_image.image_id);
+  cl_kernel_destroy();
+  cl_ocl_destroy();
+
+
+  if (putsurface) {
+    VARectangle src_rect, dst_rect;
+
+    src_rect.x      = 0;
+    src_rect.y      = 0;
+    src_rect.width  = picture_width;
+    src_rect.height = picture_height;
+    dst_rect        = src_rect;
+
+    //XXX There is a bug of X server which will cause va_put_surface showing
+    //incorrect result. So call va_put_surface twice times to workaround this
+    //bug.
+    va_status = va_put_surface(va_dpy, dst_surface_id, &src_rect, &dst_rect);
+    va_status = va_put_surface(va_dpy, dst_surface_id, &src_rect, &dst_rect);
+    CHECK_VASTATUS(va_status, "vaPutSurface");
+    printf("press any key to exit\n");
+    getchar();
+  }
+  else{
+    //store
+    FILE *out_nv12_fp;
+    out_nv12_fp = fopen(output_nv12,"wb");
+    if ( out_nv12_fp == NULL){
+      fprintf(stderr, "Can't open output nv12 file\n");
+      exit(1);
+    }
+    store_surface_to_nv12(dst_surface_id, out_nv12_fp);
+    fclose(out_nv12_fp);
+    printf("\nSuccessfully store VASurface to dst nv12 file(\"%s\")...\n", output_nv12);
+    printf("\nNote: The input and output file are nv12 format.\n");
+    printf("Please use the following command to see the result:\n");
+    printf("gst-launch-1.0 filesrc location=%s ! videoparse format=nv12 width=%d height=%d ! imagefreeze ! videoconvert ! video/x-raw, format=BGRx ! ximagesink\n", output_nv12, picture_width, picture_height);
+    printf("(Please install gstreamer1.0-plugins-base, gstreamer1.0-plugins-bad,\ngstreamer1.0-x by apt on Ubuntu, in order to use gst-launch-1.0)\n");
+  }
+
+  //release resources
+  vaDestroySurfaces(va_dpy,&src_surface_id,1);
+  vaDestroySurfaces(va_dpy,&dst_surface_id,1);
+
+  vaTerminate(va_dpy);
+  va_close_display(va_dpy);
+}
+
+
+int main(int argc, char *argv[])
+{
+  analyse_args(argc, argv);
+
+  initialize_va_ocl();
+
+  load_process_store_nv12();
+
+  printf("\nExample run successfully!\n");
+
+  return 0;
+}
diff --git a/examples/thirdparty/libva/.cvsignore b/examples/thirdparty/libva/.cvsignore
new file mode 100644
index 0000000..68156f9
--- /dev/null
+++ b/examples/thirdparty/libva/.cvsignore
@@ -0,0 +1,3 @@
+*~
+Makefile.in
+Makefile
diff --git a/examples/thirdparty/libva/.gitignore b/examples/thirdparty/libva/.gitignore
new file mode 100644
index 0000000..5bd4776
--- /dev/null
+++ b/examples/thirdparty/libva/.gitignore
@@ -0,0 +1,63 @@
+*~
+*.o
+*.lo
+*.la
+*.orig
+*.rej
+*.loT
+*.bin
+*.pc
+.deps
+.libs
+Makefile
+Makefile.in
+TAGS
+aclocal.m4
+autom4te.cache
+compile
+config.guess
+config.h
+config.h.in
+config.log
+config.status
+config.sub
+configure
+debian.upstream/changelog
+debian.upstream/control
+debian.upstream/libva-drm*.install
+debian.upstream/libva-egl*.install
+debian.upstream/libva-glx*.install
+debian.upstream/libva-wayland*.install
+debian.upstream/libva-x11*.install
+debian.upstream/libva[0-9]*.install
+depcomp
+install-sh
+libtool
+ltmain.sh
+/m4
+missing
+stamp-h1
+/test/basic/test_01
+/test/basic/test_02
+/test/basic/test_03
+/test/basic/test_04
+/test/basic/test_05
+/test/basic/test_06
+/test/basic/test_07
+/test/basic/test_08
+/test/basic/test_09
+/test/basic/test_10
+/test/basic/test_11
+/test/decode/loadjpeg
+/test/decode/mpeg2vldemo
+/test/egl/va_egl
+/test/encode/avcenc
+/test/encode/h264encode
+/test/encode/mpeg2vaenc
+/test/putsurface/putsurface
+/test/putsurface/putsurface_wayland
+/test/transcode/mpeg2transcode
+/test/v4l_h264/decode/decode
+/test/v4l_h264/encode/encode
+/test/vainfo/vainfo
+/va/va_version.h
diff --git a/examples/thirdparty/libva/Android.mk b/examples/thirdparty/libva/Android.mk
new file mode 100644
index 0000000..5cbb9d8
--- /dev/null
+++ b/examples/thirdparty/libva/Android.mk
@@ -0,0 +1,4 @@
+# Recursive call sub-folder Android.mk
+#
+
+ include $(call all-subdir-makefiles)
diff --git a/examples/thirdparty/libva/COPYING b/examples/thirdparty/libva/COPYING
new file mode 100644
index 0000000..900e775
--- /dev/null
+++ b/examples/thirdparty/libva/COPYING
@@ -0,0 +1,19 @@
+    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/examples/thirdparty/libva/Makefile.am b/examples/thirdparty/libva/Makefile.am
new file mode 100644
index 0000000..beac7e9
--- /dev/null
+++ b/examples/thirdparty/libva/Makefile.am
@@ -0,0 +1,47 @@
+# Copyright (c) 2007 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.
+
+ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
+
+AUTOMAKE_OPTIONS = foreign
+
+SUBDIRS = va dummy_drv_video pkgconfig test debian.upstream doc
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = \
+	aclocal.m4 compile config.guess config.sub \
+	configure depcomp install-sh ltmain.sh     \
+	Makefile.in missing
+
+DEB_BUILDDIR = debian.build
+
+deb:
+	@[ -d debian ] || ln -s debian.upstream debian
+	dpkg-buildpackage -rfakeroot -uc -us
+
+deb.upstream: dist
+	-mkdir -p $(DEB_BUILDDIR)
+	cd $(DEB_BUILDDIR)				&& \
+	rm -rf $(PACKAGE)-$(VERSION)			&& \
+	tar zxvf ../$(PACKAGE)-$(VERSION).tar.gz	&& \
+	cd $(PACKAGE)-$(VERSION)			&& \
+	$(MAKE) deb -f Makefile.am
diff --git a/examples/thirdparty/libva/NEWS b/examples/thirdparty/libva/NEWS
new file mode 100644
index 0000000..93cdf6d
--- /dev/null
+++ b/examples/thirdparty/libva/NEWS
@@ -0,0 +1,97 @@
+libva NEWS -- summary of user visible changes.  2014-12-28
+Copyright (C) 2009-2014 Intel Corporation
+
+Version 1.5.0 - 28.Dec.2014
+* API: add support for HEVC decoding
+* API: extend JPEG encoding data structures and add configuration attribute for JPEG encoding
+* Add a unit test for JPEG encoding (Sirisha Muppavarapu)
+* Add support for HEVC decoding and JPEG encoding in VA trace utility
+* Fix out of tree builds (Emil Velikov)
+* VA/X11: fix BadDrawable issue when calling vaTerminate() after the pixmaps have been destroyed (Lionel Landwerlin)
+
+Version 1.4.1 - 24.Oct.2014
+* Add support for DRM Render-Nodes (Andrey Larionov)
+
+Version 1.4.0 - 30.Sep.2014
+* API: add support for VP8 encoding
+* API: add H.264 MVC profiles for decoding and encoding
+* API: add buffer export interfaces for interop with 3rdparty APIs (EGL, OCL)
+* API: add suppor for encoder quality level
+* API: add attribute usage hint flag
+* Fix build on 64-bit versions of Android (Qiming Shi)
+* Assorted fixes to the VA fool and trace modules (Austin Yuan)
+
+Version 1.3.1 - 09.May.2014
+* API: fix VA_ENC_PACKED_HEADER_RAW_DATA value
+* API: add STE filter to the VPP pipeline
+* Update doxygen tags in libva
+* Fix doc/Makefile.am
+* A workaround for https://bugs.freedesktop.org/show_bug.cgi?id=76755
+
+Version 1.3.0 - 24.Mar.2014
+* API: add support for VP8 decoding
+* API: drop VAEntrypointMax enumeration
+* Enhancement for VA trace utility
+
+Version 1.2.1 - 27.Jun.2013
+* Fix https://bugs.freedesktop.org/show_bug.cgi?id=66221 
+* Add back VA_DRIVER_INIT_FUNC definition for testing
+
+Version 1.2.0 - 25.Jun.2013
+* API: new H.264 encoding API for Main and High profiles
+* API: add support for MPEG-2 encoding
+* API: add video processing interfaces
+* API: add vaQuerySurfaceAttributes() to query surface attributes supported by the underlying drivers.
+* API: new version of vaCreateSurfaces()
+* API: add new surface attributes to enable VA surface creation from external buffer
+* API: add new RT formats and fourcc codes
+* Refine VA trace utility
+* Refine H.264 encoding test cases {avcenc, h264enc}
+* A new test case for MPEG-2 encoding
+* A lot of bug fixes
+
+Version 1.1.1 - 19.Mar.2013
+* Support wayland 1.0 protocol (Rob Bradford)
+* Automake 1.13 fixups (Armin K)
+
+Version 1.1.0 - 04.Oct.2012
+* API: add Wayland support
+* API: add raw DRM support for headless pipelines
+* Fix generic VA/GLX implementation for newer cluttersink versions
+* Fix threading issues in VA objects reference code (+Krzysztof Kotlenga)
+* Fix build on Android Ice Cream Sandwich (+Haitao Huang, Daniel Charles)
+
+Version 1.0.16 - 02.Aug.2012
+* API: data structures for JPEG Baseline decoding
+* API: clarify the definition of slice_data_bit_offset
+* Add a simple test case for JPEG decoding
+
+Version 1.0.15 - 28.Oct.2011
+* API: make {Top,Bottom}FieldOrderCnt signed (Yi Wang)
+* Add auto-generated Debian packaging
+* Refine VA trace & VA fool utilities
+* Move i965 driver to a specific repository (vaapi/intel-driver)
+* Fix DSO link issue in tests
+* Fix fglrx driver name detection
+* Fix API vs. DSO vs. package versioning
+
+Version 1.0.14 - 28.Jul.2011
+* API: rename VA_DECODE_ERROR_TYPE to VADecodeErrorType
+* Fix memory leaks (Edgar Hucek)
+* Fix VA trace logs (Alexander Osin)
+* Fix vaTerminate() with some applications, e.g. GStreamer
+
+Version 1.0.13 - 30.May.2011
+* API: fix VA_ROTATION_270 definition
+* Add a simple H.264 encoder "avcenc" (Chang Zhou)
+* Fix VA tracer (Alexander Osin)
+* Fix vaBufferInfo() interface (Alexander Osin)
+
+Version 1.0.12 - 01.Apr.2011
+* API: add VARenderMode interface to select overlay or GPU rendering mode
+* API: add VARenderDevice interface to allow rendering to an external device
+* API: add VADisplayAttribOverlay{ColorKey,AutoPaintColorKey} interface
+* Fix build issues on Android 2.3
+
+Changes for older versions can be found in git log or previously
+released packages.
diff --git a/examples/thirdparty/libva/autogen.sh b/examples/thirdparty/libva/autogen.sh
new file mode 100755
index 0000000..af7d03c
--- /dev/null
+++ b/examples/thirdparty/libva/autogen.sh
@@ -0,0 +1,51 @@
+#!/bin/sh
+# Copyright (c) 2007 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.
+
+PROJECT="libva"
+
+test -n "$srcdir" || srcdir="`dirname \"$0\"`"
+test -n "$srcdir" || srcdir=.
+
+if ! test -f "$srcdir/configure.ac"; then
+    echo "Failed to find the top-level $PROJECT directory"
+    exit 1
+fi
+
+olddir="`pwd`"
+cd "$srcdir"
+
+mkdir -p m4
+
+AUTORECONF=`which autoreconf`
+if test -z $AUTORECONF; then
+    echo "*** No autoreconf found ***"
+    exit 1
+else
+    autoreconf -v --install || exit $?
+fi
+
+cd "$olddir"
+
+if test -z "$NOCONFIGURE"; then
+    $srcdir/configure "$@" && echo "Now type 'make' to compile $PROJECT."
+fi
diff --git a/examples/thirdparty/libva/build/gen_version.sh b/examples/thirdparty/libva/build/gen_version.sh
new file mode 100644
index 0000000..8864f7d
--- /dev/null
+++ b/examples/thirdparty/libva/build/gen_version.sh
@@ -0,0 +1,54 @@
+# Copyright (c) 2007 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.
+
+#!/bin/sh
+
+libva_topdir="$1"
+version_h_in="$2"
+
+parse_configure_ac() {
+    sed -n "/^m4_define.*${1}.*\[\([0-9]*\)\].*/s//\1/p" ${libva_topdir}/configure.ac
+}
+
+parse_configure() {
+    sed -n "/^${1}=\([0-9]*\)/s//\1/p" ${libva_topdir}/configure
+}
+
+if test -f "${libva_topdir}/configure.ac"; then
+    va_api_major_version=`parse_configure_ac va_api_major_version`
+    va_api_minor_version=`parse_configure_ac va_api_minor_version`
+    va_api_micro_version=`parse_configure_ac va_api_micro_version`
+elif test -f "${libva_topdir}/configure"; then
+    va_api_major_version=`parse_configure VA_API_MAJOR_VERSION`
+    va_api_minor_version=`parse_configure VA_API_MINOR_VERSION`
+    va_api_micro_version=`parse_configure VA_API_MICRO_VERSION`
+else
+    echo "ERROR: configure or configure.ac file not found in $libva_topdir/"
+    exit 1
+fi
+va_api_version="$va_api_major_version.$va_api_minor_version.$va_api_micro_version"
+
+sed -e "s/@VA_API_MAJOR_VERSION@/${va_api_major_version}/" \
+    -e "s/@VA_API_MINOR_VERSION@/${va_api_minor_version}/" \
+    -e "s/@VA_API_MICRO_VERSION@/${va_api_micro_version}/" \
+    -e "s/@VA_API_VERSION@/${va_api_version}/" \
+    $version_h_in
diff --git a/examples/thirdparty/libva/configure.ac b/examples/thirdparty/libva/configure.ac
new file mode 100644
index 0000000..e37277d
--- /dev/null
+++ b/examples/thirdparty/libva/configure.ac
@@ -0,0 +1,359 @@
+# Copyright (c) 2007 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.
+
+# VA-API version
+# - increment major for any ABI change (which shall not occur!)
+# - increment minor for any interface change (e.g. new/modified function)
+# - increment micro for any other change (new flag, new codec definition, etc.)
+# - reset micro version to zero when minor version is incremented
+# - reset minor version to zero when major version is incremented
+m4_define([va_api_major_version], [0])
+m4_define([va_api_minor_version], [37])
+m4_define([va_api_micro_version], [0])
+
+m4_define([va_api_version],
+          [va_api_major_version.va_api_minor_version.va_api_micro_version])
+
+# libva package version number, (as distinct from shared library version)
+# XXX: we want the package version to remain at 1.0.x for VA-API 0.32.y
+#
+# - major version is automatically generated from VA-API major version
+# - minor version is automatically generated from VA-API minor version
+# - increment micro for any library release
+# - reset micro version to zero when VA-API major or minor version is changed
+m4_define([libva_major_version], [m4_eval(va_api_major_version + 1)])
+m4_define([libva_minor_version], [m4_eval(va_api_minor_version - 32)])
+m4_define([libva_micro_version], [1])
+m4_define([libva_pre_version],   [1])
+
+m4_define([libva_version],
+          [libva_major_version.libva_minor_version.libva_micro_version])
+m4_if(libva_pre_version, [0], [], [
+m4_append([libva_version], libva_pre_version, [.pre])
+])
+
+# libva library version number (generated, do not change)
+# XXX: we want the SONAME to remain at libva.so.1 for VA-API major == 0
+#
+# The library name is generated libva.<x>.<y>.0 where
+# <x> = VA-API major version + 1
+# <y> = 100 * VA-API minor version + VA-API micro version
+#
+# For example:
+# VA-API 0.32.0 generates libva.so.1.3200.0
+# VA-API 0.34.1 generates libva.so.1.3401.0
+# VA-API 1.2.13 generates libva.so.2.213.0
+m4_define([libva_interface_bias], [m4_eval(va_api_major_version + 1)])
+m4_define([libva_interface_age],  [0])
+m4_define([libva_binary_age],
+          [m4_eval(100 * va_api_minor_version + va_api_micro_version - libva_interface_age)])
+
+m4_define([libva_lt_current],
+          [m4_eval(100 * va_api_minor_version + va_api_micro_version + libva_interface_bias)])
+m4_define([libva_lt_revision],
+          [m4_eval(libva_interface_age)])
+m4_define([libva_lt_age],
+          [m4_eval(libva_binary_age - libva_interface_age)])
+
+# libdrm minimun version requirement
+m4_define([libdrm_version], [2.4])
+
+# Wayland minimum version number
+m4_define([wayland_api_version], [1.0.0])
+
+AC_PREREQ(2.57)
+AC_INIT([libva], [libva_version], [waldo.bastian at intel.com], libva)
+AC_CONFIG_SRCDIR([Makefile.am])
+AC_CONFIG_MACRO_DIR([m4])
+AM_INIT_AUTOMAKE([dist-bzip2])
+
+AC_CONFIG_HEADERS([config.h])
+m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
+
+TODAY="`LC_ALL=C date +'%a, %d %b %Y %X %z'`"
+AC_SUBST(TODAY)
+
+VA_API_MAJOR_VERSION=va_api_major_version
+VA_API_MINOR_VERSION=va_api_minor_version
+VA_API_MICRO_VERSION=va_api_micro_version
+VA_API_VERSION=va_api_version
+AC_SUBST(VA_API_MAJOR_VERSION)
+AC_SUBST(VA_API_MINOR_VERSION)
+AC_SUBST(VA_API_MICRO_VERSION)
+AC_SUBST(VA_API_VERSION)
+
+LIBVA_MAJOR_VERSION=libva_major_version
+LIBVA_MINOR_VERSION=libva_minor_version
+LIBVA_MICRO_VERSION=libva_micro_version
+LIBVA_VERSION=libva_version
+AC_SUBST(LIBVA_MAJOR_VERSION)
+AC_SUBST(LIBVA_MINOR_VERSION)
+AC_SUBST(LIBVA_MICRO_VERSION)
+AC_SUBST(LIBVA_VERSION)
+
+LIBVA_LT_CURRENT=libva_lt_current
+LIBVA_LT_REV=libva_lt_revision
+LIBVA_LT_AGE=libva_lt_age
+LIBVA_LT_VERSION="$LIBVA_LT_CURRENT:$LIBVA_LT_REV:$LIBVA_LT_AGE"
+LIBVA_LT_LDFLAGS="-version-info $LIBVA_LT_VERSION"
+AC_SUBST(LIBVA_LT_VERSION)
+AC_SUBST(LIBVA_LT_LDFLAGS)
+
+AC_ARG_ENABLE(docs,
+    [AC_HELP_STRING([--enable-docs],
+                    [build Doxygen documentation @<:@default=no@:>@])],
+    [], [enable_docs="no"])
+
+AC_ARG_ENABLE(drm,
+    [AC_HELP_STRING([--enable-drm],
+                    [build with VA/DRM API support @<:@default=yes@:>@])],
+    [], [enable_drm="yes"])
+
+AC_ARG_ENABLE(x11,
+    [AC_HELP_STRING([--enable-x11],
+                    [build with VA/X11 API support @<:@default=yes@:>@])],
+    [], [enable_x11="yes"])
+
+AC_ARG_ENABLE(glx,
+    [AC_HELP_STRING([--enable-glx],
+                    [build with VA/GLX API support @<:@default=yes@:>@])],
+    [], [enable_glx="yes"])
+
+AC_ARG_ENABLE(egl,
+    [AC_HELP_STRING([--enable-egl],
+                    [build with VA/EGL API support @<:@default=yes@:>@])],
+    [], [enable_egl="yes"])
+
+AC_ARG_ENABLE([wayland],
+    [AC_HELP_STRING([--enable-wayland],
+                    [build with VA/Wayland API support @<:@default=yes@:>@])],
+    [], [enable_wayland="yes"])
+
+AC_ARG_ENABLE(dummy-driver,
+    [AC_HELP_STRING([--enable-dummy-driver],
+                    [build dummy video driver @<:@default=yes@:>@])],
+    [], [enable_dummy_driver="yes"])
+AM_CONDITIONAL(BUILD_DUMMY_DRIVER, test x$enable_dummy_driver = xyes)
+
+AC_ARG_WITH(drivers-path,
+    [AC_HELP_STRING([--with-drivers-path=[[path]]],
+                    [drivers path])],
+    [], [with_drivers_path="$libdir/dri"])
+
+LIBVA_DRIVERS_PATH="$with_drivers_path"
+AC_SUBST(LIBVA_DRIVERS_PATH)
+
+AC_DISABLE_STATIC
+AC_PROG_LIBTOOL
+AC_PROG_CC
+AC_PROG_CXX
+AM_PROG_CC_C_O
+PKG_PROG_PKG_CONFIG
+
+AC_HEADER_STDC
+AC_SYS_LARGEFILE
+
+# Check for Doxygen
+if test "$enable_docs" = "yes"; then
+    AC_CHECK_TOOL([DOXYGEN], [doxygen], [no])
+    if test "$DOXYGEN" = "no"; then
+       enable_docs="no"
+    fi
+fi
+AM_CONDITIONAL(ENABLE_DOCS, test "$enable_docs" = "yes")
+
+# Check for __attribute__((visibility()))
+AC_CACHE_CHECK([whether __attribute__((visibility())) is supported],
+    ac_cv_have_gnuc_visibility_attribute,
+    [cat > conftest.c <<EOF
+int foo __attribute__ ((visibility ("hidden"))) = 1;
+int bar __attribute__ ((visibility ("protected"))) = 1;
+EOF
+    ac_cv_have_gnuc_visibility_attribute="no"
+    if ${CC-cc} -Werror -S conftest.c -o conftest.s >/dev/null 2>&1; then
+        if grep '\.hidden.*foo' conftest.s >/dev/null; then
+            if grep '\.protected.*bar' conftest.s >/dev/null; then
+                ac_cv_have_gnuc_visibility_attribute="yes"
+            fi
+        fi
+    fi
+    rm -f conftest.[cs]
+])
+if test "$ac_cv_have_gnuc_visibility_attribute" = "yes"; then
+    AC_DEFINE([HAVE_GNUC_VISIBILITY_ATTRIBUTE], [1],
+              [Defined to 1 if GCC visibility attribute is supported])
+fi
+
+# Check for DRM (mandatory)
+LIBDRM_VERSION=libdrm_version
+PKG_CHECK_MODULES([DRM], [libdrm >= $LIBDRM_VERSION])
+AC_SUBST(LIBDRM_VERSION)
+
+USE_DRM="no"
+if test "$enable_drm" = "yes"; then
+    USE_DRM="yes"
+    AC_DEFINE([HAVE_VA_DRM], [1], [Defined to 1 if VA/DRM API is built])
+fi
+AM_CONDITIONAL(USE_DRM, test "$USE_DRM" = "yes")
+
+# Check for X11
+USE_X11="no"
+if test "$enable_x11" = "yes"; then
+    USE_X11="yes"
+    PKG_CHECK_MODULES([X11],    [x11],    [:], [USE_X11="no"])
+    PKG_CHECK_MODULES([XEXT],   [xext],   [:], [USE_X11="no"])
+    PKG_CHECK_MODULES([XFIXES], [xfixes], [:], [USE_X11="no"])
+    if test "$USE_X11" = "yes"; then
+        AC_DEFINE([HAVE_VA_X11], [1], [Defined to 1 if VA/X11 API is built])
+    fi
+fi
+AM_CONDITIONAL(USE_X11, test "$USE_X11" = "yes")
+
+# Check for GLX
+USE_GLX="no"
+if test "$USE_X11:$enable_glx" = "yes:yes"; then
+    PKG_CHECK_MODULES([GLX], [gl x11], [USE_GLX="yes"], [:])
+    saved_CPPFLAGS="$CPPFLAGS"
+    saved_LIBS="$LIBS"
+    CPPFLAGS="$CPPFLAGS $GLX_CFLAGS"
+    LIBS="$LIBS $GLX_LIBS"
+    AC_CHECK_HEADERS([GL/gl.h GL/glx.h], [:], [USE_GLX="no"])
+    AC_CHECK_LIB([GL], [glXCreateContext], [:] [USE_GLX="no"])
+    CPPFLAGS="$saved_CPPFLAGS"
+    LIBS="$saved_LIBS"
+    if test "$USE_GLX" = "yes"; then
+        AC_DEFINE([HAVE_VA_GLX], [1], [Defined to 1 if VA/GLX API is built])
+    fi
+fi
+AM_CONDITIONAL(USE_GLX, test "$USE_GLX" = "yes")
+
+# Check for EGL
+USE_EGL="no"
+if test "$enable_egl" = "yes"; then
+    PKG_CHECK_MODULES([EGL], [egl], [USE_EGL="yes"], [:])
+    saved_CPPFLAGS="$CPPFLAGS"
+    saved_LIBS="$LIBS"
+    CPPFLAGS="$CPPFLAGS $EGL_CFLAGS"
+    LIBS="$LIBS $EGL_LIBS"
+    AC_CHECK_HEADERS([EGL/egl.h], [:], [USE_EGL="no"])
+    AC_CHECK_LIB([EGL], [eglGetDisplay], [:], [USE_EGL="no"])
+    CPPFLAGS="$saved_CPPFLAGS"
+    LIBS="$saved_LIBS"
+    if test "$USE_EGL" = "yes"; then
+        AC_DEFINE([HAVE_VA_EGL], [1], [Defined to 1 if VA/EGL API is built])
+    fi
+fi
+AM_CONDITIONAL(USE_EGL, test "$USE_EGL" = "yes")
+
+# Check for Wayland
+WAYLAND_API_VERSION=wayland_api_version
+AC_SUBST(WAYLAND_API_VERSION)
+
+USE_WAYLAND="no"
+if test "$enable_wayland" = "yes"; then
+    PKG_CHECK_MODULES([WAYLAND], [wayland-client >= wayland_api_version],
+        [USE_WAYLAND="yes"], [:])
+    if test "$USE_WAYLAND" = "yes"; then
+        AC_DEFINE([HAVE_VA_WAYLAND], [1],
+                  [Defined to 1 if VA/Wayland API is built])
+    fi
+fi
+AM_CONDITIONAL(USE_WAYLAND, test "$USE_WAYLAND" = "yes")
+
+m4_ifdef([WAYLAND_SCANNER_RULES],
+    [WAYLAND_SCANNER_RULES(['$(top_builddir)/va/wayland/protocol'])],
+    [wayland_scanner_rules=""; AC_SUBST(wayland_scanner_rules)])
+
+pkgconfigdir=${libdir}/pkgconfig
+AC_SUBST(pkgconfigdir)
+
+# Check for builds without backend
+if test "$USE_DRM:$USE_X11:$USE_WAYLAND" = "no:no:no"; then
+    AC_MSG_ERROR([Please select at least one backend (DRM, X11, Wayland)])
+fi
+
+# Define __vaDriverInit*() function name for dummy backend
+VA_DRIVER_INIT_FUNC="__vaDriverInit_${VA_API_MAJOR_VERSION}_${VA_API_MINOR_VERSION}"
+AC_DEFINE_UNQUOTED([VA_DRIVER_INIT_FUNC], [$VA_DRIVER_INIT_FUNC],
+    [Defined to the versioned __vaDriverInit function name])
+
+AC_OUTPUT([
+    Makefile
+    debian.upstream/Makefile
+    debian.upstream/changelog
+    debian.upstream/control
+    debian.upstream/libva$LIBVA_MAJOR_VERSION.install:\
+debian.upstream/libva.install.in
+    debian.upstream/libva-drm$LIBVA_MAJOR_VERSION.install:\
+debian.upstream/libva-drm.install.in
+    debian.upstream/libva-egl$LIBVA_MAJOR_VERSION.install:\
+debian.upstream/libva-egl.install.in
+    debian.upstream/libva-glx$LIBVA_MAJOR_VERSION.install:\
+debian.upstream/libva-glx.install.in
+    debian.upstream/libva-wayland$LIBVA_MAJOR_VERSION.install:\
+debian.upstream/libva-wayland.install.in
+    debian.upstream/libva-x11-$LIBVA_MAJOR_VERSION.install:\
+debian.upstream/libva-x11.install.in
+    doc/Makefile
+    dummy_drv_video/Makefile
+    pkgconfig/Makefile
+    pkgconfig/libva-drm.pc
+    pkgconfig/libva-egl.pc
+    pkgconfig/libva-glx.pc
+    pkgconfig/libva-tpi.pc
+    pkgconfig/libva-wayland.pc
+    pkgconfig/libva-x11.pc
+    pkgconfig/libva.pc
+    test/Makefile
+    test/basic/Makefile
+    test/common/Makefile
+    test/decode/Makefile
+    test/encode/Makefile
+    test/putsurface/Makefile
+    test/vainfo/Makefile
+    va/Makefile
+    va/drm/Makefile
+    va/egl/Makefile
+    va/glx/Makefile
+    va/va_version.h
+    va/wayland/Makefile
+    va/wayland/protocol/Makefile
+    va/x11/Makefile
+])
+
+# Print a small summary
+BACKENDS=""
+AS_IF([test x$USE_DRM = xyes], [BACKENDS="$BACKENDS drm"])
+AS_IF([test x$USE_X11 = xyes], [BACKENDS="$BACKENDS x11"])
+AS_IF([test x$USE_GLX = xyes], [BACKENDS="$BACKENDS glx"])
+AS_IF([test x$USE_EGL = xyes], [BACKENDS="$BACKENDS egl"])
+AS_IF([test x$USE_WAYLAND = xyes], [BACKENDS="$BACKENDS wayland"])
+
+echo
+echo "libva - ${LIBVA_VERSION} (VA-API ${VA_API_VERSION})"
+echo
+echo Installation prefix .............. : $prefix
+echo Default driver path .............. : $LIBVA_DRIVERS_PATH
+echo Extra window systems ............. : $BACKENDS
+echo Build dummy driver ............... : $enable_dummy_driver
+echo Build documentation .............. : $enable_docs
+echo
diff --git a/examples/thirdparty/libva/debian.upstream/Makefile.am b/examples/thirdparty/libva/debian.upstream/Makefile.am
new file mode 100644
index 0000000..8367ef7
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/Makefile.am
@@ -0,0 +1,36 @@
+DEBIANFILES = \
+	README.Debian					\
+	changelog.in					\
+	compat						\
+	control.in					\
+	copyright					\
+	libva-dev.install				\
+	libva-drm.install.in				\
+	libva-egl.install.in				\
+	libva-glx.install.in				\
+	libva-wayland.install.in			\
+	libva-x11.install.in				\
+	libva.install.in	 			\
+	rules						\
+	vainfo.install					\
+	$(NULL)
+
+DEBIANGENFILES = \
+	changelog					\
+	control						\
+	libva$(LIBVA_MAJOR_VERSION).install		\
+	libva-drm$(LIBVA_MAJOR_VERSION).install		\
+	libva-egl$(LIBVA_MAJOR_VERSION).install		\
+	libva-glx$(LIBVA_MAJOR_VERSION).install		\
+	libva-wayland$(LIBVA_MAJOR_VERSION).install	\
+	libva-x11-$(LIBVA_MAJOR_VERSION).install	\
+	$(NULL)
+
+EXTRA_DIST = $(DEBIANFILES)
+
+DISTCLEANFILES = $(DEBIANGENFILES)
+
+dist_noinst_DATA = $(DEBIANGENFILES)
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/examples/thirdparty/libva/debian.upstream/README.Debian b/examples/thirdparty/libva/debian.upstream/README.Debian
new file mode 100644
index 0000000..d10d702
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/README.Debian
@@ -0,0 +1,7 @@
+libva for Debian
+----------------
+
+This library implements the Video Acceleration (VA) API for Linux.
+It will load a hardware dependendent video acceleration driver.
+
+ -- Waldo Bastian <waldo.bastian at intel.com>  Mon, 18 Jun 2007 21:35:31 -0700
diff --git a/examples/thirdparty/libva/debian.upstream/changelog.in b/examples/thirdparty/libva/debian.upstream/changelog.in
new file mode 100644
index 0000000..f5482c4
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/changelog.in
@@ -0,0 +1,5 @@
+libva (@PACKAGE_VERSION at -1) unstable; urgency=low
+
+  * Autogenerated package, see NEWS file for ChangeLog.
+
+ -- Gwenole Beauchesne <gwenole.beauchesne at intel.com>  @TODAY@
diff --git a/examples/thirdparty/libva/debian.upstream/compat b/examples/thirdparty/libva/debian.upstream/compat
new file mode 100644
index 0000000..7ed6ff8
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/compat
@@ -0,0 +1 @@
+5
diff --git a/examples/thirdparty/libva/debian.upstream/control.in b/examples/thirdparty/libva/debian.upstream/control.in
new file mode 100644
index 0000000..6d7d82c
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/control.in
@@ -0,0 +1,111 @@
+Source: libva
+Priority: extra
+Maintainer: Gwenole Beauchesne <gwenole.beauchesne at intel.com>
+Build-Depends: automake,
+               autotools-dev,
+               cdbs,
+               debhelper (>= 5),
+               libdrm-dev (>= @LIBDRM_VERSION@),
+ at USE_X11_TRUE@               libx11-dev, libxext-dev, libxfixes-dev,
+ at USE_GLX_TRUE@               libgl-dev,
+ at USE_WAYLAND_TRUE@               libwayland-dev (>= @WAYLAND_API_VERSION@),
+               libtool,
+               pkg-config
+Standards-Version: 3.7.2
+Section: libs
+
+Package: libva-dev
+Section: libdevel
+Architecture: any
+Depends: libdrm-dev (>= @LIBDRM_VERSION@),
+ at USE_DRM_TRUE@         libva-drm at LIBVA_MAJOR_VERSION@,
+ at USE_X11_TRUE@         libva-x11- at LIBVA_MAJOR_VERSION@ (= ${binary:Version}), libx11-dev,
+ at USE_GLX_TRUE@         libva-glx at LIBVA_MAJOR_VERSION@ (= ${binary:Version}), libgl-dev,
+ at USE_EGL_TRUE@         libva-egl at LIBVA_MAJOR_VERSION@ (= ${binary:Version}),
+ at USE_WAYLAND_TRUE@         libva-wayland at LIBVA_MAJOR_VERSION@ (= ${binary:Version}), libwayland-dev (>= @WAYLAND_API_VERSION@),
+         libva at LIBVA_MAJOR_VERSION@ (= ${binary:Version}),
+         pkg-config
+Description: Video Acceleration (VA) API for Linux -- development files
+ The libva library implements the Video Acceleration (VA) API for Linux.
+ The library loads a hardware dependendent driver.
+ .
+ This package provides the development environment for libva.
+
+Package: libva at LIBVA_MAJOR_VERSION@
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}
+Description: Video Acceleration (VA) API for Linux -- Core runtime
+ The libva library implements the Video Acceleration (VA) API for Linux.
+ The library loads a hardware dependendent driver.
+ .
+ This package contains the Core runtime library.
+
+ at USE_DRM_TRUE@Package: libva-drm at LIBVA_MAJOR_VERSION@
+ at USE_DRM_TRUE@Section: libs
+ at USE_DRM_TRUE@Architecture: any
+ at USE_DRM_TRUE@Depends: ${shlibs:Depends}
+ at USE_DRM_TRUE@Description: Video Acceleration (VA) API for Linux -- DRM runtime
+ at USE_DRM_TRUE@ The libva library implements the Video Acceleration (VA) API for Linux.
+ at USE_DRM_TRUE@ The library loads a hardware dependendent driver.
+ at USE_DRM_TRUE@ .
+ at USE_DRM_TRUE@ This package contains the VA/DRM runtime library.
+
+ at USE_X11_TRUE@Package: libva-x11- at LIBVA_MAJOR_VERSION@
+ at USE_X11_TRUE@Section: libs
+ at USE_X11_TRUE@Architecture: any
+ at USE_X11_TRUE@Depends: ${shlibs:Depends}
+ at USE_X11_TRUE@Description: Video Acceleration (VA) API for Linux -- X11 runtime
+ at USE_X11_TRUE@ The libva library implements the Video Acceleration (VA) API for Linux.
+ at USE_X11_TRUE@ The library loads a hardware dependendent driver.
+ at USE_X11_TRUE@ .
+ at USE_X11_TRUE@ This package contains the VA/X11 runtime library.
+
+ at USE_GLX_TRUE@Package: libva-glx at LIBVA_MAJOR_VERSION@
+ at USE_GLX_TRUE@Section: libs
+ at USE_GLX_TRUE@Architecture: any
+ at USE_GLX_TRUE@Depends: ${shlibs:Depends}
+ at USE_GLX_TRUE@Description: Video Acceleration (VA) API for Linux -- GLX runtime
+ at USE_GLX_TRUE@ The libva library implements the Video Acceleration (VA) API for Linux.
+ at USE_GLX_TRUE@ The library loads a hardware dependendent driver.
+ at USE_GLX_TRUE@ .
+ at USE_GLX_TRUE@ This package contains the VA/GLX runtime library.
+
+ at USE_EGL_TRUE@Package: libva-egl at LIBVA_MAJOR_VERSION@
+ at USE_EGL_TRUE@Section: libs
+ at USE_EGL_TRUE@Architecture: any
+ at USE_EGL_TRUE@Depends: ${shlibs:Depends}
+ at USE_EGL_TRUE@Description: Video Acceleration (VA) API for Linux -- EGL runtime
+ at USE_EGL_TRUE@ The libva library implements the Video Acceleration (VA) API for Linux.
+ at USE_EGL_TRUE@ The library loads a hardware dependendent driver.
+ at USE_EGL_TRUE@ .
+ at USE_EGL_TRUE@ This package contains the VA/EGL runtime library.
+
+ at USE_WAYLAND_TRUE@Package: libva-wayland at LIBVA_MAJOR_VERSION@
+ at USE_WAYLAND_TRUE@Section: libs
+ at USE_WAYLAND_TRUE@Architecture: any
+ at USE_WAYLAND_TRUE@Depends: ${shlibs:Depends}
+ at USE_WAYLAND_TRUE@Description: Video Acceleration (VA) API for Linux -- Wayland runtime
+ at USE_WAYLAND_TRUE@ The libva library implements the Video Acceleration (VA) API for Linux.
+ at USE_WAYLAND_TRUE@ The library loads a hardware dependendent driver.
+ at USE_WAYLAND_TRUE@ .
+ at USE_WAYLAND_TRUE@ This package contains the VA/Wayland runtime library.
+
+Package: libva at LIBVA_MAJOR_VERSION@-dbg
+Section: libdevel
+Architecture: any
+Depends: libva at LIBVA_MAJOR_VERSION@ (= ${Source-Version})
+Description: Video Acceleration (VA) API for Linux -- runtime
+ The libva library implements the Video Acceleration (VA) API for Linux.
+ The library loads a hardware dependendent driver.
+ .
+ This package contains the debug info files.
+
+Package: vainfo
+Architecture: any
+Depends: libva at LIBVA_MAJOR_VERSION@ (= ${Source-Version})
+Description: Video Acceleration (VA) API for Linux -- info program
+ The libva library implements the Video Acceleration (VA) API for Linux.
+ The library loads a hardware dependendent driver.
+ .
+ This package contains the `vainfo' program.
diff --git a/examples/thirdparty/libva/debian.upstream/copyright b/examples/thirdparty/libva/debian.upstream/copyright
new file mode 100644
index 0000000..38b60ef
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/copyright
@@ -0,0 +1,44 @@
+This package was debianized by Waldo Bastian <waldo.bastian at intel.com> on
+Mon, 18 Jun 2007 21:35:31 -0700.
+
+It was downloaded from <url://example.com>
+
+Upstream Author(s): 
+
+    Waldo Bastian <waldo.bastian at intel.com>
+    Jonathan Bian <jonathan.bian at intel.com>
+
+Copyright: 
+
+    (C) Copyright IBM Corporation 2004
+    Copyright 1998-1999 Precision Insight, Inc., Cedar Park, Texas.
+    Copyright 2000 VA Linux Systems, Inc.
+    Copyright 2007 Intel Corportation
+
+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.
+
+The Debian packaging is (C) 2007, Intel Corporation and
+is licensed under the GPL, see `/usr/share/common-licenses/GPL'.
+
+# Please also look if there are files or directories which have a
+# different copyright/license attached and list them here.
diff --git a/examples/thirdparty/libva/debian.upstream/libva-dev.install b/examples/thirdparty/libva/debian.upstream/libva-dev.install
new file mode 100644
index 0000000..2611cdb
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/libva-dev.install
@@ -0,0 +1,3 @@
+debian/tmp/usr/include/va/va*.h
+debian/tmp/usr/lib/libva*.so
+debian/tmp/usr/lib/pkgconfig/libva*.pc
diff --git a/examples/thirdparty/libva/debian.upstream/libva-drm.install.in b/examples/thirdparty/libva/debian.upstream/libva-drm.install.in
new file mode 100644
index 0000000..7a9b5f2
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/libva-drm.install.in
@@ -0,0 +1 @@
+debian/tmp/usr/lib/libva-drm.so.*
diff --git a/examples/thirdparty/libva/debian.upstream/libva-egl.install.in b/examples/thirdparty/libva/debian.upstream/libva-egl.install.in
new file mode 100644
index 0000000..5554b69
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/libva-egl.install.in
@@ -0,0 +1 @@
+debian/tmp/usr/lib/libva-egl.so.*
diff --git a/examples/thirdparty/libva/debian.upstream/libva-glx.install.in b/examples/thirdparty/libva/debian.upstream/libva-glx.install.in
new file mode 100644
index 0000000..2d33032
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/libva-glx.install.in
@@ -0,0 +1 @@
+debian/tmp/usr/lib/libva-glx.so.*
diff --git a/examples/thirdparty/libva/debian.upstream/libva-wayland.install.in b/examples/thirdparty/libva/debian.upstream/libva-wayland.install.in
new file mode 100644
index 0000000..2563fea
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/libva-wayland.install.in
@@ -0,0 +1 @@
+debian/tmp/usr/lib/libva-wayland.so.*
diff --git a/examples/thirdparty/libva/debian.upstream/libva-x11.install.in b/examples/thirdparty/libva/debian.upstream/libva-x11.install.in
new file mode 100644
index 0000000..461d7bd
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/libva-x11.install.in
@@ -0,0 +1 @@
+debian/tmp/usr/lib/libva-x11.so.*
diff --git a/examples/thirdparty/libva/debian.upstream/libva.install.in b/examples/thirdparty/libva/debian.upstream/libva.install.in
new file mode 100644
index 0000000..bad195c
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/libva.install.in
@@ -0,0 +1 @@
+debian/tmp/usr/lib/libva.so.*
diff --git a/examples/thirdparty/libva/debian.upstream/rules b/examples/thirdparty/libva/debian.upstream/rules
new file mode 100755
index 0000000..40b76be
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/rules
@@ -0,0 +1,14 @@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/class/autotools.mk
+include /usr/share/cdbs/1/rules/utils.mk
+
+# Allow SMP build
+ifeq ($(DEBIAN_BUILD_NCPUS),)
+  DEBIAN_BUILD_NCPUS = $(shell /usr/bin/getconf _NPROCESSORS_ONLN)
+endif
+ifneq ($(DEBIAN_BUILD_NCPUS),)
+  EXTRA_MAKE_FLAGS += -j$(DEBIAN_BUILD_NCPUS)
+endif
+MAKE += $(EXTRA_MAKE_FLAGS)
diff --git a/examples/thirdparty/libva/debian.upstream/vainfo.install b/examples/thirdparty/libva/debian.upstream/vainfo.install
new file mode 100644
index 0000000..8ef46a0
--- /dev/null
+++ b/examples/thirdparty/libva/debian.upstream/vainfo.install
@@ -0,0 +1 @@
+debian/tmp/usr/bin/vainfo
\ No newline at end of file
diff --git a/examples/thirdparty/libva/doc/Doxyfile b/examples/thirdparty/libva/doc/Doxyfile
new file mode 100644
index 0000000..920dd3f
--- /dev/null
+++ b/examples/thirdparty/libva/doc/Doxyfile
@@ -0,0 +1,1679 @@
+# Doxyfile 1.7.3
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project.
+#
+# All text after a hash (#) is considered a comment and will be ignored.
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ").
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# This tag specifies the encoding used for all characters in the config file
+# that follow. The default is UTF-8 which is also the encoding used for all
+# text before the first occurrence of this tag. Doxygen uses libiconv (or the
+# iconv built into libc) for the transcoding. See
+# http://www.gnu.org/software/libiconv for the list of possible encodings.
+
+DOXYFILE_ENCODING      = UTF-8
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = VA-API
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER         =
+
+# Using the PROJECT_BRIEF tag one can provide an optional one line description for a project that appears at the top of each page and should give viewer a quick idea about the purpose of the project. Keep the description short.
+
+PROJECT_BRIEF          =
+
+# With the PROJECT_LOGO tag one can specify an logo or icon that is
+# included in the documentation. The maximum height of the logo should not
+# exceed 55 pixels and the maximum width should not exceed 200 pixels.
+# Doxygen will copy the logo to the output directory.
+
+PROJECT_LOGO           =
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       =
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create
+# 4096 sub-directories (in 2 levels) under the output directory of each output
+# format and will distribute the generated files over these directories.
+# Enabling this option can be useful when feeding doxygen a huge amount of
+# source files, where putting all generated files in the same directory would
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all
+# documentation generated by doxygen is written. Doxygen will use this
+# information to generate all constant output in the proper language.
+# The default language is English, other supported languages are:
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional,
+# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German,
+# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English
+# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian,
+# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrillic, Slovak,
+# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will
+# include brief member descriptions after the members that are listed in
+# the file and class documentation (similar to JavaDoc).
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend
+# the brief description of a member or function before the detailed description.
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator
+# that is used to form the text in various listings. Each string
+# in this list, if found as the leading text of the brief description, will be
+# stripped from the text and the result after processing the whole list, is
+# used as the annotated text. Otherwise, the brief description is used as-is.
+# If left blank, the following values are used ("$name" is automatically
+# replaced with the name of the entity): "The $name class" "The $name widget"
+# "The $name file" "is" "provides" "specifies" "contains"
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       =
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
+# Doxygen will generate a detailed section even if there is only a brief
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
+# inherited members of a class in the documentation of that class as if those
+# members were ordinary class members. Constructors, destructors and assignment
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full
+# path before files name in the file list and in the header files. If set
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag
+# can be used to strip a user-defined part of the path. Stripping is
+# only done if one of the specified strings matches the left-hand part of
+# the path. The tag can be used to show relative paths in the file list.
+# If left blank the directory from which doxygen is run is used as the
+# path to strip.
+
+STRIP_FROM_PATH        = $(VA_HEADER_DIR)
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of
+# the path mentioned in the documentation of a class, which tells
+# the reader which header file to include in order to use a class.
+# If left blank only the name of the header file containing the class
+# definition is used. Otherwise one should specify the include paths that
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    =
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter
+# (but less readable) file names. This can be useful if your file system
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen
+# will interpret the first line (until the first dot) of a JavaDoc-style
+# comment as the brief description. If set to NO, the JavaDoc
+# comments will behave just like regular Qt-style comments
+# (thus requiring an explicit @brief command for a brief description.)
+
+JAVADOC_AUTOBRIEF      = NO
+
+# If the QT_AUTOBRIEF tag is set to YES then Doxygen will
+# interpret the first line (until the first dot) of a Qt-style
+# comment as the brief description. If set to NO, the comments
+# will behave just like regular Qt-style comments (thus requiring
+# an explicit \brief command for a brief description.)
+
+QT_AUTOBRIEF           = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen
+# treat a multi-line C++ special comment block (i.e. a block of //! or ///
+# comments) as a brief description. This used to be the default behaviour.
+# The new default is to treat a multi-line C++ comment block as a detailed
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented
+# member inherits the documentation from any documented member that it
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce
+# a new page for each member. If set to NO, the documentation of a member will
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab.
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 8
+
+# This tag can be used to specify a number of aliases that acts
+# as commands in the documentation. An alias has the form "name=value".
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to
+# put the command \sideeffect (or @sideeffect) in the documentation, which
+# will result in a user-defined paragraph with heading "Side Effects:".
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                =
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
+# sources only. Doxygen will then generate output that is more tailored for C.
+# For instance, some of the names that are used will be different. The list
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java
+# sources only. Doxygen will then generate output that is more tailored for
+# Java. For instance, namespaces will be presented as packages, qualified
+# scopes will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
+# sources only. Doxygen will then generate output that is more tailored for
+# Fortran.
+
+OPTIMIZE_FOR_FORTRAN   = NO
+
+# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
+# sources. Doxygen will then generate output that is tailored for
+# VHDL.
+
+OPTIMIZE_OUTPUT_VHDL   = NO
+
+# Doxygen selects the parser to use depending on the extension of the files it
+# parses. With this tag you can assign which parser to use for a given extension.
+# Doxygen has a built-in mapping, but you can override or extend it using this
+# tag. The format is ext=language, where ext is a file extension, and language
+# is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C,
+# C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make
+# doxygen treat .inc files as Fortran files (default is PHP), and .f files as C
+# (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions
+# you also need to set FILE_PATTERNS otherwise the files are not read by doxygen.
+
+EXTENSION_MAPPING      =
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
+# to include (a tag file for) the STL sources as input, then you should
+# set this tag to YES in order to let doxygen match functions declarations and
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s.
+# func(std::string) {}). This also makes the inheritance and collaboration
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If you use Microsoft's C++/CLI language, you should set this option to YES to
+# enable parsing support.
+
+CPP_CLI_SUPPORT        = NO
+
+# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only.
+# Doxygen will parse them like normal C++ but will assume all classes use public
+# instead of private inheritance when no explicit protection keyword is present.
+
+SIP_SUPPORT            = NO
+
+# For Microsoft's IDL there are propget and propput attributes to indicate getter
+# and setter methods for a property. Setting this option to YES (the default)
+# will make doxygen replace the get and set methods by a property in the
+# documentation. This will only work if the methods are indeed getting or
+# setting a simple type. If this is not the case, or you want to show the
+# methods anyway, you should set this option to NO.
+
+IDL_PROPERTY_SUPPORT   = YES
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
+# tag is set to YES, then doxygen will reuse the documentation of the first
+# member in the group (if any) for the other members of the group. By default
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of
+# the same type (for instance a group of public functions) to be put as a
+# subgroup of that type (e.g. under the Public Functions section). Set it to
+# NO to prevent subgrouping. Alternatively, this can be done per class using
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum
+# is documented as struct, union, or enum with the name of the typedef. So
+# typedef struct TypeS {} TypeT, will appear in the documentation as a struct
+# with name TypeT. When disabled the typedef will appear as a member of a file,
+# namespace, or class. And the struct will be named TypeS. This can typically
+# be useful for C code in case the coding convention dictates that all compound
+# types are typedef'ed and only the typedef is referenced, never the tag name.
+
+TYPEDEF_HIDES_STRUCT   = YES
+
+# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to
+# determine which symbols to keep in memory and which to flush to disk.
+# When the cache is full, less often used symbols will be written to disk.
+# For small to medium size projects (<1000 input files) the default value is
+# probably good enough. For larger projects a too small cache size can cause
+# doxygen to be busy swapping symbols to and from disk most of the time
+# causing a significant performance penalty.
+# If the system has enough physical memory increasing the cache will improve the
+# performance by keeping more symbols in memory. Note that the value works on
+# a logarithmic scale so increasing the size by one will roughly double the
+# memory usage. The cache size is given by this formula:
+# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
+# corresponding to a cache size of 2^16 = 65536 symbols
+
+SYMBOL_CACHE_SIZE      = 0
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
+# documentation are documented, even if no documentation was available.
+# Private class members and static file members will be hidden unless
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = NO
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs)
+# defined locally in source files will be included in the documentation.
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = YES
+
+# This flag is only useful for Objective-C code. When set to YES local
+# methods, which are defined in the implementation section but not in
+# the interface are included in the documentation.
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If this flag is set to YES, the members of anonymous namespaces will be
+# extracted and appear in the documentation as a namespace called
+# 'anonymous_namespace{file}', where file will be replaced with the base
+# name of the file that contains the anonymous namespace. By default
+# anonymous namespaces are hidden.
+
+EXTRACT_ANON_NSPACES   = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all
+# undocumented members of documented classes, files or namespaces.
+# If set to NO (the default) these members will be included in the
+# various overviews, but no documentation section is generated.
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = YES
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all
+# undocumented classes that are normally visible in the class hierarchy.
+# If set to NO (the default) these classes will be included in the various
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = YES
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all
+# friend (class|struct|union) declarations.
+# If set to NO (the default) these declarations will be included in the
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any
+# documentation blocks found inside the body of a function.
+# If set to NO (the default) these blocks will be appended to the
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation
+# that is typed after a \internal command is included. If the tag is set
+# to NO (the default) then the documentation will be excluded.
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate
+# file names in lower-case letters. If set to YES upper-case letters are also
+# allowed. This is useful if you have classes or files whose names only differ
+# in case and if your file system supports case sensitive file names. Windows
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen
+# will show members with their full class and namespace scopes in the
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen
+# will put a list of the files that are included by a file in the documentation
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen
+# will list include files with double quotes in the documentation
+# rather than with sharp brackets.
+
+FORCE_LOCAL_INCLUDES   = NO
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline]
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen
+# will sort the (detailed) documentation of file and class members
+# alphabetically by member name. If set to NO the members will appear in
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the
+# brief documentation of file, namespace and class members alphabetically
+# by member name. If set to NO (the default) the members will appear in
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen
+# will sort the (brief and detailed) documentation of class members so that
+# constructors and destructors are listed first. If set to NO (the default)
+# the constructors will appear in the respective orders defined by
+# SORT_MEMBER_DOCS and SORT_BRIEF_DOCS.
+# This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO
+# and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO.
+
+SORT_MEMBERS_CTORS_1ST = NO
+
+# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the
+# hierarchy of group names into alphabetical order. If set to NO (the default)
+# the group names will appear in their defined order.
+
+SORT_GROUP_NAMES       = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be
+# sorted by fully-qualified names, including namespaces. If set to
+# NO (the default), the class list will be sorted only by class name,
+# not including the namespace part.
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper type resolution of all parameters of a function it will reject a
+# match between the prototype and the implementation of a member function even if there is only one candidate or it is obvious which candidate to choose by doing a simple string match. By disabling STRICT_PROTO_MATCHING doxygen
+# will still accept a match between prototype and implementation in such cases.
+
+STRICT_PROTO_MATCHING  = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or
+# disable (NO) the todo list. This list is created by putting \todo
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or
+# disable (NO) the test list. This list is created by putting \test
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or
+# disable (NO) the bug list. This list is created by putting \bug
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or
+# disable (NO) the deprecated list. This list is created by putting
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       =
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines
+# the initial value of a variable or macro consists of for it to appear in
+# the documentation. If the initializer consists of more lines than specified
+# here it will be hidden. Use a value of 0 to hide initializers completely.
+# The appearance of the initializer of individual variables and macros in the
+# documentation can be controlled using \showinitializer or \hideinitializer
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated
+# at the bottom of the documentation of classes and structs. If set to YES the
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = NO
+
+# Set the SHOW_FILES tag to NO to disable the generation of the Files page.
+# This will remove the Files entry from the Quick Index and from the
+# Folder Tree View (if specified). The default is YES.
+
+SHOW_FILES             = YES
+
+# Set the SHOW_NAMESPACES tag to NO to disable the generation of the
+# Namespaces page.
+# This will remove the Namespaces entry from the Quick Index
+# and from the Folder Tree View (if specified). The default is YES.
+
+SHOW_NAMESPACES        = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that
+# doxygen should invoke to get the current version for each file (typically from
+# the version control system). Doxygen will invoke the program by executing (via
+# popen()) the command <command> <input-file>, where <command> is the value of
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file
+# provided by doxygen. Whatever the program writes to standard output
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    =
+
+# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
+# by doxygen. The layout file controls the global structure of the generated
+# output files in an output format independent way. The create the layout file
+# that represents doxygen's defaults, run doxygen with the -l option.
+# You can optionally specify a file name after the option, if omitted
+# DoxygenLayout.xml will be used as the name of the layout file.
+
+LAYOUT_FILE            =
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are
+# generated by doxygen. Possible values are YES and NO. If left blank
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for
+# potential errors in the documentation, such as not documenting some
+# parameters in a documented function, or documenting parameters that
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# The WARN_NO_PARAMDOC option can be enabled to get warnings for
+# functions that are documented, but have no documentation for their parameters
+# or return value. If set to NO (the default) doxygen will only warn about
+# wrong or incomplete parameter documentation, but not about the absence of
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that
+# doxygen can produce. The string should contain the $file, $line, and $text
+# tags, which will be replaced by the file and line number from which the
+# warning originated and the warning text. Optionally the format may contain
+# $version, which will be replaced by the version of the file (if it could
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning
+# and error messages should be written. If left blank the output is written
+# to stderr.
+
+WARN_LOGFILE           =
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain
+# documented source files. You may enter file names like "myfile.cpp" or
+# directories like "/usr/src/myproject". Separate the files or directories
+# with spaces.
+
+INPUT                  = $(VA_HEADER_FILES)
+
+# This tag can be used to specify the character encoding of the source files
+# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
+# also the default input encoding. Doxygen uses libiconv (or the iconv built
+# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# the list of possible encodings.
+
+INPUT_ENCODING         = UTF-8
+
+# If the value of the INPUT tag contains directories, you can use the
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank the following patterns are tested:
+# *.c *.cc *.cxx *.cpp *.c++ *.d *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh
+# *.hxx *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.dox *.py
+# *.f90 *.f *.for *.vhd *.vhdl
+
+FILE_PATTERNS          = *.h
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE              = NO
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or
+# directories that are symbolic links (a Unix file system feature) are excluded
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories. Note that the wildcards are matched
+# against the file with absolute path, so to exclude all test directories
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = */test/*
+
+# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
+# (namespaces, classes, functions, etc.) that should be excluded from the
+# output. The symbol name can be a fully qualified name, a word, or if the
+# wildcard * is used, a substring. Examples: ANamespace, AClass,
+# AClass::ANamespace, ANamespace::*Test
+
+EXCLUDE_SYMBOLS        =
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or
+# directories that contain example code fragments that are included (see
+# the \include command).
+
+EXAMPLE_PATH           =
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp
+# and *.h) to filter out the source-files in the directories. If left
+# blank all files are included.
+
+EXAMPLE_PATTERNS       =
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
+# searched for input files to be used with the \include or \dontinclude
+# commands irrespective of the value of the RECURSIVE tag.
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or
+# directories that contain image that are included in the documentation (see
+# the \image command).
+
+IMAGE_PATH             =
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should
+# invoke to filter for each input file. Doxygen will invoke the filter program
+# by executing (via popen()) the command <filter> <input-file>, where <filter>
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an
+# input file. Doxygen will then use the output that the filter program writes
+# to standard output.
+# If FILTER_PATTERNS is specified, this tag will be
+# ignored.
+
+INPUT_FILTER           =
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
+# basis.
+# Doxygen will compare the file name with each pattern and apply the
+# filter if there is a match.
+# The filters are a list of the form:
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further
+# info on how filters are used. If FILTER_PATTERNS is empty or if
+# non of the patterns match the file name, INPUT_FILTER is applied.
+
+FILTER_PATTERNS        =
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
+# INPUT_FILTER) will be used to filter the input files when producing source
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
+# pattern. A pattern will override the setting for FILTER_PATTERN (if any)
+# and it is also possible to disable source filtering for a specific pattern
+# using *.ext= (so without naming a filter). This option only has effect when
+# FILTER_SOURCE_FILES is enabled.
+
+FILTER_SOURCE_PATTERNS =
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will
+# be generated. Documented entities will be cross-referenced with these sources.
+# Note: To get rid of all source code in the generated output, make sure also
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = NO
+
+# Setting the INLINE_SOURCES tag to YES will include the body
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct
+# doxygen to hide any special comment blocks from generated source code
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES
+# then for each documented function all documented
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = NO
+
+# If the REFERENCES_RELATION tag is set to YES
+# then for each documented function all documented entities
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = NO
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.
+# Otherwise they will link to the documentation.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code
+# will point to the HTML generated by the htags(1) tool instead of doxygen
+# built-in source browser. The htags tool is part of GNU's global source
+# tagging system (see http://www.gnu.org/software/global/global.html). You
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen
+# will generate a verbatim copy of the header file for each class for
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index
+# of all compounds will be generated. Enable this if the project
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all
+# classes will be put under the same header in the alphabetical index.
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          =
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = html-out
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard header.
+
+HTML_HEADER            =
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for
+# each generated HTML page. If it is left blank doxygen will generate a
+# standard footer.
+
+HTML_FOOTER            = $(VA_HTML_FOOTER)
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading
+# style sheet that is used by each HTML page. It can be used to
+# fine-tune the look of the HTML output. If the tag is left blank doxygen
+# will generate a default style sheet. Note that doxygen will try to copy
+# the style sheet file to the HTML output directory, so don't put your own
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        =
+
+# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
+# Doxygen will adjust the colors in the stylesheet and background images
+# according to this color. Hue is specified as an angle on a colorwheel,
+# see http://en.wikipedia.org/wiki/Hue for more information.
+# For instance the value 0 represents red, 60 is yellow, 120 is green,
+# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
+# The allowed range is 0 to 359.
+
+HTML_COLORSTYLE_HUE    = 220
+
+# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of
+# the colors in the HTML output. For a value of 0 the output will use
+# grayscales only. A value of 255 will produce the most vivid colors.
+
+HTML_COLORSTYLE_SAT    = 100
+
+# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to
+# the luminance component of the colors in the HTML output. Values below
+# 100 gradually make the output lighter, whereas values above 100 make
+# the output darker. The value divided by 100 is the actual gamma applied,
+# so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2,
+# and 100 does not change the gamma.
+
+HTML_COLORSTYLE_GAMMA  = 80
+
+# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
+# page will contain the date and time when the page was generated. Setting
+# this to NO can help when comparing the output of multiple runs.
+
+HTML_TIMESTAMP         = YES
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes,
+# files or namespaces will be aligned in HTML using tables. If set to
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
+# documentation will contain sections that can be hidden and shown after the
+# page has loaded. For this to work a browser that supports
+# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox
+# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
+
+HTML_DYNAMIC_SECTIONS  = NO
+
+# If the GENERATE_DOCSET tag is set to YES, additional index files
+# will be generated that can be used as input for Apple's Xcode 3
+# integrated development environment, introduced with OSX 10.5 (Leopard).
+# To create a documentation set, doxygen will generate a Makefile in the
+# HTML output directory. Running make will produce the docset in that
+# directory and running "make install" will install the docset in
+# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find
+# it at startup.
+# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
+# for more information.
+
+GENERATE_DOCSET        = NO
+
+# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the
+# feed. A documentation feed provides an umbrella under which multiple
+# documentation sets from a single provider (such as a company or product suite)
+# can be grouped.
+
+DOCSET_FEEDNAME        = "Doxygen generated docs"
+
+# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that
+# should uniquely identify the documentation set bundle. This should be a
+# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen
+# will append .docset to the name.
+
+DOCSET_BUNDLE_ID       = org.doxygen.Project
+
+# When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify
+# the documentation publisher. This should be a reverse domain-name style
+# string, e.g. com.mycompany.MyDocSet.documentation.
+
+DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
+
+# The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher.
+
+DOCSET_PUBLISHER_NAME  = Publisher
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files
+# will be generated that can be used as input for tools like the
+# Microsoft HTML help workshop to generate a compiled HTML help file (.chm)
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE               =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can
+# be used to specify the location (absolute path including file name) of
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag
+# controls if a separate .chi index file is generated (YES) or that
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING
+# is used to encode HtmlHelp index (hhk), content (hhc) and project file
+# content.
+
+CHM_INDEX_ENCODING     =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag
+# controls whether a binary table of contents is generated (YES) or a
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
+# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated
+# that can be used as input for Qt's qhelpgenerator to generate a
+# Qt Compressed Help (.qch) of the generated HTML documentation.
+
+GENERATE_QHP           = NO
+
+# If the QHG_LOCATION tag is specified, the QCH_FILE tag can
+# be used to specify the file name of the resulting .qch file.
+# The path specified is relative to the HTML output folder.
+
+QCH_FILE               =
+
+# The QHP_NAMESPACE tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#namespace
+
+QHP_NAMESPACE          = org.doxygen.Project
+
+# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
+# Qt Help Project output. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+
+QHP_VIRTUAL_FOLDER     = doc
+
+# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
+# add. For more information please see
+# http://doc.trolltech.com/qthelpproject.html#custom-filters
+
+QHP_CUST_FILTER_NAME   =
+
+# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
+# custom filter to add. For more information please see
+# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">
+# Qt Help Project / Custom Filters</a>.
+
+QHP_CUST_FILTER_ATTRS  =
+
+# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
+# project's
+# filter section matches.
+# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">
+# Qt Help Project / Filter Attributes</a>.
+
+QHP_SECT_FILTER_ATTRS  =
+
+# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can
+# be used to specify the location of Qt's qhelpgenerator.
+# If non-empty doxygen will try to run qhelpgenerator on the generated
+# .qhp file.
+
+QHG_LOCATION           =
+
+# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files
+#  will be generated, which together with the HTML files, form an Eclipse help
+# plugin. To install this plugin and make it available under the help contents
+# menu in Eclipse, the contents of the directory containing the HTML and XML
+# files needs to be copied into the plugins directory of eclipse. The name of
+# the directory within the plugins directory should be the same as
+# the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before
+# the help appears.
+
+GENERATE_ECLIPSEHELP   = NO
+
+# A unique identifier for the eclipse help plugin. When installing the plugin
+# the directory name containing the HTML and XML files should also have
+# this name.
+
+ECLIPSE_DOC_ID         = org.doxygen.Project
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at
+# top of each HTML page. The value NO (the default) enables the index and
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [0,1..20])
+# that doxygen will group on one line in the generated HTML documentation.
+# Note that a value of 0 will completely suppress the enum values from appearing in the overview section.
+
+ENUM_VALUES_PER_LINE   = 1
+
+# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
+# structure should be generated to display hierarchical information.
+# If the tag value is set to YES, a side panel will be generated
+# containing a tree-like index structure (just like the one that
+# is generated for HTML Help). For this to work a browser that supports
+# JavaScript, DHTML, CSS and frames is required (i.e. any modern browser).
+# Windows users are probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = NO
+
+# By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories,
+# and Class Hierarchy pages using a tree view instead of an ordered list.
+
+USE_INLINE_TREES       = NO
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be
+# used to set the initial width (in pixels) of the frame in which the tree
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+# When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open
+# links to external symbols imported via tag files in a separate window.
+
+EXT_LINKS_IN_WINDOW    = NO
+
+# Use this tag to change the font size of Latex formulas included
+# as images in the HTML documentation. The default is 10. Note that
+# when you change the font size after a successful doxygen run you need
+# to manually remove any form_*.png images from the HTML output directory
+# to force them to be regenerated.
+
+FORMULA_FONTSIZE       = 10
+
+# Use the FORMULA_TRANPARENT tag to determine whether or not the images
+# generated for formulas are transparent PNGs. Transparent PNGs are
+# not supported properly for IE 6.0, but are supported on all modern browsers.
+# Note that when changing this option you need to delete any form_*.png files
+# in the HTML output before the changes have effect.
+
+FORMULA_TRANSPARENT    = YES
+
+# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
+# (see http://www.mathjax.org) which uses client side Javascript for the
+# rendering instead of using prerendered bitmaps. Use this if you do not
+# have LaTeX installed or if you want to formulas look prettier in the HTML
+# output. When enabled you also need to install MathJax separately and
+# configure the path to it using the MATHJAX_RELPATH option.
+
+USE_MATHJAX            = NO
+
+# When MathJax is enabled you need to specify the location relative to the
+# HTML output directory using the MATHJAX_RELPATH option. The destination
+# directory should contain the MathJax.js script. For instance, if the mathjax
+# directory is located at the same level as the HTML output directory, then
+# MATHJAX_RELPATH should be ../mathjax. The default value points to the mathjax.org site, so you can quickly see the result without installing
+# MathJax, but it is strongly recommended to install a local copy of MathJax
+# before deployment.
+
+MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
+
+# When the SEARCHENGINE tag is enabled doxygen will generate a search box
+# for the HTML output. The underlying search engine uses javascript
+# and DHTML and should work on any modern browser. Note that when using
+# HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets
+# (GENERATE_DOCSET) there is already a search function so this one should
+# typically be disabled. For large projects the javascript based search engine
+# can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution.
+
+SEARCHENGINE           = YES
+
+# When the SERVER_BASED_SEARCH tag is enabled the search engine will be
+# implemented using a PHP enabled web server instead of at the web client
+# using Javascript. Doxygen will generate the search PHP script and index
+# file to put on the web server. The advantage of the server
+# based approach is that it scales better to large projects and allows
+# full text search. The disadvantages are that it is more difficult to setup
+# and does not have live searching capabilities.
+
+SERVER_BASED_SEARCH    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
+# invoked. If left blank `latex' will be used as the default command name.
+# Note that when enabling USE_PDFLATEX this option is only used for
+# generating bitmaps for formulas in the HTML output, but not in the
+# Makefile that is written to the output directory.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to
+# generate index for LaTeX. If left blank `makeindex' will be used as the
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact
+# LaTeX documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used
+# by the printer. Possible values are: a4, letter, legal and
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         =
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for
+# the generated latex document. The header should contain everything until
+# the first chapter. If it is left blank doxygen will generate a
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           =
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will
+# contain links (just like the HTML output) instead of page references
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = YES
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of
+# plain latex in the generated Makefile. Set this option to YES to get a
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = YES
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode.
+# command to the generated LaTeX files. This will instruct LaTeX to keep
+# running if errors occur, instead of asking the user for help.
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not
+# include the index chapters (such as File Index, Compound Index, etc.)
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+# If LATEX_SOURCE_CODE is set to YES then doxygen will include
+# source code with syntax highlighting in the LaTeX output.
+# Note that which sources are shown also depends on other settings
+# such as SOURCE_BROWSER.
+
+LATEX_SOURCE_CODE      = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output
+# The RTF output is optimized for Word 97 and may not look very pretty with
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact
+# RTF documents. This may be useful for small projects and may help to
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated
+# will contain hyperlink fields. The RTF file will
+# contain links (just like the HTML output) instead of page references.
+# This makes the output suitable for online browsing using WORD or other
+# programs which support those fields.
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's
+# config file, i.e. a series of assignments. You only have to provide
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    =
+
+# Set optional variables used in the generation of an rtf document.
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    =
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output,
+# then it will generate one additional man file for each entity
+# documented in the real man page(s). These additional files
+# only source the real man page, but without them the man command
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will
+# generate an XML file that captures the structure of
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_SCHEMA             =
+
+# The XML_DTD tag can be used to specify an XML DTD,
+# which can be used by a validating XML parser to check the
+# syntax of the XML files.
+
+XML_DTD                =
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will
+# dump the program listings (including syntax highlighting
+# and cross-referencing information) to the XML output. Note that
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will
+# generate an AutoGen Definitions (see autogen.sf.net) file
+# that captures the structure of the code including all
+# documentation. Note that this feature is still experimental
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will
+# generate a Perl module file that captures the structure of
+# the code including all documentation. Note that this
+# feature is still experimental and incomplete at the
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be
+# nicely formatted so it can be parsed by a human reader.
+# This is useful
+# if you want to understand what is going on.
+# On the other hand, if this
+# tag is set to NO the size of the Perl module output will be much smaller
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX.
+# This is useful so different doxyrules.make files included by the same
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX =
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will
+# evaluate all C-preprocessor directives found in the sources and include
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro
+# names in the source code. If set to NO (the default) only conditional
+# compilation will be performed. Macro expansion can be done in a controlled
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
+# then the macro expansion is limited to the macros specified with the
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that
+# contain include files that are not input files but should be processed by
+# the preprocessor.
+
+INCLUDE_PATH           =
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
+# patterns (like *.h and *.hpp) to filter out the header-files in the
+# directories. If left blank, the patterns specified with FILE_PATTERNS will
+# be used.
+
+INCLUDE_FILE_PATTERNS  =
+
+# The PREDEFINED tag can be used to specify one or more macro names that
+# are defined before the preprocessor is started (similar to the -D option of
+# gcc). The argument of the tag is a list of macros of the form: name
+# or name=definition (no spaces). If the definition and the = are
+# omitted =1 is assumed. To prevent a macro definition from being
+# undefined via #undef or recursively expanded use the := operator
+# instead of the = operator.
+
+PREDEFINED             =
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
+# this tag can be used to specify a list of macro names that should be expanded.
+# The macro definition that is found in the sources will be used.
+# Use the PREDEFINED tag if you want to use a different macro definition that overrules the definition found in the source code.
+
+EXPAND_AS_DEFINED      =
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then
+# doxygen's preprocessor will remove all references to function-like macros
+# that are alone on a line, have an all uppercase name, and do not end with a
+# semicolon, because these will confuse the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               =
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       =
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed
+# in the class index. If set to NO only the inherited external classes
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed
+# in the modules index. If set to NO, only the current project's groups will
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base
+# or super classes. Setting the tag to NO turns the diagrams off. Note that
+# this option also works with HAVE_DOT disabled, but it is recommended to
+# install and use dot, since it yields more powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# You can define message sequence charts within doxygen comments using the \msc
+# command. Doxygen will then run the mscgen tool (see
+# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# documentation. The MSCGEN_PATH tag allows you to specify the directory where
+# the mscgen tool resides. If left empty the tool is assumed to be found in the
+# default search path.
+
+MSCGEN_PATH            =
+
+# If set to YES, the inheritance and collaboration graphs will hide
+# inheritance and usage relations if the target is undocumented
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
+# available from the path. This tool is part of Graphviz, a graph visualization
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = NO
+
+# The DOT_NUM_THREADS specifies the number of dot invocations doxygen is
+# allowed to run in parallel. When set to 0 (the default) doxygen will
+# base this on the number of processors available in the system. You can set it
+# explicitly to a value larger than 0 to get control over the balance
+# between CPU load and processing speed.
+
+DOT_NUM_THREADS        = 0
+
+# By default doxygen will write a font called Helvetica to the output
+# directory and reference it in all dot files that doxygen generates.
+# When you want a differently looking font you can specify the font name
+# using DOT_FONTNAME. You need to make sure dot is able to find the font,
+# which can be done by putting it in a standard location or by setting the
+# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory
+# containing the font.
+
+DOT_FONTNAME           = Helvetica
+
+# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
+# The default size is 10pt.
+
+DOT_FONTSIZE           = 10
+
+# By default doxygen will tell dot to use the output directory to look for the
+# FreeSans.ttf font (which doxygen will put there itself). If you specify a
+# different font using DOT_FONTNAME you can set the path where dot
+# can find it using this tag.
+
+DOT_FONTPATH           =
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect inheritance relations. Setting this tag to YES will force the
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for each documented class showing the direct and
+# indirect implementation dependencies (inheritance, containment, and
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and
+# collaboration diagrams in a style similar to the OMG's Unified Modeling
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT
+# tags are set to YES then doxygen will generate a graph for each documented
+# file showing the direct and indirect include dependencies of the file with
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each
+# documented header file showing the documented files that directly or
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT options are set to YES then
+# doxygen will generate a call dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable call graphs
+# for selected functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then
+# doxygen will generate a caller dependency graph for every global function
+# or class method. Note that enabling this option will significantly increase
+# the time of a run. So in most cases it will be better to enable caller
+# graphs for selected functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen
+# will generate a graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES
+# then doxygen will show the dependencies a directory has on other directories
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
+# generated by dot. Possible values are png, svg, gif or svg.
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               =
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that
+# contain dot files that are included in the documentation (see the
+# \dotfile command).
+
+DOTFILE_DIRS           =
+
+# The MSCFILE_DIRS tag can be used to specify one or more directories that
+# contain msc files that are included in the documentation (see the
+# \mscfile command).
+
+MSCFILE_DIRS           =
+
+# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of
+# nodes that will be shown in the graph. If the number of nodes in a graph
+# becomes larger than this value, doxygen will truncate the graph, which is
+# visualized by representing a node as a red box. Note that doxygen if the
+# number of direct children of the root node in a graph is already larger than
+# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note
+# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
+
+DOT_GRAPH_MAX_NODES    = 50
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the
+# graphs generated by dot. A depth value of 3 means that only nodes reachable
+# from the root by following a path via at most 3 edges will be shown. Nodes
+# that lay further from the root node will be omitted. Note that setting this
+# option to 1 or 2 may greatly reduce the computation time needed for large
+# code bases. Also note that the size of a graph can be further restricted by
+# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
+# background. This is disabled by default, because dot on Windows does not
+# seem to support this out of the box. Warning: Depending on the platform used,
+# enabling this option may lead to badly anti-aliased labels on the edges of
+# a graph (i.e. they become hard to read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
+# files in one run (i.e. multiple -o and -T options on the command line). This
+# makes dot run faster, but since only newer versions of dot (>1.8.10)
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = YES
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will
+# generate a legend page explaining the meaning of the various boxes and
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will
+# remove the intermediate dot files that are used to generate
+# the various graphs.
+
+DOT_CLEANUP            = YES
diff --git a/examples/thirdparty/libva/doc/Makefile.am b/examples/thirdparty/libva/doc/Makefile.am
new file mode 100644
index 0000000..3926979
--- /dev/null
+++ b/examples/thirdparty/libva/doc/Makefile.am
@@ -0,0 +1,63 @@
+# Copyright (c) 2007-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.
+
+all: html
+install-data-local: install-html
+
+EXTRA_DIST = \
+	Doxyfile			\
+	$(NULL)
+
+VA_HEADER_DIR   = $(top_srcdir)/va
+VA_HEADER_FILES = \
+	$(VA_HEADER_DIR)/va.h		\
+	$(VA_HEADER_DIR)/va_enc_h264.h	\
+	$(VA_HEADER_DIR)/va_vpp.h	\
+	$(NULL)
+
+VA_HTML_FOOTER		= va_footer.html
+VA_HTML_FRAGMENTS	= $(VA_HTML_FOOTER)
+
+export VA_HEADER_DIR
+export VA_HEADER_FILES
+export VA_HTML_FOOTER
+html-out/index.html: Doxyfile $(VA_HEADER_FILES) $(VA_HTML_FRAGMENTS)
+	$(DOXYGEN) $<
+
+if ENABLE_DOCS
+html: html-out/index.html
+install-html-local:
+	install -d $(DESTDIR)$(docdir)/html
+	for file in `ls html-out/` ; do \
+	    if test -f html-out/$$file ; then \
+		install -m 0644 html-out/$$file $(DESTDIR)$(docdir)/html ; \
+	    else \
+		install -d $(DESTDIR)$(docdir)/html/$$file ; \
+		install -m 0644 html-out/$$file/* $(DESTDIR)$(docdir)/html/$$file; \
+	    fi ; \
+	done
+uninstall-local:
+	rm -rf $(DESTDIR)$(docdir)/html
+endif
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/examples/thirdparty/libva/doc/va_footer.html b/examples/thirdparty/libva/doc/va_footer.html
new file mode 100644
index 0000000..9f1875c
--- /dev/null
+++ b/examples/thirdparty/libva/doc/va_footer.html
@@ -0,0 +1,4 @@
+<hr class="footer"/><address class="footer"><small>
+Generated for $projectname by <a href="http://www.doxygen.org/index.html"><img class="footer" src="$relpath$doxygen.png" alt="doxygen"/></a> $doxygenversion</small></address>
+</body>
+</html>
diff --git a/examples/thirdparty/libva/dummy_drv_video/Makefile.am b/examples/thirdparty/libva/dummy_drv_video/Makefile.am
new file mode 100644
index 0000000..3468f01
--- /dev/null
+++ b/examples/thirdparty/libva/dummy_drv_video/Makefile.am
@@ -0,0 +1,33 @@
+# Copyright (c) 2007 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.
+
+AM_CPPFLAGS = -I$(top_srcdir)
+
+if BUILD_DUMMY_DRIVER
+dummy_drv_video_la_LTLIBRARIES	= dummy_drv_video.la
+dummy_drv_video_ladir		= $(LIBVA_DRIVERS_PATH)
+dummy_drv_video_la_LDFLAGS	= -module -avoid-version -no-undefined -Wl,--no-undefined
+dummy_drv_video_la_LIBADD	= 
+dummy_drv_video_la_DEPENDENCIES	= 
+dummy_drv_video_la_SOURCES	= dummy_drv_video.c object_heap.c
+noinst_HEADERS			= dummy_drv_video.h object_heap.h
+endif
diff --git a/examples/thirdparty/libva/dummy_drv_video/dummy_drv_video.c b/examples/thirdparty/libva/dummy_drv_video/dummy_drv_video.c
new file mode 100644
index 0000000..282f208
--- /dev/null
+++ b/examples/thirdparty/libva/dummy_drv_video/dummy_drv_video.c
@@ -0,0 +1,1232 @@
+/*
+ * Copyright (c) 2007 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 "config.h"
+#include <va/va_backend.h>
+
+#include "dummy_drv_video.h"
+
+#include "assert.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+
+#define ASSERT	assert
+
+#define INIT_DRIVER_DATA	struct dummy_driver_data * const driver_data = (struct dummy_driver_data *) ctx->pDriverData;
+
+#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		0x04000000
+#define BUFFER_ID_OFFSET		0x08000000
+
+static void dummy__error_message(const char *msg, ...)
+{
+    va_list args;
+
+    fprintf(stderr, "dummy_drv_video error: ");
+    va_start(args, msg);
+    vfprintf(stderr, msg, args);
+    va_end(args);
+}
+
+static void dummy__information_message(const char *msg, ...)
+{
+    va_list args;
+
+    fprintf(stderr, "dummy_drv_video: ");
+    va_start(args, msg);
+    vfprintf(stderr, msg, args);
+    va_end(args);
+}
+
+VAStatus dummy_QueryConfigProfiles(
+		VADriverContextP ctx,
+		VAProfile *profile_list,	/* out */
+		int *num_profiles			/* out */
+	)
+{
+    int i = 0;
+
+    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 the assert fails then DUMMY_MAX_PROFILES needs to be bigger */
+    ASSERT(i <= DUMMY_MAX_PROFILES);
+    *num_profiles = i;
+
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_QueryConfigEntrypoints(
+		VADriverContextP ctx,
+		VAProfile profile,
+		VAEntrypoint  *entrypoint_list,	/* out */
+		int *num_entrypoints		/* out */
+	)
+{
+    switch (profile) {
+        case VAProfileMPEG2Simple:
+        case VAProfileMPEG2Main:
+                *num_entrypoints = 2;
+                entrypoint_list[0] = VAEntrypointVLD;
+                entrypoint_list[1] = VAEntrypointMoComp;
+                break;
+
+        case VAProfileMPEG4Simple:
+        case VAProfileMPEG4AdvancedSimple:
+        case VAProfileMPEG4Main:
+                *num_entrypoints = 1;
+                entrypoint_list[0] = VAEntrypointVLD;
+                break;
+
+        case VAProfileH264Baseline:
+        case VAProfileH264Main:
+        case VAProfileH264High:
+                *num_entrypoints = 1;
+                entrypoint_list[0] = VAEntrypointVLD;
+                break;
+
+        case VAProfileVC1Simple:
+        case VAProfileVC1Main:
+        case VAProfileVC1Advanced:
+                *num_entrypoints = 1;
+                entrypoint_list[0] = VAEntrypointVLD;
+                break;
+
+        default:
+                *num_entrypoints = 0;
+                break;
+    }
+
+    /* If the assert fails then DUMMY_MAX_ENTRYPOINTS needs to be bigger */
+    ASSERT(*num_entrypoints <= DUMMY_MAX_ENTRYPOINTS);
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_GetConfigAttributes(
+		VADriverContextP ctx,
+		VAProfile profile,
+		VAEntrypoint entrypoint,
+		VAConfigAttrib *attrib_list,	/* in/out */
+		int num_attribs
+	)
+{
+    int i;
+
+    /* Other attributes don't seem to be defined */
+    /* What to do if we don't know the attribute? */
+    for (i = 0; i < num_attribs; i++)
+    {
+        switch (attrib_list[i].type)
+        {
+          case VAConfigAttribRTFormat:
+              attrib_list[i].value = VA_RT_FORMAT_YUV420;
+              break;
+
+          default:
+              /* Do nothing */
+              attrib_list[i].value = VA_ATTRIB_NOT_SUPPORTED;
+              break;
+        }
+    }
+
+    return VA_STATUS_SUCCESS;
+}
+
+static VAStatus dummy__update_attribute(object_config_p obj_config, VAConfigAttrib *attrib)
+{
+    int i;
+    /* Check existing attrbiutes */
+    for(i = 0; obj_config->attrib_count < i; 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 < DUMMY_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;
+}
+
+VAStatus dummy_CreateConfig(
+		VADriverContextP ctx,
+		VAProfile profile,
+		VAEntrypoint entrypoint,
+		VAConfigAttrib *attrib_list,
+		int num_attribs,
+		VAConfigID *config_id		/* out */
+	)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus;
+    int configID;
+    object_config_p obj_config;
+    int i;
+
+    /* Validate profile & entrypoint */
+    switch (profile) {
+        case VAProfileMPEG2Simple:
+        case VAProfileMPEG2Main:
+                if ((VAEntrypointVLD == entrypoint) ||
+                    (VAEntrypointMoComp == entrypoint))
+                {
+                    vaStatus = VA_STATUS_SUCCESS;
+                }
+                else
+                {
+                    vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+                }
+                break;
+
+        case VAProfileMPEG4Simple:
+        case VAProfileMPEG4AdvancedSimple:
+        case VAProfileMPEG4Main:
+                if (VAEntrypointVLD == entrypoint)
+                {
+                    vaStatus = VA_STATUS_SUCCESS;
+                }
+                else
+                {
+                    vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+                }
+                break;
+
+        case VAProfileH264Baseline:
+        case VAProfileH264Main:
+        case VAProfileH264High:
+                if (VAEntrypointVLD == entrypoint)
+                {
+                    vaStatus = VA_STATUS_SUCCESS;
+                }
+                else
+                {
+                    vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+                }
+                break;
+
+        case VAProfileVC1Simple:
+        case VAProfileVC1Main:
+        case VAProfileVC1Advanced:
+                if (VAEntrypointVLD == entrypoint)
+                {
+                    vaStatus = VA_STATUS_SUCCESS;
+                }
+                else
+                {
+                    vaStatus = VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT;
+                }
+                break;
+
+        default:
+                vaStatus = VA_STATUS_ERROR_UNSUPPORTED_PROFILE;
+                break;
+    }
+
+    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;
+    }
+
+    obj_config->profile = profile;
+    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++)
+    {
+        vaStatus = dummy__update_attribute(obj_config, &(attrib_list[i]));
+        if (VA_STATUS_SUCCESS != vaStatus)
+        {
+            break;
+        }
+    }
+
+    /* Error recovery */
+    if (VA_STATUS_SUCCESS != vaStatus)
+    {
+        object_heap_free( &driver_data->config_heap, (object_base_p) obj_config);
+    }
+    else
+    {
+        *config_id = configID;
+    }
+
+    return vaStatus;
+}
+
+VAStatus dummy_DestroyConfig(
+		VADriverContextP ctx,
+		VAConfigID config_id
+	)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus;
+    object_config_p obj_config;
+
+    obj_config = CONFIG(config_id);
+    if (NULL == obj_config)
+    {
+        vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+        return vaStatus;
+    }
+
+    object_heap_free( &driver_data->config_heap, (object_base_p) obj_config);
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_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;
+
+    obj_config = CONFIG(config_id);
+    ASSERT(obj_config);
+
+    *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;
+}
+
+VAStatus dummy_CreateSurfaces(
+		VADriverContextP ctx,
+		int width,
+		int height,
+		int format,
+		int num_surfaces,
+		VASurfaceID *surfaces		/* out */
+	)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus = VA_STATUS_SUCCESS;
+    int i;
+
+    /* We only support one format */
+    if (VA_RT_FORMAT_YUV420 != format)
+    {
+        return VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT;
+    }
+
+    for (i = 0; i < num_surfaces; i++)
+    {
+        int surfaceID = object_heap_allocate( &driver_data->surface_heap );
+        object_surface_p obj_surface = SURFACE(surfaceID);
+        if (NULL == obj_surface)
+        {
+            vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+            break;
+        }
+        obj_surface->surface_id = surfaceID;
+        surfaces[i] = surfaceID;
+    }
+
+    /* Error recovery */
+    if (VA_STATUS_SUCCESS != vaStatus)
+    {
+        /* surfaces[i-1] was the last successful allocation */
+        for(; i--; )
+        {
+            object_surface_p obj_surface = SURFACE(surfaces[i]);
+            surfaces[i] = VA_INVALID_SURFACE;
+            ASSERT(obj_surface);
+            object_heap_free( &driver_data->surface_heap, (object_base_p) obj_surface);
+        }
+    }
+
+    return vaStatus;
+}
+
+VAStatus dummy_DestroySurfaces(
+		VADriverContextP ctx,
+		VASurfaceID *surface_list,
+		int num_surfaces
+	)
+{
+    INIT_DRIVER_DATA
+    int i;
+    for(i = num_surfaces; i--; )
+    {
+        object_surface_p obj_surface = SURFACE(surface_list[i]);
+        ASSERT(obj_surface);
+        object_heap_free( &driver_data->surface_heap, (object_base_p) obj_surface);
+    }
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_QueryImageFormats(
+	VADriverContextP ctx,
+	VAImageFormat *format_list,        /* out */
+	int *num_formats           /* out */
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_CreateImage(
+	VADriverContextP ctx,
+	VAImageFormat *format,
+	int width,
+	int height,
+	VAImage *image     /* out */
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_DeriveImage(
+	VADriverContextP ctx,
+	VASurfaceID surface,
+	VAImage *image     /* out */
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_DestroyImage(
+	VADriverContextP ctx,
+	VAImageID image
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_SetImagePalette(
+	VADriverContextP ctx,
+	VAImageID image,
+	unsigned char *palette
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_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
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus dummy_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
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_QuerySubpictureFormats(
+	VADriverContextP ctx,
+	VAImageFormat *format_list,        /* out */
+	unsigned int *flags,       /* out */
+	unsigned int *num_formats  /* out */
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_CreateSubpicture(
+	VADriverContextP ctx,
+	VAImageID image,
+	VASubpictureID *subpicture   /* out */
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_DestroySubpicture(
+	VADriverContextP ctx,
+	VASubpictureID subpicture
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_SetSubpictureImage(
+        VADriverContextP ctx,
+        VASubpictureID subpicture,
+        VAImageID image
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_SetSubpicturePalette(
+	VADriverContextP ctx,
+	VASubpictureID subpicture,
+	/*
+	 * 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 VASubpicture struct
+	 */
+	unsigned char *palette
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_SetSubpictureChromakey(
+	VADriverContextP ctx,
+	VASubpictureID subpicture,
+	unsigned int chromakey_min,
+	unsigned int chromakey_max,
+	unsigned int chromakey_mask
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_SetSubpictureGlobalAlpha(
+	VADriverContextP ctx,
+	VASubpictureID subpicture,
+	float global_alpha 
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+
+VAStatus dummy_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
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_DeassociateSubpicture(
+	VADriverContextP ctx,
+	VASubpictureID subpicture,
+	VASurfaceID *target_surfaces,
+	int num_surfaces
+)
+{
+    /* TODO */
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_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 i;
+
+    obj_config = CONFIG(config_id);
+    if (NULL == obj_config)
+    {
+        vaStatus = VA_STATUS_ERROR_INVALID_CONFIG;
+        return vaStatus;
+    }
+
+    /* Validate flag */
+    /* Validate picture dimensions */
+
+    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;
+        return vaStatus;
+    }
+
+    obj_context->context_id  = contextID;
+    *context = contextID;
+    obj_context->current_render_target = -1;
+    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 *) malloc(num_render_targets * sizeof(VASurfaceID));
+    if (obj_context->render_targets == NULL)
+    {
+        vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+        return vaStatus;
+    }
+    
+    for(i = 0; i < num_render_targets; i++)
+    {
+        if (NULL == SURFACE(render_targets[i]))
+        {
+            vaStatus = VA_STATUS_ERROR_INVALID_SURFACE;
+            break;
+        }
+        obj_context->render_targets[i] = render_targets[i];
+    }
+    obj_context->flags = flag;
+
+    /* Error recovery */
+    if (VA_STATUS_SUCCESS != vaStatus)
+    {
+        obj_context->context_id = -1;
+        obj_context->config_id = -1;
+        free(obj_context->render_targets);
+        obj_context->render_targets = NULL;
+        obj_context->num_render_targets = 0;
+        obj_context->flags = 0;
+        object_heap_free( &driver_data->context_heap, (object_base_p) obj_context);
+    }
+
+    return vaStatus;
+}
+
+
+VAStatus dummy_DestroyContext(
+		VADriverContextP ctx,
+		VAContextID context
+	)
+{
+    INIT_DRIVER_DATA
+    object_context_p obj_context = CONTEXT(context);
+    ASSERT(obj_context);
+
+    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->flags = 0;
+
+    obj_context->current_render_target = -1;
+
+    object_heap_free( &driver_data->context_heap, (object_base_p) obj_context);
+
+    return VA_STATUS_SUCCESS;
+}
+
+
+
+static VAStatus dummy__allocate_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;
+    }
+    return vaStatus;
+}
+
+VAStatus dummy_CreateBuffer(
+		VADriverContextP ctx,
+                VAContextID context,	/* in */
+                VABufferType type,	/* in */
+                unsigned int size,		/* in */
+                unsigned int num_elements,	/* in */
+                void *data,			/* in */
+                VABufferID *buf_id		/* out */
+)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus = VA_STATUS_SUCCESS;
+    int bufferID;
+    object_buffer_p obj_buffer;
+
+    /* Validate type */
+    switch (type)
+    {
+        case VAPictureParameterBufferType:
+        case VAIQMatrixBufferType:
+        case VABitPlaneBufferType:
+        case VASliceGroupMapBufferType:
+        case VASliceParameterBufferType:
+        case VASliceDataBufferType:
+        case VAMacroblockParameterBufferType:
+        case VAResidualDataBufferType:
+        case VADeblockingParameterBufferType:
+        case VAImageBufferType:
+            /* Ok */
+            break;
+        default:
+            vaStatus = VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE;
+            return vaStatus;
+    }
+
+    bufferID = object_heap_allocate( &driver_data->buffer_heap );
+    obj_buffer = BUFFER(bufferID);
+    if (NULL == obj_buffer)
+    {
+        vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+        return vaStatus;
+    }
+
+    obj_buffer->buffer_data = NULL;
+
+    vaStatus = dummy__allocate_buffer(obj_buffer, size * num_elements);
+    if (VA_STATUS_SUCCESS == vaStatus)
+    {
+        obj_buffer->max_num_elements = num_elements;
+        obj_buffer->num_elements = num_elements;
+        if (data)
+        {
+            memcpy(obj_buffer->buffer_data, data, size * num_elements);
+        }
+    }
+
+    if (VA_STATUS_SUCCESS == vaStatus)
+    {
+        *buf_id = bufferID;
+    }
+
+    return vaStatus;
+}
+
+
+VAStatus dummy_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);
+    ASSERT(obj_buffer);
+
+    if ((num_elements < 0) || (num_elements > obj_buffer->max_num_elements))
+    {
+        vaStatus = VA_STATUS_ERROR_UNKNOWN;
+    }
+    if (VA_STATUS_SUCCESS == vaStatus)
+    {
+        obj_buffer->num_elements = num_elements;
+    }
+
+    return vaStatus;
+}
+
+VAStatus dummy_MapBuffer(
+		VADriverContextP ctx,
+		VABufferID buf_id,	/* in */
+		void **pbuf         /* out */
+	)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN;
+    object_buffer_p obj_buffer = BUFFER(buf_id);
+    ASSERT(obj_buffer);
+    if (NULL == obj_buffer)
+    {
+        vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+        return vaStatus;
+    }
+
+    if (NULL != obj_buffer->buffer_data)
+    {
+        *pbuf = obj_buffer->buffer_data;
+        vaStatus = VA_STATUS_SUCCESS;
+    }
+    return vaStatus;
+}
+
+VAStatus dummy_UnmapBuffer(
+		VADriverContextP ctx,
+		VABufferID buf_id	/* in */
+	)
+{
+    /* Do nothing */
+    return VA_STATUS_SUCCESS;
+}
+
+static void dummy__destroy_buffer(struct dummy_driver_data *driver_data, object_buffer_p obj_buffer)
+{
+    if (NULL != obj_buffer->buffer_data)
+    {
+        free(obj_buffer->buffer_data);
+        obj_buffer->buffer_data = NULL;
+    }
+
+    object_heap_free( &driver_data->buffer_heap, (object_base_p) obj_buffer);
+}
+
+VAStatus dummy_DestroyBuffer(
+		VADriverContextP ctx,
+		VABufferID buffer_id
+	)
+{
+    INIT_DRIVER_DATA
+    object_buffer_p obj_buffer = BUFFER(buffer_id);
+    ASSERT(obj_buffer);
+
+    dummy__destroy_buffer(driver_data, obj_buffer);
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus dummy_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;
+
+    obj_context = CONTEXT(context);
+    ASSERT(obj_context);
+
+    obj_surface = SURFACE(render_target);
+    ASSERT(obj_surface);
+
+    obj_context->current_render_target = obj_surface->base.id;
+
+    return vaStatus;
+}
+
+VAStatus dummy_RenderPicture(
+		VADriverContextP ctx,
+		VAContextID context,
+		VABufferID *buffers,
+		int num_buffers
+	)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus = VA_STATUS_SUCCESS;
+    object_context_p obj_context;
+    object_surface_p obj_surface;
+    int i;
+
+    obj_context = CONTEXT(context);
+    ASSERT(obj_context);
+
+    obj_surface = SURFACE(obj_context->current_render_target);
+    ASSERT(obj_surface);
+
+    /* verify that we got valid buffer references */
+    for(i = 0; i < num_buffers; i++)
+    {
+        object_buffer_p obj_buffer = BUFFER(buffers[i]);
+        ASSERT(obj_buffer);
+        if (NULL == obj_buffer)
+        {
+            vaStatus = VA_STATUS_ERROR_INVALID_BUFFER;
+            break;
+        }
+    }
+    
+    /* Release buffers */
+    for(i = 0; i < num_buffers; i++)
+    {
+        object_buffer_p obj_buffer = BUFFER(buffers[i]);
+        ASSERT(obj_buffer);
+        dummy__destroy_buffer(driver_data, obj_buffer);
+    }
+
+    return vaStatus;
+}
+
+VAStatus dummy_EndPicture(
+		VADriverContextP ctx,
+		VAContextID context
+	)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus = VA_STATUS_SUCCESS;
+    object_context_p obj_context;
+    object_surface_p obj_surface;
+
+    obj_context = CONTEXT(context);
+    ASSERT(obj_context);
+
+    obj_surface = SURFACE(obj_context->current_render_target);
+    ASSERT(obj_surface);
+
+    // For now, assume that we are done with rendering right away
+    obj_context->current_render_target = -1;
+
+    return vaStatus;
+}
+
+
+VAStatus dummy_SyncSurface(
+		VADriverContextP ctx,
+		VASurfaceID render_target
+	)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus = VA_STATUS_SUCCESS;
+    object_surface_p obj_surface;
+
+    obj_surface = SURFACE(render_target);
+    ASSERT(obj_surface);
+
+    return vaStatus;
+}
+
+VAStatus dummy_QuerySurfaceStatus(
+		VADriverContextP ctx,
+		VASurfaceID render_target,
+		VASurfaceStatus *status	/* out */
+	)
+{
+    INIT_DRIVER_DATA
+    VAStatus vaStatus = VA_STATUS_SUCCESS;
+    object_surface_p obj_surface;
+
+    obj_surface = SURFACE(render_target);
+    ASSERT(obj_surface);
+
+    *status = VASurfaceReady;
+
+    return vaStatus;
+}
+
+VAStatus dummy_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 */
+	)
+{
+    /* TODO */
+    return VA_STATUS_ERROR_UNKNOWN;
+}
+
+/* 
+ * 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 dummy_QueryDisplayAttributes (
+		VADriverContextP ctx,
+		VADisplayAttribute *attr_list,	/* out */
+		int *num_attributes		/* out */
+	)
+{
+    /* TODO */
+    return VA_STATUS_ERROR_UNKNOWN;
+}
+
+/* 
+ * 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 dummy_GetDisplayAttributes (
+		VADriverContextP ctx,
+		VADisplayAttribute *attr_list,	/* in/out */
+		int num_attributes
+	)
+{
+    /* TODO */
+    return VA_STATUS_ERROR_UNKNOWN;
+}
+
+/* 
+ * 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 dummy_SetDisplayAttributes (
+		VADriverContextP ctx,
+		VADisplayAttribute *attr_list,
+		int num_attributes
+	)
+{
+    /* TODO */
+    return VA_STATUS_ERROR_UNKNOWN;
+}
+
+
+VAStatus dummy_BufferInfo(
+        VADriverContextP ctx,
+        VABufferID buf_id,	/* in */
+        VABufferType *type,	/* out */
+        unsigned int *size,    	/* out */
+        unsigned int *num_elements /* out */
+    )
+{
+    /* TODO */
+    return VA_STATUS_ERROR_UNIMPLEMENTED;
+}
+
+    
+
+VAStatus dummy_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
+	)
+{
+    /* TODO */
+    return VA_STATUS_ERROR_UNIMPLEMENTED;
+}
+
+VAStatus dummy_UnlockSurface(
+		VADriverContextP ctx,
+		VASurfaceID surface
+	)
+{
+    /* TODO */
+    return VA_STATUS_ERROR_UNIMPLEMENTED;
+}
+
+VAStatus dummy_Terminate( VADriverContextP ctx )
+{
+    INIT_DRIVER_DATA
+    object_buffer_p obj_buffer;
+    object_config_p obj_config;
+    object_heap_iterator iter;
+
+    /* Clean up left over buffers */
+    obj_buffer = (object_buffer_p) object_heap_first( &driver_data->buffer_heap, &iter);
+    while (obj_buffer)
+    {
+        dummy__information_message("vaTerminate: bufferID %08x still allocated, destroying\n", obj_buffer->base.id);
+        dummy__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 );
+
+    /* TODO cleanup */
+    object_heap_destroy( &driver_data->surface_heap );
+
+    /* TODO cleanup */
+    object_heap_destroy( &driver_data->context_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 );
+
+    free(ctx->pDriverData);
+    ctx->pDriverData = NULL;
+
+    return VA_STATUS_SUCCESS;
+}
+
+VAStatus VA_DRIVER_INIT_FUNC(  VADriverContextP ctx )
+{
+    struct VADriverVTable * const vtable = ctx->vtable;
+    int result;
+    struct dummy_driver_data *driver_data;
+
+    ctx->version_major = VA_MAJOR_VERSION;
+    ctx->version_minor = VA_MINOR_VERSION;
+    ctx->max_profiles = DUMMY_MAX_PROFILES;
+    ctx->max_entrypoints = DUMMY_MAX_ENTRYPOINTS;
+    ctx->max_attributes = DUMMY_MAX_CONFIG_ATTRIBUTES;
+    ctx->max_image_formats = DUMMY_MAX_IMAGE_FORMATS;
+    ctx->max_subpic_formats = DUMMY_MAX_SUBPIC_FORMATS;
+    ctx->max_display_attributes = DUMMY_MAX_DISPLAY_ATTRIBUTES;
+    ctx->str_vendor = DUMMY_STR_VENDOR;
+
+    vtable->vaTerminate = dummy_Terminate;
+    vtable->vaQueryConfigEntrypoints = dummy_QueryConfigEntrypoints;
+    vtable->vaQueryConfigProfiles = dummy_QueryConfigProfiles;
+    vtable->vaQueryConfigEntrypoints = dummy_QueryConfigEntrypoints;
+    vtable->vaQueryConfigAttributes = dummy_QueryConfigAttributes;
+    vtable->vaCreateConfig = dummy_CreateConfig;
+    vtable->vaDestroyConfig = dummy_DestroyConfig;
+    vtable->vaGetConfigAttributes = dummy_GetConfigAttributes;
+    vtable->vaCreateSurfaces = dummy_CreateSurfaces;
+    vtable->vaDestroySurfaces = dummy_DestroySurfaces;
+    vtable->vaCreateContext = dummy_CreateContext;
+    vtable->vaDestroyContext = dummy_DestroyContext;
+    vtable->vaCreateBuffer = dummy_CreateBuffer;
+    vtable->vaBufferSetNumElements = dummy_BufferSetNumElements;
+    vtable->vaMapBuffer = dummy_MapBuffer;
+    vtable->vaUnmapBuffer = dummy_UnmapBuffer;
+    vtable->vaDestroyBuffer = dummy_DestroyBuffer;
+    vtable->vaBeginPicture = dummy_BeginPicture;
+    vtable->vaRenderPicture = dummy_RenderPicture;
+    vtable->vaEndPicture = dummy_EndPicture;
+    vtable->vaSyncSurface = dummy_SyncSurface;
+    vtable->vaQuerySurfaceStatus = dummy_QuerySurfaceStatus;
+    vtable->vaPutSurface = dummy_PutSurface;
+    vtable->vaQueryImageFormats = dummy_QueryImageFormats;
+    vtable->vaCreateImage = dummy_CreateImage;
+    vtable->vaDeriveImage = dummy_DeriveImage;
+    vtable->vaDestroyImage = dummy_DestroyImage;
+    vtable->vaSetImagePalette = dummy_SetImagePalette;
+    vtable->vaGetImage = dummy_GetImage;
+    vtable->vaPutImage = dummy_PutImage;
+    vtable->vaQuerySubpictureFormats = dummy_QuerySubpictureFormats;
+    vtable->vaCreateSubpicture = dummy_CreateSubpicture;
+    vtable->vaDestroySubpicture = dummy_DestroySubpicture;
+    vtable->vaSetSubpictureImage = dummy_SetSubpictureImage;
+    vtable->vaSetSubpictureChromakey = dummy_SetSubpictureChromakey;
+    vtable->vaSetSubpictureGlobalAlpha = dummy_SetSubpictureGlobalAlpha;
+    vtable->vaAssociateSubpicture = dummy_AssociateSubpicture;
+    vtable->vaDeassociateSubpicture = dummy_DeassociateSubpicture;
+    vtable->vaQueryDisplayAttributes = dummy_QueryDisplayAttributes;
+    vtable->vaGetDisplayAttributes = dummy_GetDisplayAttributes;
+    vtable->vaSetDisplayAttributes = dummy_SetDisplayAttributes;
+    vtable->vaLockSurface = dummy_LockSurface;
+    vtable->vaUnlockSurface = dummy_UnlockSurface;
+    vtable->vaBufferInfo = dummy_BufferInfo;
+
+    driver_data = (struct dummy_driver_data *) malloc( sizeof(*driver_data) );
+    ctx->pDriverData = (void *) driver_data;
+
+    result = object_heap_init( &driver_data->config_heap, sizeof(struct object_config), CONFIG_ID_OFFSET );
+    ASSERT( result == 0 );
+
+    result = object_heap_init( &driver_data->context_heap, sizeof(struct object_context), CONTEXT_ID_OFFSET );
+    ASSERT( result == 0 );
+
+    result = object_heap_init( &driver_data->surface_heap, sizeof(struct object_surface), SURFACE_ID_OFFSET );
+    ASSERT( result == 0 );
+
+    result = object_heap_init( &driver_data->buffer_heap, sizeof(struct object_buffer), BUFFER_ID_OFFSET );
+    ASSERT( result == 0 );
+
+
+    return VA_STATUS_SUCCESS;
+}
+
diff --git a/examples/thirdparty/libva/dummy_drv_video/dummy_drv_video.h b/examples/thirdparty/libva/dummy_drv_video/dummy_drv_video.h
new file mode 100644
index 0000000..cd849c5
--- /dev/null
+++ b/examples/thirdparty/libva/dummy_drv_video/dummy_drv_video.h
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#ifndef _DUMMY_DRV_VIDEO_H_
+#define _DUMMY_DRV_VIDEO_H_
+
+#include <va/va.h>
+#include "object_heap.h"
+
+#define DUMMY_MAX_PROFILES			11
+#define DUMMY_MAX_ENTRYPOINTS			5
+#define DUMMY_MAX_CONFIG_ATTRIBUTES		10
+#define DUMMY_MAX_IMAGE_FORMATS			10
+#define DUMMY_MAX_SUBPIC_FORMATS		4
+#define DUMMY_MAX_DISPLAY_ATTRIBUTES		4
+#define DUMMY_STR_VENDOR			"Dummy Driver 1.0"
+
+struct dummy_driver_data {
+    struct object_heap	config_heap;
+    struct object_heap	context_heap;
+    struct object_heap	surface_heap;
+    struct object_heap	buffer_heap;
+};
+
+struct object_config {
+    struct object_base base;
+    VAProfile profile;
+    VAEntrypoint entrypoint;
+    VAConfigAttrib attrib_list[DUMMY_MAX_CONFIG_ATTRIBUTES];
+    int attrib_count;
+};
+
+struct object_context {
+    struct object_base base;
+    VAContextID context_id;
+    VAConfigID config_id;
+    VASurfaceID current_render_target;
+    int picture_width;
+    int picture_height;
+    int num_render_targets;
+    int flags;
+    VASurfaceID *render_targets;
+};
+
+struct object_surface {
+    struct object_base base;
+    VASurfaceID surface_id;
+};
+
+struct object_buffer {
+    struct object_base base;
+    void *buffer_data;
+    int max_num_elements;
+    int num_elements;
+};
+
+typedef struct object_config *object_config_p;
+typedef struct object_context *object_context_p;
+typedef struct object_surface *object_surface_p;
+typedef struct object_buffer *object_buffer_p;
+
+#endif /* _DUMMY_DRV_VIDEO_H_ */
diff --git a/examples/thirdparty/libva/dummy_drv_video/object_heap.c b/examples/thirdparty/libva/dummy_drv_video/object_heap.c
new file mode 100644
index 0000000..7f18a1f
--- /dev/null
+++ b/examples/thirdparty/libva/dummy_drv_video/object_heap.c
@@ -0,0 +1,267 @@
+/*
+ * Copyright (c) 2007 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 <stdlib.h>
+#include <assert.h>
+#include "object_heap.h"
+
+#define ASSERT  assert
+
+#define LAST_FREE   -1
+#define ALLOCATED   -2
+
+/*
+ * Expands the heap
+ * Return 0 on success, -1 on error
+ */
+static int
+object_heap_expand(object_heap_p heap)
+{
+    int i;
+    void *new_heap_index;
+    int next_free;
+    int new_heap_size = heap->heap_size + heap->heap_increment;
+    int bucket_index = new_heap_size / heap->heap_increment - 1;
+
+    if (bucket_index >= heap->num_buckets) {
+        int new_num_buckets = heap->num_buckets + 8;
+        void **new_bucket;
+
+        new_bucket = realloc(heap->bucket, new_num_buckets * sizeof(void *));
+        if (NULL == new_bucket) {
+            return -1;
+        }
+
+        heap->num_buckets = new_num_buckets;
+        heap->bucket = new_bucket;
+    }
+
+    new_heap_index = (void *) malloc(heap->heap_increment * heap->object_size);
+    if (NULL == new_heap_index) {
+        return -1; /* Out of memory */
+    }
+
+    heap->bucket[bucket_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)(new_heap_index + (i - heap->heap_size) * heap->object_size);
+        obj->id = i + heap->id_offset;
+        obj->next_free = next_free;
+        next_free = i;
+    }
+    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)
+{
+    pthread_mutex_init(&heap->mutex, NULL);
+    heap->object_size = object_size;
+    heap->id_offset = id_offset & OBJECT_HEAP_OFFSET_MASK;
+    heap->heap_size = 0;
+    heap->heap_increment = 16;
+    heap->next_free = LAST_FREE;
+    heap->num_buckets = 0;
+    heap->bucket = NULL;
+    return object_heap_expand(heap);
+}
+
+/*
+ * Allocates an object
+ * Returns the object ID on success, returns -1 on error
+ */
+static int
+object_heap_allocate_unlocked(object_heap_p heap)
+{
+    object_base_p obj;
+    int bucket_index, obj_index;
+
+    if (LAST_FREE == heap->next_free) {
+        if (-1 == object_heap_expand(heap)) {
+            return -1; /* Out of memory */
+        }
+    }
+    ASSERT(heap->next_free >= 0);
+
+    bucket_index = heap->next_free / heap->heap_increment;
+    obj_index = heap->next_free % heap->heap_increment;
+
+    obj = (object_base_p)(heap->bucket[bucket_index] + obj_index * heap->object_size);
+    heap->next_free = obj->next_free;
+    obj->next_free = ALLOCATED;
+    return obj->id;
+}
+
+int
+object_heap_allocate(object_heap_p heap)
+{
+    int ret;
+
+    pthread_mutex_lock(&heap->mutex);
+    ret = object_heap_allocate_unlocked(heap);
+    pthread_mutex_unlock(&heap->mutex);
+    return ret;
+}
+
+/*
+ * Lookup an object by object ID
+ * Returns a pointer to the object on success, returns NULL on error
+ */
+static object_base_p
+object_heap_lookup_unlocked(object_heap_p heap, int id)
+{
+    object_base_p obj;
+    int bucket_index, obj_index;
+
+    if ((id < heap->id_offset) || (id > (heap->heap_size + heap->id_offset))) {
+        return NULL;
+    }
+    id &= OBJECT_HEAP_ID_MASK;
+    bucket_index = id / heap->heap_increment;
+    obj_index = id % heap->heap_increment;
+    obj = (object_base_p)(heap->bucket[bucket_index] + obj_index * heap->object_size);
+
+    /* Check if the object has in fact been allocated */
+    if (obj->next_free != ALLOCATED) {
+        return NULL;
+    }
+    return obj;
+}
+
+object_base_p
+object_heap_lookup(object_heap_p heap, int id)
+{
+    object_base_p obj;
+
+    pthread_mutex_lock(&heap->mutex);
+    obj = object_heap_lookup_unlocked(heap, id);
+    pthread_mutex_unlock(&heap->mutex);
+    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.
+ */
+static object_base_p
+object_heap_next_unlocked(object_heap_p heap, object_heap_iterator *iter)
+{
+    object_base_p obj;
+    int bucket_index, obj_index;
+    int i = *iter + 1;
+
+    while (i < heap->heap_size) {
+        bucket_index = i / heap->heap_increment;
+        obj_index = i % heap->heap_increment;
+
+        obj = (object_base_p)(heap->bucket[bucket_index] + obj_index * heap->object_size);
+        if (obj->next_free == ALLOCATED) {
+            *iter = i;
+            return obj;
+        }
+        i++;
+    }
+    *iter = i;
+    return NULL;
+}
+
+object_base_p
+object_heap_next(object_heap_p heap, object_heap_iterator *iter)
+{
+    object_base_p obj;
+
+    pthread_mutex_lock(&heap->mutex);
+    obj = object_heap_next_unlocked(heap, iter);
+    pthread_mutex_unlock(&heap->mutex);
+    return obj;
+}
+
+/*
+ * Frees an object
+ */
+static void
+object_heap_free_unlocked(object_heap_p heap, object_base_p obj)
+{
+    /* Check if the object has in fact been allocated */
+    ASSERT(obj->next_free == ALLOCATED);
+
+    obj->next_free = heap->next_free;
+    heap->next_free = obj->id & OBJECT_HEAP_ID_MASK;
+}
+
+void
+object_heap_free(object_heap_p heap, object_base_p obj)
+{
+    if (!obj)
+        return;
+    pthread_mutex_lock(&heap->mutex);
+    object_heap_free_unlocked(heap, obj);
+    pthread_mutex_unlock(&heap->mutex);
+}
+
+/*
+ * Destroys a heap, the heap must be empty.
+ */
+void
+object_heap_destroy(object_heap_p heap)
+{
+    object_base_p obj;
+    int bucket_index, obj_index, i;
+
+    /* Check if heap is empty */
+    for (i = 0; i < heap->heap_size; i++) {
+        /* Check if object is not still allocated */
+        bucket_index = i / heap->heap_increment;
+        obj_index = i % heap->heap_increment;
+        obj = (object_base_p)(heap->bucket[bucket_index] + obj_index * heap->object_size);
+        ASSERT(obj->next_free != ALLOCATED);
+    }
+
+    for (i = 0; i < heap->heap_size / heap->heap_increment; i++) {
+        free(heap->bucket[i]);
+    }
+
+    pthread_mutex_destroy(&heap->mutex);
+
+    free(heap->bucket);
+    heap->bucket = NULL;
+    heap->heap_size = 0;
+    heap->next_free = LAST_FREE;
+}
diff --git a/examples/thirdparty/libva/dummy_drv_video/object_heap.h b/examples/thirdparty/libva/dummy_drv_video/object_heap.h
new file mode 100644
index 0000000..58e1183
--- /dev/null
+++ b/examples/thirdparty/libva/dummy_drv_video/object_heap.h
@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#ifndef OBJECT_HEAP_H
+#define OBJECT_HEAP_H
+
+#include <pthread.h>
+
+#define OBJECT_HEAP_OFFSET_MASK 0x7F000000
+#define OBJECT_HEAP_ID_MASK     0x00FFFFFF
+
+typedef struct object_base *object_base_p;
+typedef struct object_heap *object_heap_p;
+
+struct object_base {
+    int id;
+    int next_free;
+};
+
+struct object_heap {
+    pthread_mutex_t mutex;
+    int object_size;
+    int id_offset;
+    int next_free;
+    int heap_size;
+    int heap_increment;
+    void **bucket;
+    int num_buckets;
+};
+
+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);
+
+#endif /* OBJECT_HEAP_H */
diff --git a/examples/thirdparty/libva/libva.spec b/examples/thirdparty/libva/libva.spec
new file mode 100644
index 0000000..28842a3
--- /dev/null
+++ b/examples/thirdparty/libva/libva.spec
@@ -0,0 +1,151 @@
+#%define moduledir %(pkg-config xorg-server --variable=moduledir)
+%define libversion 1.0.11
+
+Name:           libva
+Version:        %{libversion}
+Release:        0.0
+License:        MIT
+Source:         %{name}-%{version}.tar.bz2
+NoSource:	0
+Group:          Development/Libraries
+Summary:        Video Acceleration (VA) API for Linux
+URL:            http://freedesktop.org/wiki/Software/vaapi
+BuildRoot:      %{_tmppath}/%{name}-%{version}-build
+
+Requires: xorg-x11-server-Xorg
+
+Requires: /sbin/ldconfig
+BuildRequires:  pkgconfig(xv)
+BuildRequires:  pkgconfig(xrandr)
+BuildRequires:  pkgconfig(xorg-server)
+BuildRequires:  pkgconfig(libdrm)
+BuildRequires:  pkgconfig(x11)
+BuildRequires:  pkgconfig(xext)
+BuildRequires:  pkgconfig(xdamage)
+BuildRequires:  pkgconfig(xfixes)
+BuildRequires:  pkgconfig(dri2proto)
+BuildRequires:  pkgconfig(damageproto)
+BuildRequires:  pkgconfig(kbproto)
+BuildRequires:  pkgconfig(xextproto)
+BuildRequires:  pkgconfig(fixesproto)
+BuildRequires:  pkgconfig(xproto)
+BuildRequires:  pkgconfig(gl)
+BuildRequires:  libtool
+
+
+
+
+
+%description
+The libva library implements the Video Acceleration (VA) API for Linux.
+The library loads a hardware dependendent driver.
+
+%package devel
+Summary: Video Acceleration (VA) API for Linux -- development files
+Group:          Development/Libraries
+Requires: %{name} = %{version}-%{release}
+Requires: pkgconfig
+
+%description devel
+The libva library implements the Video Acceleration (VA) API for Linux.
+The library loads a hardware dependendent driver.
+
+This package provides the development environment for libva.
+
+%prep
+%setup -q
+
+%build
+unset LD_AS_NEEDED
+%autogen
+make
+
+%install
+%make_install
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%{_libdir}/libva.so.1
+%{_libdir}/libva.so.%{libversion}
+%{_libdir}/libva-tpi.so.1
+%{_libdir}/libva-tpi.so.%{libversion}
+%{_libdir}/libva-x11.so.1
+%{_libdir}/libva-x11.so.%{libversion}
+%{_libdir}/libva-glx.so.1
+%{_libdir}/libva-glx.so.%{libversion}
+%{_libdir}/libva-egl.so.1
+%{_libdir}/libva-egl.so.%{libversion}
+%{_bindir}/vainfo
+%{_bindir}/test_*
+%{_bindir}/h264encode
+%{_bindir}/mpeg2vldemo
+%{_bindir}/putsurface
+
+%{_libdir}/dri/dummy_drv_video.so
+
+%files devel
+%defattr(-,root,root,-)
+%dir %{_includedir}/va
+%{_includedir}/va/*
+%{_libdir}/libva.so
+%{_libdir}/libva-tpi.so
+%{_libdir}/libva-x11.so
+%{_libdir}/libva-glx.so
+%{_libdir}/libva-egl.so
+%{_libdir}/pkgconfig/libva.pc
+%{_libdir}/pkgconfig/libva-tpi.pc
+%{_libdir}/pkgconfig/libva-x11.pc
+%{_libdir}/pkgconfig/libva-glx.pc
+%{_libdir}/pkgconfig/libva-egl.pc
+
+%changelog
+* Tue Jan 25 2011 Austin Yuan <shengquan.yuan at intel.com> 1.0.1
+- Updated libva source to 1.0.8
+* Wed Dec 23 2009 Prajwal Mohan <prajwal.karur.mohan at intel.com> 1.0.1
+- Updated libva source to IMG Alpha7
+* Fri Dec 18 2009 Prajwal Mohan <prajwal.karur.mohan at intel.com> 0.31.0
+- Updated libva source to IMG Alpha6
+* Tue Nov 24 2009 Prajwal Mohan <prajwal.karur.mohan at intel.com> 0.31.0
+- Updated libva source
+* Mon Nov  9 2009 Prajwal Mohan <prajwal.karur.mohan at intel.com> 0.31.0
+- Update to version 0.31.0
+* Tue Jul  7 2009 Prajwal Mohan <prajwal.karur.mohan at intel.com> 0.30.4
+- Update to version 0.30.4
+* Wed Jun 24 2009 Prajwal Mohan <prajwal.karur.mohan at intel.com> 0.30.20090618
+- Update to version 0.30.20090618_Alpha2.3
+* Thu Jun 11 2009 Priya Vijayan <priya.vijayan at intel.com> 0.30.20090608
+- Update to version 0.30.20090608
+* Tue Jun  2 2009 Anas Nashif <anas.nashif at intel.com> - 0.30~20090514
+- unset LD_AS_NEEDED
+* Fri May 15 2009 Anas Nashif <anas.nashif at intel.com> 0.30~20090514
+- Update to latest snapshot 20090514
+* Wed Apr 29 2009 Anas Nashif <anas.nashif at intel.com> 0.30~20090428
+- Update to 20090428 snpashot
+* Sun Apr 26 2009 Anas Nashif <anas.nashif at intel.com> 0.30~20090423
+- Update libva.pc with new includedir
+* Sun Apr 26 2009 Anas Nashif <anas.nashif at intel.com> 0.30~20090423
+- Update to latest snapshot 20090423
+* Sun Apr 26 2009 Anas Nashif <anas.nashif at intel.com> 0.30~20090423
+- Update to latest snapshot: 20090423
+* Mon Mar 23 2009 Anas Nashif <anas.nashif at intel.com> 0.30~20090323
+- Update to 0.30~20090323
+* Fri Jan 16 2009 Priya Vijayan <priya.vijayan at intel.com> 0.31
+- Fixing vainfo.c
+* Fri Jan 16 2009 Priya Vijayan <priya.vijayan at intel.com> 0.31
+- fixing va_backend.h
+* Fri Jan 16 2009 Priya Vijayan <priya.vijayan at intel.com> 0.31
+- Updating source
+* Tue Jan  6 2009 Priya Vijayan <priya.vijayan at intel.com> 0.30
+- Update to 0.28-working combination with X Server
+* Fri Dec 19 2008 Priya Vijayan <priya.vijayan at intel.com> 0.30.0
+- Added definition of FOURCC IYUV
+  * Dec 16 2008 Priya Vijayan <priya.vijayan at intel.com>
+- Initial Import to MRST
+* Mon Oct 13 2008 shengquan.yuan at intel.com
+- packaged mrst-video-decode-src version 0.0.1 using the buildservice spec file wizard
diff --git a/examples/thirdparty/libva/pkgconfig/Makefile.am b/examples/thirdparty/libva/pkgconfig/Makefile.am
new file mode 100644
index 0000000..a3435a4
--- /dev/null
+++ b/examples/thirdparty/libva/pkgconfig/Makefile.am
@@ -0,0 +1,57 @@
+# Copyright (c) 2007 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.
+
+pcfiles		 = libva.pc
+pcfiles		+= libva-tpi.pc
+if USE_DRM
+pcfiles		+= libva-drm.pc
+endif
+if USE_X11
+pcfiles		+= libva-x11.pc
+endif
+if USE_GLX
+pcfiles		+= libva-glx.pc
+endif
+if USE_EGL
+pcfiles		+= libva-egl.pc
+endif
+if USE_WAYLAND
+pcfiles		+= libva-wayland.pc
+endif
+
+all_pcfiles_in	 = libva.pc.in
+all_pcfiles_in	+= libva-tpi.pc.in
+all_pcfiles_in	+= libva-drm.pc.in
+all_pcfiles_in	+= libva-x11.pc.in
+all_pcfiles_in	+= libva-glx.pc.in
+all_pcfiles_in	+= libva-egl.pc.in
+all_pcfiles_in	+= libva-wayland.pc.in
+
+pkgconfigdir = @pkgconfigdir@
+pkgconfig_DATA = $(pcfiles)
+
+EXTRA_DIST = $(all_pcfiles_in)
+
+DISTCLEANFILES = $(pcfiles)
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/examples/thirdparty/libva/pkgconfig/libva-drm.pc.in b/examples/thirdparty/libva/pkgconfig/libva-drm.pc.in
new file mode 100644
index 0000000..b3fb471
--- /dev/null
+++ b/examples/thirdparty/libva/pkgconfig/libva-drm.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+display=drm
+
+Name: libva-${display}
+Description: Userspace Video Acceleration (VA) ${display} interface
+Requires: libva
+Version: @VA_API_VERSION@
+Libs: -L${libdir} -lva-${display}
+Cflags: -I${includedir}
diff --git a/examples/thirdparty/libva/pkgconfig/libva-egl.pc.in b/examples/thirdparty/libva/pkgconfig/libva-egl.pc.in
new file mode 100644
index 0000000..d80fcc8
--- /dev/null
+++ b/examples/thirdparty/libva/pkgconfig/libva-egl.pc.in
@@ -0,0 +1,13 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+display=egl
+
+Name: libva-${display}
+Description: Userspace Video Acceleration (VA) ${display} interface
+Requires: libva
+Version: @VA_API_VERSION@
+Libs: -L${libdir} -lva-${display}
+Cflags: -I${includedir}
+
diff --git a/examples/thirdparty/libva/pkgconfig/libva-glx.pc.in b/examples/thirdparty/libva/pkgconfig/libva-glx.pc.in
new file mode 100644
index 0000000..8599866
--- /dev/null
+++ b/examples/thirdparty/libva/pkgconfig/libva-glx.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+display=glx
+
+Name: libva-${display}
+Description: Userspace Video Acceleration (VA) ${display} interface
+Requires: libva
+Version: @VA_API_VERSION@
+Libs: -L${libdir} -lva-${display}
+Cflags: -I${includedir}
diff --git a/examples/thirdparty/libva/pkgconfig/libva-tpi.pc.in b/examples/thirdparty/libva/pkgconfig/libva-tpi.pc.in
new file mode 100644
index 0000000..bc7fdd7
--- /dev/null
+++ b/examples/thirdparty/libva/pkgconfig/libva-tpi.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libva-tpi
+Description: Userspace Video Acceleration (VA) 3rd party interface
+Requires: libva
+Version: @VA_API_VERSION@
+Libs: -L${libdir} -lva-tpi
+Cflags: -I${includedir}
diff --git a/examples/thirdparty/libva/pkgconfig/libva-wayland.pc.in b/examples/thirdparty/libva/pkgconfig/libva-wayland.pc.in
new file mode 100644
index 0000000..ee92ac2
--- /dev/null
+++ b/examples/thirdparty/libva/pkgconfig/libva-wayland.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+display=wayland
+
+Name: libva-${display}
+Description: Userspace Video Acceleration (VA) ${display} interface
+Requires: libva wayland-client
+Version: @VA_API_VERSION@
+Libs: -L${libdir} -lva-${display}
+Cflags: -I${includedir}
diff --git a/examples/thirdparty/libva/pkgconfig/libva-x11.pc.in b/examples/thirdparty/libva/pkgconfig/libva-x11.pc.in
new file mode 100644
index 0000000..4e7330c
--- /dev/null
+++ b/examples/thirdparty/libva/pkgconfig/libva-x11.pc.in
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+display=x11
+
+Name: libva-${display}
+Description: Userspace Video Acceleration (VA) ${display} interface
+Requires: libva
+Version: @VA_API_VERSION@
+Libs: -L${libdir} -lva-${display}
+Cflags: -I${includedir}
diff --git a/examples/thirdparty/libva/pkgconfig/libva.pc.in b/examples/thirdparty/libva/pkgconfig/libva.pc.in
new file mode 100644
index 0000000..8b03f98
--- /dev/null
+++ b/examples/thirdparty/libva/pkgconfig/libva.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+driverdir=@LIBVA_DRIVERS_PATH@
+
+Name: libva
+Description: Userspace Video Acceleration (VA) core interface
+Version: @VA_API_VERSION@
+Libs: -L${libdir} -lva
+Cflags: -I${includedir}
diff --git a/examples/thirdparty/libva/style_unify b/examples/thirdparty/libva/style_unify
new file mode 100755
index 0000000..4915e63
--- /dev/null
+++ b/examples/thirdparty/libva/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
+
+
+
diff --git a/examples/thirdparty/libva/test/Android.mk b/examples/thirdparty/libva/test/Android.mk
new file mode 100644
index 0000000..f3f122c
--- /dev/null
+++ b/examples/thirdparty/libva/test/Android.mk
@@ -0,0 +1,4 @@
+# Recursive call sub-folder Android.mk
+#
+ include $(call all-subdir-makefiles)
+
diff --git a/examples/thirdparty/libva/test/Makefile.am b/examples/thirdparty/libva/test/Makefile.am
new file mode 100644
index 0000000..6083bb3
--- /dev/null
+++ b/examples/thirdparty/libva/test/Makefile.am
@@ -0,0 +1,29 @@
+# Copyright (c) 2007 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.
+
+SUBDIRS = common decode encode vainfo
+
+if USE_X11
+SUBDIRS += basic putsurface
+endif
+
+EXTRA_DIST = loadsurface.h loadsurface_yuv.h
diff --git a/examples/thirdparty/libva/test/basic/Android.mk b/examples/thirdparty/libva/test/basic/Android.mk
new file mode 100755
index 0000000..2b4255c
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/Android.mk
@@ -0,0 +1,234 @@
+# For test_01
+# =====================================================
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_01.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_001
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_02
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_02.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_02_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_03
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_03.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_03_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_04g
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_04.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_04_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_05
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_05.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_05_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_06
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_06.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_06_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_07
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_07.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_07_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_08
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_08.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_08_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_09
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_09.c	\
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_09_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_10
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_10.c	
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_10_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
+# For test_11
+# =====================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  test_11.c	
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva	\
+  $(TOPDIR)/hardware/intel/libva/va/
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	test_11_android
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libui libsurfaceflinger
+
+include $(BUILD_EXECUTABLE)
+
diff --git a/examples/thirdparty/libva/test/basic/Makefile.am b/examples/thirdparty/libva/test/basic/Makefile.am
new file mode 100644
index 0000000..21f48dd
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/Makefile.am
@@ -0,0 +1,87 @@
+# Copyright (c) 2007 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.
+
+noinst_PROGRAMS = \
+	test_01			\
+	test_02			\
+	test_03			\
+	test_04			\
+	test_05			\
+	test_06			\
+	test_07			\
+	test_08			\
+	test_09			\
+	test_10			\
+	test_11			\
+	$(NULL)
+
+AM_CFLAGS = \
+	-DIN_LIBVA		\
+	-I$(top_srcdir)		\
+	$(X11_CFLAGS)		\
+	$(NULL)
+
+TEST_LIBS = \
+	$(top_builddir)/va/libva.la	\
+	$(top_builddir)/va/libva-x11.la	\
+	$(X11_LIBS)			\
+	$(NULL)
+
+test_01_LDADD = $(TEST_LIBS)
+test_01_SOURCES = test_01.c
+
+test_02_LDADD = $(TEST_LIBS)
+test_02_SOURCES = test_02.c
+
+test_03_LDADD = $(TEST_LIBS)
+test_03_SOURCES = test_03.c
+
+test_04_LDADD = $(TEST_LIBS)
+test_04_SOURCES = test_04.c
+
+test_05_LDADD = $(TEST_LIBS)
+test_05_SOURCES = test_05.c
+
+test_06_LDADD = $(TEST_LIBS)
+test_06_SOURCES = test_06.c
+
+test_07_LDADD = $(TEST_LIBS)
+test_07_SOURCES = test_07.c
+
+test_08_LDADD = $(TEST_LIBS)
+test_08_SOURCES = test_08.c
+
+test_09_LDADD = $(TEST_LIBS)
+test_09_SOURCES = test_09.c
+
+test_10_LDADD = $(TEST_LIBS)
+test_10_SOURCES = test_10.c
+
+test_11_LDADD = $(TEST_LIBS)
+test_11_SOURCES = test_11.c
+
+EXTRA_DIST = test_common.c test_x11.c
+
+valgrind:	$(noinst_PROGRAMS)
+	for a in $(noinst_PROGRAMS); do \
+		valgrind --leak-check=full --show-reachable=yes .libs/$$a; \
+	done
diff --git a/examples/thirdparty/libva/test/basic/test.c b/examples/thirdparty/libva/test/basic/test.c
new file mode 100644
index 0000000..a03a8b2
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test.c
@@ -0,0 +1,151 @@
+/*
+ * Copyright (c) 2007 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 <va/va_x11.h>
+
+#include "assert.h"
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include <dlfcn.h>
+
+#define ASSERT	assert
+
+int main(int argc, const char* argv[])
+{
+  Display *dpy;
+  VADisplay va_dpy;
+  VAStatus va_status;
+  int major_version, minor_version; 
+   
+  dpy = XOpenDisplay(NULL);
+  ASSERT( dpy );
+  printf("XOpenDisplay: dpy = %08x\n", dpy);
+  
+  va_dpy = vaGetDisplay(dpy);
+  ASSERT( va_dpy );  
+  printf("vaGetDisplay: va_dpy = %08x\n", va_dpy);
+  
+  va_status = vaInitialize(va_dpy, &major_version, &minor_version);
+  ASSERT( VA_STATUS_SUCCESS == va_status );
+  printf("vaInitialize: major = %d minor = %d\n", major_version, minor_version);
+
+  {
+      VASurfaceID surfaces[21];
+      int i;
+      
+      surfaces[20] = -1;
+      va_status = vaCreateSurfaces(va_dpy, 720, 480, VA_RT_FORMAT_YUV420, 20, surfaces);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+      ASSERT( -1 == surfaces[20] ); /* bounds check */
+      for(i = 0; i < 20; i++)
+      {
+          printf("Surface %d surface_id = %08x\n", i, surfaces[i]);
+      }
+      Window win = XCreateSimpleWindow(dpy, RootWindow(dpy, 0), 0, 0, 720, 480, 0, 0, WhitePixel(dpy, 0));
+      printf("Window = %08x\n", win); 
+      XMapWindow(dpy, win);
+      XSync(dpy, False);
+      
+      vaPutSurface(va_dpy, surfaces[0], win, 0, 0, 720, 480, 0, 0, 720, 480, 0); 
+
+      sleep(10);
+      va_status = vaDestroySurface(va_dpy, surfaces, 20);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+  }
+  
+  {
+      int num_profiles;
+      int i;
+      VAProfile *profiles = malloc(vaMaxNumProfiles(va_dpy) * sizeof(VAProfile));
+      ASSERT(profiles);
+      printf("vaMaxNumProfiles = %d\n", vaMaxNumProfiles(va_dpy));
+      
+      va_status = vaQueryConfigProfiles(va_dpy, profiles, &num_profiles);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+      
+      printf("vaQueryConfigProfiles reports %d profiles\n", num_profiles);
+      for(i = 0; i < num_profiles; i++)
+      {
+          printf("Profile %d\n", profiles[i]);
+      }
+  }
+
+  {
+      VASurfaceID surfaces[20];
+      VAContextID context;
+      VAConfigAttrib attrib;
+      VAConfigID config_id;
+      int i;
+
+      attrib.type = VAConfigAttribRTFormat;
+      va_status = vaGetConfigAttributes(va_dpy, VAProfileMPEG2Main, VAEntrypointVLD,
+                                &attrib, 1);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+
+      ASSERT(attrib.value & VA_RT_FORMAT_YUV420);
+      /* Found desired RT format, keep going */ 
+
+      va_status = vaCreateConfig(va_dpy, VAProfileMPEG2Main, VAEntrypointVLD, &attrib, 1,
+                       &config_id);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+
+      va_status = vaCreateSurfaces(va_dpy, 720, 480, VA_RT_FORMAT_YUV420, 20, surfaces);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+
+      va_status = vaCreateContext(va_dpy, config_id, 720, 480, 0 /* flag */, surfaces, 20, &context);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+
+      va_status = vaDestroyContext(va_dpy, context);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+
+      va_status = vaDestroySurface(va_dpy, surfaces, 20);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+  }
+
+  {
+      VABufferID picture_buf[3];
+      va_status = vaCreateBuffer(va_dpy, VAPictureParameterBufferType, &picture_buf[0]);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+      va_status = vaCreateBuffer(va_dpy, VAPictureParameterBufferType, &picture_buf[1]);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+      va_status = vaCreateBuffer(va_dpy, VAPictureParameterBufferType, &picture_buf[2]);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+
+      va_status = vaDestroyBuffer(va_dpy, picture_buf[0]);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+      va_status = vaDestroyBuffer(va_dpy, picture_buf[2]);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+      va_status = vaDestroyBuffer(va_dpy, picture_buf[1]);
+      ASSERT( VA_STATUS_SUCCESS == va_status );
+  }
+
+  va_status = vaTerminate(va_dpy);
+  ASSERT( VA_STATUS_SUCCESS == va_status );
+  printf("vaTerminate\n");
+
+  XCloseDisplay(dpy);
+
+  return 0;
+}
diff --git a/examples/thirdparty/libva/test/basic/test_01.c b/examples/thirdparty/libva/test/basic/test_01.c
new file mode 100644
index 0000000..4075655
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_01.c
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Initialize & Terminate"
+
+#include "test_common.c"
+
+void pre()
+{
+}
+
+void post()
+{
+}
+
+void test()
+{
+  test_init();
+
+  test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_02.c b/examples/thirdparty/libva/test/basic/test_02.c
new file mode 100644
index 0000000..5622a18
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_02.c
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Query profiles"
+
+#include "test_common.c"
+
+void pre()
+{
+    test_init();
+}
+
+void test()
+{
+    test_profiles();
+}
+
+void post()
+{
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_03.c b/examples/thirdparty/libva/test/basic/test_03.c
new file mode 100644
index 0000000..d2af494
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_03.c
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Query entrypoints for all profiles"
+
+#include "test_common.c"
+
+void pre()
+{
+    test_init();
+    test_profiles();
+}
+
+void test()
+{
+    int max_entrypoints;
+    int num_entrypoints;
+    int i, j;
+    max_entrypoints = vaMaxNumEntrypoints(va_dpy);
+    status("vaMaxEntryPoints = %d\n", max_entrypoints);
+    ASSERT(max_entrypoints > 0);
+    
+    VAEntrypoint *entrypoints = malloc(max_entrypoints * sizeof(VAEntrypoint));
+    ASSERT(entrypoints);
+    
+    for(i = 0; i < num_profiles; i++)
+    {
+        memset(entrypoints, 0xff, max_entrypoints * sizeof(VAEntrypoint));
+        va_status = vaQueryConfigEntrypoints(va_dpy, profiles[i], entrypoints, &num_entrypoints);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        status("vaQueryConfigEntryPoints(%s) reports %d entrypoints\n", profile2string(profiles[i]), num_entrypoints);
+        ASSERT(num_entrypoints <= max_entrypoints);
+        ASSERT(num_entrypoints > 0);
+        for(j = 0; j < num_entrypoints; j++)
+        {
+            status("  entrypoint %d [%s]\n", entrypoints[j], entrypoint2string(entrypoints[j]));
+        }
+    }
+    
+    free(entrypoints);
+}
+
+void post()
+{
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_04.c b/examples/thirdparty/libva/test/basic/test_04.c
new file mode 100644
index 0000000..2e3329c
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_04.c
@@ -0,0 +1,84 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Get config attributes for all profiles / entrypoints"
+
+#include "test_common.c"
+
+void pre()
+{
+    test_init();
+    test_profiles();
+}
+
+#define DEADVALUE 0xdeaddead
+
+void test()
+{
+    VAConfigAttrib attributes[] = { 
+      { type: VAConfigAttribRTFormat, value: DEADVALUE },
+      { type: VAConfigAttribSpatialResidual, value: DEADVALUE },
+      { type: VAConfigAttribSpatialClipping, value: DEADVALUE },
+      { type: VAConfigAttribIntraResidual, value: DEADVALUE },
+      { type: VAConfigAttribEncryption, value: DEADVALUE }
+    };
+    int max_entrypoints;
+    int num_entrypoints;
+    int num_attribs = sizeof(attributes) / sizeof(VAConfigAttrib);
+    int i, j, k;
+    max_entrypoints = vaMaxNumEntrypoints(va_dpy);
+    ASSERT(max_entrypoints > 0);
+    VAEntrypoint *entrypoints = malloc(max_entrypoints * sizeof(VAEntrypoint));
+    ASSERT(entrypoints);
+
+    VAConfigAttrib *attrib_list = (VAConfigAttrib *) malloc(sizeof(attributes));
+    ASSERT(attrib_list);
+
+    for(i = 0; i < num_profiles; i++)
+    {
+        va_status = vaQueryConfigEntrypoints(va_dpy, profiles[i], entrypoints, &num_entrypoints);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        
+        for(j = 0; j < num_entrypoints; j++)
+        {
+            memcpy(attrib_list, attributes, sizeof(attributes));
+            status("vaGetConfigAttributes for %s, %s\n",  profile2string(profiles[i]), entrypoint2string(entrypoints[j]));
+            va_status = vaGetConfigAttributes(va_dpy, profiles[i], entrypoints[j], attrib_list, num_attribs);
+            ASSERT( VA_STATUS_SUCCESS == va_status );
+            for(k = 0; k < num_attribs; k++)
+            {
+                status("  %d -> %08x\n", attrib_list[k].type, attrib_list[k].value);
+                ASSERT(attrib_list[k].value != DEADVALUE);
+            }
+        }
+    }
+    
+    free(attrib_list);
+    free(entrypoints);
+}
+
+void post()
+{
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_05.c b/examples/thirdparty/libva/test/basic/test_05.c
new file mode 100644
index 0000000..f88dd15
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_05.c
@@ -0,0 +1,77 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Create/destroy configs for all profiles / entrypoints"
+
+#include "test_common.c"
+
+void pre()
+{
+    test_init();
+    test_profiles();
+}
+
+void test()
+{
+    int max_entrypoints;
+    int num_entrypoints;
+    int i, j, k;
+    int config_count = 0;
+    max_entrypoints = vaMaxNumEntrypoints(va_dpy);
+    ASSERT(max_entrypoints > 0);
+    VAEntrypoint *entrypoints = malloc(max_entrypoints * sizeof(VAEntrypoint));
+    ASSERT(entrypoints);
+
+    VAConfigID *configs = malloc(max_entrypoints * num_profiles * sizeof(VAConfigID));
+
+    for(i = 0; i < num_profiles; i++)
+    {
+        va_status = vaQueryConfigEntrypoints(va_dpy, profiles[i], entrypoints, &num_entrypoints);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        
+        for(j = 0; j < num_entrypoints; j++)
+        {
+            status("vaCreateConfig for %s, %s\n",  profile2string(profiles[i]), entrypoint2string(entrypoints[j]));
+            va_status = vaCreateConfig(va_dpy, profiles[i], entrypoints[j], NULL, 0, &(configs[config_count]));
+            ASSERT( VA_STATUS_SUCCESS == va_status );
+            status("vaCreateConfig returns %08x\n", configs[config_count]);
+            config_count++;
+        }
+    }
+
+    for(i = 0; i < config_count; i++)
+    {
+        status("vaDestroyConfig for config %08x\n", configs[i]);
+        va_status = vaDestroyConfig( va_dpy, configs[i] );
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+    }
+    
+    free(configs);
+    free(entrypoints);
+}
+
+void post()
+{
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_06.c b/examples/thirdparty/libva/test/basic/test_06.c
new file mode 100644
index 0000000..ca47e50
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_06.c
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Get config attributes from configs"
+
+#include "test_common.c"
+
+int max_entrypoints;
+VAEntrypoint *entrypoints;
+
+VAConfigID *configs;
+int config_count = 0;
+
+
+
+void pre()
+{
+    int i, j, k;
+
+    test_init();
+    test_profiles();
+
+    max_entrypoints = vaMaxNumEntrypoints(va_dpy);
+    ASSERT(max_entrypoints > 0);
+    entrypoints = malloc(max_entrypoints * sizeof(VAEntrypoint));
+    ASSERT(entrypoints);
+
+    configs = malloc(max_entrypoints * num_profiles * sizeof(VAConfigID));
+    ASSERT(configs);
+
+    // Create configs
+    for(i = 0; i < num_profiles; i++)
+    {
+        int num_entrypoints;
+        va_status = vaQueryConfigEntrypoints(va_dpy, profiles[i], entrypoints, &num_entrypoints);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        
+        for(j = 0; j < num_entrypoints; j++)
+        {
+            va_status = vaCreateConfig(va_dpy, profiles[i], entrypoints[j], NULL, 0, &(configs[config_count]));
+            ASSERT( VA_STATUS_SUCCESS == va_status );
+            config_count++;
+        }
+    }
+}
+
+void test()
+{
+    int i, j, k;
+    int max_attribs;
+
+    max_attribs = vaMaxNumConfigAttributes(va_dpy);
+    ASSERT(max_attribs > 0);
+
+    VAConfigAttrib *attrib_list = malloc(max_attribs * sizeof(VAConfigAttrib));
+
+    config_count = 0;
+    for(i = 0; i < num_profiles; i++)
+    {
+        int num_entrypoints;
+
+        va_status = vaQueryConfigEntrypoints(va_dpy, profiles[i], entrypoints, &num_entrypoints);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        for(j = 0; j < num_entrypoints; j++)
+        {
+            VAProfile profile= -1;
+            VAEntrypoint entrypoint = -1;
+            int num_attribs = -1;
+            
+            status("Checking vaQueryConfigAttributes for %s, %s\n",  profile2string(profiles[i]), entrypoint2string(entrypoints[j]));
+            memset(attrib_list, 0xff, max_attribs * sizeof(VAConfigAttrib));
+            
+            va_status = vaQueryConfigAttributes(va_dpy, configs[config_count], &profile, &entrypoint, attrib_list, &num_attribs);
+            config_count++;
+            ASSERT( VA_STATUS_SUCCESS == va_status );
+            ASSERT( profile == profiles[i] );
+            ASSERT( entrypoint == entrypoints[j] );
+            ASSERT( num_attribs >= 0 );
+            for(k = 0; k < num_attribs; k++)
+            {
+                status("  %d -> %08x\n", attrib_list[k].type, attrib_list[k].value);
+                ASSERT(attrib_list[k].value != VA_ATTRIB_NOT_SUPPORTED);
+            }
+        }
+    }
+
+    free(attrib_list);
+}
+
+void post()
+{
+    int i;
+    for(i = 0; i < config_count; i++)
+    {
+        va_status = vaDestroyConfig( va_dpy, configs[i] );
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+    }
+    
+    free(configs);
+    free(entrypoints);
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_07.c b/examples/thirdparty/libva/test/basic/test_07.c
new file mode 100644
index 0000000..2e01533
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_07.c
@@ -0,0 +1,119 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Create and destory surfaces"
+
+#include "test_common.c"
+
+void pre()
+{
+    test_init();
+}
+
+#define DEAD_SURFACE_ID 	(VASurfaceID) 0xbeefdead
+
+void test_unique_surfaces(VASurfaceID *surface_list1, int surface_count1, VASurfaceID *surface_list2, int surface_count2)
+{
+    int i,j;
+    
+    for(i = 0; i < surface_count1; i++)
+    {
+        for(j = 0; j < surface_count2; j++)
+        {
+            if ((surface_list1 == surface_list2) && (i == j)) continue;
+            ASSERT(surface_list1[i] != VA_INVALID_SURFACE);
+            ASSERT(surface_list2[j] != VA_INVALID_SURFACE);
+            ASSERT(surface_list1[i] != surface_list2[j]);
+        }
+    }
+}
+
+
+void test()
+{
+    VASurfaceID surfaces_1[1+1];
+    VASurfaceID surfaces_4[4+1];
+    VASurfaceID surfaces_16[16+1];
+    VASurfaceID surfaces_6[6+1];
+    
+    memset(surfaces_1, 0xff, sizeof(surfaces_1));
+    memset(surfaces_4, 0xff, sizeof(surfaces_4));
+    memset(surfaces_16, 0xff, sizeof(surfaces_16));
+    memset(surfaces_6, 0xff, sizeof(surfaces_6));
+
+    status("vaCreateSurfaces 1 surface\n");
+    surfaces_1[1] = DEAD_SURFACE_ID;
+    va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420, 352, 288, surfaces_1, 1, NULL, 0);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    ASSERT( DEAD_SURFACE_ID == surfaces_1[1] ); /* bounds check */
+
+    status("vaCreateSurfaces 4 surfaces\n");
+    surfaces_4[4] = DEAD_SURFACE_ID;
+    va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420, 352, 288, surfaces_4, 4, NULL, 0);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    ASSERT( DEAD_SURFACE_ID == surfaces_4[4] ); /* bounds check */
+
+    status("vaCreateSurfaces 16 surfaces\n");
+    surfaces_16[16] = DEAD_SURFACE_ID;
+    va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420, 352, 288, surfaces_16, 16, NULL, 0);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    ASSERT( DEAD_SURFACE_ID == surfaces_16[16] ); /* bounds check */
+    
+    test_unique_surfaces(surfaces_1, 1, surfaces_4, 4);
+    test_unique_surfaces(surfaces_4, 4, surfaces_16, 4);
+    test_unique_surfaces(surfaces_4, 4, surfaces_16, 16);
+    test_unique_surfaces(surfaces_4, 1, surfaces_16, 16);
+    test_unique_surfaces(surfaces_1, 16, surfaces_16, 16);
+
+    status("vaDestroySurface 4 surfaces\n");
+    va_status = vaDestroySurfaces(va_dpy, surfaces_4, 4);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    status("vaCreateSurfaces 6 surfaces\n");
+    surfaces_6[6] = DEAD_SURFACE_ID;
+    va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420, 352, 288, surfaces_6, 6, NULL, 0);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    ASSERT( DEAD_SURFACE_ID == surfaces_6[6] ); /* bounds check */
+
+    test_unique_surfaces(surfaces_1, 1, surfaces_6, 6);
+    test_unique_surfaces(surfaces_6, 6, surfaces_16, 16);
+    test_unique_surfaces(surfaces_1, 6, surfaces_16, 6);
+
+    status("vaDestroySurface 16 surfaces\n");
+    va_status = vaDestroySurfaces(va_dpy, surfaces_16, 16);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    status("vaDestroySurface 1 surface\n");
+    va_status = vaDestroySurfaces(va_dpy, surfaces_1, 1);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+
+    status("vaDestroySurface 6 surfaces\n");
+    va_status = vaDestroySurfaces(va_dpy, surfaces_6, 6);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+}
+
+void post()
+{
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_08.c b/examples/thirdparty/libva/test/basic/test_08.c
new file mode 100644
index 0000000..299882f
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_08.c
@@ -0,0 +1,92 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Create and destory surfaces of different sizes"
+
+#include "test_common.c"
+
+void pre()
+{
+    test_init();
+}
+
+#define DEAD_SURFACE_ID 	(VASurfaceID) 0xbeefdead
+
+void test_unique_surfaces(VASurfaceID *surface_list, int surface_count)
+{
+    int i,j;
+    
+    for(i = 0; i < surface_count; i++)
+    {
+        ASSERT(surface_list[i] != VA_INVALID_SURFACE);
+        for(j = 0; j < i; j++)
+        {
+            if (i == j) continue;
+            ASSERT(surface_list[i] != surface_list[j]);
+        }
+    }
+}
+
+typedef struct test_size { int w; int h; } test_size_t;
+
+test_size_t test_sizes[] = { 
+  {  10, 10 }, 
+  {  128, 128 }, 
+  {  176, 144 }, 
+  {  144, 176 }, 
+  {  352, 288 }, 
+  {  399, 299 }, 
+  {  640, 480 }, 
+  {  1280, 720 }
+};
+
+#define NUM_SIZES 	(sizeof(test_sizes) / sizeof(test_size_t))
+
+void test()
+{
+    VASurfaceID surfaces[NUM_SIZES+1];
+    unsigned int i;
+    
+    memset(surfaces, 0xff, sizeof(surfaces));
+
+    for(i = 0; i < NUM_SIZES; i++)
+    {
+        status("vaCreateSurfaces create %dx%d surface\n", test_sizes[i].w, test_sizes[i].h);
+        surfaces[i+1] = DEAD_SURFACE_ID;
+        va_status = vaCreateSurfaces(va_dpy,  VA_RT_FORMAT_YUV420, test_sizes[i].w, test_sizes[i].h, &surfaces[i], 1, NULL, 0);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        ASSERT( DEAD_SURFACE_ID == surfaces[i+1] );
+    }
+    
+    test_unique_surfaces(surfaces, NUM_SIZES);
+
+    status("vaDestroySurface all surfaces\n");
+    va_status = vaDestroySurfaces(va_dpy, surfaces, NUM_SIZES);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+}
+
+void post()
+{
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_09.c b/examples/thirdparty/libva/test/basic/test_09.c
new file mode 100644
index 0000000..b8a8f1c
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_09.c
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Create/destroy contexts for all profiles / entrypoints"
+
+#include "test_common.c"
+
+void pre()
+{
+    test_init();
+    test_profiles();
+}
+
+void test()
+{
+    int max_entrypoints;
+    int num_entrypoints;
+    int i, j, k;
+    int config_count = 0;
+    max_entrypoints = vaMaxNumEntrypoints(va_dpy);
+    ASSERT(max_entrypoints > 0);
+    VAEntrypoint *entrypoints = malloc(max_entrypoints * sizeof(VAEntrypoint));
+    ASSERT(entrypoints);
+
+    VAConfigID *configs = malloc(max_entrypoints * num_profiles * sizeof(VAConfigID));
+    VAContextID *contexts = malloc(max_entrypoints * num_profiles * sizeof(VAContextID));
+
+    for(i = 0; i < num_profiles; i++)
+    {
+        va_status = vaQueryConfigEntrypoints(va_dpy, profiles[i], entrypoints, &num_entrypoints);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        
+        for(j = 0; j < num_entrypoints; j++)
+        {
+            status("vaCreateConfig for %s, %s\n",  profile2string(profiles[i]), entrypoint2string(entrypoints[j]));
+            va_status = vaCreateConfig(va_dpy, profiles[i], entrypoints[j], NULL, 0, &(configs[config_count]));
+            ASSERT( VA_STATUS_SUCCESS == va_status );
+            status("vaCreateConfig returns %08x\n", configs[config_count]);
+            config_count++;
+        }
+    }
+
+    int width = 352;
+    int height = 288;
+    int surface_count = 4;
+    int total_surfaces = config_count * surface_count;
+    
+    VASurfaceID *surfaces = malloc(total_surfaces * sizeof(VASurfaceID));
+
+    // TODO: Don't assume VA_RT_FORMAT_YUV420 is supported / needed for each config
+    va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420, width, height, surfaces, total_surfaces, NULL, 0);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    for(i = 0; i < config_count; i++)
+    {
+        status("vaCreateContext with config %08x\n", configs[i]);
+        int flags = 0;
+        va_status = vaCreateContext( va_dpy, configs[i], width, height, flags, surfaces + i*surface_count, surface_count, &contexts[i] );
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+    }
+
+    for(i = 0; i < config_count; i++)
+    {
+        status("vaDestroyContext for context %08x\n", contexts[i]);
+        va_status = vaDestroyContext( va_dpy, contexts[i] );
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+    }
+
+    for(i = 0; i < config_count; i++)
+    {
+        status("vaDestroyConfig for config %08x\n", configs[i]);
+        va_status = vaDestroyConfig( va_dpy, configs[i] );
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+    }
+    
+    va_status = vaDestroySurfaces(va_dpy, surfaces, total_surfaces);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    free(contexts);
+    free(configs);
+    free(surfaces);
+    free(entrypoints);
+}
+
+void post()
+{
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_10.c b/examples/thirdparty/libva/test/basic/test_10.c
new file mode 100644
index 0000000..9c7c566
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_10.c
@@ -0,0 +1,140 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Create and destroy buffers"
+
+#include "test_common.c"
+
+VAConfigID config;
+VAContextID context;
+VASurfaceID *surfaces;
+int total_surfaces;
+
+void pre()
+{
+    test_init();
+
+    va_status = vaCreateConfig(va_dpy, VAProfileMPEG2Main, VAEntrypointVLD, NULL, 0, &config);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    status("vaCreateConfig returns %08x\n", config);
+
+    int width = 352;
+    int height = 288;
+    int surface_count = 4;
+    total_surfaces = surface_count;
+    
+    surfaces = malloc(total_surfaces * sizeof(VASurfaceID));
+
+    // TODO: Don't assume VA_RT_FORMAT_YUV420 is supported / needed for each config
+    va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420, width, height, surfaces, total_surfaces, NULL, 0);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    status("vaCreateContext with config %08x\n", config);
+    int flags = 0;
+    va_status = vaCreateContext( va_dpy, config, width, height, flags, surfaces, surface_count, &context );
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+}
+
+void test_unique_buffers(VABufferID *buffer_list, int buffer_count)
+{
+    int i,j;
+    
+    for(i = 0; i < buffer_count; i++)
+    {
+        for(j = 0; j < i; j++)
+        {
+            ASSERT(buffer_list[i] != buffer_list[j]);
+        }
+    }
+}
+
+VABufferType buffer_types[] =
+{
+  VAPictureParameterBufferType,
+  VAIQMatrixBufferType,
+  VABitPlaneBufferType,
+  VASliceGroupMapBufferType,
+  VASliceParameterBufferType,
+  VASliceDataBufferType,
+  VAMacroblockParameterBufferType,
+  VAResidualDataBufferType,
+  VADeblockingParameterBufferType,
+};
+
+unsigned int buffer_sizes[] =
+{
+  sizeof(VAPictureParameterBufferMPEG4), 
+  sizeof(VAIQMatrixBufferH264),
+  32*1024,
+  48*1024,
+  sizeof(VASliceParameterBufferMPEG2),
+  128*1024,
+  sizeof(VAMacroblockParameterBufferMPEG2),
+  32*1024,
+  15*1024,
+};
+
+
+#define NUM_BUFFER_TYPES 	(sizeof(buffer_types) / sizeof(VABufferType))
+
+#define DEAD_BUFFER_ID	((VABufferID) 0x1234ffff)
+
+void test()
+{
+    VABufferID buffer_ids[NUM_BUFFER_TYPES+1];
+    unsigned int i;
+    memset(buffer_ids, 0xff, sizeof(buffer_ids));
+    for(i=0; i < NUM_BUFFER_TYPES; i++)
+    {
+        buffer_ids[i+1] = DEAD_BUFFER_ID;
+        va_status = vaCreateBuffer(va_dpy, context, buffer_types[i], buffer_sizes[i], 1, NULL, &buffer_ids[i]);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        ASSERT( DEAD_BUFFER_ID == buffer_ids[i+1] ); /* Bounds check */
+    }
+    test_unique_buffers(buffer_ids, NUM_BUFFER_TYPES);
+    
+    for(i=0; i < NUM_BUFFER_TYPES; i++)
+    {
+        va_status = vaDestroyBuffer(va_dpy, buffer_ids[i]);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+    }
+}
+
+void post()
+{
+    status("vaDestroyContext for context %08x\n", context);
+    va_status = vaDestroyContext( va_dpy, context );
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+
+    status("vaDestroyConfig for config %08x\n", config);
+    va_status = vaDestroyConfig( va_dpy, config );
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    va_status = vaDestroySurfaces(va_dpy, surfaces, total_surfaces);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    free(surfaces);
+
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_11.c b/examples/thirdparty/libva/test/basic/test_11.c
new file mode 100644
index 0000000..99c8785
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_11.c
@@ -0,0 +1,179 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define TEST_DESCRIPTION	"Map and unmap buffers"
+
+#include "test_common.c"
+
+VAConfigID config;
+VAContextID context;
+VASurfaceID *surfaces;
+int total_surfaces;
+
+void pre()
+{
+    test_init();
+
+    va_status = vaCreateConfig(va_dpy, VAProfileMPEG2Main, VAEntrypointVLD, NULL, 0, &config);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    status("vaCreateConfig returns %08x\n", config);
+
+    int width = 352;
+    int height = 288;
+    int surface_count = 4;
+    total_surfaces = surface_count;
+    
+    surfaces = malloc(total_surfaces * sizeof(VASurfaceID));
+
+    // TODO: Don't assume VA_RT_FORMAT_YUV420 is supported / needed for each config
+    va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420, width, height, surfaces, total_surfaces, NULL, 0);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    status("vaCreateContext with config %08x\n", config);
+    int flags = 0;
+    va_status = vaCreateContext( va_dpy, config, width, height, flags, surfaces, surface_count, &context );
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+}
+
+void test_unique_buffers(VABufferID *buffer_list, int buffer_count)
+{
+    int i,j;
+    
+    for(i = 0; i < buffer_count; i++)
+    {
+        for(j = 0; j < i; j++)
+        {
+            ASSERT(buffer_list[i] != buffer_list[j]);
+        }
+    }
+}
+
+VABufferType buffer_types[] =
+{
+  VAPictureParameterBufferType,
+  VAIQMatrixBufferType,
+  VABitPlaneBufferType,
+  VASliceGroupMapBufferType,
+  VASliceParameterBufferType,
+  VASliceDataBufferType,
+  VAMacroblockParameterBufferType,
+  VAResidualDataBufferType,
+  VADeblockingParameterBufferType,
+};
+
+unsigned int buffer_sizes[] =
+{
+  sizeof(VAPictureParameterBufferMPEG4), 
+  sizeof(VAIQMatrixBufferH264),
+  32*1024,
+  48*1024,
+  sizeof(VASliceParameterBufferMPEG2),
+  128*1024,
+  sizeof(VAMacroblockParameterBufferMPEG2),
+  32*1024,
+  15*1024,
+};
+
+
+#define NUM_BUFFER_TYPES 	(sizeof(buffer_types) / sizeof(VABufferType))
+
+#define DEAD_BUFFER_ID	((VABufferID) 0x1234ffff)
+
+void test()
+{
+    VABufferID buffer_ids[NUM_BUFFER_TYPES+1];
+    uint32_t *input_data[NUM_BUFFER_TYPES];
+    unsigned int i, j;
+    memset(buffer_ids, 0xff, sizeof(buffer_ids));
+    for(i=0; i < NUM_BUFFER_TYPES; i++)
+    {
+        uint32_t *data;
+
+        input_data[i] = malloc(buffer_sizes[i]+4);
+        ASSERT(input_data[i]);
+        
+        /* Generate input data */
+        for(j = buffer_sizes[i] / 4; j--;)
+        {
+            input_data[i][j] = random();
+        }
+        
+        /* Copy to secondary buffer */
+        data = malloc(buffer_sizes[i]);
+        ASSERT(data);
+        memcpy(data, input_data[i], buffer_sizes[i]);
+
+        /* Create buffer and fill with data */
+        va_status = vaCreateBuffer(va_dpy, context, buffer_types[i], buffer_sizes[i], 1, data, &buffer_ids[i]);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        status("vaCreateBuffer created buffer %08x of type %d\n", buffer_ids[i], buffer_types[i]);
+        
+        /* Wipe secondary buffer */
+        memset(data, 0, buffer_sizes[i]);
+        free(data);
+    }
+
+    for(i=0; i < NUM_BUFFER_TYPES; i++)
+    {
+        void *data = NULL;
+        /* Fetch VA Buffer */
+        va_status = vaMapBuffer(va_dpy, buffer_ids[i], &data);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        status("vaMapBuffer mapped buffer %08x\n", buffer_ids[i]);
+
+        /* Compare data */        
+        ASSERT( memcmp(input_data[i], data, buffer_sizes[i]) == 0 );
+    }
+    
+    for(i=0; i < NUM_BUFFER_TYPES; i++)
+    {
+        va_status = vaUnmapBuffer(va_dpy, buffer_ids[i]);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+
+        va_status = vaDestroyBuffer(va_dpy, buffer_ids[i]);
+        ASSERT( VA_STATUS_SUCCESS == va_status );
+        
+        free(input_data[i]);
+    }
+}
+
+
+
+void post()
+{
+    status("vaDestroyContext for context %08x\n", context);
+    va_status = vaDestroyContext( va_dpy, context );
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+
+    status("vaDestroyConfig for config %08x\n", config);
+    va_status = vaDestroyConfig( va_dpy, config );
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    va_status = vaDestroySurfaces(va_dpy, surfaces, total_surfaces);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    
+    free(surfaces);
+
+    test_terminate();
+}
diff --git a/examples/thirdparty/libva/test/basic/test_android.c b/examples/thirdparty/libva/test/basic/test_android.c
new file mode 100644
index 0000000..2bb247a
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_android.c
@@ -0,0 +1,62 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+#define Display unsigned int
+Display *dpy;
+VADisplay va_dpy;
+VAStatus va_status;
+VAProfile *profiles ;
+int major_version, minor_version;
+
+void test_init()
+{
+    dpy = (Display*)malloc(sizeof(Display));
+    *(dpy) = 0x18c34078;
+    ASSERT( dpy );
+    status("malloc Display: dpy = %08x\n", dpy);
+
+    va_dpy = vaGetDisplay(dpy);
+    ASSERT( va_dpy );  
+    status("vaGetDisplay: va_dpy = %08x\n", va_dpy);
+
+    va_status = vaInitialize(va_dpy, &major_version, &minor_version);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    status("vaInitialize: major = %d minor = %d\n", major_version, minor_version);
+}
+
+void test_terminate()
+{
+    va_status = vaTerminate(va_dpy);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+    status("vaTerminate\n");
+
+    free(dpy);
+    status("free Display\n");
+
+    if (profiles)
+    {
+        free(profiles);
+        profiles = NULL;
+    }
+}
+
diff --git a/examples/thirdparty/libva/test/basic/test_common.c b/examples/thirdparty/libva/test/basic/test_common.c
new file mode 100644
index 0000000..0486d99
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_common.c
@@ -0,0 +1,161 @@
+/*
+ * Copyright (c) 2007 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 <va/va.h>
+#ifdef ANDROID
+#include <va/va_android.h>
+#else
+#include <va/va_x11.h>
+#endif
+#include "assert.h"
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <dlfcn.h>
+
+#define ASSERT	assert
+
+void status(const char *msg, ...);
+#ifdef ANDROID
+#include "test_android.c"
+#else
+#include "test_x11.c"
+#endif
+
+Display *dpy;
+VADisplay va_dpy;
+VAStatus va_status;
+int major_version, minor_version;
+int print_status = 0;
+int num_profiles;
+VAProfile *profiles = NULL;
+
+void pre();
+void test();
+void post();
+
+void status(const char *msg, ...)
+{
+  if (!print_status) return;
+  va_list args;
+  printf("--- ");
+  va_start(args, msg);
+  vfprintf(stdout, msg, args);
+  va_end(args);
+}
+
+
+int main(int argc, const char* argv[])
+{
+  const char *name = strrchr(argv[0], '/');
+  if (name)
+      name++;
+  else
+      name = argv[0];
+  printf("*** %s: %s\n", name, TEST_DESCRIPTION);
+  pre();
+  print_status = 1;
+  test();
+  print_status = 0;
+  post();
+  printf("*** %s: Finished\n", name);
+  return 0;
+}
+
+#define PROFILE(profile)	case VAProfile##profile:	return("VAProfile" #profile);
+
+const char *profile2string(VAProfile profile)
+{
+    switch(profile)
+    {
+        PROFILE(None)
+        PROFILE(MPEG2Simple)
+        PROFILE(MPEG2Main)
+        PROFILE(MPEG4Simple)
+        PROFILE(MPEG4AdvancedSimple)
+        PROFILE(MPEG4Main)
+        PROFILE(H263Baseline)
+        PROFILE(H264Baseline)
+        PROFILE(H264Main)
+        PROFILE(H264High)
+        PROFILE(H264ConstrainedBaseline)
+        PROFILE(H264MultiviewHigh)
+        PROFILE(H264StereoHigh)
+        PROFILE(VC1Simple)
+        PROFILE(VC1Main)
+        PROFILE(VC1Advanced)
+        PROFILE(JPEGBaseline)
+        PROFILE(VP8Version0_3)
+    }
+    ASSERT(0);
+    return "Unknown";
+}
+
+#define ENTRYPOINT(profile)	case VAEntrypoint##profile:	return("VAEntrypoint" #profile);
+
+const char *entrypoint2string(VAEntrypoint entrypoint)
+{
+    switch(entrypoint)
+    {
+        ENTRYPOINT(VLD)
+        ENTRYPOINT(IZZ)
+        ENTRYPOINT(IDCT)
+        ENTRYPOINT(MoComp)
+        ENTRYPOINT(Deblocking)
+        ENTRYPOINT(EncSlice)
+        ENTRYPOINT(EncPicture)
+        ENTRYPOINT(VideoProc)
+    }
+    ASSERT(0);
+    return "Unknown";
+}
+
+
+void test_profiles()
+{
+    int max_profiles;
+    int i;
+    max_profiles = vaMaxNumProfiles(va_dpy);
+    status("vaMaxNumProfiles = %d\n", max_profiles);
+    ASSERT(max_profiles > 0);
+    profiles = malloc(max_profiles * sizeof(VAProfile));
+    ASSERT(profiles);
+      
+    va_status = vaQueryConfigProfiles(va_dpy, profiles, &num_profiles);
+    ASSERT( VA_STATUS_SUCCESS == va_status );
+      
+    status("vaQueryConfigProfiles reports %d profiles\n", num_profiles);
+    ASSERT(num_profiles <= max_profiles);
+    ASSERT(num_profiles > 0);
+    
+    if (print_status)
+    {
+        for(i = 0; i < num_profiles; i++)
+        {
+            status("  profile %d [%s]\n", profiles[i], profile2string(profiles[i]));
+        }
+    }
+}
diff --git a/examples/thirdparty/libva/test/basic/test_x11.c b/examples/thirdparty/libva/test/basic/test_x11.c
new file mode 100644
index 0000000..df8f362
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/test_x11.c
@@ -0,0 +1,61 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+Display *dpy;
+VADisplay va_dpy;
+VAStatus va_status;
+VAProfile *profiles ;
+int major_version, minor_version;
+
+void test_init()
+{
+  dpy = XOpenDisplay(NULL);
+  ASSERT( dpy );
+  status("XOpenDisplay: dpy = %08x\n", dpy);
+  
+  va_dpy = vaGetDisplay(dpy);
+  ASSERT( va_dpy );  
+  status("vaGetDisplay: va_dpy = %08x\n", va_dpy);
+  
+  va_status = vaInitialize(va_dpy, &major_version, &minor_version);
+  ASSERT( VA_STATUS_SUCCESS == va_status );
+  status("vaInitialize: major = %d minor = %d\n", major_version, minor_version);
+}
+
+void test_terminate()
+{
+  va_status = vaTerminate(va_dpy);
+  ASSERT( VA_STATUS_SUCCESS == va_status );
+  status("vaTerminate\n");
+
+  XCloseDisplay(dpy);
+  status("XCloseDisplay\n");
+
+  if (profiles)
+  {
+      free(profiles);
+      profiles = NULL;
+  }
+}
+
diff --git a/examples/thirdparty/libva/test/basic/testplan.txt b/examples/thirdparty/libva/test/basic/testplan.txt
new file mode 100644
index 0000000..1cc573b
--- /dev/null
+++ b/examples/thirdparty/libva/test/basic/testplan.txt
@@ -0,0 +1,106 @@
+
+Test 1
+- Initialize & Terminate
+- vaGetDisplay, vaInitialize, vaTerminate
+
+Test 2
+- Query profiles
+- vaQueryConfigProfiles, vaMaxNumProfiles
+
+Test 3
+- Query Entrypoints for all profiles
+- vaQueryConfigEntryPoints, vaMaxNumEntryPoints
+
+Test 4
+- Get Config attributes for all profiles / entrypoints
+- vaGetConfigAttributes
+
+Test 5
+- Create & destroy config for each profile / entrypoint
+- vaCreateConfig, vaDestroyConfig
+
+Test 6
+- Get config attributes of various possible configs
+- vaQueryConfigAttributes, vaMaxNumConfigAttributes
+- Check if results for vaGetConfigAttributes match with vaQueryConfigAttributes for
+a given profile / entrypoint
+
+Test 7
+- Create and destroy surfaces
+- vaCreateSurfaces, vaDestroySurface
+- Create surfaces of 352 x 288 pixels
+- Create 1, 4 and 16 surfaces, destroy 4, create 6 surfaces, destroy 16, 1
+and 6 surfaces.
+
+Test 8
+- Create and destroy surfaces of different sizes
+- Create surfaces of 10 x 10 pixels, 128 x 128 pixels, 176 x 144 pixels, 144 x 176
+pixels, 352 x 288 pixels, 399 x 299 pixels, 640 x 480 pixels, 1280 x 720
+pixels
+
+Test 9
+- Create and destroy a context for each profile / entrypoint
+- Pass 4 surfaces of 352 x 288 pixels
+- vaCreateContext, vaDestroyContext
+- See also Test 5
+
+Test 10
+- Create and destroy buffers
+- vaCreateBuffer, vaDestroyBuffer
+- For each different buffertype, create a buffer, then destroy them one by
+one.
+
+Test 11
+- Map & unmap buffers
+- vaBufferData, vaMapBuffer, vaUnmapBuffer
+- For each different buffertype, copy data to the buffer with vaBufferData.
+Then map the buffer and verify the contents of the buffer.
+
+Test 12
+- Render single MPEG2 I-frame
+- vaBeginPicture, vaRenderPicture (num_buffers == 1), vaEndPicture
+
+Test 13
+- Render single MPEG2 I-frame, multiple buffer submission
+- vaRenderPicture (num_buffers > 1)
+
+Test 14
+- Render single MPEG2 I-frame, split buffers
+- Slice split over 2 buffers
+
+Test 15
+- Render single MPEG2 I-frame, split buffers
+- Slice split over 3 buffers
+
+Test 16
+- Sync Surface
+- Render single MPEG2 I-frame, then check vaQuerySurfaceStatus, vaSyncSurface and vaQuerySurfaceStatus
+
+Test 17
+- Query image formats
+- vaMaxNumImageFormats, vaQueryImageFormats
+
+Test 18
+- Create and destroy vaImage
+- vaCreateImage, vaDestroyImage
+
+Test 19
+- Get image data
+- Render single MPEG2 I-frame, copy surface data to image, check resulting
+image
+- vaGetImage
+
+Test 20
+- Put image data
+- Render single MPEG2 I-frame, copy half of a VAImage to surface, copy
+surface back to VAImage, check resulting image
+- vaPutImage
+
+Test 21
+- Query subpicture formats
+- vaMaxNumSubpictureFormats, vaQuerySubpictureFromats
+
+Test 22
+- Create and destory subpictures
+- vaCreateSubpicture, vaDestroySubpicture
+
diff --git a/examples/thirdparty/libva/test/common/Makefile.am b/examples/thirdparty/libva/test/common/Makefile.am
new file mode 100644
index 0000000..763847d
--- /dev/null
+++ b/examples/thirdparty/libva/test/common/Makefile.am
@@ -0,0 +1,63 @@
+# Copyright (c) 2012 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.
+
+noinst_LTLIBRARIES = libva-display.la
+
+libva_display_cflags = \
+	-I$(top_srcdir)				\
+	-I$(top_srcdir)/va			\
+	-I$(top_builddir)			\
+	-DIN_LIBVA				\
+	$(NULL)
+
+libva_display_libs = \
+	$(top_builddir)/va/libva.la		\
+	$(NULL)
+
+source_c		= va_display.c
+source_h		= va_display.h
+
+if USE_X11
+source_c		+= va_display_x11.c
+libva_display_cflags	+= $(X11_CFLAGS)
+libva_display_libs	+= $(top_builddir)/va/libva-x11.la $(X11_LIBS)
+endif
+
+if USE_DRM
+source_c		+= va_display_drm.c
+libva_display_cflags	+= $(DRM_CFLAGS)
+libva_display_libs	+= $(top_builddir)/va/libva-drm.la $(DRM_LIBS)
+endif
+
+if USE_WAYLAND
+source_c		+= va_display_wayland.c
+libva_display_cflags	+= $(WAYLAND_CFLAGS)
+libva_display_libs	+= $(top_builddir)/va/libva-wayland.la $(WAYLAND_LIBS)
+endif
+
+libva_display_la_SOURCES= $(source_c)
+noinst_HEADERS		= $(source_h)
+libva_display_la_CFLAGS	= $(libva_display_cflags)
+libva_display_la_LIBADD	= $(libva_display_libs)
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/examples/thirdparty/libva/test/common/va_display.c b/examples/thirdparty/libva/test/common/va_display.c
new file mode 100644
index 0000000..dd58dd2
--- /dev/null
+++ b/examples/thirdparty/libva/test/common/va_display.c
@@ -0,0 +1,166 @@
+/*
+ * Copyright (c) 2012 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 "sysdeps.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <stddef.h>
+#include <string.h>
+#include <va/va.h>
+#include "va_display.h"
+
+extern const VADisplayHooks va_display_hooks_android;
+extern const VADisplayHooks va_display_hooks_wayland;
+extern const VADisplayHooks va_display_hooks_x11;
+extern const VADisplayHooks va_display_hooks_drm;
+
+static const VADisplayHooks *g_display_hooks;
+static const VADisplayHooks *g_display_hooks_available[] = {
+#ifdef ANDROID
+    &va_display_hooks_android,
+#else
+#ifdef HAVE_VA_WAYLAND
+    &va_display_hooks_wayland,
+#endif
+#ifdef HAVE_VA_X11
+    &va_display_hooks_x11,
+#endif
+#ifdef HAVE_VA_DRM
+    &va_display_hooks_drm,
+#endif
+#endif
+    NULL
+};
+
+static const char *g_display_name;
+
+static const char *
+get_display_name(int argc, char *argv[])
+{
+    const char *display_name = NULL;
+    int i;
+
+    for (i = 1; i < argc; i++) {
+        if (strcmp(argv[i], "--display") != 0)
+            continue;
+        argv[i] = NULL;
+
+        if (++i < argc) {
+            display_name = argv[i];
+            argv[i] = NULL;
+        }
+    }
+    return display_name;
+}
+
+static void
+print_display_names(void)
+{
+    const VADisplayHooks **h;
+
+    printf("Available displays:\n");
+    for (h = g_display_hooks_available; *h != NULL; h++)
+        printf("  %s\n", (*h)->name);
+}
+
+static void
+sanitize_args(int *argc, char *argv[])
+{
+    char **out_args = argv;
+    int i, n = *argc;
+
+    for (i = 0; i < n; i++) {
+        if (argv[i])
+            *out_args++ = argv[i];
+    }
+    *out_args = NULL;
+    *argc = out_args - argv;
+}
+
+void
+va_init_display_args(int *argc, char *argv[])
+{
+    const char *display_name;
+
+    display_name = get_display_name(*argc, argv);
+    if (display_name && strcmp(display_name, "help") == 0) {
+        print_display_names();
+        exit(0);
+    }
+    g_display_name = display_name;
+
+    sanitize_args(argc, argv);
+}
+
+VADisplay
+va_open_display(void)
+{
+    VADisplay va_dpy = NULL;
+    unsigned int i;
+
+    for (i = 0; !va_dpy && g_display_hooks_available[i]; i++) {
+        g_display_hooks = g_display_hooks_available[i];
+        if (g_display_name &&
+            strcmp(g_display_name, g_display_hooks->name) != 0)
+            continue;
+        if (!g_display_hooks->open_display)
+            continue;
+        va_dpy = g_display_hooks->open_display();
+    }
+
+    if (!va_dpy)  {
+        fprintf(stderr, "error: failed to initialize display");
+        if (g_display_name)
+            fprintf(stderr, " '%s'", g_display_name);
+        fprintf(stderr, "\n");
+        abort();
+    }
+    return va_dpy;
+}
+
+void
+va_close_display(VADisplay va_dpy)
+{
+    if (!va_dpy)
+        return;
+
+    if (g_display_hooks && g_display_hooks->close_display)
+        g_display_hooks->close_display(va_dpy);
+}
+
+VAStatus
+va_put_surface(
+    VADisplay          va_dpy,
+    VASurfaceID        surface,
+    const VARectangle *src_rect,
+    const VARectangle *dst_rect
+)
+{
+    if (!va_dpy)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+
+    if (g_display_hooks && g_display_hooks->put_surface)
+        return g_display_hooks->put_surface(va_dpy, surface, src_rect, dst_rect);
+    return VA_STATUS_ERROR_UNIMPLEMENTED;
+}
diff --git a/examples/thirdparty/libva/test/common/va_display.h b/examples/thirdparty/libva/test/common/va_display.h
new file mode 100644
index 0000000..4ed33e0
--- /dev/null
+++ b/examples/thirdparty/libva/test/common/va_display.h
@@ -0,0 +1,64 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+
+#ifndef VA_DISPLAY_H
+#define VA_DISPLAY_H
+
+#include <va/va.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef struct {
+    const char *name;
+    VADisplay (*open_display)   (void);
+    void      (*close_display)  (VADisplay va_dpy);
+    VAStatus  (*put_surface)    (VADisplay va_dpy, VASurfaceID surface,
+                                 const VARectangle *src_rect,
+                                 const VARectangle *dst_rect);
+} VADisplayHooks;
+
+void
+va_init_display_args(int *argc, char *argv[]);
+
+VADisplay
+va_open_display(void);
+
+void
+va_close_display(VADisplay va_dpy);
+
+VAStatus
+va_put_surface(
+    VADisplay          va_dpy,
+    VASurfaceID        surface,
+    const VARectangle *src_rect,
+    const VARectangle *dst_rect
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_DISPLAY_H */
diff --git a/examples/thirdparty/libva/test/common/va_display_android.cpp b/examples/thirdparty/libva/test/common/va_display_android.cpp
new file mode 100644
index 0000000..b05a47a
--- /dev/null
+++ b/examples/thirdparty/libva/test/common/va_display_android.cpp
@@ -0,0 +1,105 @@
+/*
+ * Copyright (c) 2012 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 <va/va_android.h>
+#include "va_display.h"
+
+#include <gui/Surface.h>
+#include <gui/SurfaceComposerClient.h>
+#include <gui/ISurfaceComposer.h>
+
+static unsigned int fake_display = 0xdeada01d;
+
+using namespace android;
+
+static sp<SurfaceComposerClient> client = NULL;
+static sp<SurfaceControl> surface_ctr = NULL;
+static sp<ANativeWindow> anw = NULL;
+
+static VADisplay
+va_open_display_android(void)
+{
+    return vaGetDisplay(&fake_display);
+}
+
+static void
+va_close_display_android(VADisplay va_dpy)
+{
+}
+
+static int create_window(int x, int y, int width, int height)
+{
+    client = new SurfaceComposerClient();
+    
+    surface_ctr = client->createSurface(
+        String8("Test Surface"),
+        width, height,
+        PIXEL_FORMAT_RGB_888, 0);
+
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctr->setLayer(0x7FFFFFFF);
+    surface_ctr->show();
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctr->setPosition(x, y);
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctr->setSize(width, height);
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    anw = surface_ctr->getSurface();
+    
+    return 0;
+}
+
+
+static VAStatus
+va_put_surface_android(
+    VADisplay          va_dpy,
+    VASurfaceID        surface,
+    const VARectangle *src_rect,
+    const VARectangle *dst_rect
+)
+{
+    if (anw == NULL)
+        create_window(dst_rect->x, dst_rect->y, dst_rect->width, dst_rect->height);
+
+    return vaPutSurface(va_dpy, surface, anw,
+                        src_rect->x, src_rect->y,
+                        src_rect->width, src_rect->height,
+                        dst_rect->x, dst_rect->y,
+                        dst_rect->width, dst_rect->height,
+                        NULL, 0,
+                        VA_FRAME_PICTURE);
+}
+
+extern "C"
+const VADisplayHooks va_display_hooks_android = {
+    "android",
+    va_open_display_android,
+    va_close_display_android,
+    va_put_surface_android
+};
diff --git a/examples/thirdparty/libva/test/common/va_display_drm.c b/examples/thirdparty/libva/test/common/va_display_drm.c
new file mode 100644
index 0000000..b6394cd
--- /dev/null
+++ b/examples/thirdparty/libva/test/common/va_display_drm.c
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2012 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 <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#ifdef IN_LIBVA
+# include "va/drm/va_drm.h"
+#else
+# include <va/va_drm.h>
+#endif
+#include "va_display.h"
+
+static int drm_fd = -1;
+
+static VADisplay
+va_open_display_drm(void)
+{
+    VADisplay va_dpy;
+    int i;
+
+    static const char *drm_device_paths[] = {
+        "/dev/dri/renderD128",
+        "/dev/dri/card0",
+        NULL
+    };
+
+    for (i = 0; drm_device_paths[i]; i++) {
+        drm_fd = open(drm_device_paths[i], O_RDWR);
+        if (drm_fd < 0)
+            continue;
+
+        va_dpy = vaGetDisplayDRM(drm_fd);
+        if (va_dpy)
+            return va_dpy;
+
+        close(drm_fd);
+        drm_fd = -1;
+    }
+    return NULL;
+}
+
+static void
+va_close_display_drm(VADisplay va_dpy)
+{
+    if (drm_fd < 0)
+        return;
+
+    close(drm_fd);
+    drm_fd = -1;
+}
+
+
+static VAStatus
+va_put_surface_drm(
+    VADisplay          va_dpy,
+    VASurfaceID        surface,
+    const VARectangle *src_rect,
+    const VARectangle *dst_rect
+)
+{
+    return VA_STATUS_ERROR_OPERATION_FAILED;
+}
+
+const VADisplayHooks va_display_hooks_drm = {
+    "drm",
+    va_open_display_drm,
+    va_close_display_drm,
+    va_put_surface_drm,
+};
diff --git a/examples/thirdparty/libva/test/common/va_display_wayland.c b/examples/thirdparty/libva/test/common/va_display_wayland.c
new file mode 100644
index 0000000..abcb2b6
--- /dev/null
+++ b/examples/thirdparty/libva/test/common/va_display_wayland.c
@@ -0,0 +1,193 @@
+/*
+ * Copyright (c) 2012 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 <stdlib.h>
+#include <string.h>
+#ifdef IN_LIBVA
+# include "va/wayland/va_wayland.h"
+#else
+# include <va/va_wayland.h>
+#endif
+#include "va_display.h"
+
+struct display {
+    struct wl_display          *display;
+    struct wl_registry         *registry;
+    struct wl_compositor       *compositor;
+    struct wl_shell            *shell;
+    struct wl_shell_surface    *shell_surface;
+    struct wl_surface          *surface;
+    unsigned int                ref_count;
+    int                         event_fd;
+};
+
+static struct display *g_display;
+
+static void
+registry_handle_global(
+    void               *data,
+    struct wl_registry *registry,
+    uint32_t            id,
+    const char         *interface,
+    uint32_t            version
+)
+{
+    struct display * const d = data;
+
+    if (strcmp(interface, "wl_compositor") == 0)
+        d->compositor =
+            wl_registry_bind(registry, id, &wl_compositor_interface, 1);
+    else if (strcmp(interface, "wl_shell") == 0)
+        d->shell = wl_registry_bind(registry, id, &wl_shell_interface, 1);
+}
+
+static const struct wl_registry_listener registry_listener = {
+    registry_handle_global,
+    NULL,
+};
+
+static VADisplay
+va_open_display_wayland(void)
+{
+    struct display *d;
+
+    if (g_display) {
+        d = g_display;
+        d->ref_count++;
+    }
+    else {
+        d = calloc(1, sizeof(*d));
+        if (!d)
+            return NULL;
+        d->event_fd = -1;
+
+        d->display = wl_display_connect(NULL);
+        if (!d->display) {
+            free(d);
+            return NULL;
+        }
+        wl_display_set_user_data(d->display, d);
+        d->registry = wl_display_get_registry(d->display);
+        wl_registry_add_listener(d->registry, &registry_listener, d);
+        d->event_fd = wl_display_get_fd(d->display);
+        wl_display_dispatch(d->display);
+
+        d->ref_count = 1;
+        g_display = d;
+    }
+    return vaGetDisplayWl(d->display);
+}
+
+static void
+va_close_display_wayland(VADisplay va_dpy)
+{
+    struct display * const d = g_display;
+
+    if (!d || --d->ref_count > 0)
+        return;
+
+    if (d->surface) {
+        wl_surface_destroy(d->surface);
+        d->surface = NULL;
+    }
+
+    if (d->shell_surface) {
+        wl_shell_surface_destroy(d->shell_surface);
+        d->shell_surface = NULL;
+    }
+
+    if (d->shell) {
+        wl_shell_destroy(d->shell);
+        d->shell = NULL;
+    }
+
+    if (d->compositor) {
+        wl_compositor_destroy(d->compositor);
+        d->compositor = NULL;
+    }
+
+    if (d->display) {
+        wl_display_disconnect(d->display);
+        d->display = NULL;
+    }
+    free(g_display);
+    g_display = NULL;
+}
+
+static int
+ensure_window(VADisplay va_dpy, unsigned int width, unsigned int height)
+{
+    struct display * const d = g_display;
+
+    if (!d->surface) {
+        d->surface = wl_compositor_create_surface(d->compositor);
+        if (!d->surface)
+            return 0;
+    }
+
+    if (!d->shell_surface) {
+        d->shell_surface = wl_shell_get_shell_surface(d->shell, d->surface);
+        if (!d->shell_surface)
+            return 0;
+        wl_shell_surface_set_toplevel(d->shell_surface);
+    }
+    return 1;
+}
+
+static VAStatus
+va_put_surface_wayland(
+    VADisplay          va_dpy,
+    VASurfaceID        surface,
+    const VARectangle *src_rect,
+    const VARectangle *dst_rect
+)
+{
+    struct display * const d = g_display;
+    VAStatus va_status;
+    struct wl_buffer *buffer;
+
+    if (!ensure_window(va_dpy, dst_rect->width, dst_rect->height))
+        return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+    va_status = vaGetSurfaceBufferWl(va_dpy, surface, VA_FRAME_PICTURE, &buffer);
+    if (va_status != VA_STATUS_SUCCESS)
+        return va_status;
+
+    wl_surface_attach(d->surface, buffer, 0, 0);
+    wl_surface_damage(
+         d->surface,
+         dst_rect->x, dst_rect->y, dst_rect->width, dst_rect->height
+     );
+
+    wl_surface_commit(d->surface);
+    wl_display_flush(d->display);
+    return VA_STATUS_SUCCESS;
+}
+
+const VADisplayHooks va_display_hooks_wayland = {
+    "wayland",
+    va_open_display_wayland,
+    va_close_display_wayland,
+    va_put_surface_wayland,
+};
diff --git a/examples/thirdparty/libva/test/common/va_display_x11.c b/examples/thirdparty/libva/test/common/va_display_x11.c
new file mode 100644
index 0000000..336bf86
--- /dev/null
+++ b/examples/thirdparty/libva/test/common/va_display_x11.c
@@ -0,0 +1,139 @@
+/*
+ * Copyright (c) 2012 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 <stdio.h>
+#include <stdbool.h>
+#include <va/va_x11.h>
+#include "va_display.h"
+
+static Display *x11_display;
+static Window   x11_window;
+
+static VADisplay
+va_open_display_x11(void)
+{
+    x11_display = XOpenDisplay(NULL);
+    if (!x11_display) {
+        fprintf(stderr, "error: can't connect to X server!\n");
+        return NULL;
+    }
+    return vaGetDisplay(x11_display);
+}
+
+static void
+va_close_display_x11(VADisplay va_dpy)
+{
+    if (!x11_display)
+        return;
+
+    if (x11_window) {
+        XUnmapWindow(x11_display, x11_window);
+        XDestroyWindow(x11_display, x11_window);
+        x11_window = None;
+    }
+    XCloseDisplay(x11_display);
+    x11_display = NULL;
+}
+
+static int
+ensure_window(unsigned int width, unsigned int height)
+{
+    Window win, rootwin;
+    unsigned int black_pixel, white_pixel;
+    int screen;
+
+    if (!x11_display)
+        return 0;
+
+    if (x11_window) {
+        XResizeWindow(x11_display, x11_window, width, height);
+        return 1;
+    }
+
+    screen      = DefaultScreen(x11_display);
+    rootwin     = RootWindow(x11_display, screen);
+    black_pixel = BlackPixel(x11_display, screen);
+    white_pixel = WhitePixel(x11_display, screen);
+
+    win = XCreateSimpleWindow(
+        x11_display,
+        rootwin,
+        0, 0, width, height,
+        1, black_pixel, white_pixel
+    );
+    if (!win)
+        return 0;
+    x11_window = win;
+
+    XMapWindow(x11_display, x11_window);
+    XSync(x11_display, False);
+    return 1;
+}
+
+static inline bool
+validate_rect(const VARectangle *rect)
+{
+    return (rect            &&
+            rect->x >= 0    &&
+            rect->y >= 0    &&
+            rect->width > 0 &&
+            rect->height > 0);
+}
+
+static VAStatus
+va_put_surface_x11(
+    VADisplay          va_dpy,
+    VASurfaceID        surface,
+    const VARectangle *src_rect,
+    const VARectangle *dst_rect
+)
+{
+    unsigned int win_width, win_height;
+
+    if (!va_dpy)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+    if (surface == VA_INVALID_SURFACE)
+        return VA_STATUS_ERROR_INVALID_SURFACE;
+    if (!validate_rect(src_rect) || !validate_rect(dst_rect))
+        return VA_STATUS_ERROR_INVALID_PARAMETER;
+
+    win_width  = dst_rect->x + dst_rect->width;
+    win_height = dst_rect->y + dst_rect->height;
+    if (!ensure_window(win_width, win_height))
+        return VA_STATUS_ERROR_ALLOCATION_FAILED;
+    return vaPutSurface(va_dpy, surface, x11_window,
+                        src_rect->x, src_rect->y,
+                        src_rect->width, src_rect->height,
+                        dst_rect->x, dst_rect->y,
+                        dst_rect->width, dst_rect->height,
+                        NULL, 0,
+                        VA_FRAME_PICTURE);
+}
+
+const VADisplayHooks va_display_hooks_x11 = {
+    "x11",
+    va_open_display_x11,
+    va_close_display_x11,
+    va_put_surface_x11,
+};
diff --git a/examples/thirdparty/libva/test/decode/Android.mk b/examples/thirdparty/libva/test/decode/Android.mk
new file mode 100755
index 0000000..52f7bfd
--- /dev/null
+++ b/examples/thirdparty/libva/test/decode/Android.mk
@@ -0,0 +1,27 @@
+# For test_01
+# =====================================================
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+	mpeg2vldemo.cpp		\
+	../common/va_display.c	\
+	../common/va_display_android.cpp
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(LOCAL_PATH)/../../va \
+  $(LOCAL_PATH)/../common \
+  $(TARGET_OUT_HEADERS)/libva
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	mpeg2vldemo
+
+LOCAL_SHARED_LIBRARIES := libva libva-android libdl libdrm libcutils libutils libgui
+
+include $(BUILD_EXECUTABLE)
+
diff --git a/examples/thirdparty/libva/test/decode/Makefile.am b/examples/thirdparty/libva/test/decode/Makefile.am
new file mode 100644
index 0000000..e84bf43
--- /dev/null
+++ b/examples/thirdparty/libva/test/decode/Makefile.am
@@ -0,0 +1,49 @@
+# Copyright (c) 2007 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.
+
+bin_PROGRAMS = mpeg2vldemo loadjpeg
+
+AM_CPPFLAGS = \
+	-I$(top_srcdir)				\
+	-I$(top_srcdir)/test/common		\
+	$(NULL)
+
+TEST_LIBS = \
+	$(top_builddir)/va/libva.la		\
+	$(top_builddir)/test/common/libva-display.la	\
+	$(NULL)
+
+mpeg2vldemo_LDADD	= $(TEST_LIBS)
+mpeg2vldemo_SOURCES	= mpeg2vldemo.cpp
+
+loadjpeg_LDADD		= $(TEST_LIBS)
+loadjpeg_SOURCES	= loadjpeg.c tinyjpeg.c
+
+valgrind:	$(bin_PROGRAMS)
+	for a in $(bin_PROGRAMS); do \
+		valgrind --leak-check=full --show-reachable=yes .libs/$$a; \
+	done
+
+EXTRA_DIST = \
+	tinyjpeg.h		\
+	tinyjpeg-internal.h	\
+	$(NULL)
diff --git a/examples/thirdparty/libva/test/decode/loadjpeg.c b/examples/thirdparty/libva/test/decode/loadjpeg.c
new file mode 100644
index 0000000..7a9a235
--- /dev/null
+++ b/examples/thirdparty/libva/test/decode/loadjpeg.c
@@ -0,0 +1,137 @@
+/*
+ * Small jpeg decoder library - testing application
+ *
+ * Copyright (c) 2006, Luc Saillard <luc at saillard.org>
+ * Copyright (c) 2012 Intel Corporation.
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 
+ * - Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ *  this list of conditions and the following disclaimer in the documentation
+ *  and/or other materials provided with the distribution.
+ *
+ * - Neither the name of the author nor the names of its contributors may be
+ *  used to endorse or promote products derived from this software without
+ *  specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include "tinyjpeg.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include "va_display.h"
+
+static void exitmessage(const char *message) __attribute__((noreturn));
+static void exitmessage(const char *message)
+{
+  printf("%s\n", message);
+  exit(0);
+}
+
+static int filesize(FILE *fp)
+{
+  long pos;
+  fseek(fp, 0, SEEK_END);
+  pos = ftell(fp);
+  fseek(fp, 0, SEEK_SET);
+  return pos;
+}
+
+/**
+ * Load one jpeg image, and decompress it, and save the result.
+ */
+int convert_one_image(const char *infilename)
+{
+  FILE *fp;
+  unsigned int length_of_file;
+  unsigned int width, height;
+  unsigned char *buf;
+  struct jdec_private *jdec;
+
+  /* Load the Jpeg into memory */
+  fp = fopen(infilename, "rb");
+  if (fp == NULL)
+    exitmessage("Cannot open filename\n");
+  length_of_file = filesize(fp);
+  buf = (unsigned char *)malloc(length_of_file + 4);
+  if (buf == NULL)
+    exitmessage("Not enough memory for loading file\n");
+  fread(buf, length_of_file, 1, fp);
+  fclose(fp);
+
+  /* Decompress it */
+  jdec = tinyjpeg_init();
+  if (jdec == NULL)
+    exitmessage("Not enough memory to alloc the structure need for decompressing\n");
+
+  if (tinyjpeg_parse_header(jdec, buf, length_of_file)<0)
+    exitmessage(tinyjpeg_get_errorstring(jdec));
+
+  /* Get the size of the image */
+  tinyjpeg_get_size(jdec, &width, &height);
+
+  printf("Decoding JPEG image %dx%d...\n", width, height);
+  if (tinyjpeg_decode(jdec) < 0)
+    exitmessage(tinyjpeg_get_errorstring(jdec));
+
+  tinyjpeg_free(jdec);
+
+  free(buf);
+  return 0;
+}
+
+static void usage(void)
+{
+    fprintf(stderr, "Usage: loadjpeg <input_filename.jpeg> \n");
+    exit(1);
+}
+
+/**
+ * main
+ *
+ */
+int main(int argc, char *argv[])
+{
+  char *input_filename;
+  clock_t start_time, finish_time;
+  unsigned int duration;
+  int current_argument;
+
+  va_init_display_args(&argc, argv);
+
+  if (argc < 2)
+    usage();
+
+  current_argument = 1;
+  input_filename = argv[current_argument];
+
+  start_time = clock();
+  convert_one_image(input_filename);
+  finish_time = clock();
+  duration = finish_time - start_time;
+  printf("Decoding finished in %u ticks\n", duration);
+
+  return 0;
+}
+
+
+
+
diff --git a/examples/thirdparty/libva/test/decode/mpeg2-I.gif b/examples/thirdparty/libva/test/decode/mpeg2-I.gif
new file mode 100644
index 0000000..81a25eb
Binary files /dev/null and b/examples/thirdparty/libva/test/decode/mpeg2-I.gif differ
diff --git a/examples/thirdparty/libva/test/decode/mpeg2-I.m2v b/examples/thirdparty/libva/test/decode/mpeg2-I.m2v
new file mode 100644
index 0000000..f00fa01
Binary files /dev/null and b/examples/thirdparty/libva/test/decode/mpeg2-I.m2v differ
diff --git a/examples/thirdparty/libva/test/decode/mpeg2vldemo.cpp b/examples/thirdparty/libva/test/decode/mpeg2vldemo.cpp
new file mode 100644
index 0000000..715ea49
--- /dev/null
+++ b/examples/thirdparty/libva/test/decode/mpeg2vldemo.cpp
@@ -0,0 +1,282 @@
+/*
+ * Copyright (c) 2007-2008 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.
+ */
+
+/*
+ * it is a real program to show how VAAPI decode work,
+ * It does VLD decode for a simple MPEG2 clip "mpeg2-I.m2v"
+ * "mpeg2-I.m2v" and VA parameters are hardcoded into mpeg2vldemo.c,
+ * See mpeg2-I.jif to know how those VA parameters come from
+ *
+ * gcc -o  mpeg2vldemo  mpeg2vldemo.c -lva -lva-x11 -I/usr/include/va
+ * ./mpeg2vldemo  : only do decode
+ * ./mpeg2vldemo <any parameter >: decode+display
+ *
+ */  
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <va/va.h>
+#include "va_display.h"
+
+#define CHECK_VASTATUS(va_status,func)                                  \
+if (va_status != VA_STATUS_SUCCESS) {                                   \
+    fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \
+    exit(1);                                                            \
+}
+
+/* Data dump of a 16x16 MPEG2 video clip,it has one I frame
+ */
+static unsigned char mpeg2_clip[]={
+    0x00,0x00,0x01,0xb3,0x01,0x00,0x10,0x13,0xff,0xff,0xe0,0x18,0x00,0x00,0x01,0xb5,
+    0x14,0x8a,0x00,0x01,0x00,0x00,0x00,0x00,0x01,0xb8,0x00,0x08,0x00,0x00,0x00,0x00,
+    0x01,0x00,0x00,0x0f,0xff,0xf8,0x00,0x00,0x01,0xb5,0x8f,0xff,0xf3,0x41,0x80,0x00,
+    0x00,0x01,0x01,0x13,0xe1,0x00,0x15,0x81,0x54,0xe0,0x2a,0x05,0x43,0x00,0x2d,0x60,
+    0x18,0x01,0x4e,0x82,0xb9,0x58,0xb1,0x83,0x49,0xa4,0xa0,0x2e,0x05,0x80,0x4b,0x7a,
+    0x00,0x01,0x38,0x20,0x80,0xe8,0x05,0xff,0x60,0x18,0xe0,0x1d,0x80,0x98,0x01,0xf8,
+    0x06,0x00,0x54,0x02,0xc0,0x18,0x14,0x03,0xb2,0x92,0x80,0xc0,0x18,0x94,0x42,0x2c,
+    0xb2,0x11,0x64,0xa0,0x12,0x5e,0x78,0x03,0x3c,0x01,0x80,0x0e,0x80,0x18,0x80,0x6b,
+    0xca,0x4e,0x01,0x0f,0xe4,0x32,0xc9,0xbf,0x01,0x42,0x69,0x43,0x50,0x4b,0x01,0xc9,
+    0x45,0x80,0x50,0x01,0x38,0x65,0xe8,0x01,0x03,0xf3,0xc0,0x76,0x00,0xe0,0x03,0x20,
+    0x28,0x18,0x01,0xa9,0x34,0x04,0xc5,0xe0,0x0b,0x0b,0x04,0x20,0x06,0xc0,0x89,0xff,
+    0x60,0x12,0x12,0x8a,0x2c,0x34,0x11,0xff,0xf6,0xe2,0x40,0xc0,0x30,0x1b,0x7a,0x01,
+    0xa9,0x0d,0x00,0xac,0x64
+};
+
+/* hardcoded here without a bitstream parser helper
+ * please see picture mpeg2-I.jpg for bitstream details
+ */
+static VAPictureParameterBufferMPEG2 pic_param={
+  horizontal_size:16,
+  vertical_size:16,
+  forward_reference_picture:0xffffffff,
+  backward_reference_picture:0xffffffff,
+  picture_coding_type:1,
+  f_code:0xffff,
+  {
+      {
+        intra_dc_precision:0,
+        picture_structure:3,
+        top_field_first:0,
+        frame_pred_frame_dct:1,
+        concealment_motion_vectors:0,
+        q_scale_type:0,
+        intra_vlc_format:0,
+        alternate_scan:0,
+        repeat_first_field:0,
+        progressive_frame:1 ,
+        is_first_field:1
+      },
+  }
+};
+
+/* see MPEG2 spec65 for the defines of matrix */
+static VAIQMatrixBufferMPEG2 iq_matrix = {
+  load_intra_quantiser_matrix:1,
+  load_non_intra_quantiser_matrix:1,
+  load_chroma_intra_quantiser_matrix:0,
+  load_chroma_non_intra_quantiser_matrix:0,
+  intra_quantiser_matrix:{
+         8, 16, 16, 19, 16, 19, 22, 22,
+        22, 22, 22, 22, 26, 24, 26, 27,
+        27, 27, 26, 26, 26, 26, 27, 27,
+        27, 29, 29, 29, 34, 34, 34, 29,
+        29, 29, 27, 27, 29, 29, 32, 32,
+        34, 34, 37, 38, 37, 35, 35, 34,
+        35, 38, 38, 40, 40, 40, 48, 48,
+        46, 46, 56, 56, 58, 69, 69, 83
+    },
+  non_intra_quantiser_matrix:{16},
+  chroma_intra_quantiser_matrix:{0},
+  chroma_non_intra_quantiser_matrix:{0}
+};
+
+#if 1
+static VASliceParameterBufferMPEG2 slice_param={
+  slice_data_size:150,
+  slice_data_offset:0,
+  slice_data_flag:0,
+  macroblock_offset:38, /* 4byte + 6bits=38bits */
+  slice_horizontal_position:0,
+  slice_vertical_position:0,
+  quantiser_scale_code:2,
+  intra_slice_flag:0
+};
+#endif
+
+#define CLIP_WIDTH  16
+#define CLIP_HEIGHT 16
+
+#define WIN_WIDTH  (CLIP_WIDTH<<1)
+#define WIN_HEIGHT (CLIP_HEIGHT<<1)
+
+int main(int argc,char **argv)
+{
+    VAEntrypoint entrypoints[5];
+    int num_entrypoints,vld_entrypoint;
+    VAConfigAttrib attrib;
+    VAConfigID config_id;
+    VASurfaceID surface_id;
+    VAContextID context_id;
+    VABufferID pic_param_buf,iqmatrix_buf,slice_param_buf,slice_data_buf;
+    int major_ver, minor_ver;
+    VADisplay	va_dpy;
+    VAStatus va_status;
+    int putsurface=0;
+
+    va_init_display_args(&argc, argv);
+
+    if (argc > 1)
+        putsurface=1;
+    
+    va_dpy = va_open_display();
+    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+    assert(va_status == VA_STATUS_SUCCESS);
+    
+    va_status = vaQueryConfigEntrypoints(va_dpy, VAProfileMPEG2Main, entrypoints, 
+                             &num_entrypoints);
+    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
+
+    for	(vld_entrypoint = 0; vld_entrypoint < num_entrypoints; vld_entrypoint++) {
+        if (entrypoints[vld_entrypoint] == VAEntrypointVLD)
+            break;
+    }
+    if (vld_entrypoint == num_entrypoints) {
+        /* not find VLD entry point */
+        assert(0);
+    }
+
+    /* Assuming finding VLD, find out the format for the render target */
+    attrib.type = VAConfigAttribRTFormat;
+    vaGetConfigAttributes(va_dpy, VAProfileMPEG2Main, VAEntrypointVLD,
+                          &attrib, 1);
+    if ((attrib.value & VA_RT_FORMAT_YUV420) == 0) {
+        /* not find desired YUV420 RT format */
+        assert(0);
+    }
+    
+    va_status = vaCreateConfig(va_dpy, VAProfileMPEG2Main, VAEntrypointVLD,
+                              &attrib, 1,&config_id);
+    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
+
+    va_status = vaCreateSurfaces(
+        va_dpy,
+        VA_RT_FORMAT_YUV420, CLIP_WIDTH, CLIP_HEIGHT,
+        &surface_id, 1,
+        NULL, 0
+    );
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+    /* Create a context for this decode pipe */
+    va_status = vaCreateContext(va_dpy, config_id,
+                               CLIP_WIDTH,
+                               ((CLIP_HEIGHT+15)/16)*16,
+                               VA_PROGRESSIVE,
+                               &surface_id,
+                               1,
+                               &context_id);
+    CHECK_VASTATUS(va_status, "vaCreateContext");
+    
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VAPictureParameterBufferType,
+                              sizeof(VAPictureParameterBufferMPEG2),
+                              1, &pic_param,
+                              &pic_param_buf);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+    
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VAIQMatrixBufferType,
+                              sizeof(VAIQMatrixBufferMPEG2),
+                              1, &iq_matrix,
+                              &iqmatrix_buf );
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VASliceParameterBufferType,
+                              sizeof(VASliceParameterBufferMPEG2),
+                              1,
+                              &slice_param, &slice_param_buf);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VASliceDataBufferType,
+                              0xc4-0x2f+1,
+                              1,
+                              mpeg2_clip+0x2f,
+                              &slice_data_buf);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    va_status = vaBeginPicture(va_dpy, context_id, surface_id);
+    CHECK_VASTATUS(va_status, "vaBeginPicture");
+
+    va_status = vaRenderPicture(va_dpy,context_id, &pic_param_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &iqmatrix_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &slice_param_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &slice_data_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaEndPicture(va_dpy,context_id);
+    CHECK_VASTATUS(va_status, "vaEndPicture");
+
+    va_status = vaSyncSurface(va_dpy, surface_id);
+    CHECK_VASTATUS(va_status, "vaSyncSurface");
+
+    if (putsurface) {
+        VARectangle src_rect, dst_rect;
+
+        src_rect.x      = 0;
+        src_rect.y      = 0;
+        src_rect.width  = CLIP_WIDTH;
+        src_rect.height = CLIP_HEIGHT;
+
+        dst_rect.x      = 0;
+        dst_rect.y      = 0;
+        dst_rect.width  = WIN_WIDTH;
+        dst_rect.height = WIN_HEIGHT;
+
+        va_status = va_put_surface(va_dpy, surface_id, &src_rect, &dst_rect);
+        CHECK_VASTATUS(va_status, "vaPutSurface");
+    }
+    printf("press any key to exit\n");
+    getchar();
+
+    vaDestroySurfaces(va_dpy,&surface_id,1);
+    vaDestroyConfig(va_dpy,config_id);
+    vaDestroyContext(va_dpy,context_id);
+
+    vaTerminate(va_dpy);
+    va_close_display(va_dpy);
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/decode/tinyjpeg-internal.h b/examples/thirdparty/libva/test/decode/tinyjpeg-internal.h
new file mode 100644
index 0000000..9caead5
--- /dev/null
+++ b/examples/thirdparty/libva/test/decode/tinyjpeg-internal.h
@@ -0,0 +1,120 @@
+/*
+ * Small jpeg decoder library (Internal header)
+ *
+ * Copyright (c) 2006, Luc Saillard <luc at saillard.org>
+ * Copyright (c) 2012 Intel Corporation.
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 
+ * - Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ *  this list of conditions and the following disclaimer in the documentation
+ *  and/or other materials provided with the distribution.
+ *
+ * - Neither the name of the author nor the names of its contributors may be
+ *  used to endorse or promote products derived from this software without
+ *  specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+#ifndef __TINYJPEG_INTERNAL_H_
+#define __TINYJPEG_INTERNAL_H_
+
+#include <setjmp.h>
+
+#define SANITY_CHECK 1
+
+struct jdec_private;
+
+#define HUFFMAN_BITS_SIZE  256
+
+#define HUFFMAN_TABLES	   4
+#define COMPONENTS	   4
+#define JPEG_MAX_WIDTH	   2048
+#define JPEG_MAX_HEIGHT	   2048
+
+enum std_markers {
+   DQT  = 0xDB, /* Define Quantization Table */
+   SOF  = 0xC0, /* Start of Frame (size information) */
+   DHT  = 0xC4, /* Huffman Table */
+   SOI  = 0xD8, /* Start of Image */
+   SOS  = 0xDA, /* Start of Scan */
+   RST  = 0xD0, /* Reset Marker d0 -> .. */
+   RST7 = 0xD7, /* Reset Marker .. -> d7 */
+   EOI  = 0xD9, /* End of Image */
+   DRI  = 0xDD, /* Define Restart Interval */
+   APP0 = 0xE0,
+};
+
+
+struct huffman_table
+{
+  /*bits and values*/
+	unsigned char bits[16];
+	unsigned char values[256];
+};
+
+struct component 
+{
+  unsigned int Hfactor;
+  unsigned int Vfactor;
+  unsigned char quant_table_index;
+  unsigned int cid;
+};
+
+
+typedef void (*decode_MCU_fct) (struct jdec_private *priv);
+typedef void (*convert_colorspace_fct) (struct jdec_private *priv);
+
+struct jpeg_sos
+{
+  unsigned int nr_components;
+  struct {
+    unsigned int component_id;
+    unsigned int dc_selector;
+    unsigned int ac_selector;
+  }components[4];
+};
+
+struct jdec_private
+{
+  /* Public variables */
+  unsigned int width, height;	/* Size of the image */
+
+  /* Private variables */
+  const unsigned char *stream_begin, *stream_end;
+  unsigned int stream_length;
+
+  const unsigned char *stream;	/* Pointer to the current stream */
+
+  struct component component_infos[COMPONENTS];
+  unsigned int nf_components;
+  unsigned char Q_tables[COMPONENTS][64];		/* quantization tables, zigzag*/
+  unsigned char Q_tables_valid[COMPONENTS];
+  struct huffman_table HTDC[HUFFMAN_TABLES];	/* DC huffman tables   */
+  unsigned char HTDC_valid[HUFFMAN_TABLES];
+  struct huffman_table HTAC[HUFFMAN_TABLES];	/* AC huffman tables   */
+  unsigned char HTAC_valid[HUFFMAN_TABLES];
+  struct jpeg_sos cur_sos;  /* current sos values*/
+  int default_huffman_table_initialized;
+  int restart_interval;
+};
+
+#endif
+
diff --git a/examples/thirdparty/libva/test/decode/tinyjpeg.c b/examples/thirdparty/libva/test/decode/tinyjpeg.c
new file mode 100644
index 0000000..045e79a
--- /dev/null
+++ b/examples/thirdparty/libva/test/decode/tinyjpeg.c
@@ -0,0 +1,758 @@
+/*
+ * Small jpeg decoder library
+ *
+ * Copyright (c) 2006, Luc Saillard <luc at saillard.org>
+ * Copyright (c) 2012 Intel Corporation.
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 
+ * - Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ *  this list of conditions and the following disclaimer in the documentation
+ *  and/or other materials provided with the distribution.
+ *
+ * - Neither the name of the author nor the names of its contributors may be
+ *  used to endorse or promote products derived from this software without
+ *  specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdint.h>
+#include <errno.h>
+
+#include "tinyjpeg.h"
+#include "tinyjpeg-internal.h"
+
+// for libva
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <va/va.h>
+#include "va_display.h"
+
+
+#define cY	0
+#define cCb	1
+#define cCr	2
+
+#define BLACK_Y 0
+#define BLACK_U 127
+#define BLACK_V 127
+
+#ifndef MIN
+#define MIN(a, b) ((a) < (b) ? (a) : (b))
+#endif
+#ifndef MAX
+#define MAX(a, b) ((a) > (b) ? (a) : (b))
+#endif
+#define ARRAY_ELEMS(a) (sizeof(a) / sizeof((a)[0]))
+
+#if DEBUG
+#define trace(fmt, args...) do { \
+   fprintf(stderr, fmt, ## args); \
+   fflush(stderr); \
+} while(0)
+#else
+#define trace(fmt, args...) do { } while (0)
+#endif
+#define error(fmt, args...) do { \
+   snprintf(error_string, sizeof(error_string), fmt, ## args); \
+   return -1; \
+} while(0)
+
+/* Global variable to return the last error found while deconding */
+static char error_string[256];
+static VAHuffmanTableBufferJPEGBaseline default_huffman_table_param={
+    huffman_table:
+    {
+        // lumiance component
+        {
+            num_dc_codes:{0,1,5,1,1,1,1,1,1,0,0,0}, // 12 bits is ok for baseline profile
+            dc_values:{0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b},
+            num_ac_codes:{0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,125},
+            ac_values:{
+              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
+           },/*,0xonly,0xthe,0xfirst,0x162,0xbytes,0xare,0xavailable,0x*/
+        },
+        // chrom component
+        {
+            num_dc_codes:{0,3,1,1,1,1,1,1,1,1,1,0}, // 12 bits is ok for baseline profile
+            dc_values:{0,1,2,3,4,5,6,7,8,9,0xa,0xb},
+            num_ac_codes:{0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,119},
+            ac_values:{
+              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
+            },/*,0xonly,0xthe,0xfirst,0x162,0xbytes,0xare,0xavailable,0x*/
+        },
+    }
+};
+
+#define be16_to_cpu(x) (((x)[0]<<8)|(x)[1])
+
+
+static int build_default_huffman_tables(struct jdec_private *priv)
+{
+    int i = 0;
+	if (priv->default_huffman_table_initialized)
+		return 0;
+
+    for (i = 0; i < 4; i++) {
+        priv->HTDC_valid[i] = 1;
+        memcpy(priv->HTDC[i].bits, default_huffman_table_param.huffman_table[i].num_dc_codes, 16);
+        memcpy(priv->HTDC[i].values, default_huffman_table_param.huffman_table[i].dc_values, 16);
+        priv->HTAC_valid[i] = 1;
+        memcpy(priv->HTAC[i].bits, default_huffman_table_param.huffman_table[i].num_ac_codes, 16);
+        memcpy(priv->HTAC[i].values, default_huffman_table_param.huffman_table[i].ac_values, 256);
+    }
+	priv->default_huffman_table_initialized = 1;
+	return 0;
+}
+
+
+static void print_SOF(const unsigned char *stream)
+{
+  int width, height, nr_components, precision;
+#if DEBUG
+  const char *nr_components_to_string[] = {
+     "????",
+     "Grayscale",
+     "????",
+     "YCbCr",
+     "CYMK"
+  };
+#endif
+
+  precision = stream[2];
+  height = be16_to_cpu(stream+3);
+  width  = be16_to_cpu(stream+5);
+  nr_components = stream[7];
+
+  trace("> SOF marker\n");
+  trace("Size:%dx%d nr_components:%d (%s)  precision:%d\n", 
+      width, height,
+      nr_components, nr_components_to_string[nr_components],
+      precision);
+}
+
+static int parse_DQT(struct jdec_private *priv, const unsigned char *stream)
+{
+  int qi;
+  const unsigned char *dqt_block_end;
+
+  trace("> DQT marker\n");
+  dqt_block_end = stream + be16_to_cpu(stream);
+  stream += 2;	/* Skip length */
+
+  while (stream < dqt_block_end)
+   {
+     qi = *stream++;
+#if SANITY_CHECK
+     if (qi>>4)
+       error("16 bits quantization table is not supported\n");
+     if (qi>4)
+       error("No more 4 quantization table is supported (got %d)\n", qi);
+#endif
+     memcpy(priv->Q_tables[qi&0x0F], stream, 64);
+     priv->Q_tables_valid[qi & 0x0f] = 1;
+     stream += 64;
+   }
+  trace("< DQT marker\n");
+  return 0;
+}
+
+static int parse_SOF(struct jdec_private *priv, const unsigned char *stream)
+{
+  int i, width, height, nr_components, cid, sampling_factor;
+  unsigned char Q_table;
+  struct component *c;
+
+  trace("> SOF marker\n");
+  print_SOF(stream);
+
+  height = be16_to_cpu(stream+3);
+  width  = be16_to_cpu(stream+5);
+  nr_components = stream[7];
+  priv->nf_components = nr_components;
+#if SANITY_CHECK
+  if (stream[2] != 8)
+    error("Precision other than 8 is not supported\n");
+  if (width>JPEG_MAX_WIDTH || height>JPEG_MAX_HEIGHT)
+    printf("WARNING:Width and Height (%dx%d) seems suspicious\n", width, height);
+  if (nr_components != 3)
+    printf("ERROR:We only support YUV images\n");
+  if (height%16)
+    printf("WARNING:Height need to be a multiple of 16 (current height is %d)\n", height);
+  if (width%16)
+    printf("WARNING:Width need to be a multiple of 16 (current Width is %d)\n", width);
+#endif
+  stream += 8;
+  for (i=0; i<nr_components; i++) {
+     cid = *stream++;
+     sampling_factor = *stream++;
+     Q_table = *stream++;
+     c = &priv->component_infos[i];
+     c->cid = cid;
+     if (Q_table >= COMPONENTS)
+       error("Bad Quantization table index (got %d, max allowed %d)\n", Q_table, COMPONENTS-1);
+     c->Vfactor = sampling_factor&0xf;
+     c->Hfactor = sampling_factor>>4;
+     c->quant_table_index = Q_table;
+     trace("Component:%d  factor:%dx%d  Quantization table:%d\n",
+           cid, c->Hfactor, c->Vfactor, Q_table );
+
+  }
+  priv->width = width;
+  priv->height = height;
+
+  trace("< SOF marker\n");
+
+  return 0;
+}
+
+static int parse_SOS(struct jdec_private *priv, const unsigned char *stream)
+{
+  unsigned int i, cid, table;
+  unsigned int nr_components = stream[2];
+
+  trace("> SOS marker\n");
+
+  priv->cur_sos.nr_components= nr_components;
+
+  stream += 3;
+  for (i=0;i<nr_components;i++) {
+     cid = *stream++;
+     table = *stream++;
+     priv->cur_sos.components[i].component_id = cid;
+     priv->cur_sos.components[i].dc_selector = ((table>>4)&0x0F);
+     priv->cur_sos.components[i].ac_selector = (table&0x0F);
+#if SANITY_CHECK
+     if ((table&0xf)>=4)
+	error("We do not support more than 2 AC Huffman table\n");
+     if ((table>>4)>=4)
+	error("We do not support more than 2 DC Huffman table\n");
+     if (cid != priv->component_infos[i].cid)
+        error("SOS cid order (%d:%d) isn't compatible with the SOF marker (%d:%d)\n",
+	      i, cid, i, priv->component_infos[i].cid);
+     trace("ComponentId:%d  tableAC:%d tableDC:%d\n", cid, table&0xf, table>>4);
+#endif
+  }
+  priv->stream = stream+3;
+  trace("< SOS marker\n");
+  return 0;
+}
+
+int tinyjpeg_parse_SOS(struct jdec_private *priv, const unsigned char *stream)
+{
+    return parse_SOS(priv, stream);
+}
+
+
+static int parse_DHT(struct jdec_private *priv, const unsigned char *stream)
+{
+  unsigned int count, i;
+  int length, index;
+  unsigned char Tc, Th;
+
+  length = be16_to_cpu(stream) - 2;
+  stream += 2;	/* Skip length */
+
+  trace("> DHT marker (length=%d)\n", length);
+
+  while (length>0) {
+     index = *stream++;
+
+     Tc = index & 0xf0; // it is not important to <<4
+     Th = index & 0x0f;
+     if (Tc) {
+        memcpy(priv->HTAC[index & 0xf].bits, stream, 16);
+     }
+     else {
+         memcpy(priv->HTDC[index & 0xf].bits, stream, 16);
+     }
+
+     count = 0;
+     for (i=0; i<16; i++) {
+        count += *stream++;
+     }
+
+#if SANITY_CHECK
+     if (count >= HUFFMAN_BITS_SIZE)
+       error("No more than %d bytes is allowed to describe a huffman table", HUFFMAN_BITS_SIZE);
+     if ( (index &0xf) >= HUFFMAN_TABLES)
+       error("No more than %d Huffman tables is supported (got %d)\n", HUFFMAN_TABLES, index&0xf);
+     trace("Huffman table %s[%d] length=%d\n", (index&0xf0)?"AC":"DC", index&0xf, count);
+#endif
+
+     if (Tc) {
+        memcpy(priv->HTAC[index & 0xf].values, stream, count);
+        priv->HTAC_valid[index & 0xf] = 1;
+     }
+     else {
+        memcpy(priv->HTDC[index & 0xf].values, stream, count);
+        priv->HTDC_valid[index & 0xf] = 1;
+     }
+
+     length -= 1;
+     length -= 16;
+     length -= count;
+     stream += count;
+  }
+  trace("< DHT marker\n");
+  return 0;
+}
+static int parse_DRI(struct jdec_private *priv, const unsigned char *stream)
+{
+  unsigned int length;
+
+  trace("> DRI marker\n");
+
+  length = be16_to_cpu(stream);
+
+#if SANITY_CHECK
+  if (length != 4)
+    error("Length of DRI marker need to be 4\n");
+#endif
+
+  priv->restart_interval = be16_to_cpu(stream+2);
+
+#if DEBUG
+  trace("Restart interval = %d\n", priv->restart_interval);
+#endif
+
+  trace("< DRI marker\n");
+
+  return 0;
+}
+
+
+static int parse_JFIF(struct jdec_private *priv, const unsigned char *stream)
+{
+  int chuck_len;
+  int marker;
+  int sos_marker_found = 0;
+  int dht_marker_found = 0;
+  int dqt_marker_found = 0;
+  const unsigned char *next_chunck;
+
+  /* Parse marker */
+  while (!sos_marker_found)
+   {
+     if (*stream++ != 0xff)
+       goto bogus_jpeg_format;
+     /* Skip any padding ff byte (this is normal) */
+     while (*stream == 0xff)
+       stream++;
+
+     marker = *stream++;
+     chuck_len = be16_to_cpu(stream);
+     next_chunck = stream + chuck_len;
+     switch (marker)
+      {
+       case SOF:
+	 if (parse_SOF(priv, stream) < 0)
+	   return -1;
+	 break;
+       case DQT:
+	 if (parse_DQT(priv, stream) < 0)
+	   return -1;
+	 dqt_marker_found = 1;
+	 break;
+       case SOS:
+	 if (parse_SOS(priv, stream) < 0)
+	   return -1;
+	 sos_marker_found = 1;
+	 break;
+       case DHT:
+	 if (parse_DHT(priv, stream) < 0)
+	   return -1;
+	 dht_marker_found = 1;
+	 break;
+       case DRI:
+	 if (parse_DRI(priv, stream) < 0)
+	   return -1;
+	 break;
+       default:
+	 trace("> Unknown marker %2.2x\n", marker);
+	 break;
+      }
+
+     stream = next_chunck;
+   }
+
+  if (!dht_marker_found) {
+    trace("No Huffman table loaded, using the default one\n");
+    build_default_huffman_tables(priv);
+  }
+  if (!dqt_marker_found) {
+    error("ERROR:No Quantization table loaded, using the default one\n");
+  }
+
+#ifdef SANITY_CHECK
+  if (   (priv->component_infos[cY].Hfactor < priv->component_infos[cCb].Hfactor)
+      || (priv->component_infos[cY].Hfactor < priv->component_infos[cCr].Hfactor))
+    error("Horizontal sampling factor for Y should be greater than horitontal sampling factor for Cb or Cr\n");
+  if (   (priv->component_infos[cY].Vfactor < priv->component_infos[cCb].Vfactor)
+      || (priv->component_infos[cY].Vfactor < priv->component_infos[cCr].Vfactor))
+    error("Vertical sampling factor for Y should be greater than vertical sampling factor for Cb or Cr\n");
+  if (   (priv->component_infos[cCb].Hfactor!=1) 
+      || (priv->component_infos[cCr].Hfactor!=1)
+      || (priv->component_infos[cCb].Vfactor!=1)
+      || (priv->component_infos[cCr].Vfactor!=1))
+    printf("ERROR:Sampling other than 1x1 for Cr and Cb is not supported");
+#endif
+
+  return 0;
+bogus_jpeg_format:
+  trace("Bogus jpeg format\n");
+  return -1;
+}
+
+/*******************************************************************************
+ *
+ * Functions exported of the library.
+ *
+ * Note: Some applications can access directly to internal pointer of the
+ * structure. It's is not recommended, but if you have many images to
+ * uncompress with the same parameters, some functions can be called to speedup
+ * the decoding.
+ *
+ ******************************************************************************/
+
+/**
+ * Allocate a new tinyjpeg decoder object.
+ *
+ * Before calling any other functions, an object need to be called.
+ */
+struct jdec_private *tinyjpeg_init(void)
+{
+  struct jdec_private *priv;
+ 
+  priv = (struct jdec_private *)calloc(1, sizeof(struct jdec_private));
+  if (priv == NULL)
+    return NULL;
+  return priv;
+}
+
+/**
+ * Free a tinyjpeg object.
+ *
+ * No others function can be called after this one.
+ */
+void tinyjpeg_free(struct jdec_private *priv)
+{
+  free(priv);
+}
+
+/**
+ * Initialize the tinyjpeg object and prepare the decoding of the stream.
+ *
+ * Check if the jpeg can be decoded with this jpeg decoder.
+ * Fill some table used for preprocessing.
+ */
+int tinyjpeg_parse_header(struct jdec_private *priv, const unsigned char *buf, unsigned int size)
+{
+  int ret;
+
+  /* Identify the file */
+  if ((buf[0] != 0xFF) || (buf[1] != SOI))
+    error("Not a JPG file ?\n");
+
+  priv->stream_begin = buf+2;
+  priv->stream_length = size-2;
+  priv->stream_end = priv->stream_begin + priv->stream_length;
+
+  ret = parse_JFIF(priv, priv->stream_begin);
+
+  return ret;
+}
+
+
+int tinyjpeg_decode(struct jdec_private *priv)
+{
+#define CHECK_VASTATUS(va_status,func)                                  \
+    if (va_status != VA_STATUS_SUCCESS) {                                   \
+        fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \
+        exit(1);                                                            \
+    }
+
+    VAEntrypoint entrypoints[5];
+    int num_entrypoints,vld_entrypoint;
+    VAConfigAttrib attrib;
+    VAConfigID config_id;
+    VASurfaceID surface_id;
+    VAContextID context_id;
+    VABufferID pic_param_buf,iqmatrix_buf,huffmantable_buf,slice_param_buf,slice_data_buf;
+    int major_ver, minor_ver;
+    VADisplay	va_dpy;
+    VAStatus va_status;
+    int max_h_factor, max_v_factor;
+    int putsurface=1;
+    unsigned int i, j;
+
+    va_dpy = va_open_display();
+    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+    assert(va_status == VA_STATUS_SUCCESS);
+    
+    va_status = vaQueryConfigEntrypoints(va_dpy, VAProfileJPEGBaseline, entrypoints, 
+                             &num_entrypoints);
+    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
+
+    for	(vld_entrypoint = 0; vld_entrypoint < num_entrypoints; vld_entrypoint++) {
+        if (entrypoints[vld_entrypoint] == VAEntrypointVLD)
+            break;
+    }
+    if (vld_entrypoint == num_entrypoints) {
+        /* not find VLD entry point */
+        assert(0);
+    }
+
+    /* Assuming finding VLD, find out the format for the render target */
+    attrib.type = VAConfigAttribRTFormat;
+    vaGetConfigAttributes(va_dpy, VAProfileJPEGBaseline, VAEntrypointVLD,
+                          &attrib, 1);
+    if ((attrib.value & VA_RT_FORMAT_YUV420) == 0) {
+        /* not find desired YUV420 RT format */
+        assert(0);
+    }
+    
+    va_status = vaCreateConfig(va_dpy, VAProfileJPEGBaseline, VAEntrypointVLD,
+                              &attrib, 1,&config_id);
+    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
+
+    va_status = vaCreateSurfaces(va_dpy,VA_RT_FORMAT_YUV420,
+                                 priv->width,priv->height, //alignment?
+                                 &surface_id, 1, NULL, 0);
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+    /* Create a context for this decode pipe */
+    va_status = vaCreateContext(va_dpy, config_id,
+                               priv->width, priv->height, // alignment?
+                               VA_PROGRESSIVE,
+                               &surface_id,
+                               1,
+                               &context_id);
+    CHECK_VASTATUS(va_status, "vaCreateContext");
+    
+    VAPictureParameterBufferJPEGBaseline pic_param;
+    memset(&pic_param, 0, sizeof(pic_param));
+    pic_param.picture_width = priv->width;
+    pic_param.picture_height = priv->height;
+    pic_param.num_components = priv->nf_components;
+
+    for (i=0; i<pic_param.num_components; i++) { // tinyjpeg support 3 components only, does it match va?
+        pic_param.components[i].component_id = priv->component_infos[i].cid;
+        pic_param.components[i].h_sampling_factor = priv->component_infos[i].Hfactor;
+        pic_param.components[i].v_sampling_factor = priv->component_infos[i].Vfactor;
+        pic_param.components[i].quantiser_table_selector = priv->component_infos[i].quant_table_index;
+    }
+
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VAPictureParameterBufferType, // VAPictureParameterBufferJPEGBaseline?
+                              sizeof(VAPictureParameterBufferJPEGBaseline),
+                              1, &pic_param,
+                              &pic_param_buf);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    VAIQMatrixBufferJPEGBaseline iq_matrix;
+    const unsigned int num_quant_tables =
+        MIN(COMPONENTS, ARRAY_ELEMS(iq_matrix.load_quantiser_table));
+    // todo, only mask it if non-default quant matrix is used. do we need build default quant matrix?
+    memset(&iq_matrix, 0, sizeof(VAIQMatrixBufferJPEGBaseline));
+    for (i = 0; i < num_quant_tables; i++) {
+        if (!priv->Q_tables_valid[i])
+            continue;
+        iq_matrix.load_quantiser_table[i] = 1;
+        for (j = 0; j < 64; j++)
+            iq_matrix.quantiser_table[i][j] = priv->Q_tables[i][j];
+    }
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VAIQMatrixBufferType, // VAIQMatrixBufferJPEGBaseline?
+                              sizeof(VAIQMatrixBufferJPEGBaseline),
+                              1, &iq_matrix,
+                              &iqmatrix_buf );
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    VAHuffmanTableBufferJPEGBaseline huffman_table;
+    const unsigned int num_huffman_tables =
+        MIN(COMPONENTS, ARRAY_ELEMS(huffman_table.load_huffman_table));
+    memset(&huffman_table, 0, sizeof(VAHuffmanTableBufferJPEGBaseline));
+    assert(sizeof(huffman_table.huffman_table[0].num_dc_codes) ==
+           sizeof(priv->HTDC[0].bits));
+    assert(sizeof(huffman_table.huffman_table[0].dc_values[0]) ==
+           sizeof(priv->HTDC[0].values[0]));
+    for (i = 0; i < num_huffman_tables; i++) {
+        if (!priv->HTDC_valid[i] || !priv->HTAC_valid[i])
+            continue;
+        huffman_table.load_huffman_table[i] = 1;
+        memcpy(huffman_table.huffman_table[i].num_dc_codes, priv->HTDC[i].bits,
+               sizeof(huffman_table.huffman_table[i].num_dc_codes));
+        memcpy(huffman_table.huffman_table[i].dc_values, priv->HTDC[i].values,
+               sizeof(huffman_table.huffman_table[i].dc_values));
+        memcpy(huffman_table.huffman_table[i].num_ac_codes, priv->HTAC[i].bits,
+               sizeof(huffman_table.huffman_table[i].num_ac_codes));
+        memcpy(huffman_table.huffman_table[i].ac_values, priv->HTAC[i].values,
+               sizeof(huffman_table.huffman_table[i].ac_values));
+        memset(huffman_table.huffman_table[i].pad, 0,
+               sizeof(huffman_table.huffman_table[i].pad));
+    }
+
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VAHuffmanTableBufferType, // VAHuffmanTableBufferJPEGBaseline?
+                              sizeof(VAHuffmanTableBufferJPEGBaseline),
+                              1, &huffman_table,
+                              &huffmantable_buf );
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+    
+    // one slice for whole image?
+    max_h_factor = priv->component_infos[0].Hfactor;
+    max_v_factor = priv->component_infos[0].Vfactor;
+    static VASliceParameterBufferJPEGBaseline slice_param;
+    slice_param.slice_data_size = priv->stream_end - priv->stream;
+    slice_param.slice_data_offset = 0;
+    slice_param.slice_data_flag = VA_SLICE_DATA_FLAG_ALL;
+    slice_param.slice_horizontal_position = 0;    
+    slice_param.slice_vertical_position = 0;    
+    slice_param.num_components = priv->cur_sos.nr_components;
+    for (i = 0; i < slice_param.num_components; i++) {
+        slice_param.components[i].component_selector = priv->cur_sos.components[i].component_id; /* FIXME: set to values specified in SOS  */
+        slice_param.components[i].dc_table_selector = priv->cur_sos.components[i].dc_selector;  /* FIXME: set to values specified in SOS  */
+        slice_param.components[i].ac_table_selector = priv->cur_sos.components[i].ac_selector;  /* FIXME: set to values specified in SOS  */
+    }
+    slice_param.restart_interval = priv->restart_interval;
+    slice_param.num_mcus = ((priv->width+max_h_factor*8-1)/(max_h_factor*8))*
+                          ((priv->height+max_v_factor*8-1)/(max_v_factor*8)); // ?? 720/16?
+
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VASliceParameterBufferType, // VASliceParameterBufferJPEGBaseline?
+                              sizeof(VASliceParameterBufferJPEGBaseline),
+                              1,
+                              &slice_param, &slice_param_buf);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                              VASliceDataBufferType,
+                              priv->stream_end - priv->stream,
+                              1,
+                              (void*)priv->stream, // jpeg_clip,
+                              &slice_data_buf);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    va_status = vaBeginPicture(va_dpy, context_id, surface_id);
+    CHECK_VASTATUS(va_status, "vaBeginPicture");
+
+    va_status = vaRenderPicture(va_dpy,context_id, &pic_param_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &iqmatrix_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+
+    va_status = vaRenderPicture(va_dpy,context_id, &huffmantable_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &slice_param_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &slice_data_buf, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaEndPicture(va_dpy,context_id);
+    CHECK_VASTATUS(va_status, "vaEndPicture");
+
+    va_status = vaSyncSurface(va_dpy, surface_id);
+    CHECK_VASTATUS(va_status, "vaSyncSurface");
+
+    if (putsurface) {
+        VARectangle src_rect, dst_rect;
+
+        src_rect.x      = 0;
+        src_rect.y      = 0;
+        src_rect.width  = priv->width;
+        src_rect.height = priv->height;
+        dst_rect        = src_rect;
+
+        va_status = va_put_surface(va_dpy, surface_id, &src_rect, &dst_rect);
+        CHECK_VASTATUS(va_status, "vaPutSurface");
+    }
+    printf("press any key to exit\n");
+    getchar();
+
+    vaDestroySurfaces(va_dpy,&surface_id,1);
+    vaDestroyConfig(va_dpy,config_id);
+    vaDestroyContext(va_dpy,context_id);
+
+    vaTerminate(va_dpy);
+    va_close_display(va_dpy);
+    return 0;
+}
+const char *tinyjpeg_get_errorstring(struct jdec_private *priv)
+{
+  /* FIXME: the error string must be store in the context */
+  priv = priv;
+  return error_string;
+}
+void tinyjpeg_get_size(struct jdec_private *priv, unsigned int *width, unsigned int *height)
+{
+  *width = priv->width;
+  *height = priv->height;
+}
+
+
diff --git a/examples/thirdparty/libva/test/decode/tinyjpeg.h b/examples/thirdparty/libva/test/decode/tinyjpeg.h
new file mode 100644
index 0000000..5a76e41
--- /dev/null
+++ b/examples/thirdparty/libva/test/decode/tinyjpeg.h
@@ -0,0 +1,71 @@
+/*
+ * Small jpeg decoder library (header file)
+ *
+ * Copyright (c) 2006, Luc Saillard <luc at saillard.org>
+ * Copyright (c) 2012 Intel Corporation.
+ * All rights reserved.
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * 
+ * - Redistributions of source code must retain the above copyright notice,
+ *  this list of conditions and the following disclaimer.
+ *
+ * - Redistributions in binary form must reproduce the above copyright notice,
+ *  this list of conditions and the following disclaimer in the documentation
+ *  and/or other materials provided with the distribution.
+ *
+ * - Neither the name of the author nor the names of its contributors may be
+ *  used to endorse or promote products derived from this software without
+ *  specific prior written permission.
+ * 
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+#ifndef __JPEGDEC_H__
+#define __JPEGDEC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct jdec_private;
+
+/* Flags that can be set by any applications */
+#define TINYJPEG_FLAGS_MJPEG_TABLE	(1<<1)
+
+/* Format accepted in outout */
+enum tinyjpeg_fmt {
+   TINYJPEG_FMT_GREY = 1,
+   TINYJPEG_FMT_BGR24,
+   TINYJPEG_FMT_RGB24,
+   TINYJPEG_FMT_YUV420P,
+};
+
+struct jdec_private *tinyjpeg_init(void);
+void tinyjpeg_free(struct jdec_private *priv);
+
+int tinyjpeg_parse_header(struct jdec_private *priv, const unsigned char *buf, unsigned int size);
+int tinyjpeg_decode(struct jdec_private *priv);
+const char *tinyjpeg_get_errorstring(struct jdec_private *priv);
+void tinyjpeg_get_size(struct jdec_private *priv, unsigned int *width, unsigned int *height);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
+
diff --git a/examples/thirdparty/libva/test/encode/Android.mk b/examples/thirdparty/libva/test/encode/Android.mk
new file mode 100755
index 0000000..430ffd9
--- /dev/null
+++ b/examples/thirdparty/libva/test/encode/Android.mk
@@ -0,0 +1,50 @@
+# For test_01
+# =====================================================
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  ../common/va_display.c \
+  ../common/va_display_android.cpp \
+  h264encode.c
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(LOCAL_PATH)/../../va \
+  $(LOCAL_PATH)/../common \
+  $(TARGET_OUT_HEADERS)/libva
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	h264encode
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm  libcutils libutils libgui libm
+
+include $(BUILD_EXECUTABLE)
+
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+	../common/va_display.c			\
+	../common/va_display_android.cpp	\
+	avcenc.c
+
+LOCAL_CFLAGS += \
+	-DANDROID
+
+LOCAL_C_INCLUDES += \
+	$(LOCAL_PATH)/../../va \
+	$(LOCAL_PATH)/../common \
+	$(TARGET_OUT_HEADERS)/libva
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE :=	avcenc
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libgui
+
+include $(BUILD_EXECUTABLE)
+
diff --git a/examples/thirdparty/libva/test/encode/Makefile.am b/examples/thirdparty/libva/test/encode/Makefile.am
new file mode 100644
index 0000000..d2ac265
--- /dev/null
+++ b/examples/thirdparty/libva/test/encode/Makefile.am
@@ -0,0 +1,66 @@
+# Copyright (c) 2007 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.
+
+bin_PROGRAMS = avcenc mpeg2vaenc h264encode jpegenc
+
+AM_CPPFLAGS = \
+	-Wall				\
+	-I$(top_srcdir)			\
+	-I$(top_srcdir)/va		\
+	$(NULL)
+
+h264encode_SOURCES	= h264encode.c
+h264encode_CFLAGS	= -I$(top_srcdir)/test/common -g
+h264encode_LDADD	= \
+	$(top_builddir)/va/libva.la \
+	$(top_builddir)/test/common/libva-display.la \
+	-lpthread -lm
+
+avcenc_SOURCES		= avcenc.c
+avcenc_CFLAGS		= -I$(top_srcdir)/test/common -g
+avcenc_LDADD		= \
+	$(top_builddir)/va/libva.la \
+	$(top_builddir)/test/common/libva-display.la \
+	-lpthread
+
+mpeg2vaenc_SOURCES	= mpeg2vaenc.c
+mpeg2vaenc_CFLAGS	= -I$(top_srcdir)/test/common
+mpeg2vaenc_LDADD	= \
+	$(top_builddir)/va/libva.la \
+	$(top_builddir)/test/common/libva-display.la \
+	-lpthread
+
+jpegenc_SOURCES		= jpegenc.c
+jpegenc_CFLAGS		= -I$(top_srcdir)/test/common -g
+jpegenc_LDADD		= \
+	$(top_builddir)/va/libva.la \
+	$(top_builddir)/test/common/libva-display.la \
+	-lpthread	
+	
+valgrind:	$(bin_PROGRAMS)
+	for a in $(bin_PROGRAMS); do \
+		valgrind --leak-check=full --show-reachable=yes .libs/$$a; \
+	done
+
+EXTRA_DIST = 		\
+	jpegenc_utils.h \
+	$(NULL)
diff --git a/examples/thirdparty/libva/test/encode/avcenc.c b/examples/thirdparty/libva/test/encode/avcenc.c
new file mode 100644
index 0000000..d41fb1b
--- /dev/null
+++ b/examples/thirdparty/libva/test/encode/avcenc.c
@@ -0,0 +1,2062 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+/*
+ * Simple AVC encoder based on libVA.
+ *
+ * Usage:
+ * ./avcenc <width> <height> <input file> <output file> [qp]
+ */  
+
+#include "sysdeps.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <unistd.h>
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <time.h>
+
+#include <pthread.h>
+
+#include <va/va.h>
+#include <va/va_enc_h264.h>
+#include "va_display.h"
+
+#define NAL_REF_IDC_NONE        0
+#define NAL_REF_IDC_LOW         1
+#define NAL_REF_IDC_MEDIUM      2
+#define NAL_REF_IDC_HIGH        3
+
+#define NAL_NON_IDR             1
+#define NAL_IDR                 5
+#define NAL_SPS                 7
+#define NAL_PPS                 8
+#define NAL_SEI			6
+
+#define SLICE_TYPE_P            0
+#define SLICE_TYPE_B            1
+#define SLICE_TYPE_I            2
+
+#define FRAME_IDR 7
+
+#define ENTROPY_MODE_CAVLC      0
+#define ENTROPY_MODE_CABAC      1
+
+#define PROFILE_IDC_BASELINE    66
+#define PROFILE_IDC_MAIN        77
+#define PROFILE_IDC_HIGH        100
+
+#define CHECK_VASTATUS(va_status,func)                                  \
+    if (va_status != VA_STATUS_SUCCESS) {                               \
+        fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \
+        exit(1);                                                        \
+    }
+
+static VADisplay va_dpy;
+
+static int picture_width, picture_width_in_mbs;
+static int picture_height, picture_height_in_mbs;
+static int frame_size;
+static unsigned char *newImageBuffer = 0;
+
+static int qp_value = 26;
+
+static int intra_period = 30;
+static int frame_bit_rate = -1;
+static int frame_rate = 30;
+static int ip_period = 1;
+
+#define MAX_SLICES      32
+
+
+static  unsigned int MaxFrameNum = (1<<12);
+static  unsigned int MaxPicOrderCntLsb = (1<<8);
+static  unsigned int Log2MaxFrameNum = 12;
+static  unsigned int Log2MaxPicOrderCntLsb = 8;
+
+static int
+build_packed_pic_buffer(unsigned char **header_buffer);
+
+static int
+build_packed_seq_buffer(unsigned char **header_buffer);
+
+static int 
+build_packed_sei_pic_timing(unsigned int cpb_removal_length,
+				unsigned int dpb_output_length,
+				unsigned char **sei_buffer);
+
+static int
+build_packed_idr_sei_buffer_timing(unsigned int init_cpb_removal_delay_length,
+				unsigned int cpb_removal_length,
+				unsigned int dpb_output_length,
+				unsigned char **sei_buffer);
+
+struct upload_thread_param
+{
+    FILE *yuv_fp;
+    VASurfaceID surface_id;
+};
+
+static void 
+upload_yuv_to_surface(FILE *yuv_fp, VASurfaceID surface_id);
+
+static struct {
+    VAProfile profile;
+    int constraint_set_flag;
+    VAEncSequenceParameterBufferH264 seq_param;
+    VAEncPictureParameterBufferH264 pic_param;
+    VAEncSliceParameterBufferH264 slice_param[MAX_SLICES];
+    VAContextID context_id;
+    VAConfigID config_id;
+    VABufferID seq_param_buf_id;                /* Sequence level parameter */
+    VABufferID pic_param_buf_id;                /* Picture level parameter */
+    VABufferID slice_param_buf_id[MAX_SLICES];  /* Slice level parameter, multil slices */
+    VABufferID codedbuf_buf_id;                 /* Output buffer, compressed data */
+    VABufferID packed_seq_header_param_buf_id;
+    VABufferID packed_seq_buf_id;
+    VABufferID packed_pic_header_param_buf_id;
+    VABufferID packed_pic_buf_id;
+    VABufferID packed_sei_header_param_buf_id;   /* the SEI buffer */
+    VABufferID packed_sei_buf_id;
+    VABufferID misc_parameter_hrd_buf_id;
+
+    int num_slices;
+    int codedbuf_i_size;
+    int codedbuf_pb_size;
+    int current_input_surface;
+    int rate_control_method;
+    struct upload_thread_param upload_thread_param;
+    pthread_t upload_thread_id;
+    int upload_thread_value;
+    int i_initial_cpb_removal_delay;
+    int i_initial_cpb_removal_delay_offset;
+    int i_initial_cpb_removal_delay_length;
+    int i_cpb_removal_delay;
+    int i_cpb_removal_delay_length;
+    int i_dpb_output_delay_length;
+    int time_offset_length;
+
+    unsigned long long idr_frame_num;
+    unsigned long long prev_idr_cpb_removal;
+    unsigned long long current_idr_cpb_removal;
+    unsigned long long current_cpb_removal;
+    /* This is relative to the current_cpb_removal */
+    unsigned int current_dpb_removal_delta;
+} avcenc_context;
+
+static  VAPictureH264 ReferenceFrames[16], RefPicList0[32], RefPicList1[32];
+
+static void create_encode_pipe()
+{
+    VAEntrypoint entrypoints[5];
+    int num_entrypoints,slice_entrypoint;
+    VAConfigAttrib attrib[2];
+    int major_ver, minor_ver;
+    VAStatus va_status;
+
+    va_dpy = va_open_display();
+    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+    CHECK_VASTATUS(va_status, "vaInitialize");
+
+    vaQueryConfigEntrypoints(va_dpy, avcenc_context.profile, entrypoints, 
+                             &num_entrypoints);
+
+    for	(slice_entrypoint = 0; slice_entrypoint < num_entrypoints; slice_entrypoint++) {
+        if (entrypoints[slice_entrypoint] == VAEntrypointEncSlice)
+            break;
+    }
+
+    if (slice_entrypoint == num_entrypoints) {
+        /* not find Slice entry point */
+        assert(0);
+    }
+
+    /* find out the format for the render target, and rate control mode */
+    attrib[0].type = VAConfigAttribRTFormat;
+    attrib[1].type = VAConfigAttribRateControl;
+    vaGetConfigAttributes(va_dpy, avcenc_context.profile, VAEntrypointEncSlice,
+                          &attrib[0], 2);
+
+    if ((attrib[0].value & VA_RT_FORMAT_YUV420) == 0) {
+        /* not find desired YUV420 RT format */
+        assert(0);
+    }
+
+    if ((attrib[1].value & avcenc_context.rate_control_method) == 0) {
+        /* Can't find matched RC mode */
+        printf("Can't find the desired RC mode, exit\n");
+        assert(0);
+    }
+
+    attrib[0].value = VA_RT_FORMAT_YUV420; /* set to desired RT format */
+    attrib[1].value = avcenc_context.rate_control_method; /* set to desired RC mode */
+
+    va_status = vaCreateConfig(va_dpy, avcenc_context.profile, VAEntrypointEncSlice,
+                               &attrib[0], 2,&avcenc_context.config_id);
+    CHECK_VASTATUS(va_status, "vaCreateConfig");
+
+    /* Create a context for this decode pipe */
+    va_status = vaCreateContext(va_dpy, avcenc_context.config_id,
+                                picture_width, picture_height,
+                                VA_PROGRESSIVE, 
+                                0, 0,
+                                &avcenc_context.context_id);
+    CHECK_VASTATUS(va_status, "vaCreateContext");
+}
+
+static void destory_encode_pipe()
+{
+    vaDestroyContext(va_dpy,avcenc_context.context_id);
+    vaDestroyConfig(va_dpy,avcenc_context.config_id);
+    vaTerminate(va_dpy);
+    va_close_display(va_dpy);
+}
+
+/***************************************************
+ *
+ *  The encode pipe resource define 
+ *
+ ***************************************************/
+#define SID_INPUT_PICTURE_0                     0
+#define SID_INPUT_PICTURE_1                     1
+#define SID_REFERENCE_PICTURE_L0                2
+#define SID_REFERENCE_PICTURE_L1                3
+#define SID_RECON_PICTURE                       4
+#define SID_NUMBER                              SID_RECON_PICTURE + 1
+
+#define SURFACE_NUM 16 /* 16 surfaces for reference */
+
+static  VASurfaceID surface_ids[SID_NUMBER];
+static  VASurfaceID ref_surface[SURFACE_NUM];
+static  int use_slot[SURFACE_NUM];
+
+static  unsigned long long current_frame_display = 0;
+static  unsigned long long current_IDR_display = 0;
+
+static  VAPictureH264 CurrentCurrPic;
+
+#define current_slot (current_frame_display % SURFACE_NUM)
+
+static int frame_number;
+static unsigned long long enc_frame_number;
+static int current_frame_type;
+static int current_frame_num;
+static unsigned int current_poc;
+
+static  unsigned int num_ref_frames = 2;
+static  unsigned int numShortTerm = 0;
+/***************************************************/
+
+static int get_free_slot()
+{
+    int i, index = -1;
+
+    for (i = 0; i < SURFACE_NUM; i++) {
+        if (use_slot[i] == 0) {
+            index = i;
+            break;
+        }
+    }
+    if (index < 0) {
+        printf("WARNING: No free slot to store the reconstructed frame \n");
+        index = SURFACE_NUM - 1;
+    }
+    return index;
+}
+
+static void *
+upload_thread_function(void *data)
+{
+    struct upload_thread_param *param = data;
+
+    upload_yuv_to_surface(param->yuv_fp, param->surface_id);
+
+    return NULL;
+}
+
+static void alloc_encode_resource(FILE *yuv_fp)
+{
+    VAStatus va_status;
+
+    // Create surface
+    va_status = vaCreateSurfaces(
+        va_dpy,
+        VA_RT_FORMAT_YUV420, picture_width, picture_height,
+        surface_ids, SID_NUMBER,
+        NULL, 0
+    );
+
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+    // Create surface
+    va_status = vaCreateSurfaces(
+        va_dpy,
+        VA_RT_FORMAT_YUV420, picture_width, picture_height,
+        ref_surface, SURFACE_NUM,
+        NULL, 0
+    );
+
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+
+    newImageBuffer = (unsigned char *)malloc(frame_size);
+
+    /* firstly upload YUV data to SID_INPUT_PICTURE_1 */
+    avcenc_context.upload_thread_param.yuv_fp = yuv_fp;
+    avcenc_context.upload_thread_param.surface_id = surface_ids[SID_INPUT_PICTURE_1];
+
+    avcenc_context.upload_thread_value = pthread_create(&avcenc_context.upload_thread_id,
+                                                        NULL,
+                                                        upload_thread_function, 
+                                                        (void*)&avcenc_context.upload_thread_param);
+}
+
+static void release_encode_resource()
+{
+    pthread_join(avcenc_context.upload_thread_id, NULL);
+    free(newImageBuffer);
+
+    // Release all the surfaces resource
+    vaDestroySurfaces(va_dpy, surface_ids, SID_NUMBER);
+    // Release all the reference surfaces
+    vaDestroySurfaces(va_dpy, ref_surface, SURFACE_NUM);
+}
+
+static void avcenc_update_sei_param(int is_idr)
+{
+	VAEncPackedHeaderParameterBuffer packed_header_param_buffer;
+	unsigned int length_in_bits;
+	unsigned char *packed_sei_buffer = NULL;
+	VAStatus va_status;
+
+        if (is_idr)
+	    length_in_bits = build_packed_idr_sei_buffer_timing(
+				avcenc_context.i_initial_cpb_removal_delay_length,
+				avcenc_context.i_cpb_removal_delay_length,
+				avcenc_context.i_dpb_output_delay_length,
+				&packed_sei_buffer);
+       else
+	    length_in_bits = build_packed_sei_pic_timing(
+				avcenc_context.i_cpb_removal_delay_length,
+				avcenc_context.i_dpb_output_delay_length,
+				&packed_sei_buffer);
+
+	packed_header_param_buffer.type = VAEncPackedHeaderH264_SEI;
+	packed_header_param_buffer.bit_length = length_in_bits;
+	packed_header_param_buffer.has_emulation_bytes = 0;
+
+	va_status = vaCreateBuffer(va_dpy,
+				avcenc_context.context_id,
+				VAEncPackedHeaderParameterBufferType,
+				sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
+				&avcenc_context.packed_sei_header_param_buf_id);
+	CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+	va_status = vaCreateBuffer(va_dpy,
+				avcenc_context.context_id,
+				VAEncPackedHeaderDataBufferType,
+				(length_in_bits + 7) / 8, 1, packed_sei_buffer,
+				&avcenc_context.packed_sei_buf_id);
+	CHECK_VASTATUS(va_status,"vaCreateBuffer");
+	free(packed_sei_buffer);
+	return;
+}
+
+#define partition(ref, field, key, ascending)   \
+    while (i <= j) {                            \
+        if (ascending) {                        \
+            while (ref[i].field < key)          \
+                i++;                            \
+            while (ref[j].field > key)          \
+                j--;                            \
+        } else {                                \
+            while (ref[i].field > key)          \
+                i++;                            \
+            while (ref[j].field < key)          \
+                j--;                            \
+        }                                       \
+        if (i <= j) {                           \
+            tmp = ref[i];                       \
+            ref[i] = ref[j];                    \
+            ref[j] = tmp;                       \
+            i++;                                \
+            j--;                                \
+        }                                       \
+    }                                           \
+
+static void sort_one(VAPictureH264 ref[], int left, int right,
+                     int ascending, int frame_idx)
+{
+    int i = left, j = right;
+    unsigned int key;
+    VAPictureH264 tmp;
+
+    if (frame_idx) {
+        key = ref[(left + right) / 2].frame_idx;
+        partition(ref, frame_idx, key, ascending);
+    } else {
+        key = ref[(left + right) / 2].TopFieldOrderCnt;
+        partition(ref, TopFieldOrderCnt, (signed int)key, ascending);
+    }
+
+    /* recursion */
+    if (left < j)
+        sort_one(ref, left, j, ascending, frame_idx);
+
+    if (i < right)
+        sort_one(ref, i, right, ascending, frame_idx);
+}
+
+static void sort_two(VAPictureH264 ref[], int left, int right, unsigned int key, unsigned int frame_idx,
+                     int partition_ascending, int list0_ascending, int list1_ascending)
+{
+    int i = left, j = right;
+    VAPictureH264 tmp;
+
+    if (frame_idx) {
+        partition(ref, frame_idx, key, partition_ascending);
+    } else {
+        partition(ref, TopFieldOrderCnt, (signed int)key, partition_ascending);
+    }
+
+    sort_one(ref, left, i-1, list0_ascending, frame_idx);
+    sort_one(ref, j+1, right, list1_ascending, frame_idx);
+}
+
+static int update_RefPicList()
+{
+
+    if (current_frame_type == SLICE_TYPE_P) {
+        memcpy(RefPicList0, ReferenceFrames, numShortTerm * sizeof(VAPictureH264));
+        sort_one(RefPicList0, 0, numShortTerm-1, 0, 1);
+    }
+
+    if (current_frame_type == SLICE_TYPE_B) {
+        memcpy(RefPicList0, ReferenceFrames, numShortTerm * sizeof(VAPictureH264));
+        sort_two(RefPicList0, 0, numShortTerm-1, current_poc, 0,
+                 1, 0, 1);
+
+        memcpy(RefPicList1, ReferenceFrames, numShortTerm * sizeof(VAPictureH264));
+        sort_two(RefPicList1, 0, numShortTerm-1, current_poc, 0,
+                 0, 1, 0);
+    }
+
+    return 0;
+}
+
+static int calc_poc(int pic_order_cnt_lsb)
+{
+    static int PicOrderCntMsb_ref = 0, pic_order_cnt_lsb_ref = 0;
+    int prevPicOrderCntMsb, prevPicOrderCntLsb;
+    int PicOrderCntMsb, TopFieldOrderCnt;
+
+    if (current_frame_type == FRAME_IDR)
+        prevPicOrderCntMsb = prevPicOrderCntLsb = 0;
+    else {
+        prevPicOrderCntMsb = PicOrderCntMsb_ref;
+        prevPicOrderCntLsb = pic_order_cnt_lsb_ref;
+    }
+
+    if ((pic_order_cnt_lsb < prevPicOrderCntLsb) &&
+        ((prevPicOrderCntLsb - pic_order_cnt_lsb) >= (int)(MaxPicOrderCntLsb / 2)))
+        PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb;
+    else if ((pic_order_cnt_lsb > prevPicOrderCntLsb) &&
+             ((pic_order_cnt_lsb - prevPicOrderCntLsb) > (int)(MaxPicOrderCntLsb / 2)))
+        PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb;
+    else
+        PicOrderCntMsb = prevPicOrderCntMsb;
+
+    TopFieldOrderCnt = PicOrderCntMsb + pic_order_cnt_lsb;
+
+    if (current_frame_type != SLICE_TYPE_B) {
+        PicOrderCntMsb_ref = PicOrderCntMsb;
+        pic_order_cnt_lsb_ref = pic_order_cnt_lsb;
+    }
+
+    return TopFieldOrderCnt;
+}
+
+static void avcenc_update_picture_parameter(int slice_type, int is_idr)
+{
+    VAEncPictureParameterBufferH264 *pic_param;
+    VAStatus va_status;
+    int recon_index;
+
+    recon_index = get_free_slot();
+    // Picture level
+    pic_param = &avcenc_context.pic_param;
+
+    pic_param->CurrPic.picture_id = ref_surface[recon_index];
+    pic_param->CurrPic.frame_idx = current_frame_num;
+    pic_param->CurrPic.flags = 0;
+
+    pic_param->CurrPic.TopFieldOrderCnt = current_poc;
+    pic_param->CurrPic.BottomFieldOrderCnt = pic_param->CurrPic.TopFieldOrderCnt;
+
+    assert(avcenc_context.codedbuf_buf_id != VA_INVALID_ID);
+    pic_param->coded_buf = avcenc_context.codedbuf_buf_id;
+    pic_param->frame_num = current_frame_num;
+    pic_param->pic_fields.bits.idr_pic_flag = !!is_idr;
+    pic_param->pic_fields.bits.reference_pic_flag = (slice_type != SLICE_TYPE_B);
+    CurrentCurrPic = pic_param->CurrPic;
+
+    if (slice_type == SLICE_TYPE_P || slice_type == SLICE_TYPE_B)
+	memset(pic_param->ReferenceFrames, 0xff, 16 * sizeof(VAPictureH264)); /* invalid all */
+
+    if ((slice_type == SLICE_TYPE_P) || (slice_type == SLICE_TYPE_B)) {
+	pic_param->ReferenceFrames[0] = RefPicList0[0];
+    }
+    if (slice_type == SLICE_TYPE_B) {
+	pic_param->ReferenceFrames[1] = RefPicList1[0];
+    }
+
+    va_status = vaCreateBuffer(va_dpy,
+                               avcenc_context.context_id,
+                               VAEncPictureParameterBufferType,
+                               sizeof(*pic_param), 1, pic_param,
+                               &avcenc_context.pic_param_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+}
+
+#ifndef VA_FOURCC_I420
+#define VA_FOURCC_I420          0x30323449
+#endif
+
+static void upload_yuv_to_surface(FILE *yuv_fp, VASurfaceID surface_id)
+{
+    VAImage surface_image;
+    VAStatus va_status;
+    void *surface_p = NULL;
+    unsigned char *y_src, *u_src, *v_src;
+    unsigned char *y_dst, *u_dst, *v_dst;
+    int y_size = picture_width * picture_height;
+    int u_size = (picture_width >> 1) * (picture_height >> 1);
+    int row, col;
+    size_t n_items;
+
+    do {
+        n_items = fread(newImageBuffer, frame_size, 1, yuv_fp);
+    } while (n_items != 1);
+
+    va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
+    CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+    vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
+    assert(VA_STATUS_SUCCESS == va_status);
+        
+    y_src = newImageBuffer;
+    u_src = newImageBuffer + y_size; /* UV offset for NV12 */
+    v_src = newImageBuffer + y_size + u_size;
+
+    y_dst = surface_p + surface_image.offsets[0];
+    u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */
+    v_dst = surface_p + surface_image.offsets[2];
+
+    /* Y plane */
+    for (row = 0; row < surface_image.height; row++) {
+        memcpy(y_dst, y_src, surface_image.width);
+        y_dst += surface_image.pitches[0];
+        y_src += picture_width;
+    }
+
+    if (surface_image.format.fourcc == VA_FOURCC_NV12) { /* UV plane */
+        for (row = 0; row < surface_image.height / 2; row++) {
+            for (col = 0; col < surface_image.width / 2; col++) {
+                u_dst[col * 2] = u_src[col];
+                u_dst[col * 2 + 1] = v_src[col];
+            }
+
+            u_dst += surface_image.pitches[1];
+            u_src += (picture_width / 2);
+            v_src += (picture_width / 2);
+        }
+    } else if (surface_image.format.fourcc == VA_FOURCC_YV12 ||
+               surface_image.format.fourcc == VA_FOURCC_I420) {
+        const int U = surface_image.format.fourcc == VA_FOURCC_I420 ? 1 : 2;
+        const int V = surface_image.format.fourcc == VA_FOURCC_I420 ? 2 : 1;
+
+        u_dst = surface_p + surface_image.offsets[U];
+        v_dst = surface_p + surface_image.offsets[V];
+
+        for (row = 0; row < surface_image.height / 2; row++) {
+            memcpy(u_dst, u_src, surface_image.width / 2);
+            memcpy(v_dst, v_src, surface_image.width / 2);
+            u_dst += surface_image.pitches[U];
+            v_dst += surface_image.pitches[V];
+            u_src += (picture_width / 2);
+            v_src += (picture_width / 2);
+        }
+    }
+
+    vaUnmapBuffer(va_dpy, surface_image.buf);
+    vaDestroyImage(va_dpy, surface_image.image_id);
+}
+
+static void avcenc_update_slice_parameter(int slice_type)
+{
+    VAEncSliceParameterBufferH264 *slice_param;
+    VAStatus va_status;
+    int i;
+
+    // Slice level
+    i = 0;
+    slice_param = &avcenc_context.slice_param[i];
+    slice_param->macroblock_address = 0;
+    slice_param->num_macroblocks = picture_height_in_mbs * picture_width_in_mbs; 
+    slice_param->pic_parameter_set_id = 0;
+    slice_param->slice_type = slice_type;
+    slice_param->direct_spatial_mv_pred_flag = 0;
+    slice_param->num_ref_idx_l0_active_minus1 = 0;      /* FIXME: ??? */
+    slice_param->num_ref_idx_l1_active_minus1 = 0;
+    slice_param->cabac_init_idc = 0;
+    slice_param->slice_qp_delta = 0;
+    slice_param->disable_deblocking_filter_idc = 0;
+    slice_param->slice_alpha_c0_offset_div2 = 2;
+    slice_param->slice_beta_offset_div2 = 2;
+    slice_param->idr_pic_id = 0;
+
+    /* FIXME: fill other fields */
+    if ((slice_type == SLICE_TYPE_P) || (slice_type == SLICE_TYPE_B)) {
+	memset(slice_param->RefPicList0, 0xFF, 32 * sizeof(VAPictureH264));
+	slice_param->RefPicList0[0] = RefPicList0[0];
+    }
+
+    if ((slice_type == SLICE_TYPE_B)) {
+	memset(slice_param->RefPicList1, 0xFF, 32 * sizeof(VAPictureH264));
+	slice_param->RefPicList1[0] = RefPicList1[0];
+    }
+
+    va_status = vaCreateBuffer(va_dpy,
+                               avcenc_context.context_id,
+                               VAEncSliceParameterBufferType,
+                               sizeof(*slice_param), 1, slice_param,
+                               &avcenc_context.slice_param_buf_id[i]);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");;
+    i++;
+
+#if 0
+    slice_param = &avcenc_context.slice_param[i];
+    slice_param->macroblock_address = picture_height_in_mbs * picture_width_in_mbs / 2;
+    slice_param->num_macroblocks = picture_height_in_mbs * picture_width_in_mbs / 2;
+    slice_param->pic_parameter_set_id = 0;
+    slice_param->slice_type = slice_type;
+    slice_param->direct_spatial_mv_pred_flag = 0;
+    slice_param->num_ref_idx_l0_active_minus1 = 0;      /* FIXME: ??? */
+    slice_param->num_ref_idx_l1_active_minus1 = 0;
+    slice_param->cabac_init_idc = 0;
+    slice_param->slice_qp_delta = 0;
+    slice_param->disable_deblocking_filter_idc = 0;
+    slice_param->slice_alpha_c0_offset_div2 = 2;
+    slice_param->slice_beta_offset_div2 = 2;
+    slice_param->idr_pic_id = 0;
+
+    /* FIXME: fill other fields */
+
+    va_status = vaCreateBuffer(va_dpy,
+                               avcenc_context.context_id,
+                               VAEncSliceParameterBufferType,
+                               sizeof(*slice_param), 1, slice_param,
+                               &avcenc_context.slice_param_buf_id[i]);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");;
+    i++;
+#endif
+
+    avcenc_context.num_slices = i;
+}
+
+static int update_ReferenceFrames(void)
+{
+    int i;
+    /* B-frame is not used for reference */
+    if (current_frame_type == SLICE_TYPE_B)
+        return 0;
+
+    CurrentCurrPic.flags = VA_PICTURE_H264_SHORT_TERM_REFERENCE;
+    numShortTerm++;
+    if (numShortTerm > num_ref_frames)
+        numShortTerm = num_ref_frames;
+    for (i=numShortTerm-1; i>0; i--)
+        ReferenceFrames[i] = ReferenceFrames[i-1];
+    ReferenceFrames[0] = CurrentCurrPic;
+
+    if (current_frame_type != SLICE_TYPE_B)
+        current_frame_num++;
+    if (current_frame_num > MaxFrameNum)
+        current_frame_num = 0;
+
+    /* Update the use_slot. Only when the surface is used in reference
+     * frame list, the use_slot[index] is set
+     */
+    for (i = 0; i < SURFACE_NUM; i++) {
+        int j;
+        bool found;
+
+        found = false;
+        for (j = 0; j < numShortTerm; j++) {
+            if (ref_surface[i] == ReferenceFrames[j].picture_id) {
+                found = true;
+                break;
+            }
+        }
+        if (found)
+            use_slot[i] = 1;
+        else
+            use_slot[i] = 0;
+    }
+
+    return 0;
+}
+
+static int begin_picture(FILE *yuv_fp, int frame_num, int display_num, int slice_type, int is_idr)
+{
+    VAStatus va_status;
+
+    if (avcenc_context.upload_thread_value != 0) {
+        fprintf(stderr, "FATAL error!!!\n");
+        exit(1);
+    }
+    
+    pthread_join(avcenc_context.upload_thread_id, NULL);
+
+    avcenc_context.upload_thread_value = -1;
+
+    if (avcenc_context.current_input_surface == SID_INPUT_PICTURE_0)
+        avcenc_context.current_input_surface = SID_INPUT_PICTURE_1;
+    else
+        avcenc_context.current_input_surface = SID_INPUT_PICTURE_0;
+
+    if (is_idr) {
+        VAEncPackedHeaderParameterBuffer packed_header_param_buffer;
+        unsigned int length_in_bits, offset_in_bytes;
+        unsigned char *packed_seq_buffer = NULL, *packed_pic_buffer = NULL;
+
+        assert(slice_type == SLICE_TYPE_I);
+        length_in_bits = build_packed_seq_buffer(&packed_seq_buffer);
+        offset_in_bytes = 0;
+        packed_header_param_buffer.type = VAEncPackedHeaderSequence;
+        packed_header_param_buffer.bit_length = length_in_bits;
+        packed_header_param_buffer.has_emulation_bytes = 0;
+        va_status = vaCreateBuffer(va_dpy,
+                                   avcenc_context.context_id,
+                                   VAEncPackedHeaderParameterBufferType,
+                                   sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
+                                   &avcenc_context.packed_seq_header_param_buf_id);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+        va_status = vaCreateBuffer(va_dpy,
+                                   avcenc_context.context_id,
+                                   VAEncPackedHeaderDataBufferType,
+                                   (length_in_bits + 7) / 8, 1, packed_seq_buffer,
+                                   &avcenc_context.packed_seq_buf_id);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+        length_in_bits = build_packed_pic_buffer(&packed_pic_buffer);
+        offset_in_bytes = 0;
+        packed_header_param_buffer.type = VAEncPackedHeaderPicture;
+        packed_header_param_buffer.bit_length = length_in_bits;
+        packed_header_param_buffer.has_emulation_bytes = 0;
+
+        va_status = vaCreateBuffer(va_dpy,
+                                   avcenc_context.context_id,
+                                   VAEncPackedHeaderParameterBufferType,
+                                   sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
+                                   &avcenc_context.packed_pic_header_param_buf_id);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+        va_status = vaCreateBuffer(va_dpy,
+                                   avcenc_context.context_id,
+                                   VAEncPackedHeaderDataBufferType,
+                                   (length_in_bits + 7) / 8, 1, packed_pic_buffer,
+                                   &avcenc_context.packed_pic_buf_id);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+        free(packed_seq_buffer);
+        free(packed_pic_buffer);
+    }
+
+    /* sequence parameter set */
+    VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
+    va_status = vaCreateBuffer(va_dpy,
+                               avcenc_context.context_id,
+                               VAEncSequenceParameterBufferType,
+                               sizeof(*seq_param), 1, seq_param,
+                               &avcenc_context.seq_param_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+
+    /* hrd parameter */
+    VAEncMiscParameterBuffer *misc_param;
+    VAEncMiscParameterHRD *misc_hrd_param;
+    vaCreateBuffer(va_dpy,
+                   avcenc_context.context_id,
+                   VAEncMiscParameterBufferType,
+                   sizeof(VAEncMiscParameterBuffer) + sizeof(VAEncMiscParameterRateControl),
+                   1,
+                   NULL, 
+                   &avcenc_context.misc_parameter_hrd_buf_id);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    vaMapBuffer(va_dpy,
+                avcenc_context.misc_parameter_hrd_buf_id,
+                (void **)&misc_param);
+    misc_param->type = VAEncMiscParameterTypeHRD;
+    misc_hrd_param = (VAEncMiscParameterHRD *)misc_param->data;
+
+    if (frame_bit_rate > 0) {
+        misc_hrd_param->initial_buffer_fullness = frame_bit_rate * 1000 * 4;
+        misc_hrd_param->buffer_size = frame_bit_rate * 1000 * 8;
+    } else {
+        misc_hrd_param->initial_buffer_fullness = 0;
+        misc_hrd_param->buffer_size = 0;
+    }
+
+    vaUnmapBuffer(va_dpy, avcenc_context.misc_parameter_hrd_buf_id);
+
+    return 0;
+}
+
+int avcenc_render_picture()
+{
+    VAStatus va_status;
+    VABufferID va_buffers[10];
+    unsigned int num_va_buffers = 0;
+    int i;
+
+    va_buffers[num_va_buffers++] = avcenc_context.seq_param_buf_id;
+    va_buffers[num_va_buffers++] = avcenc_context.pic_param_buf_id;
+
+    if (avcenc_context.packed_seq_header_param_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = avcenc_context.packed_seq_header_param_buf_id;
+
+    if (avcenc_context.packed_seq_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = avcenc_context.packed_seq_buf_id;
+
+    if (avcenc_context.packed_pic_header_param_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = avcenc_context.packed_pic_header_param_buf_id;
+
+    if (avcenc_context.packed_pic_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = avcenc_context.packed_pic_buf_id;
+
+    if (avcenc_context.packed_sei_header_param_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = avcenc_context.packed_sei_header_param_buf_id;
+
+    if (avcenc_context.packed_sei_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = avcenc_context.packed_sei_buf_id;
+
+    if (avcenc_context.misc_parameter_hrd_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] =  avcenc_context.misc_parameter_hrd_buf_id;
+
+    va_status = vaBeginPicture(va_dpy,
+                               avcenc_context.context_id,
+                               surface_ids[avcenc_context.current_input_surface]);
+    CHECK_VASTATUS(va_status,"vaBeginPicture");
+    
+    va_status = vaRenderPicture(va_dpy,
+                                avcenc_context.context_id,
+                                va_buffers,
+                                num_va_buffers);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+    
+    for(i = 0; i < avcenc_context.num_slices; i++) {
+        va_status = vaRenderPicture(va_dpy,
+                                avcenc_context.context_id,
+                                &avcenc_context.slice_param_buf_id[i],
+                                1);
+        CHECK_VASTATUS(va_status,"vaRenderPicture");
+    }
+
+    va_status = vaEndPicture(va_dpy, avcenc_context.context_id);
+    CHECK_VASTATUS(va_status,"vaEndPicture");
+
+    return 0;
+}
+
+static int avcenc_destroy_buffers(VABufferID *va_buffers, unsigned int num_va_buffers)
+{
+    VAStatus va_status;
+    unsigned int i;
+
+    for (i = 0; i < num_va_buffers; i++) {
+        if (va_buffers[i] != VA_INVALID_ID) {
+            va_status = vaDestroyBuffer(va_dpy, va_buffers[i]);
+            CHECK_VASTATUS(va_status,"vaDestroyBuffer");
+            va_buffers[i] = VA_INVALID_ID;
+        }
+    }
+
+    return 0;
+}
+
+static void end_picture()
+{
+
+    update_ReferenceFrames();
+    avcenc_destroy_buffers(&avcenc_context.seq_param_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.pic_param_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.packed_seq_header_param_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.packed_seq_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.packed_pic_header_param_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.packed_pic_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.packed_sei_header_param_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.packed_sei_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.slice_param_buf_id[0], avcenc_context.num_slices);
+    avcenc_destroy_buffers(&avcenc_context.codedbuf_buf_id, 1);
+    avcenc_destroy_buffers(&avcenc_context.misc_parameter_hrd_buf_id, 1);
+
+    memset(avcenc_context.slice_param, 0, sizeof(avcenc_context.slice_param));
+    avcenc_context.num_slices = 0;
+}
+
+#define BITSTREAM_ALLOCATE_STEPPING     4096
+
+struct __bitstream {
+    unsigned int *buffer;
+    int bit_offset;
+    int max_size_in_dword;
+};
+
+typedef struct __bitstream bitstream;
+
+#if 0
+static int 
+get_coded_bitsteam_length(unsigned char *buffer, int buffer_length)
+{
+    int i;
+
+    for (i = 0; i < buffer_length - 3; i++) {
+        if (!buffer[i] &&
+            !buffer[i + 1] &&
+            !buffer[i + 2] &&
+            !buffer[i + 3])
+            break;
+    }
+
+    return i;
+}
+#endif
+
+static unsigned int 
+va_swap32(unsigned int val)
+{
+    unsigned char *pval = (unsigned char *)&val;
+
+    return ((pval[0] << 24)     |
+            (pval[1] << 16)     |
+            (pval[2] << 8)      |
+            (pval[3] << 0));
+}
+
+static void
+bitstream_start(bitstream *bs)
+{
+    bs->max_size_in_dword = BITSTREAM_ALLOCATE_STEPPING;
+    bs->buffer = calloc(bs->max_size_in_dword * sizeof(int), 1);
+    bs->bit_offset = 0;
+}
+
+static void
+bitstream_end(bitstream *bs)
+{
+    int pos = (bs->bit_offset >> 5);
+    int bit_offset = (bs->bit_offset & 0x1f);
+    int bit_left = 32 - bit_offset;
+
+    if (bit_offset) {
+        bs->buffer[pos] = va_swap32((bs->buffer[pos] << bit_left));
+    }
+}
+ 
+static void
+bitstream_put_ui(bitstream *bs, unsigned int val, int size_in_bits)
+{
+    int pos = (bs->bit_offset >> 5);
+    int bit_offset = (bs->bit_offset & 0x1f);
+    int bit_left = 32 - bit_offset;
+
+    if (!size_in_bits)
+        return;
+
+    bs->bit_offset += size_in_bits;
+
+    if (bit_left > size_in_bits) {
+        bs->buffer[pos] = (bs->buffer[pos] << size_in_bits | val);
+    } else {
+        size_in_bits -= bit_left;
+        bs->buffer[pos] = (bs->buffer[pos] << bit_left) | (val >> size_in_bits);
+        bs->buffer[pos] = va_swap32(bs->buffer[pos]);
+
+        if (pos + 1 == bs->max_size_in_dword) {
+            bs->max_size_in_dword += BITSTREAM_ALLOCATE_STEPPING;
+            bs->buffer = realloc(bs->buffer, bs->max_size_in_dword * sizeof(unsigned int));
+        }
+
+        bs->buffer[pos + 1] = val;
+    }
+}
+
+static void
+bitstream_put_ue(bitstream *bs, unsigned int val)
+{
+    int size_in_bits = 0;
+    int tmp_val = ++val;
+
+    while (tmp_val) {
+        tmp_val >>= 1;
+        size_in_bits++;
+    }
+
+    bitstream_put_ui(bs, 0, size_in_bits - 1); // leading zero
+    bitstream_put_ui(bs, val, size_in_bits);
+}
+
+static void
+bitstream_put_se(bitstream *bs, int val)
+{
+    unsigned int new_val;
+
+    if (val <= 0)
+        new_val = -2 * val;
+    else
+        new_val = 2 * val - 1;
+
+    bitstream_put_ue(bs, new_val);
+}
+
+static void
+bitstream_byte_aligning(bitstream *bs, int bit)
+{
+    int bit_offset = (bs->bit_offset & 0x7);
+    int bit_left = 8 - bit_offset;
+    int new_val;
+
+    if (!bit_offset)
+        return;
+
+    assert(bit == 0 || bit == 1);
+
+    if (bit)
+        new_val = (1 << bit_left) - 1;
+    else
+        new_val = 0;
+
+    bitstream_put_ui(bs, new_val, bit_left);
+}
+
+static void 
+rbsp_trailing_bits(bitstream *bs)
+{
+    bitstream_put_ui(bs, 1, 1);
+    bitstream_byte_aligning(bs, 0);
+}
+
+static void nal_start_code_prefix(bitstream *bs)
+{
+    bitstream_put_ui(bs, 0x00000001, 32);
+}
+
+static void nal_header(bitstream *bs, int nal_ref_idc, int nal_unit_type)
+{
+    bitstream_put_ui(bs, 0, 1);                /* forbidden_zero_bit: 0 */
+    bitstream_put_ui(bs, nal_ref_idc, 2);
+    bitstream_put_ui(bs, nal_unit_type, 5);
+}
+
+static void sps_rbsp(bitstream *bs)
+{
+    VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
+    int profile_idc = PROFILE_IDC_BASELINE;
+
+    if (avcenc_context.profile == VAProfileH264High)
+        profile_idc = PROFILE_IDC_HIGH;
+    else if (avcenc_context.profile == VAProfileH264Main)
+        profile_idc = PROFILE_IDC_MAIN;
+
+    bitstream_put_ui(bs, profile_idc, 8);               /* profile_idc */
+    bitstream_put_ui(bs, !!(avcenc_context.constraint_set_flag & 1), 1);                         /* constraint_set0_flag */
+    bitstream_put_ui(bs, !!(avcenc_context.constraint_set_flag & 2), 1);                         /* constraint_set1_flag */
+    bitstream_put_ui(bs, !!(avcenc_context.constraint_set_flag & 4), 1);                         /* constraint_set2_flag */
+    bitstream_put_ui(bs, !!(avcenc_context.constraint_set_flag & 8), 1);                         /* constraint_set3_flag */
+    bitstream_put_ui(bs, 0, 4);                         /* reserved_zero_4bits */
+    bitstream_put_ui(bs, seq_param->level_idc, 8);      /* level_idc */
+    bitstream_put_ue(bs, seq_param->seq_parameter_set_id);      /* seq_parameter_set_id */
+
+    if ( profile_idc == PROFILE_IDC_HIGH) {
+        bitstream_put_ue(bs, 1);        /* chroma_format_idc = 1, 4:2:0 */ 
+        bitstream_put_ue(bs, 0);        /* bit_depth_luma_minus8 */
+        bitstream_put_ue(bs, 0);        /* bit_depth_chroma_minus8 */
+        bitstream_put_ui(bs, 0, 1);     /* qpprime_y_zero_transform_bypass_flag */
+        bitstream_put_ui(bs, 0, 1);     /* seq_scaling_matrix_present_flag */
+    }
+
+    bitstream_put_ue(bs, seq_param->seq_fields.bits.log2_max_frame_num_minus4); /* log2_max_frame_num_minus4 */
+    bitstream_put_ue(bs, seq_param->seq_fields.bits.pic_order_cnt_type);        /* pic_order_cnt_type */
+
+    if (seq_param->seq_fields.bits.pic_order_cnt_type == 0)
+        bitstream_put_ue(bs, seq_param->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4);     /* log2_max_pic_order_cnt_lsb_minus4 */
+    else {
+        assert(0);
+    }
+
+    bitstream_put_ue(bs, seq_param->max_num_ref_frames);        /* num_ref_frames */
+    bitstream_put_ui(bs, 0, 1);                                 /* gaps_in_frame_num_value_allowed_flag */
+
+    bitstream_put_ue(bs, seq_param->picture_width_in_mbs - 1);  /* pic_width_in_mbs_minus1 */
+    bitstream_put_ue(bs, seq_param->picture_height_in_mbs - 1); /* pic_height_in_map_units_minus1 */
+    bitstream_put_ui(bs, seq_param->seq_fields.bits.frame_mbs_only_flag, 1);    /* frame_mbs_only_flag */
+
+    if (!seq_param->seq_fields.bits.frame_mbs_only_flag) {
+        assert(0);
+    }
+
+    bitstream_put_ui(bs, seq_param->seq_fields.bits.direct_8x8_inference_flag, 1);      /* direct_8x8_inference_flag */
+    bitstream_put_ui(bs, seq_param->frame_cropping_flag, 1);            /* frame_cropping_flag */
+
+    if (seq_param->frame_cropping_flag) {
+        bitstream_put_ue(bs, seq_param->frame_crop_left_offset);        /* frame_crop_left_offset */
+        bitstream_put_ue(bs, seq_param->frame_crop_right_offset);       /* frame_crop_right_offset */
+        bitstream_put_ue(bs, seq_param->frame_crop_top_offset);         /* frame_crop_top_offset */
+        bitstream_put_ue(bs, seq_param->frame_crop_bottom_offset);      /* frame_crop_bottom_offset */
+    }
+    
+    if ( frame_bit_rate < 0 ) {
+        bitstream_put_ui(bs, 0, 1); /* vui_parameters_present_flag */
+    } else {
+        bitstream_put_ui(bs, 1, 1); /* vui_parameters_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* aspect_ratio_info_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* overscan_info_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* video_signal_type_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* chroma_loc_info_present_flag */
+        bitstream_put_ui(bs, 1, 1); /* timing_info_present_flag */
+        {
+            bitstream_put_ui(bs, 1, 32);
+            bitstream_put_ui(bs, frame_rate * 2, 32);
+            bitstream_put_ui(bs, 1, 1);
+        }
+        bitstream_put_ui(bs, 1, 1); /* nal_hrd_parameters_present_flag */
+        {
+            // hrd_parameters 
+            bitstream_put_ue(bs, 0);    /* cpb_cnt_minus1 */
+            bitstream_put_ui(bs, 0, 4); /* bit_rate_scale */
+            bitstream_put_ui(bs, 2, 4); /* cpb_size_scale */
+           
+	    /* the frame_bit_rate is in kbps */
+            bitstream_put_ue(bs, (((frame_bit_rate * 1000)>> 6) - 1)); /* bit_rate_value_minus1[0] */
+            bitstream_put_ue(bs, ((frame_bit_rate * 8000) >> 6) - 1); /* cpb_size_value_minus1[0] */
+            bitstream_put_ui(bs, 1, 1);  /* cbr_flag[0] */
+
+            /* initial_cpb_removal_delay_length_minus1 */
+            bitstream_put_ui(bs,
+                (avcenc_context.i_initial_cpb_removal_delay_length - 1), 5);
+            /* cpb_removal_delay_length_minus1 */
+            bitstream_put_ui(bs,
+                (avcenc_context.i_cpb_removal_delay_length - 1), 5);
+            /* dpb_output_delay_length_minus1 */
+            bitstream_put_ui(bs,
+                (avcenc_context.i_dpb_output_delay_length - 1), 5);
+            /* time_offset_length  */
+            bitstream_put_ui(bs,
+                (avcenc_context.time_offset_length - 1), 5);
+        }
+        bitstream_put_ui(bs, 0, 1);   /* vcl_hrd_parameters_present_flag */
+        bitstream_put_ui(bs, 0, 1);   /* low_delay_hrd_flag */ 
+
+        bitstream_put_ui(bs, 0, 1); /* pic_struct_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* bitstream_restriction_flag */
+    }
+
+    rbsp_trailing_bits(bs);     /* rbsp_trailing_bits */
+}
+
+#if 0
+static void build_nal_sps(FILE *avc_fp)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    nal_start_code_prefix(&bs);
+    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_SPS);
+    sps_rbsp(&bs);
+    bitstream_end(&bs, avc_fp);
+}
+#endif
+
+static void pps_rbsp(bitstream *bs)
+{
+    VAEncPictureParameterBufferH264 *pic_param = &avcenc_context.pic_param;
+
+    bitstream_put_ue(bs, pic_param->pic_parameter_set_id);      /* pic_parameter_set_id */
+    bitstream_put_ue(bs, pic_param->seq_parameter_set_id);      /* seq_parameter_set_id */
+
+    bitstream_put_ui(bs, pic_param->pic_fields.bits.entropy_coding_mode_flag, 1);  /* entropy_coding_mode_flag */
+
+    bitstream_put_ui(bs, 0, 1);                         /* pic_order_present_flag: 0 */
+
+    bitstream_put_ue(bs, 0);                            /* num_slice_groups_minus1 */
+
+    bitstream_put_ue(bs, pic_param->num_ref_idx_l0_active_minus1);      /* num_ref_idx_l0_active_minus1 */
+    bitstream_put_ue(bs, pic_param->num_ref_idx_l1_active_minus1);      /* num_ref_idx_l1_active_minus1 1 */
+
+    bitstream_put_ui(bs, pic_param->pic_fields.bits.weighted_pred_flag, 1);     /* weighted_pred_flag: 0 */
+    bitstream_put_ui(bs, pic_param->pic_fields.bits.weighted_bipred_idc, 2);	/* weighted_bipred_idc: 0 */
+
+    bitstream_put_se(bs, pic_param->pic_init_qp - 26);  /* pic_init_qp_minus26 */
+    bitstream_put_se(bs, 0);                            /* pic_init_qs_minus26 */
+    bitstream_put_se(bs, 0);                            /* chroma_qp_index_offset */
+
+    bitstream_put_ui(bs, pic_param->pic_fields.bits.deblocking_filter_control_present_flag, 1); /* deblocking_filter_control_present_flag */
+    bitstream_put_ui(bs, 0, 1);                         /* constrained_intra_pred_flag */
+    bitstream_put_ui(bs, 0, 1);                         /* redundant_pic_cnt_present_flag */
+    
+    /* more_rbsp_data */
+    bitstream_put_ui(bs, pic_param->pic_fields.bits.transform_8x8_mode_flag, 1);    /*transform_8x8_mode_flag */
+    bitstream_put_ui(bs, 0, 1);                         /* pic_scaling_matrix_present_flag */
+    bitstream_put_se(bs, pic_param->second_chroma_qp_index_offset );    /*second_chroma_qp_index_offset */
+
+    rbsp_trailing_bits(bs);
+}
+
+#if 0
+static void build_nal_pps(FILE *avc_fp)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    nal_start_code_prefix(&bs);
+    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_PPS);
+    pps_rbsp(&bs);
+    bitstream_end(&bs, avc_fp);
+}
+
+static void 
+build_header(FILE *avc_fp)
+{
+    build_nal_sps(avc_fp);
+    build_nal_pps(avc_fp);
+}
+#endif
+
+static int
+build_packed_pic_buffer(unsigned char **header_buffer)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    nal_start_code_prefix(&bs);
+    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_PPS);
+    pps_rbsp(&bs);
+    bitstream_end(&bs);
+
+    *header_buffer = (unsigned char *)bs.buffer;
+    return bs.bit_offset;
+}
+
+static int
+build_packed_seq_buffer(unsigned char **header_buffer)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    nal_start_code_prefix(&bs);
+    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_SPS);
+    sps_rbsp(&bs);
+    bitstream_end(&bs);
+
+    *header_buffer = (unsigned char *)bs.buffer;
+    return bs.bit_offset;
+}
+
+static int 
+build_packed_idr_sei_buffer_timing(unsigned int init_cpb_removal_delay_length,
+				unsigned int cpb_removal_length,
+				unsigned int dpb_output_length,
+				unsigned char **sei_buffer)
+{
+    unsigned char *byte_buf;
+    int bp_byte_size, i, pic_byte_size;
+    unsigned int cpb_removal_delay;
+
+    bitstream nal_bs;
+    bitstream sei_bp_bs, sei_pic_bs;
+
+    bitstream_start(&sei_bp_bs);
+    bitstream_put_ue(&sei_bp_bs, 0);       /*seq_parameter_set_id*/
+    /* SEI buffer period info */
+    /* NALHrdBpPresentFlag == 1 */
+    bitstream_put_ui(&sei_bp_bs, avcenc_context.i_initial_cpb_removal_delay,
+                     init_cpb_removal_delay_length);
+    bitstream_put_ui(&sei_bp_bs, avcenc_context.i_initial_cpb_removal_delay_offset,
+                     init_cpb_removal_delay_length);
+    if ( sei_bp_bs.bit_offset & 0x7) {
+        bitstream_put_ui(&sei_bp_bs, 1, 1);
+    }
+    bitstream_end(&sei_bp_bs);
+    bp_byte_size = (sei_bp_bs.bit_offset + 7) / 8;
+    
+    /* SEI pic timing info */
+    bitstream_start(&sei_pic_bs);
+    /* The info of CPB and DPB delay is controlled by CpbDpbDelaysPresentFlag,
+     * which is derived as 1 if one of the following conditions is true:
+     * nal_hrd_parameters_present_flag is present in the bitstream and is equal to 1,
+     * vcl_hrd_parameters_present_flag is present in the bitstream and is equal to 1,
+     */
+    cpb_removal_delay = (avcenc_context.current_cpb_removal - avcenc_context.prev_idr_cpb_removal);
+    bitstream_put_ui(&sei_pic_bs, cpb_removal_delay, cpb_removal_length); 
+    bitstream_put_ui(&sei_pic_bs, avcenc_context.current_dpb_removal_delta,
+                     dpb_output_length);
+    if ( sei_pic_bs.bit_offset & 0x7) {
+        bitstream_put_ui(&sei_pic_bs, 1, 1);
+    }
+    /* The pic_structure_present_flag determines whether the pic_structure
+     * info is written into the SEI pic timing info.
+     * Currently it is set to zero.
+     */
+    bitstream_end(&sei_pic_bs);
+    pic_byte_size = (sei_pic_bs.bit_offset + 7) / 8;
+    
+    bitstream_start(&nal_bs);
+    nal_start_code_prefix(&nal_bs);
+    nal_header(&nal_bs, NAL_REF_IDC_NONE, NAL_SEI);
+
+	/* Write the SEI buffer period data */    
+    bitstream_put_ui(&nal_bs, 0, 8);
+    bitstream_put_ui(&nal_bs, bp_byte_size, 8);
+    
+    byte_buf = (unsigned char *)sei_bp_bs.buffer;
+    for(i = 0; i < bp_byte_size; i++) {
+        bitstream_put_ui(&nal_bs, byte_buf[i], 8);
+    }
+    free(byte_buf);
+	/* write the SEI pic timing data */
+    bitstream_put_ui(&nal_bs, 0x01, 8);
+    bitstream_put_ui(&nal_bs, pic_byte_size, 8);
+    
+    byte_buf = (unsigned char *)sei_pic_bs.buffer;
+    for(i = 0; i < pic_byte_size; i++) {
+        bitstream_put_ui(&nal_bs, byte_buf[i], 8);
+    }
+    free(byte_buf);
+
+    rbsp_trailing_bits(&nal_bs);
+    bitstream_end(&nal_bs);
+
+    *sei_buffer = (unsigned char *)nal_bs.buffer; 
+   
+    return nal_bs.bit_offset;
+}
+
+static int
+build_packed_sei_pic_timing(unsigned int cpb_removal_length,
+				unsigned int dpb_output_length,
+				unsigned char **sei_buffer)
+{
+    unsigned char *byte_buf;
+    int i, pic_byte_size;
+    unsigned int cpb_removal_delay;
+
+    bitstream nal_bs;
+    bitstream sei_pic_bs;
+
+    bitstream_start(&sei_pic_bs);
+    /* The info of CPB and DPB delay is controlled by CpbDpbDelaysPresentFlag,
+     * which is derived as 1 if one of the following conditions is true:
+     * nal_hrd_parameters_present_flag is present in the bitstream and is equal to 1,
+     * vcl_hrd_parameters_present_flag is present in the bitstream and is equal to 1,
+     */
+    cpb_removal_delay = (avcenc_context.current_cpb_removal - avcenc_context.current_idr_cpb_removal);
+    bitstream_put_ui(&sei_pic_bs, cpb_removal_delay, cpb_removal_length);
+    bitstream_put_ui(&sei_pic_bs, avcenc_context.current_dpb_removal_delta,
+                     dpb_output_length);
+    if ( sei_pic_bs.bit_offset & 0x7) {
+        bitstream_put_ui(&sei_pic_bs, 1, 1);
+    }
+
+    /* The pic_structure_present_flag determines whether the pic_structure
+     * info is written into the SEI pic timing info.
+     * Currently it is set to zero.
+     */
+    bitstream_end(&sei_pic_bs);
+    pic_byte_size = (sei_pic_bs.bit_offset + 7) / 8;
+
+    bitstream_start(&nal_bs);
+    nal_start_code_prefix(&nal_bs);
+    nal_header(&nal_bs, NAL_REF_IDC_NONE, NAL_SEI);
+
+	/* write the SEI Pic timing data */
+    bitstream_put_ui(&nal_bs, 0x01, 8);
+    bitstream_put_ui(&nal_bs, pic_byte_size, 8);
+
+    byte_buf = (unsigned char *)sei_pic_bs.buffer;
+    for(i = 0; i < pic_byte_size; i++) {
+        bitstream_put_ui(&nal_bs, byte_buf[i], 8);
+    }
+    free(byte_buf);
+
+    rbsp_trailing_bits(&nal_bs);
+    bitstream_end(&nal_bs);
+
+    *sei_buffer = (unsigned char *)nal_bs.buffer;
+
+    return nal_bs.bit_offset;
+}
+
+#if 0
+static void 
+slice_header(bitstream *bs, int frame_num, int display_frame, int slice_type, int nal_ref_idc, int is_idr)
+{
+    VAEncSequenceParameterBufferH264 *seq_param = &avcenc_context.seq_param;
+    VAEncPictureParameterBufferH264 *pic_param = &avcenc_context.pic_param;
+    int is_cabac = (pic_param->pic_fields.bits.entropy_coding_mode_flag == ENTROPY_MODE_CABAC);
+
+    bitstream_put_ue(bs, 0);                   /* first_mb_in_slice: 0 */
+    bitstream_put_ue(bs, slice_type);          /* slice_type */
+    bitstream_put_ue(bs, 0);                   /* pic_parameter_set_id: 0 */
+    bitstream_put_ui(bs, frame_num & 0x0F, seq_param->seq_fields.bits.log2_max_frame_num_minus4 + 4);    /* frame_num */
+
+    /* frame_mbs_only_flag == 1 */
+    if (!seq_param->seq_fields.bits.frame_mbs_only_flag) {
+        /* FIXME: */
+        assert(0);
+    }
+
+    if (is_idr)
+        bitstream_put_ue(bs, 0);		/* idr_pic_id: 0 */
+
+    if (seq_param->seq_fields.bits.pic_order_cnt_type == 0) {
+        bitstream_put_ui(bs, (display_frame*2) & 0x3F, seq_param->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4 + 4);
+        /* only support frame */
+    } else {
+        /* FIXME: */
+        assert(0);
+    }
+
+    /* redundant_pic_cnt_present_flag == 0 */
+    
+    /* slice type */
+    if (slice_type == SLICE_TYPE_P) {
+        bitstream_put_ui(bs, 0, 1);            /* num_ref_idx_active_override_flag: 0 */
+        /* ref_pic_list_reordering */
+        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l0: 0 */
+    } else if (slice_type == SLICE_TYPE_B) {
+        bitstream_put_ui(bs, 1, 1);            /* direct_spatial_mv_pred: 1 */
+        bitstream_put_ui(bs, 0, 1);            /* num_ref_idx_active_override_flag: 0 */
+        /* ref_pic_list_reordering */
+        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l0: 0 */
+        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l1: 0 */
+    } 
+
+    /* weighted_pred_flag == 0 */
+
+    /* dec_ref_pic_marking */
+    if (nal_ref_idc != 0) {
+        if ( is_idr) {
+            bitstream_put_ui(bs, 0, 1);            /* no_output_of_prior_pics_flag: 0 */
+            bitstream_put_ui(bs, 0, 1);            /* long_term_reference_flag: 0 */
+        } else {
+            bitstream_put_ui(bs, 0, 1);            /* adaptive_ref_pic_marking_mode_flag: 0 */
+        }
+    }
+
+    if (is_cabac && (slice_type != SLICE_TYPE_I))
+        bitstream_put_ue(bs, 0);               /* cabac_init_idc: 0 */
+
+    bitstream_put_se(bs, 0);                   /* slice_qp_delta: 0 */
+
+    if (pic_param->pic_fields.bits.deblocking_filter_control_present_flag == 1) {
+        bitstream_put_ue(bs, 0);               /* disable_deblocking_filter_idc: 0 */
+        bitstream_put_se(bs, 2);               /* slice_alpha_c0_offset_div2: 2 */
+        bitstream_put_se(bs, 2);               /* slice_beta_offset_div2: 2 */
+    }
+}
+
+static void 
+slice_data(bitstream *bs)
+{
+    VACodedBufferSegment *coded_buffer_segment;
+    unsigned char *coded_mem;
+    int i, slice_data_length;
+    VAStatus va_status;
+    VASurfaceStatus surface_status;
+
+    va_status = vaSyncSurface(va_dpy, surface_ids[avcenc_context.current_input_surface]);
+    CHECK_VASTATUS(va_status,"vaSyncSurface");
+
+    surface_status = 0;
+    va_status = vaQuerySurfaceStatus(va_dpy, surface_ids[avcenc_context.current_input_surface], &surface_status);
+    CHECK_VASTATUS(va_status,"vaQuerySurfaceStatus");
+
+    va_status = vaMapBuffer(va_dpy, avcenc_context.codedbuf_buf_id, (void **)(&coded_buffer_segment));
+    CHECK_VASTATUS(va_status,"vaMapBuffer");
+    coded_mem = coded_buffer_segment->buf;
+
+    slice_data_length = get_coded_bitsteam_length(coded_mem, codedbuf_size);
+
+    for (i = 0; i < slice_data_length; i++) {
+        bitstream_put_ui(bs, *coded_mem, 8);
+        coded_mem++;
+    }
+
+    vaUnmapBuffer(va_dpy, avcenc_context.codedbuf_buf_id);
+}
+
+static void 
+build_nal_slice(FILE *avc_fp, int frame_num, int display_frame, int slice_type, int is_idr)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    slice_data(&bs);
+    bitstream_end(&bs, avc_fp);
+}
+
+#endif
+
+static int
+store_coded_buffer(FILE *avc_fp, int slice_type)
+{
+    VACodedBufferSegment *coded_buffer_segment;
+    unsigned char *coded_mem;
+    int slice_data_length;
+    VAStatus va_status;
+    VASurfaceStatus surface_status;
+    size_t w_items;
+
+    va_status = vaSyncSurface(va_dpy, surface_ids[avcenc_context.current_input_surface]);
+    CHECK_VASTATUS(va_status,"vaSyncSurface");
+
+    surface_status = 0;
+    va_status = vaQuerySurfaceStatus(va_dpy, surface_ids[avcenc_context.current_input_surface], &surface_status);
+    CHECK_VASTATUS(va_status,"vaQuerySurfaceStatus");
+
+    va_status = vaMapBuffer(va_dpy, avcenc_context.codedbuf_buf_id, (void **)(&coded_buffer_segment));
+    CHECK_VASTATUS(va_status,"vaMapBuffer");
+    coded_mem = coded_buffer_segment->buf;
+
+    if (coded_buffer_segment->status & VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK) {
+        if (slice_type == SLICE_TYPE_I)
+            avcenc_context.codedbuf_i_size *= 2;
+        else
+            avcenc_context.codedbuf_pb_size *= 2;
+
+        vaUnmapBuffer(va_dpy, avcenc_context.codedbuf_buf_id);
+        return -1;
+    }
+
+    slice_data_length = coded_buffer_segment->size;
+
+    do {
+        w_items = fwrite(coded_mem, slice_data_length, 1, avc_fp);
+    } while (w_items != 1);
+
+    vaUnmapBuffer(va_dpy, avcenc_context.codedbuf_buf_id);
+
+    return 0;
+}
+
+/*
+ * It is from the h264encode.c but it simplifies something.
+ * For example: When one frame is encoded as I-frame under the scenario with
+ * P-B frames, it will be regarded as IDR frame(key-frame) and then new GOP is
+ * started. If the video clip is encoded as all I-frames, the first frame
+ * is regarded as IDR and the remaining is regarded as I-frame.
+ *
+ */
+
+static void encoding2display_order(
+    unsigned long long encoding_order,int gop_size,
+    int ip_period,
+    unsigned long long *displaying_order,
+    int *frame_type)
+{
+    int encoding_order_gop = 0;
+
+    /* When ip_period is 0, all are I/IDR frames */
+    if (ip_period == 0) { /* all are I/IDR frames */
+        if (encoding_order == 0)
+            *frame_type = FRAME_IDR;
+        else
+            *frame_type = SLICE_TYPE_I;
+
+        *displaying_order = encoding_order;
+        return;
+    }
+
+    /* new sequence like
+     * IDR PPPPP IDRPPPPP
+     * IDR (PBB)(PBB)(PBB)(PBB) IDR (PBB)(PBB)(PBB)(PBB)
+     */
+    encoding_order_gop = encoding_order % gop_size;
+
+    if (encoding_order_gop == 0) { /* the first frame */
+        *frame_type = FRAME_IDR;
+        *displaying_order = encoding_order;
+    } else {
+        int gop_delta;
+
+        gop_delta = 1;
+
+        if ((ip_period != 1) && ((gop_size - 1) % ip_period)) {
+            int ipb_size;
+            ipb_size = (gop_size - 1) / ip_period * ip_period + 1;
+            if (encoding_order_gop >= ipb_size) {
+                gop_delta = ipb_size;
+                ip_period = gop_size - ipb_size;
+            }
+        }
+
+        if (((encoding_order_gop - gop_delta) % ip_period) == 0) { /* P frames */
+            *frame_type = SLICE_TYPE_P;
+	    *displaying_order = encoding_order + ip_period - 1;
+        } else {
+	    *frame_type = SLICE_TYPE_B;
+	    *displaying_order = encoding_order - 1;
+        }
+    }
+}
+
+
+static void
+encode_picture(FILE *yuv_fp, FILE *avc_fp,
+               int frame_num, int display_num,
+               int is_idr,
+               int slice_type, int next_is_bpic,
+               int next_display_num)
+{
+    VAStatus va_status;
+    int ret = 0, codedbuf_size;
+    
+    begin_picture(yuv_fp, frame_num, display_num, slice_type, is_idr);
+
+    //if (next_display_num < frame_number) {
+    if (1) {
+        int index;
+
+        /* prepare for next frame */
+        if (avcenc_context.current_input_surface == SID_INPUT_PICTURE_0)
+            index = SID_INPUT_PICTURE_1;
+        else
+            index = SID_INPUT_PICTURE_0;
+        if ( next_display_num >= frame_number )
+            next_display_num = frame_number - 1;
+        fseek(yuv_fp, frame_size * next_display_num, SEEK_SET);
+
+        avcenc_context.upload_thread_param.yuv_fp = yuv_fp;
+        avcenc_context.upload_thread_param.surface_id = surface_ids[index];
+
+        avcenc_context.upload_thread_value = pthread_create(&avcenc_context.upload_thread_id,
+                                                            NULL,
+                                                            upload_thread_function, 
+                                                            (void*)&avcenc_context.upload_thread_param);
+    }
+
+    do {
+        avcenc_destroy_buffers(&avcenc_context.codedbuf_buf_id, 1);
+        avcenc_destroy_buffers(&avcenc_context.pic_param_buf_id, 1);
+
+
+        if (SLICE_TYPE_I == slice_type) {
+            codedbuf_size = avcenc_context.codedbuf_i_size;
+        } else {
+            codedbuf_size = avcenc_context.codedbuf_pb_size;
+        }
+
+        /* coded buffer */
+        va_status = vaCreateBuffer(va_dpy,
+                                   avcenc_context.context_id,
+                                   VAEncCodedBufferType,
+                                   codedbuf_size, 1, NULL,
+                                   &avcenc_context.codedbuf_buf_id);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+        /* Update the RefPicList */
+        update_RefPicList();
+
+        /* picture parameter set */
+        avcenc_update_picture_parameter(slice_type, is_idr);
+
+        /* slice parameter */
+        avcenc_update_slice_parameter(slice_type);
+
+	if (avcenc_context.rate_control_method == VA_RC_CBR)
+		avcenc_update_sei_param(is_idr);
+
+        avcenc_render_picture();
+
+        ret = store_coded_buffer(avc_fp, slice_type);
+    } while (ret);
+
+    end_picture(slice_type, next_is_bpic);
+}
+
+static void show_help()
+{
+    printf("Usage: avnenc <width> <height> <input_yuvfile> <output_avcfile> [qp=qpvalue|fb=framebitrate] [mode=0(I frames only)/1(I and P frames)/2(I, P and B frames)\n");
+}
+
+static void avcenc_context_seq_param_init(VAEncSequenceParameterBufferH264 *seq_param,
+                                          int width, int height)
+
+{
+    int width_in_mbs = (width + 15) / 16;
+    int height_in_mbs = (height + 15) / 16;
+    int frame_cropping_flag = 0;
+    int frame_crop_bottom_offset = 0;
+
+    seq_param->seq_parameter_set_id = 0;
+    seq_param->level_idc = 41;
+    seq_param->intra_period = intra_period;
+    seq_param->intra_idr_period = seq_param->intra_period;
+    seq_param->ip_period = ip_period;
+    seq_param->max_num_ref_frames = 4;
+    seq_param->picture_width_in_mbs = width_in_mbs;
+    seq_param->picture_height_in_mbs = height_in_mbs;
+    seq_param->seq_fields.bits.frame_mbs_only_flag = 1;
+    seq_param->seq_fields.bits.chroma_format_idc = 1;
+
+    
+    if (frame_bit_rate > 0)
+        seq_param->bits_per_second = 1000 * frame_bit_rate; /* use kbps as input */
+    else
+        seq_param->bits_per_second = 0;
+    
+    seq_param->time_scale = frame_rate * 2;
+    seq_param->num_units_in_tick = 1;			/* Tc = num_units_in_tick / time_sacle */
+
+    if (height_in_mbs * 16 - height) {
+        frame_cropping_flag = 1;
+        frame_crop_bottom_offset = 
+            (height_in_mbs * 16 - height) / (2 * (!seq_param->seq_fields.bits.frame_mbs_only_flag + 1));
+    }
+
+    seq_param->frame_cropping_flag = frame_cropping_flag;
+    seq_param->frame_crop_left_offset = 0;
+    seq_param->frame_crop_right_offset = 0;
+    seq_param->frame_crop_top_offset = 0;
+    seq_param->frame_crop_bottom_offset = frame_crop_bottom_offset;
+
+    seq_param->seq_fields.bits.pic_order_cnt_type = 0;
+    seq_param->seq_fields.bits.direct_8x8_inference_flag = 0;
+    
+    seq_param->seq_fields.bits.log2_max_frame_num_minus4 = Log2MaxFrameNum - 4;
+    seq_param->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4 = Log2MaxPicOrderCntLsb - 4;
+	
+    if (frame_bit_rate > 0)
+        seq_param->vui_parameters_present_flag = 1;	//HRD info located in vui
+    else
+        seq_param->vui_parameters_present_flag = 0;
+}
+
+static void avcenc_context_pic_param_init(VAEncPictureParameterBufferH264 *pic_param)
+{
+    pic_param->seq_parameter_set_id = 0;
+    pic_param->pic_parameter_set_id = 0;
+
+    pic_param->last_picture = 0;
+    pic_param->frame_num = 0;
+    
+    pic_param->pic_init_qp = (qp_value >= 0 ?  qp_value : 26);
+    pic_param->num_ref_idx_l0_active_minus1 = 0;
+    pic_param->num_ref_idx_l1_active_minus1 = 0;
+
+    pic_param->pic_fields.bits.idr_pic_flag = 0;
+    pic_param->pic_fields.bits.reference_pic_flag = 0;
+    pic_param->pic_fields.bits.entropy_coding_mode_flag = ENTROPY_MODE_CABAC;
+    pic_param->pic_fields.bits.weighted_pred_flag = 0;
+    pic_param->pic_fields.bits.weighted_bipred_idc = 0;
+    
+    if (avcenc_context.constraint_set_flag & 0x7)
+        pic_param->pic_fields.bits.transform_8x8_mode_flag = 0;
+    else
+        pic_param->pic_fields.bits.transform_8x8_mode_flag = 1;
+
+    pic_param->pic_fields.bits.deblocking_filter_control_present_flag = 1;
+
+    memset(pic_param->ReferenceFrames, 0xff, 16 * sizeof(VAPictureH264)); /* invalid all */
+}
+
+static void avcenc_context_sei_init()
+{
+	int init_cpb_size;
+	int target_bit_rate;
+
+	/* it comes for the bps defined in SPS */
+	target_bit_rate = avcenc_context.seq_param.bits_per_second;
+	init_cpb_size = (target_bit_rate * 8) >> 10;
+	avcenc_context.i_initial_cpb_removal_delay = 2 * 90000;
+	avcenc_context.i_initial_cpb_removal_delay_offset = 2 * 90000;
+
+	avcenc_context.i_cpb_removal_delay = 2;
+	avcenc_context.i_initial_cpb_removal_delay_length = 24;
+	avcenc_context.i_cpb_removal_delay_length = 24;
+	avcenc_context.i_dpb_output_delay_length = 24;
+	avcenc_context.time_offset_length = 24;
+
+        avcenc_context.prev_idr_cpb_removal = avcenc_context.i_initial_cpb_removal_delay / 90000;
+        avcenc_context.current_idr_cpb_removal = avcenc_context.prev_idr_cpb_removal;
+        avcenc_context.current_cpb_removal = 0;
+        avcenc_context.idr_frame_num = 0;
+}
+
+static void avcenc_context_init(int width, int height)
+{
+    int i;
+    memset(&avcenc_context, 0, sizeof(avcenc_context));
+    avcenc_context.profile = VAProfileH264Main;
+
+    memset(&use_slot, 0, sizeof(use_slot));
+    switch (avcenc_context.profile) {
+    case VAProfileH264Baseline:
+        avcenc_context.constraint_set_flag |= (1 << 0); /* Annex A.2.1 */
+        break;
+
+    case VAProfileH264Main:
+        avcenc_context.constraint_set_flag |= (1 << 1); /* Annex A.2.2 */
+        break;
+
+    case VAProfileH264High:
+        avcenc_context.constraint_set_flag |= (1 << 3); /* Annex A.2.4 */
+        break;
+        
+    default:
+        break;
+    }
+        
+    avcenc_context.seq_param_buf_id = VA_INVALID_ID;
+    avcenc_context.pic_param_buf_id = VA_INVALID_ID;
+    avcenc_context.packed_seq_header_param_buf_id = VA_INVALID_ID;
+    avcenc_context.packed_seq_buf_id = VA_INVALID_ID;
+    avcenc_context.packed_pic_header_param_buf_id = VA_INVALID_ID;
+    avcenc_context.packed_pic_buf_id = VA_INVALID_ID;
+    avcenc_context.codedbuf_buf_id = VA_INVALID_ID;
+    avcenc_context.misc_parameter_hrd_buf_id = VA_INVALID_ID;
+    avcenc_context.codedbuf_i_size = width * height;
+    avcenc_context.codedbuf_pb_size = width * height;
+    avcenc_context.current_input_surface = SID_INPUT_PICTURE_0;
+    avcenc_context.upload_thread_value = -1;
+    avcenc_context.packed_sei_header_param_buf_id = VA_INVALID_ID;
+    avcenc_context.packed_sei_buf_id = VA_INVALID_ID;
+
+    if (qp_value == -1)
+        avcenc_context.rate_control_method = VA_RC_CBR;
+    else if (qp_value == -2)
+        avcenc_context.rate_control_method = VA_RC_VBR;
+    else {
+        assert(qp_value >= 0 && qp_value <= 51);
+        avcenc_context.rate_control_method = VA_RC_CQP;
+    }
+
+    for (i = 0; i < MAX_SLICES; i++) {
+        avcenc_context.slice_param_buf_id[i] = VA_INVALID_ID;
+    }
+
+    avcenc_context_seq_param_init(&avcenc_context.seq_param, width, height);
+    avcenc_context_pic_param_init(&avcenc_context.pic_param);
+    if (avcenc_context.rate_control_method == VA_RC_CBR)
+	avcenc_context_sei_init();
+}
+
+int main(int argc, char *argv[])
+{
+    int f;
+    FILE *yuv_fp;
+    FILE *avc_fp;
+    off_t file_size;
+    int mode_value;
+    struct timeval tpstart,tpend; 
+    float  timeuse;
+
+    va_init_display_args(&argc, argv);
+
+    //TODO may be we should using option analytics library
+    if(argc != 5 && argc != 6 && argc != 7) {
+        show_help();
+        return -1;
+    }
+
+    picture_width = atoi(argv[1]);
+    picture_height = atoi(argv[2]);
+    picture_width_in_mbs = (picture_width + 15) / 16;
+    picture_height_in_mbs = (picture_height + 15) / 16;
+
+    if (argc == 6 || argc == 7) {
+        qp_value = -1;
+        sscanf(argv[5], "qp=%d", &qp_value);
+        if ( qp_value == -1 ) {
+            frame_bit_rate = -1;
+            sscanf(argv[5], "fb=%d", &frame_bit_rate);
+            if (  frame_bit_rate == -1 ) {
+                show_help();
+                return -1;
+            }
+        } else if (qp_value > 51) {
+            qp_value = 51;
+        } else if (qp_value < 0) {
+            qp_value = 0;
+        }
+    } else
+        qp_value = 28;                          //default const QP mode
+
+    if (argc == 7) {
+        sscanf(argv[6], "mode=%d", &mode_value);
+        if ( mode_value == 0 ) {
+		ip_period = 0;
+        }
+        else if ( mode_value == 1) {
+		ip_period = 1;
+        }
+        else if ( mode_value == 2 ) {
+		/* Hack mechanism before adding the parameter of B-frame number */
+		ip_period = 3;
+        }
+        else {
+                printf("mode_value=%d\n",mode_value);
+                show_help();
+                return -1;
+        }
+    }
+
+    yuv_fp = fopen(argv[3],"rb");
+    if ( yuv_fp == NULL){
+        printf("Can't open input YUV file\n");
+        return -1;
+    }
+    fseek(yuv_fp,0l, SEEK_END);
+    file_size = ftell(yuv_fp);
+    frame_size = picture_width * picture_height +  ((picture_width * picture_height) >> 1) ;
+
+    if ( (file_size < frame_size) || (file_size % frame_size) ) {
+        fclose(yuv_fp);
+        printf("The YUV file's size is not correct\n");
+        return -1;
+    }
+    frame_number = file_size / frame_size;
+    fseek(yuv_fp, 0l, SEEK_SET);
+
+    avc_fp = fopen(argv[4], "wb");	
+    if ( avc_fp == NULL) {
+        fclose(yuv_fp);
+        printf("Can't open output avc file\n");
+        return -1;
+    }	
+    gettimeofday(&tpstart,NULL);	
+    avcenc_context_init(picture_width, picture_height);
+    create_encode_pipe();
+    alloc_encode_resource(yuv_fp);
+
+    enc_frame_number = 0;
+    for ( f = 0; f < frame_number; f++) {		//picture level loop
+        unsigned long long next_frame_display;
+        int next_frame_type;
+
+        enc_frame_number = f;
+
+        encoding2display_order(enc_frame_number, intra_period, ip_period,
+                               &current_frame_display, &current_frame_type);
+
+        encoding2display_order(enc_frame_number + 1, intra_period, ip_period,
+                               &next_frame_display, &next_frame_type);
+
+        if (current_frame_type == FRAME_IDR) {
+            numShortTerm = 0;
+            current_frame_num = 0;
+            memset(&use_slot, 0, sizeof(use_slot));
+            current_IDR_display = current_frame_display;
+            if (avcenc_context.rate_control_method == VA_RC_CBR) {
+                unsigned long long frame_interval;
+
+                frame_interval = enc_frame_number - avcenc_context.idr_frame_num;
+
+                /* Based on the H264 spec the removal time of the IDR access
+                 * unit is derived as the following:
+                 * the removal time of previous IDR unit + Tc * cpb_removal_delay(n)
+                 */
+                avcenc_context.current_cpb_removal = avcenc_context.prev_idr_cpb_removal +
+				frame_interval * 2;
+                avcenc_context.idr_frame_num = enc_frame_number;
+                avcenc_context.current_idr_cpb_removal = avcenc_context.current_cpb_removal;
+                if (ip_period)
+                    avcenc_context.current_dpb_removal_delta = (ip_period + 1) * 2;
+                else
+                    avcenc_context.current_dpb_removal_delta = 2;
+            }
+        } else {
+            if (avcenc_context.rate_control_method == VA_RC_CBR) {
+                unsigned long long frame_interval;
+
+                frame_interval = enc_frame_number - avcenc_context.idr_frame_num;
+
+                /* Based on the H264 spec the removal time of the non-IDR access
+                 * unit is derived as the following:
+                 * the removal time of current IDR unit + Tc * cpb_removal_delay(n)
+                 */
+                avcenc_context.current_cpb_removal = avcenc_context.current_idr_cpb_removal +
+				frame_interval * 2;
+                if (current_frame_type == SLICE_TYPE_I ||
+                    current_frame_type == SLICE_TYPE_P) {
+                    if (ip_period)
+                        avcenc_context.current_dpb_removal_delta = (ip_period + 1) * 2;
+                    else
+                        avcenc_context.current_dpb_removal_delta = 2;
+                } else
+                   avcenc_context.current_dpb_removal_delta = 2;
+            }
+        }
+
+        /* use the simple mechanism to calc the POC */
+        current_poc = (current_frame_display - current_IDR_display) * 2;
+
+        encode_picture(yuv_fp, avc_fp, frame_number, current_frame_display,
+                      (current_frame_type == FRAME_IDR) ? 1 : 0,
+                      (current_frame_type == FRAME_IDR) ? SLICE_TYPE_I : current_frame_type,
+                      (next_frame_type == SLICE_TYPE_B) ? 1 : 0,
+                next_frame_display);
+        if ((current_frame_type == FRAME_IDR) &&
+            (avcenc_context.rate_control_method == VA_RC_CBR)) {
+           /* after one IDR frame is written, it needs to update the
+            * prev_idr_cpb_removal for next IDR
+            */
+           avcenc_context.prev_idr_cpb_removal = avcenc_context.current_idr_cpb_removal;
+        }
+        printf("\r %d/%d ...", f, frame_number);
+        fflush(stdout);
+    }
+
+    gettimeofday(&tpend,NULL);
+    timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ tpend.tv_usec-tpstart.tv_usec;
+    timeuse/=1000000;
+    printf("\ndone!\n");
+    printf("encode %d frames in %f secondes, FPS is %.1f\n",frame_number, timeuse, frame_number/timeuse);
+    release_encode_resource();
+    destory_encode_pipe();
+
+    fclose(yuv_fp);
+    fclose(avc_fp);
+
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/encode/h264encode.c b/examples/thirdparty/libva/test/encode/h264encode.c
new file mode 100644
index 0000000..ce96f92
--- /dev/null
+++ b/examples/thirdparty/libva/test/encode/h264encode.c
@@ -0,0 +1,2387 @@
+/*
+ * Copyright (c) 2007-2013 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 "sysdeps.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/mman.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <pthread.h>
+#include <errno.h>
+#include <math.h>
+#include <va/va.h>
+#include <va/va_enc_h264.h>
+#include "va_display.h"
+
+#define CHECK_VASTATUS(va_status,func)                                  \
+    if (va_status != VA_STATUS_SUCCESS) {                               \
+        fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \
+        exit(1);                                                        \
+    }
+
+#include "../loadsurface.h"
+
+#define NAL_REF_IDC_NONE        0
+#define NAL_REF_IDC_LOW         1
+#define NAL_REF_IDC_MEDIUM      2
+#define NAL_REF_IDC_HIGH        3
+
+#define NAL_NON_IDR             1
+#define NAL_IDR                 5
+#define NAL_SPS                 7
+#define NAL_PPS                 8
+#define NAL_SEI			6
+
+#define SLICE_TYPE_P            0
+#define SLICE_TYPE_B            1
+#define SLICE_TYPE_I            2
+#define IS_P_SLICE(type) (SLICE_TYPE_P == (type))
+#define IS_B_SLICE(type) (SLICE_TYPE_B == (type))
+#define IS_I_SLICE(type) (SLICE_TYPE_I == (type))
+
+
+#define ENTROPY_MODE_CAVLC      0
+#define ENTROPY_MODE_CABAC      1
+
+#define PROFILE_IDC_BASELINE    66
+#define PROFILE_IDC_MAIN        77
+#define PROFILE_IDC_HIGH        100
+   
+#define BITSTREAM_ALLOCATE_STEPPING     4096
+
+#define SURFACE_NUM 16 /* 16 surfaces for source YUV */
+#define SURFACE_NUM 16 /* 16 surfaces for reference */
+static  VADisplay va_dpy;
+static  VAProfile h264_profile = ~0;
+static  VAConfigAttrib attrib[VAConfigAttribTypeMax];
+static  VAConfigAttrib config_attrib[VAConfigAttribTypeMax];
+static  int config_attrib_num = 0, enc_packed_header_idx;
+static  VASurfaceID src_surface[SURFACE_NUM];
+static  VABufferID  coded_buf[SURFACE_NUM];
+static  VASurfaceID ref_surface[SURFACE_NUM];
+static  VAConfigID config_id;
+static  VAContextID context_id;
+static  VAEncSequenceParameterBufferH264 seq_param;
+static  VAEncPictureParameterBufferH264 pic_param;
+static  VAEncSliceParameterBufferH264 slice_param;
+static  VAPictureH264 CurrentCurrPic;
+static  VAPictureH264 ReferenceFrames[16], RefPicList0_P[32], RefPicList0_B[32], RefPicList1_B[32];
+
+static  unsigned int MaxFrameNum = (2<<16);
+static  unsigned int MaxPicOrderCntLsb = (2<<8);
+static  unsigned int Log2MaxFrameNum = 16;
+static  unsigned int Log2MaxPicOrderCntLsb = 8;
+
+static  unsigned int num_ref_frames = 2;
+static  unsigned int numShortTerm = 0;
+static  int constraint_set_flag = 0;
+static  int h264_packedheader = 0; /* support pack header? */
+static  int h264_maxref = (1<<16|1);
+static  int h264_entropy_mode = 1; /* cabac */
+
+static  char *coded_fn = NULL, *srcyuv_fn = NULL, *recyuv_fn = NULL;
+static  FILE *coded_fp = NULL, *srcyuv_fp = NULL, *recyuv_fp = NULL;
+static  unsigned long long srcyuv_frames = 0;
+static  int srcyuv_fourcc = VA_FOURCC_NV12;
+static  int calc_psnr = 0;
+
+static  int frame_width = 176;
+static  int frame_height = 144;
+static  int frame_width_mbaligned;
+static  int frame_height_mbaligned;
+static  int frame_rate = 30;
+static  unsigned int frame_count = 60;
+static  unsigned int frame_coded = 0;
+static  unsigned int frame_bitrate = 0;
+static  unsigned int frame_slices = 1;
+static  double frame_size = 0;
+static  int initial_qp = 26;
+static  int minimal_qp = 0;
+static  int intra_period = 30;
+static  int intra_idr_period = 60;
+static  int ip_period = 1;
+static  int rc_mode = -1;
+static  int rc_default_modes[] = {
+    VA_RC_VBR,
+    VA_RC_CQP,
+    VA_RC_VBR_CONSTRAINED,
+    VA_RC_CBR,
+    VA_RC_VCM,
+    VA_RC_NONE,
+};
+static  unsigned long long current_frame_encoding = 0;
+static  unsigned long long current_frame_display = 0;
+static  unsigned long long current_IDR_display = 0;
+static  unsigned int current_frame_num = 0;
+static  int current_frame_type;
+#define current_slot (current_frame_display % SURFACE_NUM)
+
+static  int misc_priv_type = 0;
+static  int misc_priv_value = 0;
+
+#define MIN(a, b) ((a)>(b)?(b):(a))
+#define MAX(a, b) ((a)>(b)?(a):(b))
+
+/* thread to save coded data/upload source YUV */
+struct storage_task_t {
+    void *next;
+    unsigned long long display_order;
+    unsigned long long encode_order;
+};
+static  struct storage_task_t *storage_task_header = NULL, *storage_task_tail = NULL;
+#define SRC_SURFACE_IN_ENCODING 0
+#define SRC_SURFACE_IN_STORAGE  1
+static  int srcsurface_status[SURFACE_NUM];
+static  int encode_syncmode = 0;
+static  pthread_mutex_t encode_mutex = PTHREAD_MUTEX_INITIALIZER;
+static  pthread_cond_t  encode_cond = PTHREAD_COND_INITIALIZER;
+static  pthread_t encode_thread;
+    
+/* for performance profiling */
+static unsigned int UploadPictureTicks=0;
+static unsigned int BeginPictureTicks=0;
+static unsigned int RenderPictureTicks=0;
+static unsigned int EndPictureTicks=0;
+static unsigned int SyncPictureTicks=0;
+static unsigned int SavePictureTicks=0;
+static unsigned int TotalTicks=0;
+
+struct __bitstream {
+    unsigned int *buffer;
+    int bit_offset;
+    int max_size_in_dword;
+};
+typedef struct __bitstream bitstream;
+
+
+static unsigned int 
+va_swap32(unsigned int val)
+{
+    unsigned char *pval = (unsigned char *)&val;
+
+    return ((pval[0] << 24)     |
+            (pval[1] << 16)     |
+            (pval[2] << 8)      |
+            (pval[3] << 0));
+}
+
+static void
+bitstream_start(bitstream *bs)
+{
+    bs->max_size_in_dword = BITSTREAM_ALLOCATE_STEPPING;
+    bs->buffer = calloc(bs->max_size_in_dword * sizeof(int), 1);
+    bs->bit_offset = 0;
+}
+
+static void
+bitstream_end(bitstream *bs)
+{
+    int pos = (bs->bit_offset >> 5);
+    int bit_offset = (bs->bit_offset & 0x1f);
+    int bit_left = 32 - bit_offset;
+
+    if (bit_offset) {
+        bs->buffer[pos] = va_swap32((bs->buffer[pos] << bit_left));
+    }
+}
+ 
+static void
+bitstream_put_ui(bitstream *bs, unsigned int val, int size_in_bits)
+{
+    int pos = (bs->bit_offset >> 5);
+    int bit_offset = (bs->bit_offset & 0x1f);
+    int bit_left = 32 - bit_offset;
+
+    if (!size_in_bits)
+        return;
+
+    bs->bit_offset += size_in_bits;
+
+    if (bit_left > size_in_bits) {
+        bs->buffer[pos] = (bs->buffer[pos] << size_in_bits | val);
+    } else {
+        size_in_bits -= bit_left;
+        bs->buffer[pos] = (bs->buffer[pos] << bit_left) | (val >> size_in_bits);
+        bs->buffer[pos] = va_swap32(bs->buffer[pos]);
+
+        if (pos + 1 == bs->max_size_in_dword) {
+            bs->max_size_in_dword += BITSTREAM_ALLOCATE_STEPPING;
+            bs->buffer = realloc(bs->buffer, bs->max_size_in_dword * sizeof(unsigned int));
+        }
+
+        bs->buffer[pos + 1] = val;
+    }
+}
+
+static void
+bitstream_put_ue(bitstream *bs, unsigned int val)
+{
+    int size_in_bits = 0;
+    int tmp_val = ++val;
+
+    while (tmp_val) {
+        tmp_val >>= 1;
+        size_in_bits++;
+    }
+
+    bitstream_put_ui(bs, 0, size_in_bits - 1); // leading zero
+    bitstream_put_ui(bs, val, size_in_bits);
+}
+
+static void
+bitstream_put_se(bitstream *bs, int val)
+{
+    unsigned int new_val;
+
+    if (val <= 0)
+        new_val = -2 * val;
+    else
+        new_val = 2 * val - 1;
+
+    bitstream_put_ue(bs, new_val);
+}
+
+static void
+bitstream_byte_aligning(bitstream *bs, int bit)
+{
+    int bit_offset = (bs->bit_offset & 0x7);
+    int bit_left = 8 - bit_offset;
+    int new_val;
+
+    if (!bit_offset)
+        return;
+
+    assert(bit == 0 || bit == 1);
+
+    if (bit)
+        new_val = (1 << bit_left) - 1;
+    else
+        new_val = 0;
+
+    bitstream_put_ui(bs, new_val, bit_left);
+}
+
+static void 
+rbsp_trailing_bits(bitstream *bs)
+{
+    bitstream_put_ui(bs, 1, 1);
+    bitstream_byte_aligning(bs, 0);
+}
+
+static void nal_start_code_prefix(bitstream *bs)
+{
+    bitstream_put_ui(bs, 0x00000001, 32);
+}
+
+static void nal_header(bitstream *bs, int nal_ref_idc, int nal_unit_type)
+{
+    bitstream_put_ui(bs, 0, 1);                /* forbidden_zero_bit: 0 */
+    bitstream_put_ui(bs, nal_ref_idc, 2);
+    bitstream_put_ui(bs, nal_unit_type, 5);
+}
+
+static void sps_rbsp(bitstream *bs)
+{
+    int profile_idc = PROFILE_IDC_BASELINE;
+
+    if (h264_profile  == VAProfileH264High)
+        profile_idc = PROFILE_IDC_HIGH;
+    else if (h264_profile  == VAProfileH264Main)
+        profile_idc = PROFILE_IDC_MAIN;
+
+    bitstream_put_ui(bs, profile_idc, 8);               /* profile_idc */
+    bitstream_put_ui(bs, !!(constraint_set_flag & 1), 1);                         /* constraint_set0_flag */
+    bitstream_put_ui(bs, !!(constraint_set_flag & 2), 1);                         /* constraint_set1_flag */
+    bitstream_put_ui(bs, !!(constraint_set_flag & 4), 1);                         /* constraint_set2_flag */
+    bitstream_put_ui(bs, !!(constraint_set_flag & 8), 1);                         /* constraint_set3_flag */
+    bitstream_put_ui(bs, 0, 4);                         /* reserved_zero_4bits */
+    bitstream_put_ui(bs, seq_param.level_idc, 8);      /* level_idc */
+    bitstream_put_ue(bs, seq_param.seq_parameter_set_id);      /* seq_parameter_set_id */
+
+    if ( profile_idc == PROFILE_IDC_HIGH) {
+        bitstream_put_ue(bs, 1);        /* chroma_format_idc = 1, 4:2:0 */ 
+        bitstream_put_ue(bs, 0);        /* bit_depth_luma_minus8 */
+        bitstream_put_ue(bs, 0);        /* bit_depth_chroma_minus8 */
+        bitstream_put_ui(bs, 0, 1);     /* qpprime_y_zero_transform_bypass_flag */
+        bitstream_put_ui(bs, 0, 1);     /* seq_scaling_matrix_present_flag */
+    }
+
+    bitstream_put_ue(bs, seq_param.seq_fields.bits.log2_max_frame_num_minus4); /* log2_max_frame_num_minus4 */
+    bitstream_put_ue(bs, seq_param.seq_fields.bits.pic_order_cnt_type);        /* pic_order_cnt_type */
+
+    if (seq_param.seq_fields.bits.pic_order_cnt_type == 0)
+        bitstream_put_ue(bs, seq_param.seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4);     /* log2_max_pic_order_cnt_lsb_minus4 */
+    else {
+        assert(0);
+    }
+
+    bitstream_put_ue(bs, seq_param.max_num_ref_frames);        /* num_ref_frames */
+    bitstream_put_ui(bs, 0, 1);                                 /* gaps_in_frame_num_value_allowed_flag */
+
+    bitstream_put_ue(bs, seq_param.picture_width_in_mbs - 1);  /* pic_width_in_mbs_minus1 */
+    bitstream_put_ue(bs, seq_param.picture_height_in_mbs - 1); /* pic_height_in_map_units_minus1 */
+    bitstream_put_ui(bs, seq_param.seq_fields.bits.frame_mbs_only_flag, 1);    /* frame_mbs_only_flag */
+
+    if (!seq_param.seq_fields.bits.frame_mbs_only_flag) {
+        assert(0);
+    }
+
+    bitstream_put_ui(bs, seq_param.seq_fields.bits.direct_8x8_inference_flag, 1);      /* direct_8x8_inference_flag */
+    bitstream_put_ui(bs, seq_param.frame_cropping_flag, 1);            /* frame_cropping_flag */
+
+    if (seq_param.frame_cropping_flag) {
+        bitstream_put_ue(bs, seq_param.frame_crop_left_offset);        /* frame_crop_left_offset */
+        bitstream_put_ue(bs, seq_param.frame_crop_right_offset);       /* frame_crop_right_offset */
+        bitstream_put_ue(bs, seq_param.frame_crop_top_offset);         /* frame_crop_top_offset */
+        bitstream_put_ue(bs, seq_param.frame_crop_bottom_offset);      /* frame_crop_bottom_offset */
+    }
+    
+    //if ( frame_bit_rate < 0 ) { //TODO EW: the vui header isn't correct
+    if ( 1 ) {
+        bitstream_put_ui(bs, 0, 1); /* vui_parameters_present_flag */
+    } else {
+        bitstream_put_ui(bs, 1, 1); /* vui_parameters_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* aspect_ratio_info_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* overscan_info_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* video_signal_type_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* chroma_loc_info_present_flag */
+        bitstream_put_ui(bs, 1, 1); /* timing_info_present_flag */
+        {
+            bitstream_put_ui(bs, 15, 32);
+            bitstream_put_ui(bs, 900, 32);
+            bitstream_put_ui(bs, 1, 1);
+        }
+        bitstream_put_ui(bs, 1, 1); /* nal_hrd_parameters_present_flag */
+        {
+            // hrd_parameters 
+            bitstream_put_ue(bs, 0);    /* cpb_cnt_minus1 */
+            bitstream_put_ui(bs, 4, 4); /* bit_rate_scale */
+            bitstream_put_ui(bs, 6, 4); /* cpb_size_scale */
+           
+            bitstream_put_ue(bs, frame_bitrate - 1); /* bit_rate_value_minus1[0] */
+            bitstream_put_ue(bs, frame_bitrate*8 - 1); /* cpb_size_value_minus1[0] */
+            bitstream_put_ui(bs, 1, 1);  /* cbr_flag[0] */
+
+            bitstream_put_ui(bs, 23, 5);   /* initial_cpb_removal_delay_length_minus1 */
+            bitstream_put_ui(bs, 23, 5);   /* cpb_removal_delay_length_minus1 */
+            bitstream_put_ui(bs, 23, 5);   /* dpb_output_delay_length_minus1 */
+            bitstream_put_ui(bs, 23, 5);   /* time_offset_length  */
+        }
+        bitstream_put_ui(bs, 0, 1);   /* vcl_hrd_parameters_present_flag */
+        bitstream_put_ui(bs, 0, 1);   /* low_delay_hrd_flag */ 
+
+        bitstream_put_ui(bs, 0, 1); /* pic_struct_present_flag */
+        bitstream_put_ui(bs, 0, 1); /* bitstream_restriction_flag */
+    }
+
+    rbsp_trailing_bits(bs);     /* rbsp_trailing_bits */
+}
+
+
+static void pps_rbsp(bitstream *bs)
+{
+    bitstream_put_ue(bs, pic_param.pic_parameter_set_id);      /* pic_parameter_set_id */
+    bitstream_put_ue(bs, pic_param.seq_parameter_set_id);      /* seq_parameter_set_id */
+
+    bitstream_put_ui(bs, pic_param.pic_fields.bits.entropy_coding_mode_flag, 1);  /* entropy_coding_mode_flag */
+
+    bitstream_put_ui(bs, 0, 1);                         /* pic_order_present_flag: 0 */
+
+    bitstream_put_ue(bs, 0);                            /* num_slice_groups_minus1 */
+
+    bitstream_put_ue(bs, pic_param.num_ref_idx_l0_active_minus1);      /* num_ref_idx_l0_active_minus1 */
+    bitstream_put_ue(bs, pic_param.num_ref_idx_l1_active_minus1);      /* num_ref_idx_l1_active_minus1 1 */
+
+    bitstream_put_ui(bs, pic_param.pic_fields.bits.weighted_pred_flag, 1);     /* weighted_pred_flag: 0 */
+    bitstream_put_ui(bs, pic_param.pic_fields.bits.weighted_bipred_idc, 2);	/* weighted_bipred_idc: 0 */
+
+    bitstream_put_se(bs, pic_param.pic_init_qp - 26);  /* pic_init_qp_minus26 */
+    bitstream_put_se(bs, 0);                            /* pic_init_qs_minus26 */
+    bitstream_put_se(bs, 0);                            /* chroma_qp_index_offset */
+
+    bitstream_put_ui(bs, pic_param.pic_fields.bits.deblocking_filter_control_present_flag, 1); /* deblocking_filter_control_present_flag */
+    bitstream_put_ui(bs, 0, 1);                         /* constrained_intra_pred_flag */
+    bitstream_put_ui(bs, 0, 1);                         /* redundant_pic_cnt_present_flag */
+    
+    /* more_rbsp_data */
+    bitstream_put_ui(bs, pic_param.pic_fields.bits.transform_8x8_mode_flag, 1);    /*transform_8x8_mode_flag */
+    bitstream_put_ui(bs, 0, 1);                         /* pic_scaling_matrix_present_flag */
+    bitstream_put_se(bs, pic_param.second_chroma_qp_index_offset );    /*second_chroma_qp_index_offset */
+
+    rbsp_trailing_bits(bs);
+}
+
+static void slice_header(bitstream *bs)
+{
+    int first_mb_in_slice = slice_param.macroblock_address;
+
+    bitstream_put_ue(bs, first_mb_in_slice);        /* first_mb_in_slice: 0 */
+    bitstream_put_ue(bs, slice_param.slice_type);   /* slice_type */
+    bitstream_put_ue(bs, slice_param.pic_parameter_set_id);        /* pic_parameter_set_id: 0 */
+    bitstream_put_ui(bs, pic_param.frame_num, seq_param.seq_fields.bits.log2_max_frame_num_minus4 + 4); /* frame_num */
+
+    /* frame_mbs_only_flag == 1 */
+    if (!seq_param.seq_fields.bits.frame_mbs_only_flag) {
+        /* FIXME: */
+        assert(0);
+    }
+
+    if (pic_param.pic_fields.bits.idr_pic_flag)
+        bitstream_put_ue(bs, slice_param.idr_pic_id);		/* idr_pic_id: 0 */
+
+    if (seq_param.seq_fields.bits.pic_order_cnt_type == 0) {
+        bitstream_put_ui(bs, pic_param.CurrPic.TopFieldOrderCnt, seq_param.seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4 + 4);
+        /* pic_order_present_flag == 0 */
+    } else {
+        /* FIXME: */
+        assert(0);
+    }
+
+    /* redundant_pic_cnt_present_flag == 0 */
+    /* slice type */
+    if (IS_P_SLICE(slice_param.slice_type)) {
+        bitstream_put_ui(bs, slice_param.num_ref_idx_active_override_flag, 1);            /* num_ref_idx_active_override_flag: */
+
+        if (slice_param.num_ref_idx_active_override_flag)
+            bitstream_put_ue(bs, slice_param.num_ref_idx_l0_active_minus1);
+
+        /* ref_pic_list_reordering */
+        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l0: 0 */
+    } else if (IS_B_SLICE(slice_param.slice_type)) {
+        bitstream_put_ui(bs, slice_param.direct_spatial_mv_pred_flag, 1);            /* direct_spatial_mv_pred: 1 */
+
+        bitstream_put_ui(bs, slice_param.num_ref_idx_active_override_flag, 1);       /* num_ref_idx_active_override_flag: */
+
+        if (slice_param.num_ref_idx_active_override_flag) {
+            bitstream_put_ue(bs, slice_param.num_ref_idx_l0_active_minus1);
+            bitstream_put_ue(bs, slice_param.num_ref_idx_l1_active_minus1);
+        }
+
+        /* ref_pic_list_reordering */
+        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l0: 0 */
+        bitstream_put_ui(bs, 0, 1);            /* ref_pic_list_reordering_flag_l1: 0 */
+    }
+
+    if ((pic_param.pic_fields.bits.weighted_pred_flag &&
+         IS_P_SLICE(slice_param.slice_type)) ||
+        ((pic_param.pic_fields.bits.weighted_bipred_idc == 1) &&
+         IS_B_SLICE(slice_param.slice_type))) {
+        /* FIXME: fill weight/offset table */
+        assert(0);
+    }
+
+    /* dec_ref_pic_marking */
+    if (pic_param.pic_fields.bits.reference_pic_flag) {     /* nal_ref_idc != 0 */
+        unsigned char no_output_of_prior_pics_flag = 0;
+        unsigned char long_term_reference_flag = 0;
+        unsigned char adaptive_ref_pic_marking_mode_flag = 0;
+
+        if (pic_param.pic_fields.bits.idr_pic_flag) {
+            bitstream_put_ui(bs, no_output_of_prior_pics_flag, 1);            /* no_output_of_prior_pics_flag: 0 */
+            bitstream_put_ui(bs, long_term_reference_flag, 1);            /* long_term_reference_flag: 0 */
+        } else {
+            bitstream_put_ui(bs, adaptive_ref_pic_marking_mode_flag, 1);            /* adaptive_ref_pic_marking_mode_flag: 0 */
+        }
+    }
+
+    if (pic_param.pic_fields.bits.entropy_coding_mode_flag &&
+        !IS_I_SLICE(slice_param.slice_type))
+        bitstream_put_ue(bs, slice_param.cabac_init_idc);               /* cabac_init_idc: 0 */
+
+    bitstream_put_se(bs, slice_param.slice_qp_delta);                   /* slice_qp_delta: 0 */
+
+    /* ignore for SP/SI */
+
+    if (pic_param.pic_fields.bits.deblocking_filter_control_present_flag) {
+        bitstream_put_ue(bs, slice_param.disable_deblocking_filter_idc);           /* disable_deblocking_filter_idc: 0 */
+
+        if (slice_param.disable_deblocking_filter_idc != 1) {
+            bitstream_put_se(bs, slice_param.slice_alpha_c0_offset_div2);          /* slice_alpha_c0_offset_div2: 2 */
+            bitstream_put_se(bs, slice_param.slice_beta_offset_div2);              /* slice_beta_offset_div2: 2 */
+        }
+    }
+
+    if (pic_param.pic_fields.bits.entropy_coding_mode_flag) {
+        bitstream_byte_aligning(bs, 1);
+    }
+}
+
+static int
+build_packed_pic_buffer(unsigned char **header_buffer)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    nal_start_code_prefix(&bs);
+    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_PPS);
+    pps_rbsp(&bs);
+    bitstream_end(&bs);
+
+    *header_buffer = (unsigned char *)bs.buffer;
+    return bs.bit_offset;
+}
+
+static int
+build_packed_seq_buffer(unsigned char **header_buffer)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    nal_start_code_prefix(&bs);
+    nal_header(&bs, NAL_REF_IDC_HIGH, NAL_SPS);
+    sps_rbsp(&bs);
+    bitstream_end(&bs);
+
+    *header_buffer = (unsigned char *)bs.buffer;
+    return bs.bit_offset;
+}
+
+static int 
+build_packed_sei_buffer_timing(unsigned int init_cpb_removal_length,
+				unsigned int init_cpb_removal_delay,
+				unsigned int init_cpb_removal_delay_offset,
+				unsigned int cpb_removal_length,
+				unsigned int cpb_removal_delay,
+				unsigned int dpb_output_length,
+				unsigned int dpb_output_delay,
+				unsigned char **sei_buffer)
+{
+    unsigned char *byte_buf;
+    int bp_byte_size, i, pic_byte_size;
+
+    bitstream nal_bs;
+    bitstream sei_bp_bs, sei_pic_bs;
+
+    bitstream_start(&sei_bp_bs);
+    bitstream_put_ue(&sei_bp_bs, 0);       /*seq_parameter_set_id*/
+    bitstream_put_ui(&sei_bp_bs, init_cpb_removal_delay, cpb_removal_length); 
+    bitstream_put_ui(&sei_bp_bs, init_cpb_removal_delay_offset, cpb_removal_length); 
+    if ( sei_bp_bs.bit_offset & 0x7) {
+        bitstream_put_ui(&sei_bp_bs, 1, 1);
+    }
+    bitstream_end(&sei_bp_bs);
+    bp_byte_size = (sei_bp_bs.bit_offset + 7) / 8;
+    
+    bitstream_start(&sei_pic_bs);
+    bitstream_put_ui(&sei_pic_bs, cpb_removal_delay, cpb_removal_length); 
+    bitstream_put_ui(&sei_pic_bs, dpb_output_delay, dpb_output_length); 
+    if ( sei_pic_bs.bit_offset & 0x7) {
+        bitstream_put_ui(&sei_pic_bs, 1, 1);
+    }
+    bitstream_end(&sei_pic_bs);
+    pic_byte_size = (sei_pic_bs.bit_offset + 7) / 8;
+    
+    bitstream_start(&nal_bs);
+    nal_start_code_prefix(&nal_bs);
+    nal_header(&nal_bs, NAL_REF_IDC_NONE, NAL_SEI);
+
+	/* Write the SEI buffer period data */    
+    bitstream_put_ui(&nal_bs, 0, 8);
+    bitstream_put_ui(&nal_bs, bp_byte_size, 8);
+    
+    byte_buf = (unsigned char *)sei_bp_bs.buffer;
+    for(i = 0; i < bp_byte_size; i++) {
+        bitstream_put_ui(&nal_bs, byte_buf[i], 8);
+    }
+    free(byte_buf);
+	/* write the SEI timing data */
+    bitstream_put_ui(&nal_bs, 0x01, 8);
+    bitstream_put_ui(&nal_bs, pic_byte_size, 8);
+    
+    byte_buf = (unsigned char *)sei_pic_bs.buffer;
+    for(i = 0; i < pic_byte_size; i++) {
+        bitstream_put_ui(&nal_bs, byte_buf[i], 8);
+    }
+    free(byte_buf);
+
+    rbsp_trailing_bits(&nal_bs);
+    bitstream_end(&nal_bs);
+
+    *sei_buffer = (unsigned char *)nal_bs.buffer; 
+   
+    return nal_bs.bit_offset;
+}
+
+static int build_packed_slice_buffer(unsigned char **header_buffer)
+{
+    bitstream bs;
+    int is_idr = !!pic_param.pic_fields.bits.idr_pic_flag;
+    int is_ref = !!pic_param.pic_fields.bits.reference_pic_flag;
+
+    bitstream_start(&bs);
+    nal_start_code_prefix(&bs);
+
+    if (IS_I_SLICE(slice_param.slice_type)) {
+        nal_header(&bs, NAL_REF_IDC_HIGH, is_idr ? NAL_IDR : NAL_NON_IDR);
+    } else if (IS_P_SLICE(slice_param.slice_type)) {
+        nal_header(&bs, NAL_REF_IDC_MEDIUM, NAL_NON_IDR);
+    } else {
+        assert(IS_B_SLICE(slice_param.slice_type));
+        nal_header(&bs, is_ref ? NAL_REF_IDC_LOW : NAL_REF_IDC_NONE, NAL_NON_IDR);
+    }
+
+    slice_header(&bs);
+    bitstream_end(&bs);
+
+    *header_buffer = (unsigned char *)bs.buffer;
+    return bs.bit_offset;
+}
+
+
+/*
+ * Helper function for profiling purposes
+ */
+static unsigned int GetTickCount()
+{
+    struct timeval tv;
+    if (gettimeofday(&tv, NULL))
+        return 0;
+    return tv.tv_usec/1000+tv.tv_sec*1000;
+}
+
+/*
+  Assume frame sequence is: Frame#0,#1,#2,...,#M,...,#X,... (encoding order)
+  1) period between Frame #X and Frame #N = #X - #N
+  2) 0 means infinite for intra_period/intra_idr_period, and 0 is invalid for ip_period
+  3) intra_idr_period % intra_period (intra_period > 0) and intra_period % ip_period must be 0
+  4) intra_period and intra_idr_period take precedence over ip_period
+  5) if ip_period > 1, intra_period and intra_idr_period are not  the strict periods 
+     of I/IDR frames, see bellow examples
+  -------------------------------------------------------------------
+  intra_period intra_idr_period ip_period frame sequence (intra_period/intra_idr_period/ip_period)
+  0            ignored          1          IDRPPPPPPP ...     (No IDR/I any more)
+  0            ignored        >=2          IDR(PBB)(PBB)...   (No IDR/I any more)
+  1            0                ignored    IDRIIIIIII...      (No IDR any more)
+  1            1                ignored    IDR IDR IDR IDR...
+  1            >=2              ignored    IDRII IDRII IDR... (1/3/ignore)
+  >=2          0                1          IDRPPP IPPP I...   (3/0/1)
+  >=2          0              >=2          IDR(PBB)(PBB)(IBB) (6/0/3)
+                                              (PBB)(IBB)(PBB)(IBB)... 
+  >=2          >=2              1          IDRPPPPP IPPPPP IPPPPP (6/18/1)
+                                           IDRPPPPP IPPPPP IPPPPP...
+  >=2          >=2              >=2        {IDR(PBB)(PBB)(IBB)(PBB)(IBB)(PBB)} (6/18/3)
+                                           {IDR(PBB)(PBB)(IBB)(PBB)(IBB)(PBB)}...
+                                           {IDR(PBB)(PBB)(IBB)(PBB)}           (6/12/3)
+                                           {IDR(PBB)(PBB)(IBB)(PBB)}...
+                                           {IDR(PBB)(PBB)}                     (6/6/3)
+                                           {IDR(PBB)(PBB)}.
+*/
+
+/*
+ * Return displaying order with specified periods and encoding order
+ * displaying_order: displaying order
+ * frame_type: frame type 
+ */
+#define FRAME_P 0
+#define FRAME_B 1
+#define FRAME_I 2
+#define FRAME_IDR 7
+void encoding2display_order(
+    unsigned long long encoding_order,int intra_period,
+    int intra_idr_period,int ip_period,
+    unsigned long long *displaying_order,
+    int *frame_type)
+{
+    int encoding_order_gop = 0;
+
+    if (intra_period == 1) { /* all are I/IDR frames */
+        *displaying_order = encoding_order;
+        if (intra_idr_period == 0)
+            *frame_type = (encoding_order == 0)?FRAME_IDR:FRAME_I;
+        else
+            *frame_type = (encoding_order % intra_idr_period == 0)?FRAME_IDR:FRAME_I;
+        return;
+    }
+
+    if (intra_period == 0)
+        intra_idr_period = 0;
+
+    /* new sequence like
+     * IDR PPPPP IPPPPP
+     * IDR (PBB)(PBB)(IBB)(PBB)
+     */
+    encoding_order_gop = (intra_idr_period == 0)? encoding_order:
+        (encoding_order % (intra_idr_period + ((ip_period == 1)?0:1)));
+         
+    if (encoding_order_gop == 0) { /* the first frame */
+        *frame_type = FRAME_IDR;
+        *displaying_order = encoding_order;
+    } else if (((encoding_order_gop - 1) % ip_period) != 0) { /* B frames */
+	*frame_type = FRAME_B;
+        *displaying_order = encoding_order - 1;
+    } else if ((intra_period != 0) && /* have I frames */
+               (encoding_order_gop >= 2) &&
+               ((ip_period == 1 && encoding_order_gop % intra_period == 0) || /* for IDR PPPPP IPPPP */
+                /* for IDR (PBB)(PBB)(IBB) */
+                (ip_period >= 2 && ((encoding_order_gop - 1) / ip_period % (intra_period / ip_period)) == 0))) {
+	*frame_type = FRAME_I;
+	*displaying_order = encoding_order + ip_period - 1;
+    } else {
+	*frame_type = FRAME_P;
+	*displaying_order = encoding_order + ip_period - 1;
+    }
+}
+
+
+static char *fourcc_to_string(int fourcc)
+{
+    switch (fourcc) {
+    case VA_FOURCC_NV12:
+        return "NV12";
+    case VA_FOURCC_IYUV:
+        return "IYUV";
+    case VA_FOURCC_YV12:
+        return "YV12";
+    case VA_FOURCC_UYVY:
+        return "UYVY";
+    default:
+        return "Unknown";
+    }
+}
+
+static int string_to_fourcc(char *str)
+{
+    int fourcc;
+    
+    if (!strncmp(str, "NV12", 4))
+        fourcc = VA_FOURCC_NV12;
+    else if (!strncmp(str, "IYUV", 4))
+        fourcc = VA_FOURCC_IYUV;
+    else if (!strncmp(str, "YV12", 4))
+        fourcc = VA_FOURCC_YV12;
+    else if (!strncmp(str, "UYVY", 4))
+        fourcc = VA_FOURCC_UYVY;
+    else {
+        printf("Unknow FOURCC\n");
+        fourcc = -1;
+    }
+    return fourcc;
+}
+
+
+static char *rc_to_string(int rcmode)
+{
+    switch (rc_mode) {
+    case VA_RC_NONE:
+        return "NONE";
+    case VA_RC_CBR:
+        return "CBR";
+    case VA_RC_VBR:
+        return "VBR";
+    case VA_RC_VCM:
+        return "VCM";
+    case VA_RC_CQP:
+        return "CQP";
+    case VA_RC_VBR_CONSTRAINED:
+        return "VBR_CONSTRAINED";
+    default:
+        return "Unknown";
+    }
+}
+
+static int string_to_rc(char *str)
+{
+    int rc_mode;
+    
+    if (!strncmp(str, "NONE", 4))
+        rc_mode = VA_RC_NONE;
+    else if (!strncmp(str, "CBR", 3))
+        rc_mode = VA_RC_CBR;
+    else if (!strncmp(str, "VBR", 3))
+        rc_mode = VA_RC_VBR;
+    else if (!strncmp(str, "VCM", 3))
+        rc_mode = VA_RC_VCM;
+    else if (!strncmp(str, "CQP", 3))
+        rc_mode = VA_RC_CQP;
+    else if (!strncmp(str, "VBR_CONSTRAINED", 15))
+        rc_mode = VA_RC_VBR_CONSTRAINED;
+    else {
+        printf("Unknown RC mode\n");
+        rc_mode = -1;
+    }
+    return rc_mode;
+}
+
+
+static int print_help(void)
+{
+    printf("./h264encode <options>\n");
+    printf("   -w <width> -h <height>\n");
+    printf("   -framecount <frame number>\n");
+    printf("   -n <frame number>\n");
+    printf("      if set to 0 and srcyuv is set, the frame count is from srcuv file\n");
+    printf("   -o <coded file>\n");
+    printf("   -f <frame rate>\n");
+    printf("   --intra_period <number>\n");
+    printf("   --idr_period <number>\n");
+    printf("   --ip_period <number>\n");
+    printf("   --bitrate <bitrate>\n");
+    printf("   --initialqp <number>\n");
+    printf("   --minqp <number>\n");
+    printf("   --rcmode <NONE|CBR|VBR|VCM|CQP|VBR_CONTRAINED>\n");
+    printf("   --syncmode: sequentially upload source, encoding, save result, no multi-thread\n");
+    printf("   --srcyuv <filename> load YUV from a file\n");
+    printf("   --fourcc <NV12|IYUV|YV12> source YUV fourcc\n");
+    printf("   --recyuv <filename> save reconstructed YUV into a file\n");
+    printf("   --enablePSNR calculate PSNR of recyuv vs. srcyuv\n");
+    printf("   --entropy <0|1>, 1 means cabac, 0 cavlc\n");
+    printf("   --profile <BP|MP|HP>\n");
+    return 0;
+}
+
+static int process_cmdline(int argc, char *argv[])
+{
+    char c;
+    const struct option long_opts[] = {
+        {"help", no_argument, NULL, 0 },
+        {"bitrate", required_argument, NULL, 1 },
+        {"minqp", required_argument, NULL, 2 },
+        {"initialqp", required_argument, NULL, 3 },
+        {"intra_period", required_argument, NULL, 4 },
+        {"idr_period", required_argument, NULL, 5 },
+        {"ip_period", required_argument, NULL, 6 },
+        {"rcmode", required_argument, NULL, 7 },
+        {"srcyuv", required_argument, NULL, 9 },
+        {"recyuv", required_argument, NULL, 10 },
+        {"fourcc", required_argument, NULL, 11 },
+        {"syncmode", no_argument, NULL, 12 },
+        {"enablePSNR", no_argument, NULL, 13 },
+        {"prit", required_argument, NULL, 14 },
+        {"priv", required_argument, NULL, 15 },
+        {"framecount", required_argument, NULL, 16 },
+        {"entropy", required_argument, NULL, 17 },
+        {"profile", required_argument, NULL, 18 },
+        {NULL, no_argument, NULL, 0 }};
+    int long_index;
+    
+    while ((c =getopt_long_only(argc,argv,"w:h:n:f:o:?",long_opts,&long_index)) != EOF) {
+        switch (c) {
+        case 'w':
+            frame_width = atoi(optarg);
+            break;
+        case 'h':
+            frame_height = atoi(optarg);
+            break;
+        case 'n':
+        case 16:
+            frame_count = atoi(optarg);
+            break;
+        case 'f':
+            frame_rate = atoi(optarg);
+            break;
+        case 'o':
+            coded_fn = strdup(optarg);
+            break;
+        case 0:
+            print_help();
+            exit(0);
+        case 1:
+            frame_bitrate = atoi(optarg);
+            break;
+        case 2:
+            minimal_qp = atoi(optarg);
+            break;
+        case 3:
+            initial_qp = atoi(optarg);
+            break;
+        case 4:
+            intra_period = atoi(optarg);
+            break;
+        case 5:
+            intra_idr_period = atoi(optarg);
+            break;
+        case 6:
+            ip_period = atoi(optarg);
+            break;
+        case 7:
+            rc_mode = string_to_rc(optarg);
+            if (rc_mode < 0) {
+                print_help();
+                exit(1);
+            }
+            break;
+        case 9:
+            srcyuv_fn = strdup(optarg);
+            break;
+        case 10:
+            recyuv_fn = strdup(optarg);
+            break;
+        case 11:
+            srcyuv_fourcc = string_to_fourcc(optarg);
+            if (srcyuv_fourcc <= 0) {
+                print_help();
+                exit(1);
+            }
+            break;
+        case 12:
+            encode_syncmode = 1;
+            break;
+        case 13:
+            calc_psnr = 1;
+            break;
+        case 14:
+            misc_priv_type = strtol(optarg, NULL, 0);
+            break;
+        case 15:
+            misc_priv_value = strtol(optarg, NULL, 0);
+            break;
+        case 17:
+            h264_entropy_mode = atoi(optarg) ? 1: 0;
+            break;
+        case 18:
+            if (strncmp(optarg, "BP", 2) == 0)
+                h264_profile = VAProfileH264Baseline;
+            else if (strncmp(optarg, "MP", 2) == 0)
+                h264_profile = VAProfileH264Main;
+            else if (strncmp(optarg, "HP", 2) == 0)
+                h264_profile = VAProfileH264High;
+            else
+                h264_profile = 0;
+            break;
+        case ':':
+        case '?':
+            print_help();
+            exit(0);
+        }
+    }
+
+    if (ip_period < 1) {
+	printf(" ip_period must be greater than 0\n");
+        exit(0);
+    }
+    if (intra_period != 1 && intra_period % ip_period != 0) {
+	printf(" intra_period must be a multiplier of ip_period\n");
+        exit(0);        
+    }
+    if (intra_period != 0 && intra_idr_period % intra_period != 0) {
+	printf(" intra_idr_period must be a multiplier of intra_period\n");
+        exit(0);        
+    }
+
+    if (frame_bitrate == 0)
+        frame_bitrate = frame_width * frame_height * 12 * frame_rate / 50;
+        
+    /* open source file */
+    if (srcyuv_fn) {
+        srcyuv_fp = fopen(srcyuv_fn,"r");
+    
+        if (srcyuv_fp == NULL)
+            printf("Open source YUV file %s failed, use auto-generated YUV data\n", srcyuv_fn);
+        else {
+            struct stat tmp;
+
+            fstat(fileno(srcyuv_fp), &tmp);
+            srcyuv_frames = tmp.st_size / (frame_width * frame_height * 1.5);
+            printf("Source YUV file %s with %llu frames\n", srcyuv_fn, srcyuv_frames);
+
+            if (frame_count == 0)
+                frame_count = srcyuv_frames;
+        }
+    }
+
+    /* open source file */
+    if (recyuv_fn) {
+        recyuv_fp = fopen(recyuv_fn,"w+");
+    
+        if (recyuv_fp == NULL)
+            printf("Open reconstructed YUV file %s failed\n", recyuv_fn);
+    }
+    
+    if (coded_fn == NULL) {
+        struct stat buf;
+        if (stat("/tmp", &buf) == 0)
+            coded_fn = strdup("/tmp/test.264");
+        else if (stat("/sdcard", &buf) == 0)
+            coded_fn = strdup("/sdcard/test.264");
+        else
+            coded_fn = strdup("./test.264");
+    }
+    
+    /* store coded data into a file */
+    coded_fp = fopen(coded_fn,"w+");
+    if (coded_fp == NULL) {
+        printf("Open file %s failed, exit\n", coded_fn);
+        exit(1);
+    }
+
+    frame_width_mbaligned = (frame_width + 15) & (~15);
+    frame_height_mbaligned = (frame_height + 15) & (~15);
+    if (frame_width != frame_width_mbaligned ||
+        frame_height != frame_height_mbaligned) {
+        printf("Source frame is %dx%d and will code clip to %dx%d with crop\n",
+               frame_width, frame_height,
+               frame_width_mbaligned, frame_height_mbaligned
+               );
+    }
+    
+    return 0;
+}
+
+static int init_va(void)
+{
+    VAProfile profile_list[]={VAProfileH264High,VAProfileH264Main,VAProfileH264Baseline,VAProfileH264ConstrainedBaseline};
+    VAEntrypoint *entrypoints;
+    int num_entrypoints, slice_entrypoint;
+    int support_encode = 0;    
+    int major_ver, minor_ver;
+    VAStatus va_status;
+    unsigned int i;
+
+    va_dpy = va_open_display();
+    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+    CHECK_VASTATUS(va_status, "vaInitialize");
+
+    num_entrypoints = vaMaxNumEntrypoints(va_dpy);
+    entrypoints = malloc(num_entrypoints * sizeof(*entrypoints));
+    if (!entrypoints) {
+        fprintf(stderr, "error: failed to initialize VA entrypoints array\n");
+        exit(1);
+    }
+
+    /* use the highest profile */
+    for (i = 0; i < sizeof(profile_list)/sizeof(profile_list[0]); i++) {
+        if ((h264_profile != ~0) && h264_profile != profile_list[i])
+            continue;
+        
+        h264_profile = profile_list[i];
+        vaQueryConfigEntrypoints(va_dpy, h264_profile, entrypoints, &num_entrypoints);
+        for (slice_entrypoint = 0; slice_entrypoint < num_entrypoints; slice_entrypoint++) {
+            if (entrypoints[slice_entrypoint] == VAEntrypointEncSlice) {
+                support_encode = 1;
+                break;
+            }
+        }
+        if (support_encode == 1)
+            break;
+    }
+    
+    if (support_encode == 0) {
+        printf("Can't find VAEntrypointEncSlice for H264 profiles\n");
+        exit(1);
+    } else {
+        switch (h264_profile) {
+            case VAProfileH264Baseline:
+                printf("Use profile VAProfileH264Baseline\n");
+                ip_period = 1;
+                constraint_set_flag |= (1 << 0); /* Annex A.2.1 */
+                h264_entropy_mode = 0;
+                break;
+            case VAProfileH264ConstrainedBaseline:
+                printf("Use profile VAProfileH264ConstrainedBaseline\n");
+                constraint_set_flag |= (1 << 0 | 1 << 1); /* Annex A.2.2 */
+                ip_period = 1;
+                break;
+
+            case VAProfileH264Main:
+                printf("Use profile VAProfileH264Main\n");
+                constraint_set_flag |= (1 << 1); /* Annex A.2.2 */
+                break;
+
+            case VAProfileH264High:
+                constraint_set_flag |= (1 << 3); /* Annex A.2.4 */
+                printf("Use profile VAProfileH264High\n");
+                break;
+            default:
+                printf("unknow profile. Set to Baseline");
+                h264_profile = VAProfileH264Baseline;
+                ip_period = 1;
+                constraint_set_flag |= (1 << 0); /* Annex A.2.1 */
+                break;
+        }
+    }
+
+    /* find out the format for the render target, and rate control mode */
+    for (i = 0; i < VAConfigAttribTypeMax; i++)
+        attrib[i].type = i;
+
+    va_status = vaGetConfigAttributes(va_dpy, h264_profile, VAEntrypointEncSlice,
+                                      &attrib[0], VAConfigAttribTypeMax);
+    CHECK_VASTATUS(va_status, "vaGetConfigAttributes");
+    /* check the interested configattrib */
+    if ((attrib[VAConfigAttribRTFormat].value & VA_RT_FORMAT_YUV420) == 0) {
+        printf("Not find desired YUV420 RT format\n");
+        exit(1);
+    } else {
+        config_attrib[config_attrib_num].type = VAConfigAttribRTFormat;
+        config_attrib[config_attrib_num].value = VA_RT_FORMAT_YUV420;
+        config_attrib_num++;
+    }
+    
+    if (attrib[VAConfigAttribRateControl].value != VA_ATTRIB_NOT_SUPPORTED) {
+        int tmp = attrib[VAConfigAttribRateControl].value;
+
+        printf("Support rate control mode (0x%x):", tmp);
+        
+        if (tmp & VA_RC_NONE)
+            printf("NONE ");
+        if (tmp & VA_RC_CBR)
+            printf("CBR ");
+        if (tmp & VA_RC_VBR)
+            printf("VBR ");
+        if (tmp & VA_RC_VCM)
+            printf("VCM ");
+        if (tmp & VA_RC_CQP)
+            printf("CQP ");
+        if (tmp & VA_RC_VBR_CONSTRAINED)
+            printf("VBR_CONSTRAINED ");
+
+        printf("\n");
+
+        if (rc_mode == -1 || !(rc_mode & tmp))  {
+            if (rc_mode != -1) {
+                printf("Warning: Don't support the specified RateControl mode: %s!!!, switch to ", rc_to_string(rc_mode));
+            }
+
+            for (i = 0; i < sizeof(rc_default_modes) / sizeof(rc_default_modes[0]); i++) {
+                if (rc_default_modes[i] & tmp) {
+                    rc_mode = rc_default_modes[i];
+                    break;
+                }
+            }
+
+            printf("RateControl mode: %s\n", rc_to_string(rc_mode));
+        }
+
+        config_attrib[config_attrib_num].type = VAConfigAttribRateControl;
+        config_attrib[config_attrib_num].value = rc_mode;
+        config_attrib_num++;
+    }
+    
+
+    if (attrib[VAConfigAttribEncPackedHeaders].value != VA_ATTRIB_NOT_SUPPORTED) {
+        int tmp = attrib[VAConfigAttribEncPackedHeaders].value;
+
+        printf("Support VAConfigAttribEncPackedHeaders\n");
+        
+        h264_packedheader = 1;
+        config_attrib[config_attrib_num].type = VAConfigAttribEncPackedHeaders;
+        config_attrib[config_attrib_num].value = VA_ENC_PACKED_HEADER_NONE;
+        
+        if (tmp & VA_ENC_PACKED_HEADER_SEQUENCE) {
+            printf("Support packed sequence headers\n");
+            config_attrib[config_attrib_num].value |= VA_ENC_PACKED_HEADER_SEQUENCE;
+        }
+        
+        if (tmp & VA_ENC_PACKED_HEADER_PICTURE) {
+            printf("Support packed picture headers\n");
+            config_attrib[config_attrib_num].value |= VA_ENC_PACKED_HEADER_PICTURE;
+        }
+        
+        if (tmp & VA_ENC_PACKED_HEADER_SLICE) {
+            printf("Support packed slice headers\n");
+            config_attrib[config_attrib_num].value |= VA_ENC_PACKED_HEADER_SLICE;
+        }
+        
+        if (tmp & VA_ENC_PACKED_HEADER_MISC) {
+            printf("Support packed misc headers\n");
+            config_attrib[config_attrib_num].value |= VA_ENC_PACKED_HEADER_MISC;
+        }
+        
+        enc_packed_header_idx = config_attrib_num;
+        config_attrib_num++;
+    }
+
+    if (attrib[VAConfigAttribEncInterlaced].value != VA_ATTRIB_NOT_SUPPORTED) {
+        int tmp = attrib[VAConfigAttribEncInterlaced].value;
+        
+        printf("Support VAConfigAttribEncInterlaced\n");
+
+        if (tmp & VA_ENC_INTERLACED_FRAME)
+            printf("support VA_ENC_INTERLACED_FRAME\n");
+        if (tmp & VA_ENC_INTERLACED_FIELD)
+            printf("Support VA_ENC_INTERLACED_FIELD\n");
+        if (tmp & VA_ENC_INTERLACED_MBAFF)
+            printf("Support VA_ENC_INTERLACED_MBAFF\n");
+        if (tmp & VA_ENC_INTERLACED_PAFF)
+            printf("Support VA_ENC_INTERLACED_PAFF\n");
+        
+        config_attrib[config_attrib_num].type = VAConfigAttribEncInterlaced;
+        config_attrib[config_attrib_num].value = VA_ENC_PACKED_HEADER_NONE;
+        config_attrib_num++;
+    }
+    
+    if (attrib[VAConfigAttribEncMaxRefFrames].value != VA_ATTRIB_NOT_SUPPORTED) {
+        h264_maxref = attrib[VAConfigAttribEncMaxRefFrames].value;
+        
+        printf("Support %d RefPicList0 and %d RefPicList1\n",
+               h264_maxref & 0xffff, (h264_maxref >> 16) & 0xffff );
+    }
+
+    if (attrib[VAConfigAttribEncMaxSlices].value != VA_ATTRIB_NOT_SUPPORTED)
+        printf("Support %d slices\n", attrib[VAConfigAttribEncMaxSlices].value);
+
+    if (attrib[VAConfigAttribEncSliceStructure].value != VA_ATTRIB_NOT_SUPPORTED) {
+        int tmp = attrib[VAConfigAttribEncSliceStructure].value;
+        
+        printf("Support VAConfigAttribEncSliceStructure\n");
+
+        if (tmp & VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS)
+            printf("Support VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS\n");
+        if (tmp & VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS)
+            printf("Support VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS\n");
+        if (tmp & VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS)
+            printf("Support VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS\n");
+    }
+    if (attrib[VAConfigAttribEncMacroblockInfo].value != VA_ATTRIB_NOT_SUPPORTED) {
+        printf("Support VAConfigAttribEncMacroblockInfo\n");
+    }
+
+    free(entrypoints);
+    return 0;
+}
+
+static int setup_encode()
+{
+    VAStatus va_status;
+    VASurfaceID *tmp_surfaceid;
+    int codedbuf_size, i;
+    
+    va_status = vaCreateConfig(va_dpy, h264_profile, VAEntrypointEncSlice,
+            &config_attrib[0], config_attrib_num, &config_id);
+    CHECK_VASTATUS(va_status, "vaCreateConfig");
+
+    /* create source surfaces */
+    va_status = vaCreateSurfaces(va_dpy,
+                                 VA_RT_FORMAT_YUV420, frame_width_mbaligned, frame_height_mbaligned,
+                                 &src_surface[0], SURFACE_NUM,
+                                 NULL, 0);
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+    /* create reference surfaces */
+    va_status = vaCreateSurfaces(
+        va_dpy,
+        VA_RT_FORMAT_YUV420, frame_width_mbaligned, frame_height_mbaligned,
+        &ref_surface[0], SURFACE_NUM,
+        NULL, 0
+        );
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+
+    tmp_surfaceid = calloc(2 * SURFACE_NUM, sizeof(VASurfaceID));
+    memcpy(tmp_surfaceid, src_surface, SURFACE_NUM * sizeof(VASurfaceID));
+    memcpy(tmp_surfaceid + SURFACE_NUM, ref_surface, SURFACE_NUM * sizeof(VASurfaceID));
+    
+    /* Create a context for this encode pipe */
+    va_status = vaCreateContext(va_dpy, config_id,
+                                frame_width_mbaligned, frame_height_mbaligned,
+                                VA_PROGRESSIVE,
+                                tmp_surfaceid, 2 * SURFACE_NUM,
+                                &context_id);
+    CHECK_VASTATUS(va_status, "vaCreateContext");
+    free(tmp_surfaceid);
+
+    codedbuf_size = (frame_width_mbaligned * frame_height_mbaligned * 400) / (16*16);
+
+    for (i = 0; i < SURFACE_NUM; i++) {
+        /* create coded buffer once for all
+         * other VA buffers which won't be used again after vaRenderPicture.
+         * so APP can always vaCreateBuffer for every frame
+         * but coded buffer need to be mapped and accessed after vaRenderPicture/vaEndPicture
+         * so VA won't maintain the coded buffer
+         */
+        va_status = vaCreateBuffer(va_dpy,context_id,VAEncCodedBufferType,
+                codedbuf_size, 1, NULL, &coded_buf[i]);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+    }
+    
+    return 0;
+}
+
+
+
+#define partition(ref, field, key, ascending)   \
+    while (i <= j) {                            \
+        if (ascending) {                        \
+            while (ref[i].field < key)          \
+                i++;                            \
+            while (ref[j].field > key)          \
+                j--;                            \
+        } else {                                \
+            while (ref[i].field > key)          \
+                i++;                            \
+            while (ref[j].field < key)          \
+                j--;                            \
+        }                                       \
+        if (i <= j) {                           \
+            tmp = ref[i];                       \
+            ref[i] = ref[j];                    \
+            ref[j] = tmp;                       \
+            i++;                                \
+            j--;                                \
+        }                                       \
+    }                                           \
+
+static void sort_one(VAPictureH264 ref[], int left, int right,
+                     int ascending, int frame_idx)
+{
+    int i = left, j = right;
+    unsigned int key;
+    VAPictureH264 tmp;
+
+    if (frame_idx) {
+        key = ref[(left + right) / 2].frame_idx;
+        partition(ref, frame_idx, key, ascending);
+    } else {
+        key = ref[(left + right) / 2].TopFieldOrderCnt;
+        partition(ref, TopFieldOrderCnt, (signed int)key, ascending);
+    }
+    
+    /* recursion */
+    if (left < j)
+        sort_one(ref, left, j, ascending, frame_idx);
+    
+    if (i < right)
+        sort_one(ref, i, right, ascending, frame_idx);
+}
+
+static void sort_two(VAPictureH264 ref[], int left, int right, unsigned int key, unsigned int frame_idx,
+                     int partition_ascending, int list0_ascending, int list1_ascending)
+{
+    int i = left, j = right;
+    VAPictureH264 tmp;
+
+    if (frame_idx) {
+        partition(ref, frame_idx, key, partition_ascending);
+    } else {
+        partition(ref, TopFieldOrderCnt, (signed int)key, partition_ascending);
+    }
+    
+
+    sort_one(ref, left, i-1, list0_ascending, frame_idx);
+    sort_one(ref, j+1, right, list1_ascending, frame_idx);
+}
+
+static int update_ReferenceFrames(void)
+{
+    int i;
+    
+    if (current_frame_type == FRAME_B)
+        return 0;
+
+    CurrentCurrPic.flags = VA_PICTURE_H264_SHORT_TERM_REFERENCE;
+    numShortTerm++;
+    if (numShortTerm > num_ref_frames)
+        numShortTerm = num_ref_frames;
+    for (i=numShortTerm-1; i>0; i--)
+        ReferenceFrames[i] = ReferenceFrames[i-1];
+    ReferenceFrames[0] = CurrentCurrPic;
+    
+    if (current_frame_type != FRAME_B)
+        current_frame_num++;
+    if (current_frame_num > MaxFrameNum)
+        current_frame_num = 0;
+    
+    return 0;
+}
+
+
+static int update_RefPicList(void)
+{
+    unsigned int current_poc = CurrentCurrPic.TopFieldOrderCnt;
+    
+    if (current_frame_type == FRAME_P) {
+        memcpy(RefPicList0_P, ReferenceFrames, numShortTerm * sizeof(VAPictureH264));
+        sort_one(RefPicList0_P, 0, numShortTerm-1, 0, 1);
+    }
+    
+    if (current_frame_type == FRAME_B) {
+        memcpy(RefPicList0_B, ReferenceFrames, numShortTerm * sizeof(VAPictureH264));
+        sort_two(RefPicList0_B, 0, numShortTerm-1, current_poc, 0,
+                 1, 0, 1);
+
+        memcpy(RefPicList1_B, ReferenceFrames, numShortTerm * sizeof(VAPictureH264));
+        sort_two(RefPicList1_B, 0, numShortTerm-1, current_poc, 0,
+                 0, 1, 0);
+    }
+    
+    return 0;
+}
+
+
+static int render_sequence(void)
+{
+    VABufferID seq_param_buf, rc_param_buf, misc_param_tmpbuf, render_id[2];
+    VAStatus va_status;
+    VAEncMiscParameterBuffer *misc_param, *misc_param_tmp;
+    VAEncMiscParameterRateControl *misc_rate_ctrl;
+    
+    seq_param.level_idc = 41 /*SH_LEVEL_3*/;
+    seq_param.picture_width_in_mbs = frame_width_mbaligned / 16;
+    seq_param.picture_height_in_mbs = frame_height_mbaligned / 16;
+    seq_param.bits_per_second = frame_bitrate;
+
+    seq_param.intra_period = intra_period;
+    seq_param.intra_idr_period = intra_idr_period;
+    seq_param.ip_period = ip_period;
+
+    seq_param.max_num_ref_frames = num_ref_frames;
+    seq_param.seq_fields.bits.frame_mbs_only_flag = 1;
+    seq_param.time_scale = 900;
+    seq_param.num_units_in_tick = 15; /* Tc = num_units_in_tick / time_sacle */
+    seq_param.seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4 = Log2MaxPicOrderCntLsb - 4;
+    seq_param.seq_fields.bits.log2_max_frame_num_minus4 = Log2MaxFrameNum - 4;;
+    seq_param.seq_fields.bits.frame_mbs_only_flag = 1;
+    seq_param.seq_fields.bits.chroma_format_idc = 1;
+    seq_param.seq_fields.bits.direct_8x8_inference_flag = 1;
+    
+    if (frame_width != frame_width_mbaligned ||
+        frame_height != frame_height_mbaligned) {
+        seq_param.frame_cropping_flag = 1;
+        seq_param.frame_crop_left_offset = 0;
+        seq_param.frame_crop_right_offset = (frame_width_mbaligned - frame_width)/2;
+        seq_param.frame_crop_top_offset = 0;
+        seq_param.frame_crop_bottom_offset = (frame_height_mbaligned - frame_height)/2;
+    }
+    
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                               VAEncSequenceParameterBufferType,
+                               sizeof(seq_param),1,&seq_param,&seq_param_buf);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+    
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                               VAEncMiscParameterBufferType,
+                               sizeof(VAEncMiscParameterBuffer) + sizeof(VAEncMiscParameterRateControl),
+                               1,NULL,&rc_param_buf);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+    
+    vaMapBuffer(va_dpy, rc_param_buf,(void **)&misc_param);
+    misc_param->type = VAEncMiscParameterTypeRateControl;
+    misc_rate_ctrl = (VAEncMiscParameterRateControl *)misc_param->data;
+    memset(misc_rate_ctrl, 0, sizeof(*misc_rate_ctrl));
+    misc_rate_ctrl->bits_per_second = frame_bitrate;
+    misc_rate_ctrl->target_percentage = 66;
+    misc_rate_ctrl->window_size = 1000;
+    misc_rate_ctrl->initial_qp = initial_qp;
+    misc_rate_ctrl->min_qp = minimal_qp;
+    misc_rate_ctrl->basic_unit_size = 0;
+    vaUnmapBuffer(va_dpy, rc_param_buf);
+
+    render_id[0] = seq_param_buf;
+    render_id[1] = rc_param_buf;
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &render_id[0], 2);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");;
+
+    if (misc_priv_type != 0) {
+        va_status = vaCreateBuffer(va_dpy, context_id,
+                                   VAEncMiscParameterBufferType,
+                                   sizeof(VAEncMiscParameterBuffer),
+                                   1, NULL, &misc_param_tmpbuf);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+        vaMapBuffer(va_dpy, misc_param_tmpbuf,(void **)&misc_param_tmp);
+        misc_param_tmp->type = misc_priv_type;
+        misc_param_tmp->data[0] = misc_priv_value;
+        vaUnmapBuffer(va_dpy, misc_param_tmpbuf);
+    
+        va_status = vaRenderPicture(va_dpy,context_id, &misc_param_tmpbuf, 1);
+    }
+    
+    return 0;
+}
+
+static int calc_poc(int pic_order_cnt_lsb)
+{
+    static int PicOrderCntMsb_ref = 0, pic_order_cnt_lsb_ref = 0;
+    int prevPicOrderCntMsb, prevPicOrderCntLsb;
+    int PicOrderCntMsb, TopFieldOrderCnt;
+    
+    if (current_frame_type == FRAME_IDR)
+        prevPicOrderCntMsb = prevPicOrderCntLsb = 0;
+    else {
+        prevPicOrderCntMsb = PicOrderCntMsb_ref;
+        prevPicOrderCntLsb = pic_order_cnt_lsb_ref;
+    }
+    
+    if ((pic_order_cnt_lsb < prevPicOrderCntLsb) &&
+        ((prevPicOrderCntLsb - pic_order_cnt_lsb) >= (int)(MaxPicOrderCntLsb / 2)))
+        PicOrderCntMsb = prevPicOrderCntMsb + MaxPicOrderCntLsb;
+    else if ((pic_order_cnt_lsb > prevPicOrderCntLsb) &&
+             ((pic_order_cnt_lsb - prevPicOrderCntLsb) > (int)(MaxPicOrderCntLsb / 2)))
+        PicOrderCntMsb = prevPicOrderCntMsb - MaxPicOrderCntLsb;
+    else
+        PicOrderCntMsb = prevPicOrderCntMsb;
+    
+    TopFieldOrderCnt = PicOrderCntMsb + pic_order_cnt_lsb;
+
+    if (current_frame_type != FRAME_B) {
+        PicOrderCntMsb_ref = PicOrderCntMsb;
+        pic_order_cnt_lsb_ref = pic_order_cnt_lsb;
+    }
+    
+    return TopFieldOrderCnt;
+}
+
+static int render_picture(void)
+{
+    VABufferID pic_param_buf;
+    VAStatus va_status;
+    int i = 0;
+
+    pic_param.CurrPic.picture_id = ref_surface[current_slot];
+    pic_param.CurrPic.frame_idx = current_frame_num;
+    pic_param.CurrPic.flags = 0;
+    pic_param.CurrPic.TopFieldOrderCnt = calc_poc((current_frame_display - current_IDR_display) % MaxPicOrderCntLsb);
+    pic_param.CurrPic.BottomFieldOrderCnt = pic_param.CurrPic.TopFieldOrderCnt;
+    CurrentCurrPic = pic_param.CurrPic;
+
+    if (getenv("TO_DEL")) { /* set RefPicList into ReferenceFrames */
+        update_RefPicList(); /* calc RefPicList */
+        memset(pic_param.ReferenceFrames, 0xff, 16 * sizeof(VAPictureH264)); /* invalid all */
+        if (current_frame_type == FRAME_P) {
+            pic_param.ReferenceFrames[0] = RefPicList0_P[0];
+        } else if (current_frame_type == FRAME_B) {
+            pic_param.ReferenceFrames[0] = RefPicList0_B[0];
+            pic_param.ReferenceFrames[1] = RefPicList1_B[0];
+        }
+    } else {
+        memcpy(pic_param.ReferenceFrames, ReferenceFrames, numShortTerm*sizeof(VAPictureH264));
+        for (i = numShortTerm; i < SURFACE_NUM; i++) {
+            pic_param.ReferenceFrames[i].picture_id = VA_INVALID_SURFACE;
+            pic_param.ReferenceFrames[i].flags = VA_PICTURE_H264_INVALID;
+        }
+    }
+    
+    pic_param.pic_fields.bits.idr_pic_flag = (current_frame_type == FRAME_IDR);
+    pic_param.pic_fields.bits.reference_pic_flag = (current_frame_type != FRAME_B);
+    pic_param.pic_fields.bits.entropy_coding_mode_flag = h264_entropy_mode;
+    pic_param.pic_fields.bits.deblocking_filter_control_present_flag = 1;
+    pic_param.frame_num = current_frame_num;
+    pic_param.coded_buf = coded_buf[current_slot];
+    pic_param.last_picture = (current_frame_encoding == frame_count);
+    pic_param.pic_init_qp = initial_qp;
+
+    va_status = vaCreateBuffer(va_dpy, context_id,VAEncPictureParameterBufferType,
+                               sizeof(pic_param),1,&pic_param, &pic_param_buf);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");;
+
+    va_status = vaRenderPicture(va_dpy,context_id, &pic_param_buf, 1);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+
+    return 0;
+}
+
+static int render_packedsequence(void)
+{
+    VAEncPackedHeaderParameterBuffer packedheader_param_buffer;
+    VABufferID packedseq_para_bufid, packedseq_data_bufid, render_id[2];
+    unsigned int length_in_bits;
+    unsigned char *packedseq_buffer = NULL;
+    VAStatus va_status;
+
+    length_in_bits = build_packed_seq_buffer(&packedseq_buffer); 
+    
+    packedheader_param_buffer.type = VAEncPackedHeaderSequence;
+    
+    packedheader_param_buffer.bit_length = length_in_bits; /*length_in_bits*/
+    packedheader_param_buffer.has_emulation_bytes = 0;
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderParameterBufferType,
+                               sizeof(packedheader_param_buffer), 1, &packedheader_param_buffer,
+                               &packedseq_para_bufid);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderDataBufferType,
+                               (length_in_bits + 7) / 8, 1, packedseq_buffer,
+                               &packedseq_data_bufid);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    render_id[0] = packedseq_para_bufid;
+    render_id[1] = packedseq_data_bufid;
+    va_status = vaRenderPicture(va_dpy,context_id, render_id, 2);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+
+    free(packedseq_buffer);
+    
+    return 0;
+}
+
+
+static int render_packedpicture(void)
+{
+    VAEncPackedHeaderParameterBuffer packedheader_param_buffer;
+    VABufferID packedpic_para_bufid, packedpic_data_bufid, render_id[2];
+    unsigned int length_in_bits;
+    unsigned char *packedpic_buffer = NULL;
+    VAStatus va_status;
+
+    length_in_bits = build_packed_pic_buffer(&packedpic_buffer); 
+    packedheader_param_buffer.type = VAEncPackedHeaderPicture;
+    packedheader_param_buffer.bit_length = length_in_bits;
+    packedheader_param_buffer.has_emulation_bytes = 0;
+
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderParameterBufferType,
+                               sizeof(packedheader_param_buffer), 1, &packedheader_param_buffer,
+                               &packedpic_para_bufid);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderDataBufferType,
+                               (length_in_bits + 7) / 8, 1, packedpic_buffer,
+                               &packedpic_data_bufid);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    render_id[0] = packedpic_para_bufid;
+    render_id[1] = packedpic_data_bufid;
+    va_status = vaRenderPicture(va_dpy,context_id, render_id, 2);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+
+    free(packedpic_buffer);
+    
+    return 0;
+}
+
+static void render_packedsei(void)
+{
+    VAEncPackedHeaderParameterBuffer packed_header_param_buffer;
+    VABufferID packed_sei_header_param_buf_id, packed_sei_buf_id, render_id[2];
+    unsigned int length_in_bits /*offset_in_bytes*/;
+    unsigned char *packed_sei_buffer = NULL;
+    VAStatus va_status;
+    int init_cpb_size, target_bit_rate, i_initial_cpb_removal_delay_length, i_initial_cpb_removal_delay;
+    int i_cpb_removal_delay, i_dpb_output_delay_length, i_cpb_removal_delay_length;
+
+    /* it comes for the bps defined in SPS */
+    target_bit_rate = frame_bitrate;
+    init_cpb_size = (target_bit_rate * 8) >> 10;
+    i_initial_cpb_removal_delay = init_cpb_size * 0.5 * 1024 / target_bit_rate * 90000;
+
+    i_cpb_removal_delay = 2;
+    i_initial_cpb_removal_delay_length = 24;
+    i_cpb_removal_delay_length = 24;
+    i_dpb_output_delay_length = 24;
+    
+
+    length_in_bits = build_packed_sei_buffer_timing(
+        i_initial_cpb_removal_delay_length,
+        i_initial_cpb_removal_delay,
+        0,
+        i_cpb_removal_delay_length,
+        i_cpb_removal_delay * current_frame_encoding,
+        i_dpb_output_delay_length,
+        0,
+        &packed_sei_buffer);
+
+    //offset_in_bytes = 0;
+    packed_header_param_buffer.type = VAEncPackedHeaderH264_SEI;
+    packed_header_param_buffer.bit_length = length_in_bits;
+    packed_header_param_buffer.has_emulation_bytes = 0;
+
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderParameterBufferType,
+                               sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
+                               &packed_sei_header_param_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderDataBufferType,
+                               (length_in_bits + 7) / 8, 1, packed_sei_buffer,
+                               &packed_sei_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+
+    render_id[0] = packed_sei_header_param_buf_id;
+    render_id[1] = packed_sei_buf_id;
+    va_status = vaRenderPicture(va_dpy,context_id, render_id, 2);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+
+    
+    free(packed_sei_buffer);
+        
+    return;
+}
+
+
+static int render_hrd(void)
+{
+    VABufferID misc_parameter_hrd_buf_id;
+    VAStatus va_status;
+    VAEncMiscParameterBuffer *misc_param;
+    VAEncMiscParameterHRD *misc_hrd_param;
+    
+    va_status = vaCreateBuffer(va_dpy, context_id,
+                   VAEncMiscParameterBufferType,
+                   sizeof(VAEncMiscParameterBuffer) + sizeof(VAEncMiscParameterHRD),
+                   1,
+                   NULL, 
+                   &misc_parameter_hrd_buf_id);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    vaMapBuffer(va_dpy,
+                misc_parameter_hrd_buf_id,
+                (void **)&misc_param);
+    misc_param->type = VAEncMiscParameterTypeHRD;
+    misc_hrd_param = (VAEncMiscParameterHRD *)misc_param->data;
+
+    if (frame_bitrate > 0) {
+        misc_hrd_param->initial_buffer_fullness = frame_bitrate * 1024 * 4;
+        misc_hrd_param->buffer_size = frame_bitrate * 1024 * 8;
+    } else {
+        misc_hrd_param->initial_buffer_fullness = 0;
+        misc_hrd_param->buffer_size = 0;
+    }
+    vaUnmapBuffer(va_dpy, misc_parameter_hrd_buf_id);
+
+    va_status = vaRenderPicture(va_dpy,context_id, &misc_parameter_hrd_buf_id, 1);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");;
+
+    return 0;
+}
+
+static void render_packedslice()
+{
+    VAEncPackedHeaderParameterBuffer packedheader_param_buffer;
+    VABufferID packedslice_para_bufid, packedslice_data_bufid, render_id[2];
+    unsigned int length_in_bits;
+    unsigned char *packedslice_buffer = NULL;
+    VAStatus va_status;
+
+    length_in_bits = build_packed_slice_buffer(&packedslice_buffer);
+    packedheader_param_buffer.type = VAEncPackedHeaderSlice;
+    packedheader_param_buffer.bit_length = length_in_bits;
+    packedheader_param_buffer.has_emulation_bytes = 0;
+
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderParameterBufferType,
+                               sizeof(packedheader_param_buffer), 1, &packedheader_param_buffer,
+                               &packedslice_para_bufid);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderDataBufferType,
+                               (length_in_bits + 7) / 8, 1, packedslice_buffer,
+                               &packedslice_data_bufid);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    render_id[0] = packedslice_para_bufid;
+    render_id[1] = packedslice_data_bufid;
+    va_status = vaRenderPicture(va_dpy,context_id, render_id, 2);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+
+    free(packedslice_buffer);
+}
+
+static int render_slice(void)
+{
+    VABufferID slice_param_buf;
+    VAStatus va_status;
+    int i;
+
+    update_RefPicList();
+    
+    /* one frame, one slice */
+    slice_param.macroblock_address = 0;
+    slice_param.num_macroblocks = frame_width_mbaligned * frame_height_mbaligned/(16*16); /* Measured by MB */
+    slice_param.slice_type = (current_frame_type == FRAME_IDR)?2:current_frame_type;
+    if (current_frame_type == FRAME_IDR) {
+        if (current_frame_encoding != 0)
+            ++slice_param.idr_pic_id;
+    } else if (current_frame_type == FRAME_P) {
+        int refpiclist0_max = h264_maxref & 0xffff;
+        memcpy(slice_param.RefPicList0, RefPicList0_P, refpiclist0_max*sizeof(VAPictureH264));
+
+        for (i = refpiclist0_max; i < 32; i++) {
+            slice_param.RefPicList0[i].picture_id = VA_INVALID_SURFACE;
+            slice_param.RefPicList0[i].flags = VA_PICTURE_H264_INVALID;
+        }
+    } else if (current_frame_type == FRAME_B) {
+        int refpiclist0_max = h264_maxref & 0xffff;
+        int refpiclist1_max = (h264_maxref >> 16) & 0xffff;
+
+        memcpy(slice_param.RefPicList0, RefPicList0_B, refpiclist0_max*sizeof(VAPictureH264));
+        for (i = refpiclist0_max; i < 32; i++) {
+            slice_param.RefPicList0[i].picture_id = VA_INVALID_SURFACE;
+            slice_param.RefPicList0[i].flags = VA_PICTURE_H264_INVALID;
+        }
+
+        memcpy(slice_param.RefPicList1, RefPicList1_B, refpiclist1_max*sizeof(VAPictureH264));
+        for (i = refpiclist1_max; i < 32; i++) {
+            slice_param.RefPicList1[i].picture_id = VA_INVALID_SURFACE;
+            slice_param.RefPicList1[i].flags = VA_PICTURE_H264_INVALID;
+        }
+    }
+
+    slice_param.slice_alpha_c0_offset_div2 = 0;
+    slice_param.slice_beta_offset_div2 = 0;
+    slice_param.direct_spatial_mv_pred_flag = 1;
+    slice_param.pic_order_cnt_lsb = (current_frame_display - current_IDR_display) % MaxPicOrderCntLsb;
+    
+
+    if (h264_packedheader &&
+        config_attrib[enc_packed_header_idx].value & VA_ENC_PACKED_HEADER_SLICE)
+        render_packedslice();
+
+    va_status = vaCreateBuffer(va_dpy,context_id,VAEncSliceParameterBufferType,
+                               sizeof(slice_param),1,&slice_param,&slice_param_buf);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");;
+
+    va_status = vaRenderPicture(va_dpy,context_id, &slice_param_buf, 1);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+    
+    return 0;
+}
+
+
+static int upload_source_YUV_once_for_all()
+{
+    int box_width=8;
+    int row_shift=0;
+    int i;
+
+    for (i = 0; i < SURFACE_NUM; i++) {
+        printf("\rLoading data into surface %d.....", i);
+        upload_surface(va_dpy, src_surface[i], box_width, row_shift, 0);
+
+        row_shift++;
+        if (row_shift==(2*box_width)) row_shift= 0;
+    }
+    printf("Complete surface loading\n");
+
+    return 0;
+}
+
+static int load_surface(VASurfaceID surface_id, unsigned long long display_order)
+{
+    unsigned char *srcyuv_ptr = NULL, *src_Y = NULL, *src_U = NULL, *src_V = NULL;
+    unsigned long long frame_start, mmap_start;
+    char *mmap_ptr = NULL;
+    int frame_size, mmap_size;
+    
+    if (srcyuv_fp == NULL)
+        return 0;
+    
+    /* allow encoding more than srcyuv_frames */    
+    display_order = display_order % srcyuv_frames;
+    frame_size = frame_width * frame_height * 3 / 2; /* for YUV420 */
+    frame_start = display_order * frame_size;
+    
+    mmap_start = frame_start & (~0xfff);
+    mmap_size = (frame_size + (frame_start & 0xfff) + 0xfff) & (~0xfff);
+    mmap_ptr = mmap(0, mmap_size, PROT_READ, MAP_SHARED,
+                    fileno(srcyuv_fp), mmap_start);
+    if (mmap_ptr == MAP_FAILED) {
+        printf("Failed to mmap YUV file (%s)\n", strerror(errno));
+        return 1;
+    }
+    srcyuv_ptr = (unsigned char *)mmap_ptr +  (frame_start & 0xfff);
+    if (srcyuv_fourcc == VA_FOURCC_NV12) {
+        src_Y = srcyuv_ptr;
+        src_U = src_Y + frame_width * frame_height;
+        src_V = NULL;
+    } else if (srcyuv_fourcc == VA_FOURCC_IYUV ||
+        srcyuv_fourcc == VA_FOURCC_YV12) {
+        src_Y = srcyuv_ptr;
+        if (srcyuv_fourcc == VA_FOURCC_IYUV) {
+            src_U = src_Y + frame_width * frame_height;
+            src_V = src_U + (frame_width/2) * (frame_height/2);
+        } else { /* YV12 */
+            src_V = src_Y + frame_width * frame_height;
+            src_U = src_V + (frame_width/2) * (frame_height/2);
+        } 
+    } else {
+        printf("Unsupported source YUV format\n");
+        exit(1);
+    }
+    
+    upload_surface_yuv(va_dpy, surface_id,
+                       srcyuv_fourcc, frame_width, frame_height,
+                       src_Y, src_U, src_V);
+    if (mmap_ptr)
+        munmap(mmap_ptr, mmap_size);
+
+    return 0;
+}
+
+
+static int save_recyuv(VASurfaceID surface_id,
+                       unsigned long long display_order,
+                       unsigned long long encode_order)
+{
+    unsigned char *dst_Y = NULL, *dst_U = NULL, *dst_V = NULL;
+
+    if (recyuv_fp == NULL)
+        return 0;
+
+    if (srcyuv_fourcc == VA_FOURCC_NV12) {
+        int uv_size = 2 * (frame_width/2) * (frame_height/2);
+        dst_Y = malloc(2*uv_size);
+        dst_U = malloc(uv_size);
+    } else if (srcyuv_fourcc == VA_FOURCC_IYUV ||
+               srcyuv_fourcc == VA_FOURCC_YV12) {
+        int uv_size = (frame_width/2) * (frame_height/2);
+        dst_Y = malloc(4*uv_size);
+        dst_U = malloc(uv_size);
+        dst_V = malloc(uv_size);
+    } else {
+        printf("Unsupported source YUV format\n");
+        exit(1);
+    }
+    
+    download_surface_yuv(va_dpy, surface_id,
+                         srcyuv_fourcc, frame_width, frame_height,
+                         dst_Y, dst_U, dst_V);
+    fseek(recyuv_fp, display_order * frame_width * frame_height * 1.5, SEEK_SET);
+
+    if (srcyuv_fourcc == VA_FOURCC_NV12) {
+        int uv_size = 2 * (frame_width/2) * (frame_height/2);
+        fwrite(dst_Y, uv_size * 2, 1, recyuv_fp);
+        fwrite(dst_U, uv_size, 1, recyuv_fp);
+    } else if (srcyuv_fourcc == VA_FOURCC_IYUV ||
+               srcyuv_fourcc == VA_FOURCC_YV12) {
+        int uv_size = (frame_width/2) * (frame_height/2);
+        fwrite(dst_Y, uv_size * 4, 1, recyuv_fp);
+        
+        if (srcyuv_fourcc == VA_FOURCC_IYUV) {
+            fwrite(dst_U, uv_size, 1, recyuv_fp);
+            fwrite(dst_V, uv_size, 1, recyuv_fp);
+        } else {
+            fwrite(dst_V, uv_size, 1, recyuv_fp);
+            fwrite(dst_U, uv_size, 1, recyuv_fp);
+        }
+    } else {
+        printf("Unsupported YUV format\n");
+        exit(1);
+    }
+    
+    if (dst_Y)
+        free(dst_Y);
+    if (dst_U)
+        free(dst_U);
+    if (dst_V)
+        free(dst_V);
+
+    fflush(recyuv_fp);
+
+    return 0;
+}
+
+
+static int save_codeddata(unsigned long long display_order, unsigned long long encode_order)
+{    
+    VACodedBufferSegment *buf_list = NULL;
+    VAStatus va_status;
+    unsigned int coded_size = 0;
+
+    va_status = vaMapBuffer(va_dpy,coded_buf[display_order % SURFACE_NUM],(void **)(&buf_list));
+    CHECK_VASTATUS(va_status,"vaMapBuffer");
+    while (buf_list != NULL) {
+        coded_size += fwrite(buf_list->buf, 1, buf_list->size, coded_fp);
+        buf_list = (VACodedBufferSegment *) buf_list->next;
+
+        frame_size += coded_size;
+    }
+    vaUnmapBuffer(va_dpy,coded_buf[display_order % SURFACE_NUM]);
+
+    printf("\r      "); /* return back to startpoint */
+    switch (encode_order % 4) {
+        case 0:
+            printf("|");
+            break;
+        case 1:
+            printf("/");
+            break;
+        case 2:
+            printf("-");
+            break;
+        case 3:
+            printf("\\");
+            break;
+    }
+    printf("%08lld", encode_order);
+    printf("(%06d bytes coded)",coded_size);
+
+    fflush(coded_fp);
+    
+    return 0;
+}
+
+
+static struct storage_task_t * storage_task_dequeue(void)
+{
+    struct storage_task_t *header;
+
+    pthread_mutex_lock(&encode_mutex);
+
+    header = storage_task_header;    
+    if (storage_task_header != NULL) {
+        if (storage_task_tail == storage_task_header)
+            storage_task_tail = NULL;
+        storage_task_header = header->next;
+    }
+    
+    pthread_mutex_unlock(&encode_mutex);
+    
+    return header;
+}
+
+static int storage_task_queue(unsigned long long display_order, unsigned long long encode_order)
+{
+    struct storage_task_t *tmp;
+
+    tmp = calloc(1, sizeof(struct storage_task_t));
+    tmp->display_order = display_order;
+    tmp->encode_order = encode_order;
+
+    pthread_mutex_lock(&encode_mutex);
+    
+    if (storage_task_header == NULL) {
+        storage_task_header = tmp;
+        storage_task_tail = tmp;
+    } else {
+        storage_task_tail->next = tmp;
+        storage_task_tail = tmp;
+    }
+
+    srcsurface_status[display_order % SURFACE_NUM] = SRC_SURFACE_IN_STORAGE;
+    pthread_cond_signal(&encode_cond);
+    
+    pthread_mutex_unlock(&encode_mutex);
+    
+    return 0;
+}
+
+static void storage_task(unsigned long long display_order, unsigned long long encode_order)
+{
+    unsigned int tmp;
+    VAStatus va_status;
+    
+    tmp = GetTickCount();
+    va_status = vaSyncSurface(va_dpy, src_surface[display_order % SURFACE_NUM]);
+    CHECK_VASTATUS(va_status,"vaSyncSurface");
+    SyncPictureTicks += GetTickCount() - tmp;
+    tmp = GetTickCount();
+    save_codeddata(display_order, encode_order);
+    SavePictureTicks += GetTickCount() - tmp;
+
+    save_recyuv(ref_surface[display_order % SURFACE_NUM], display_order, encode_order);
+
+    /* reload a new frame data */
+    tmp = GetTickCount();
+    if (srcyuv_fp != NULL)
+        load_surface(src_surface[display_order % SURFACE_NUM], display_order + SURFACE_NUM);
+    UploadPictureTicks += GetTickCount() - tmp;
+
+    pthread_mutex_lock(&encode_mutex);
+    srcsurface_status[display_order % SURFACE_NUM] = SRC_SURFACE_IN_ENCODING;
+    pthread_mutex_unlock(&encode_mutex);
+}
+
+        
+static void * storage_task_thread(void *t)
+{
+    while (1) {
+        struct storage_task_t *current;
+        
+        current = storage_task_dequeue();
+        if (current == NULL) {
+            pthread_mutex_lock(&encode_mutex);
+            pthread_cond_wait(&encode_cond, &encode_mutex);
+            pthread_mutex_unlock(&encode_mutex);
+            continue;
+        }
+        
+        storage_task(current->display_order, current->encode_order);
+        
+        free(current);
+
+        /* all frames are saved, exit the thread */
+        if (++frame_coded >= frame_count)
+            break;
+    }
+
+    return 0;
+}
+
+
+static int encode_frames(void)
+{
+    unsigned int i, tmp;
+    VAStatus va_status;
+    //VASurfaceStatus surface_status;
+
+    /* upload RAW YUV data into all surfaces */
+    tmp = GetTickCount();
+    if (srcyuv_fp != NULL) {
+        for (i = 0; i < SURFACE_NUM; i++)
+            load_surface(src_surface[i], i);
+    } else
+        upload_source_YUV_once_for_all();
+    UploadPictureTicks += GetTickCount() - tmp;
+    
+    /* ready for encoding */
+    memset(srcsurface_status, SRC_SURFACE_IN_ENCODING, sizeof(srcsurface_status));
+    
+    memset(&seq_param, 0, sizeof(seq_param));
+    memset(&pic_param, 0, sizeof(pic_param));
+    memset(&slice_param, 0, sizeof(slice_param));
+
+    if (encode_syncmode == 0)
+        pthread_create(&encode_thread, NULL, storage_task_thread, NULL);
+    
+    for (current_frame_encoding = 0; current_frame_encoding < frame_count; current_frame_encoding++) {
+        encoding2display_order(current_frame_encoding, intra_period, intra_idr_period, ip_period,
+                               &current_frame_display, &current_frame_type);
+        if (current_frame_type == FRAME_IDR) {
+            numShortTerm = 0;
+            current_frame_num = 0;
+            current_IDR_display = current_frame_display;
+        }
+
+        /* check if the source frame is ready */
+        while (srcsurface_status[current_slot] != SRC_SURFACE_IN_ENCODING) {
+            usleep(1);
+        }
+        
+        tmp = GetTickCount();
+        va_status = vaBeginPicture(va_dpy, context_id, src_surface[current_slot]);
+        CHECK_VASTATUS(va_status,"vaBeginPicture");
+        BeginPictureTicks += GetTickCount() - tmp;
+        
+        tmp = GetTickCount();
+        if (current_frame_type == FRAME_IDR) {
+            render_sequence();
+            render_picture();            
+            if (h264_packedheader) {
+                render_packedsequence();
+                render_packedpicture();
+            }
+            //if (rc_mode == VA_RC_CBR)
+            //    render_packedsei();
+            //render_hrd();
+        } else {
+            //render_sequence();
+            render_picture();
+            //if (rc_mode == VA_RC_CBR)
+            //    render_packedsei();
+            //render_hrd();
+        }
+        render_slice();
+        RenderPictureTicks += GetTickCount() - tmp;
+        
+        tmp = GetTickCount();
+        va_status = vaEndPicture(va_dpy,context_id);
+        CHECK_VASTATUS(va_status,"vaEndPicture");;
+        EndPictureTicks += GetTickCount() - tmp;
+
+        if (encode_syncmode)
+            storage_task(current_frame_display, current_frame_encoding);
+        else /* queue the storage task queue */
+            storage_task_queue(current_frame_display, current_frame_encoding);
+        
+        update_ReferenceFrames();        
+    }
+
+    if (encode_syncmode == 0) {
+        int ret;
+        pthread_join(encode_thread, (void **)&ret);
+    }
+    
+    return 0;
+}
+
+
+static int release_encode()
+{
+    int i;
+    
+    vaDestroySurfaces(va_dpy,&src_surface[0],SURFACE_NUM);
+    vaDestroySurfaces(va_dpy,&ref_surface[0],SURFACE_NUM);
+
+    for (i = 0; i < SURFACE_NUM; i++)
+        vaDestroyBuffer(va_dpy,coded_buf[i]);
+    
+    vaDestroyContext(va_dpy,context_id);
+    vaDestroyConfig(va_dpy,config_id);
+
+    return 0;
+}
+
+static int deinit_va()
+{ 
+    vaTerminate(va_dpy);
+
+    va_close_display(va_dpy);
+
+    return 0;
+}
+
+
+static int print_input()
+{
+    printf("\n\nINPUT:Try to encode H264...\n");
+    if (rc_mode != -1)
+        printf("INPUT: RateControl  : %s\n", rc_to_string(rc_mode));
+    printf("INPUT: Resolution   : %dx%d, %d frames\n",
+           frame_width, frame_height, frame_count);
+    printf("INPUT: FrameRate    : %d\n", frame_rate);
+    printf("INPUT: Bitrate      : %d\n", frame_bitrate);
+    printf("INPUT: Slieces      : %d\n", frame_slices);
+    printf("INPUT: IntraPeriod  : %d\n", intra_period);
+    printf("INPUT: IDRPeriod    : %d\n", intra_idr_period);
+    printf("INPUT: IpPeriod     : %d\n", ip_period);
+    printf("INPUT: Initial QP   : %d\n", initial_qp);
+    printf("INPUT: Min QP       : %d\n", minimal_qp);
+    printf("INPUT: Source YUV   : %s", srcyuv_fp?"FILE":"AUTO generated");
+    if (srcyuv_fp) 
+        printf(":%s (fourcc %s)\n", srcyuv_fn, fourcc_to_string(srcyuv_fourcc));
+    else
+        printf("\n");
+    printf("INPUT: Coded Clip   : %s\n", coded_fn);
+    if (recyuv_fp == NULL)
+        printf("INPUT: Rec   Clip   : %s\n", "Not save reconstructed frame");
+    else
+        printf("INPUT: Rec   Clip   : Save reconstructed frame into %s (fourcc %s)\n", recyuv_fn,
+               fourcc_to_string(srcyuv_fourcc));
+    
+    printf("\n\n"); /* return back to startpoint */
+    
+    return 0;
+}
+
+static int calc_PSNR(double *psnr)
+{
+    char *srcyuv_ptr = NULL, *recyuv_ptr = NULL, tmp;
+    unsigned long long min_size;
+    unsigned long long i, sse=0;
+    double ssemean;
+    int fourM = 0x400000; /* 4M */
+
+    min_size = MIN(srcyuv_frames, frame_count) * frame_width * frame_height * 1.5;
+    for (i=0; i<min_size; i++) {
+        unsigned long long j = i % fourM;
+        
+        if ((i % fourM) == 0) {
+            if (srcyuv_ptr)
+                munmap(srcyuv_ptr, fourM);
+            if (recyuv_ptr)
+                munmap(recyuv_ptr, fourM);
+            
+            srcyuv_ptr = mmap(0, fourM, PROT_READ, MAP_SHARED, fileno(srcyuv_fp), i);
+            recyuv_ptr = mmap(0, fourM, PROT_READ, MAP_SHARED, fileno(recyuv_fp), i);
+            if ((srcyuv_ptr == MAP_FAILED) || (recyuv_ptr == MAP_FAILED)) {
+                printf("Failed to mmap YUV files\n");
+                return 1;
+            }
+        }
+        tmp = srcyuv_ptr[j] - recyuv_ptr[j];
+        sse += tmp * tmp;
+    }
+    ssemean = (double)sse/(double)min_size;
+    *psnr = 20.0*log10(255) - 10.0*log10(ssemean);
+
+    if (srcyuv_ptr)
+        munmap(srcyuv_ptr, fourM);
+    if (recyuv_ptr)
+        munmap(recyuv_ptr, fourM);
+    
+    return 0;
+}
+
+static int print_performance(unsigned int PictureCount)
+{
+    unsigned int psnr_ret = 1, others = 0;
+    double psnr = 0, total_size = frame_width * frame_height * 1.5 * frame_count;
+
+    if (calc_psnr && srcyuv_fp && recyuv_fp)
+        psnr_ret = calc_PSNR(&psnr);
+    
+    others = TotalTicks - UploadPictureTicks - BeginPictureTicks
+        - RenderPictureTicks - EndPictureTicks - SyncPictureTicks - SavePictureTicks;
+
+    printf("\n\n");
+
+    printf("PERFORMANCE:   Frame Rate           : %.2f fps (%d frames, %d ms (%.2f ms per frame))\n",
+           (double) 1000*PictureCount / TotalTicks, PictureCount,
+           TotalTicks, ((double)  TotalTicks) / (double) PictureCount);
+    printf("PERFORMANCE:   Compression ratio    : %d:1\n", (unsigned int)(total_size / frame_size));
+    if (psnr_ret == 0)
+        printf("PERFORMANCE:   PSNR                 : %.2f (%lld frames calculated)\n",
+               psnr, MIN(frame_count, srcyuv_frames));
+
+    printf("PERFORMANCE:     UploadPicture      : %d ms (%.2f, %.2f%% percent)\n",
+           (int) UploadPictureTicks, ((double)  UploadPictureTicks) / (double) PictureCount,
+           UploadPictureTicks/(double) TotalTicks/0.01);
+    printf("PERFORMANCE:     vaBeginPicture     : %d ms (%.2f, %.2f%% percent)\n",
+           (int) BeginPictureTicks, ((double)  BeginPictureTicks) / (double) PictureCount,
+           BeginPictureTicks/(double) TotalTicks/0.01);
+    printf("PERFORMANCE:     vaRenderHeader     : %d ms (%.2f, %.2f%% percent)\n",
+           (int) RenderPictureTicks, ((double)  RenderPictureTicks) / (double) PictureCount,
+           RenderPictureTicks/(double) TotalTicks/0.01);
+    printf("PERFORMANCE:     vaEndPicture       : %d ms (%.2f, %.2f%% percent)\n",
+           (int) EndPictureTicks, ((double)  EndPictureTicks) / (double) PictureCount,
+           EndPictureTicks/(double) TotalTicks/0.01);
+    printf("PERFORMANCE:     vaSyncSurface      : %d ms (%.2f, %.2f%% percent)\n",
+           (int) SyncPictureTicks, ((double) SyncPictureTicks) / (double) PictureCount,
+           SyncPictureTicks/(double) TotalTicks/0.01);
+    printf("PERFORMANCE:     SavePicture        : %d ms (%.2f, %.2f%% percent)\n",
+           (int) SavePictureTicks, ((double)  SavePictureTicks) / (double) PictureCount,
+           SavePictureTicks/(double) TotalTicks/0.01);
+    printf("PERFORMANCE:     Others             : %d ms (%.2f, %.2f%% percent)\n",
+           (int) others, ((double) others) / (double) PictureCount,
+           others/(double) TotalTicks/0.01);
+
+    if (encode_syncmode == 0)
+        printf("(Multithread enabled, the timing is only for reference)\n");
+    
+    return 0;
+}
+
+
+int main(int argc,char **argv)
+{
+    unsigned int start;
+    
+    process_cmdline(argc, argv);
+
+    print_input();
+    
+    start = GetTickCount();
+    
+    init_va();
+    setup_encode();
+    
+    encode_frames();
+
+    release_encode();
+    deinit_va();
+
+    TotalTicks += GetTickCount() - start;
+    print_performance(frame_count);
+    
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/encode/jpegenc.c b/examples/thirdparty/libva/test/encode/jpegenc.c
new file mode 100644
index 0000000..ff7a45a
--- /dev/null
+++ b/examples/thirdparty/libva/test/encode/jpegenc.c
@@ -0,0 +1,971 @@
+/*
+ * Copyright (c) 2014 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.
+ */
+/*
+ * Simple JPEG encoder based on libVA.
+ *
+ * Usage:
+ * ./jpegenc <width> <height> <input file> <output file> <input filetype 0(I420)/1(NV12)/2(UYVY)/3(YUY2)/4(Y8)/5(RGBA)> q <quality>
+ * Currently supporting only I420/NV12/UYVY/YUY2/Y8 input file formats.
+ */  
+
+#include "sysdeps.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <getopt.h>
+#include <unistd.h>
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <time.h>
+
+#include <pthread.h>
+
+#include <va/va.h>
+#include <va/va_enc_jpeg.h>
+#include "va_display.h"
+#include "jpegenc_utils.h"
+
+#ifndef VA_FOURCC_I420
+#define VA_FOURCC_I420          0x30323449
+#endif
+
+#define CHECK_VASTATUS(va_status,func)                                  \
+    if (va_status != VA_STATUS_SUCCESS) {                                   \
+        fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \
+        exit(1);                                                            \
+    }
+
+
+void show_help()
+{
+    printf("Usage: ./jpegenc <width> <height> <input file> <output file> <fourcc value 0(I420)/1(NV12)/2(UYVY)/3(YUY2)/4(Y8)/5(RGBA)> q <quality>\n");
+    printf("Currently supporting only I420/NV12/UYVY/YUY2/Y8 input file formats.\n");
+    printf("Example: ./jpegenc 1024 768 input_file.yuv output.jpeg 0 50\n\n");
+    return;
+}
+
+
+void jpegenc_pic_param_init(VAEncPictureParameterBufferJPEG *pic_param,int width,int height,int quality, YUVComponentSpecs yuvComp)
+{
+    assert(pic_param);
+    
+    pic_param->picture_width = width;
+    pic_param->picture_height = height;
+    pic_param->quality = quality;
+    
+    pic_param->pic_flags.bits.profile = 0;      //Profile = Baseline
+    pic_param->pic_flags.bits.progressive = 0;  //Sequential encoding
+    pic_param->pic_flags.bits.huffman = 1;      //Uses Huffman coding
+    pic_param->pic_flags.bits.interleaved = 0;  //Input format is interleaved (YUV)
+    pic_param->pic_flags.bits.differential = 0; //non-Differential Encoding
+    
+    pic_param->sample_bit_depth = 8; //only 8 bit sample depth is currently supported
+    pic_param->num_scan = 1;
+    pic_param->num_components = yuvComp.num_components; // Supporting only upto 3 components maximum
+    //set component_id Ci and Tqi
+    if(yuvComp.fourcc_val == VA_FOURCC_Y800) {
+        pic_param->component_id[0] = 0;
+        pic_param->quantiser_table_selector[0] = 0;
+    } else {
+        pic_param->component_id[0] = pic_param->quantiser_table_selector[0] = 0;
+        pic_param->component_id[1] = pic_param->quantiser_table_selector[1] = 1;
+        pic_param->component_id[2] = 2; pic_param->quantiser_table_selector[2] = 1;
+    }
+    
+    pic_param->quality = quality;
+}
+
+void jpegenc_qmatrix_init(VAQMatrixBufferJPEG *quantization_param, YUVComponentSpecs yuvComp)
+{
+    int i=0;
+    quantization_param->load_lum_quantiser_matrix = 1;
+   
+    //LibVA expects the QM in zigzag order 
+    for(i=0; i<NUM_QUANT_ELEMENTS; i++) {
+        quantization_param->lum_quantiser_matrix[i] = jpeg_luma_quant[jpeg_zigzag[i]];
+    }
+    
+    
+    if(yuvComp.fourcc_val == VA_FOURCC_Y800) {
+        quantization_param->load_chroma_quantiser_matrix = 0;
+    } else {
+        quantization_param->load_chroma_quantiser_matrix = 1;
+        for(i=0; i<NUM_QUANT_ELEMENTS; i++) {
+            quantization_param->chroma_quantiser_matrix[i] = jpeg_chroma_quant[jpeg_zigzag[i]];
+        }
+    }
+    
+}
+
+void jpegenc_hufftable_init(VAHuffmanTableBufferJPEGBaseline *hufftable_param, YUVComponentSpecs yuvComp)
+{
+    
+    hufftable_param->load_huffman_table[0] = 1; //Load Luma Hufftable
+    if(yuvComp.fourcc_val == VA_FOURCC_Y800) {
+        hufftable_param->load_huffman_table[1] = 0; //Do not load Chroma Hufftable for Y8
+    } else {
+        hufftable_param->load_huffman_table[1] = 1; //Load Chroma Hufftable for other formats
+    }
+    
+   //Load Luma hufftable values
+   //Load DC codes
+   memcpy(hufftable_param->huffman_table[0].num_dc_codes, jpeg_hufftable_luma_dc+1, 16);
+   //Load DC Values
+   memcpy(hufftable_param->huffman_table[0].dc_values, jpeg_hufftable_luma_dc+17, 12);
+   //Load AC codes
+   memcpy(hufftable_param->huffman_table[0].num_ac_codes, jpeg_hufftable_luma_ac+1, 16);
+   //Load AC Values
+   memcpy(hufftable_param->huffman_table[0].ac_values, jpeg_hufftable_luma_ac+17, 162);
+   memset(hufftable_param->huffman_table[0].pad, 0, 2);
+      
+   
+   //Load Chroma hufftable values if needed
+   if(yuvComp.fourcc_val != VA_FOURCC_Y800) {
+       //Load DC codes
+       memcpy(hufftable_param->huffman_table[1].num_dc_codes, jpeg_hufftable_chroma_dc+1, 16);
+       //Load DC Values
+       memcpy(hufftable_param->huffman_table[1].dc_values, jpeg_hufftable_chroma_dc+17, 12);
+       //Load AC codes
+       memcpy(hufftable_param->huffman_table[1].num_ac_codes, jpeg_hufftable_chroma_ac+1, 16);
+       //Load AC Values
+       memcpy(hufftable_param->huffman_table[1].ac_values, jpeg_hufftable_chroma_ac+17, 162);
+       memset(hufftable_param->huffman_table[1].pad, 0, 2);      
+       
+   }
+    
+}
+
+void jpegenc_slice_param_init(VAEncSliceParameterBufferJPEG *slice_param, YUVComponentSpecs yuvComp)
+{
+    slice_param->restart_interval = 0;
+    
+    slice_param->num_components = yuvComp.num_components;
+    
+    slice_param->components[0].component_selector = 1;
+    slice_param->components[0].dc_table_selector = 0;
+    slice_param->components[0].ac_table_selector = 0;        
+
+    if(yuvComp.num_components > 1) { 
+        slice_param->components[1].component_selector = 2;
+        slice_param->components[1].dc_table_selector = 1;
+        slice_param->components[1].ac_table_selector = 1;        
+
+        slice_param->components[2].component_selector = 3;
+        slice_param->components[2].dc_table_selector = 1;
+        slice_param->components[2].ac_table_selector = 1;        
+    }
+}
+
+
+void populate_quantdata(JPEGQuantSection *quantVal, int type)
+{
+    uint8_t zigzag_qm[NUM_QUANT_ELEMENTS];
+    int i;
+
+    quantVal->DQT = DQT;
+    quantVal->Pq = 0;
+    quantVal->Tq = type;
+    if(type == 0) {
+        for(i=0; i<NUM_QUANT_ELEMENTS; i++) {
+            zigzag_qm[i] = jpeg_luma_quant[jpeg_zigzag[i]];
+        }
+
+        memcpy(quantVal->Qk, zigzag_qm, NUM_QUANT_ELEMENTS);
+    } else {
+        for(i=0; i<NUM_QUANT_ELEMENTS; i++) {
+            zigzag_qm[i] = jpeg_chroma_quant[jpeg_zigzag[i]];
+        }
+        memcpy(quantVal->Qk, zigzag_qm, NUM_QUANT_ELEMENTS);
+    }
+    quantVal->Lq = 3 + NUM_QUANT_ELEMENTS;
+}
+
+void populate_frame_header(JPEGFrameHeader *frameHdr, YUVComponentSpecs yuvComp, int picture_width, int picture_height)
+{
+    int i=0;
+    
+    frameHdr->SOF = SOF0;
+    frameHdr->Lf = 8 + (3 * yuvComp.num_components); //Size of FrameHeader in bytes without the Marker SOF
+    frameHdr->P = 8;
+    frameHdr->Y = picture_height;
+    frameHdr->X = picture_width;
+    frameHdr->Nf = yuvComp.num_components;
+    
+    for(i=0; i<yuvComp.num_components; i++) {
+        frameHdr->JPEGComponent[i].Ci = i+1;
+        
+        if(i == 0) {
+            frameHdr->JPEGComponent[i].Hi = yuvComp.y_h_subsample;
+            frameHdr->JPEGComponent[i].Vi = yuvComp.y_v_subsample;
+            frameHdr->JPEGComponent[i].Tqi = 0;
+
+        } else {
+            //Analyzing the sampling factors for U/V, they are 1 for all formats except for Y8. 
+            //So, it is okay to have the code below like this. For Y8, we wont reach this code.
+            frameHdr->JPEGComponent[i].Hi = yuvComp.u_h_subsample;
+            frameHdr->JPEGComponent[i].Vi = yuvComp.u_v_subsample;
+            frameHdr->JPEGComponent[i].Tqi = 1;
+        }
+    }
+}
+
+void populate_huff_section_header(JPEGHuffSection *huffSectionHdr, int th, int tc)
+{
+    int i=0, totalCodeWords=0;
+    
+    huffSectionHdr->DHT = DHT;
+    huffSectionHdr->Tc = tc;
+    huffSectionHdr->Th = th;
+    
+    if(th == 0) { //If Luma
+
+        //If AC
+        if(tc == 1) {
+            memcpy(huffSectionHdr->Li, jpeg_hufftable_luma_ac+1, NUM_AC_RUN_SIZE_BITS);
+            memcpy(huffSectionHdr->Vij, jpeg_hufftable_luma_ac+17, NUM_AC_CODE_WORDS_HUFFVAL);
+        }
+               
+        //If DC        
+        if(tc == 0) {
+            memcpy(huffSectionHdr->Li, jpeg_hufftable_luma_dc+1, NUM_DC_RUN_SIZE_BITS);
+            memcpy(huffSectionHdr->Vij, jpeg_hufftable_luma_dc+17, NUM_DC_CODE_WORDS_HUFFVAL);
+        }
+        
+        for(i=0; i<NUM_AC_RUN_SIZE_BITS; i++) {
+            totalCodeWords += huffSectionHdr->Li[i];
+        }
+        
+        huffSectionHdr->Lh = 3 + 16 + totalCodeWords;
+
+    } else { //If Chroma
+        //If AC
+        if(tc == 1) {
+            memcpy(huffSectionHdr->Li, jpeg_hufftable_chroma_ac+1, NUM_AC_RUN_SIZE_BITS);
+            memcpy(huffSectionHdr->Vij, jpeg_hufftable_chroma_ac+17, NUM_AC_CODE_WORDS_HUFFVAL);
+        }
+               
+        //If DC        
+        if(tc == 0) {
+            memcpy(huffSectionHdr->Li, jpeg_hufftable_chroma_dc+1, NUM_DC_RUN_SIZE_BITS);
+            memcpy(huffSectionHdr->Vij, jpeg_hufftable_chroma_dc+17, NUM_DC_CODE_WORDS_HUFFVAL);
+        }
+
+    }
+}
+
+void populate_scan_header(JPEGScanHeader *scanHdr, YUVComponentSpecs yuvComp)
+{
+    
+    scanHdr->SOS = SOS;
+    scanHdr->Ns = yuvComp.num_components;
+    
+    //Y Component
+    scanHdr->ScanComponent[0].Csj = 1;
+    scanHdr->ScanComponent[0].Tdj = 0;
+    scanHdr->ScanComponent[0].Taj = 0;
+    
+    if(yuvComp.num_components > 1) {
+        //U Component
+        scanHdr->ScanComponent[1].Csj = 2;
+        scanHdr->ScanComponent[1].Tdj = 1;
+        scanHdr->ScanComponent[1].Taj = 1;
+        
+        //V Component
+        scanHdr->ScanComponent[2].Csj = 3;
+        scanHdr->ScanComponent[2].Tdj = 1;
+        scanHdr->ScanComponent[2].Taj = 1;
+    }
+    
+    scanHdr->Ss = 0;  //0 for Baseline
+    scanHdr->Se = 63; //63 for Baseline
+    scanHdr->Ah = 0;  //0 for Baseline
+    scanHdr->Al = 0;  //0 for Baseline
+    
+    scanHdr->Ls = 3 + (yuvComp.num_components * 2) + 3;
+    
+}
+
+
+int build_packed_jpeg_header_buffer(unsigned char **header_buffer, YUVComponentSpecs yuvComp, int picture_width, int picture_height, uint16_t restart_interval)
+{
+    bitstream bs;
+    int i=0, j=0;
+    
+    bitstream_start(&bs);
+    
+    //Add SOI
+    bitstream_put_ui(&bs, SOI, 16);
+    
+    //Add AppData
+    bitstream_put_ui(&bs, APP0, 16);  //APP0 marker
+    bitstream_put_ui(&bs, 16, 16);    //Length excluding the marker
+    bitstream_put_ui(&bs, 0x4A, 8);   //J
+    bitstream_put_ui(&bs, 0x46, 8);   //F
+    bitstream_put_ui(&bs, 0x49, 8);   //I
+    bitstream_put_ui(&bs, 0x46, 8);   //F
+    bitstream_put_ui(&bs, 0x00, 8);   //0
+    bitstream_put_ui(&bs, 1, 8);      //Major Version
+    bitstream_put_ui(&bs, 1, 8);      //Minor Version
+    bitstream_put_ui(&bs, 1, 8);      //Density units 0:no units, 1:pixels per inch, 2: pixels per cm
+    bitstream_put_ui(&bs, 72, 16);    //X density
+    bitstream_put_ui(&bs, 72, 16);    //Y density
+    bitstream_put_ui(&bs, 0, 8);      //Thumbnail width
+    bitstream_put_ui(&bs, 0, 8);      //Thumbnail height
+    
+    //Add QTable - Y
+    JPEGQuantSection quantLuma;
+    populate_quantdata(&quantLuma, 0);
+
+    bitstream_put_ui(&bs, quantLuma.DQT, 16);
+    bitstream_put_ui(&bs, quantLuma.Lq, 16);
+    bitstream_put_ui(&bs, quantLuma.Pq, 4);
+    bitstream_put_ui(&bs, quantLuma.Tq, 4);
+    for(i=0; i<NUM_QUANT_ELEMENTS; i++) {
+        bitstream_put_ui(&bs, quantLuma.Qk[i], 8);
+    }
+
+    //Add QTable - U/V
+    if(yuvComp.fourcc_val != VA_FOURCC_Y800) {
+        JPEGQuantSection quantChroma;
+        populate_quantdata(&quantChroma, 1);
+        
+        bitstream_put_ui(&bs, quantChroma.DQT, 16);
+        bitstream_put_ui(&bs, quantChroma.Lq, 16);
+        bitstream_put_ui(&bs, quantChroma.Pq, 4);
+        bitstream_put_ui(&bs, quantChroma.Tq, 4);
+        for(i=0; i<NUM_QUANT_ELEMENTS; i++) {
+            bitstream_put_ui(&bs, quantChroma.Qk[i], 8);
+        }
+    }
+    
+    //Add FrameHeader
+    JPEGFrameHeader frameHdr;
+    memset(&frameHdr,0,sizeof(JPEGFrameHeader));
+    populate_frame_header(&frameHdr, yuvComp, picture_width, picture_height);
+
+    bitstream_put_ui(&bs, frameHdr.SOF, 16);
+    bitstream_put_ui(&bs, frameHdr.Lf, 16);
+    bitstream_put_ui(&bs, frameHdr.P, 8);
+    bitstream_put_ui(&bs, frameHdr.Y, 16);
+    bitstream_put_ui(&bs, frameHdr.X, 16);
+    bitstream_put_ui(&bs, frameHdr.Nf, 8);
+    for(i=0; i<frameHdr.Nf;i++) {
+        bitstream_put_ui(&bs, frameHdr.JPEGComponent[i].Ci, 8);
+        bitstream_put_ui(&bs, frameHdr.JPEGComponent[i].Hi, 4);
+        bitstream_put_ui(&bs, frameHdr.JPEGComponent[i].Vi, 4);
+        bitstream_put_ui(&bs, frameHdr.JPEGComponent[i].Tqi, 8);
+    }
+
+    //Add HuffTable AC and DC for Y,U/V components
+    JPEGHuffSection acHuffSectionHdr, dcHuffSectionHdr;
+        
+    for(i=0; (i<yuvComp.num_components && (i<=1)); i++) {
+        //Add DC component (Tc = 0)
+        populate_huff_section_header(&dcHuffSectionHdr, i, 0); 
+        
+        bitstream_put_ui(&bs, dcHuffSectionHdr.DHT, 16);
+        bitstream_put_ui(&bs, dcHuffSectionHdr.Lh, 16);
+        bitstream_put_ui(&bs, dcHuffSectionHdr.Tc, 4);
+        bitstream_put_ui(&bs, dcHuffSectionHdr.Th, 4);
+        for(j=0; j<NUM_DC_RUN_SIZE_BITS; j++) {
+            bitstream_put_ui(&bs, dcHuffSectionHdr.Li[j], 8);
+        }
+        
+        for(j=0; j<NUM_DC_CODE_WORDS_HUFFVAL; j++) {
+            bitstream_put_ui(&bs, dcHuffSectionHdr.Vij[j], 8);
+        }
+
+        //Add AC component (Tc = 1)
+        populate_huff_section_header(&acHuffSectionHdr, i, 1);
+        
+        bitstream_put_ui(&bs, acHuffSectionHdr.DHT, 16);
+        bitstream_put_ui(&bs, acHuffSectionHdr.Lh, 16);
+        bitstream_put_ui(&bs, acHuffSectionHdr.Tc, 4);
+        bitstream_put_ui(&bs, acHuffSectionHdr.Th, 4);
+        for(j=0; j<NUM_AC_RUN_SIZE_BITS; j++) {
+            bitstream_put_ui(&bs, acHuffSectionHdr.Li[j], 8);
+        }
+
+        for(j=0; j<NUM_AC_CODE_WORDS_HUFFVAL; j++) {
+            bitstream_put_ui(&bs, acHuffSectionHdr.Vij[j], 8);
+        }
+
+        if((yuvComp.fourcc_val == VA_FOURCC_Y800) )
+            break;
+    }
+    
+    //Add Restart Interval if restart_interval is not 0
+    if(restart_interval != 0) {
+        JPEGRestartSection restartHdr;
+        restartHdr.DRI = DRI;
+        restartHdr.Lr = 4;
+        restartHdr.Ri = restart_interval;
+
+        bitstream_put_ui(&bs, restartHdr.DRI, 16); 
+        bitstream_put_ui(&bs, restartHdr.Lr, 16);
+        bitstream_put_ui(&bs, restartHdr.Ri, 16); 
+    }
+    
+    //Add ScanHeader
+    JPEGScanHeader scanHdr;
+    populate_scan_header(&scanHdr, yuvComp);
+ 
+    bitstream_put_ui(&bs, scanHdr.SOS, 16);
+    bitstream_put_ui(&bs, scanHdr.Ls, 16);
+    bitstream_put_ui(&bs, scanHdr.Ns, 8);
+    
+    for(i=0; i<scanHdr.Ns; i++) {
+        bitstream_put_ui(&bs, scanHdr.ScanComponent[i].Csj, 8);
+        bitstream_put_ui(&bs, scanHdr.ScanComponent[i].Tdj, 4);
+        bitstream_put_ui(&bs, scanHdr.ScanComponent[i].Taj, 4);
+    }
+
+    bitstream_put_ui(&bs, scanHdr.Ss, 8);
+    bitstream_put_ui(&bs, scanHdr.Se, 8);
+    bitstream_put_ui(&bs, scanHdr.Ah, 4);
+    bitstream_put_ui(&bs, scanHdr.Al, 4);
+
+    bitstream_end(&bs);
+    *header_buffer = (unsigned char *)bs.buffer;
+    
+    return bs.bit_offset;
+}
+
+//Upload the yuv image from the file to the VASurface
+void upload_yuv_to_surface(VADisplay va_dpy, FILE *yuv_fp, VASurfaceID surface_id, YUVComponentSpecs yuvComp, int picture_width, int picture_height, int frame_size)
+{
+
+    VAImage surface_image;
+    VAStatus va_status;
+    void *surface_p = NULL;
+    unsigned char newImageBuffer[frame_size];
+    unsigned char *y_src, *u_src, *v_src;
+    unsigned char *y_dst, *u_dst;
+    int y_size = picture_width * picture_height;
+    int u_size = 0;
+    int row, col;
+    size_t n_items;
+
+    //u_size is used for I420, NV12 formats only
+    u_size = ((picture_width >> 1) * (picture_height >> 1));
+
+    memset(newImageBuffer,0,frame_size);
+    do {
+        n_items = fread(newImageBuffer, frame_size, 1, yuv_fp);
+    } while (n_items != 1);
+
+    va_status = vaDeriveImage(va_dpy, surface_id, &surface_image);
+    CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+    vaMapBuffer(va_dpy, surface_image.buf, &surface_p);
+    assert(VA_STATUS_SUCCESS == va_status);
+
+    y_src = newImageBuffer;
+    u_src = newImageBuffer + y_size; /* UV offset for NV12 */
+    v_src = newImageBuffer + y_size + u_size;
+
+    y_dst = surface_p + surface_image.offsets[0];
+    u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */
+
+    if((yuvComp.fourcc_val == VA_FOURCC_NV12) || (yuvComp.fourcc_val == VA_FOURCC_I420) ||
+       (yuvComp.fourcc_val == VA_FOURCC_Y800) ) {
+
+        /* Y plane */
+        for (row = 0; row < surface_image.height; row++) {
+            memcpy(y_dst, y_src, surface_image.width);
+            y_dst += surface_image.pitches[0];
+            y_src += picture_width;
+        }
+        
+        if(yuvComp.num_components > 1) {
+
+            switch(yuvComp.fourcc_val) {
+                case VA_FOURCC_NV12: {
+                    for (row = 0; row < surface_image.height/2; row++) {
+                        memcpy(u_dst, u_src, surface_image.width);
+                        u_dst += surface_image.pitches[1];
+                        u_src += (picture_width);
+                    }
+                    break;
+                }
+
+                case VA_FOURCC_I420: {
+                    for (row = 0; row < surface_image.height / 2; row++) {
+                        for (col = 0; col < surface_image.width / 2; col++) {
+                             u_dst[col * 2] = u_src[col];
+                             u_dst[col * 2 + 1] = v_src[col];
+                         }
+
+                         u_dst += surface_image.pitches[1];
+                         u_src += (picture_width / 2);
+                         v_src += (picture_width / 2);
+                    }
+                    break;
+                }
+            }//end of switch
+       }//end of if check
+    } else if((yuvComp.fourcc_val == VA_FOURCC_UYVY) || (yuvComp.fourcc_val == VA_FOURCC_YUY2)) {
+
+        for(row = 0; row < surface_image.height; row++) {
+            memcpy(y_dst, y_src, surface_image.width*2);
+            y_dst += surface_image.pitches[0];
+            y_src += picture_width*2;
+        }
+             
+    } else if(yuvComp.fourcc_val == VA_FOURCC_RGBA) {
+
+        for (row = 0; row < surface_image.height; row++) {
+            memcpy(y_dst, y_src, surface_image.width*4);
+            y_dst += surface_image.pitches[0];
+            y_src += picture_width*4;
+        }
+    }
+    
+    vaUnmapBuffer(va_dpy, surface_image.buf);
+    vaDestroyImage(va_dpy, surface_image.image_id);
+    
+}
+
+
+
+void init_yuv_component(YUVComponentSpecs *yuvComponent, int yuv_type, int *surface_type, VASurfaceAttrib *fourcc)
+{
+    
+    //<fourcc value 0(I420)/1(NV12)/2(UYVY)/3(YUY2)/4(Y8)/5(RGBA)>
+    switch(yuv_type)
+    {
+        case 0 :   //I420
+        case 1 : { //NV12
+            yuvComponent->va_surface_format = (*surface_type) = VA_RT_FORMAT_YUV420;
+            if(yuv_type == 0) {
+                yuvComponent->fourcc_val = VA_FOURCC_I420;
+                fourcc->value.value.i = VA_FOURCC_NV12;
+            } else {
+                yuvComponent->fourcc_val = fourcc->value.value.i = VA_FOURCC_NV12;
+            } 
+            yuvComponent->num_components = 3;
+            yuvComponent->y_h_subsample = 2;
+            yuvComponent->y_v_subsample = 2;
+            yuvComponent->u_h_subsample = 1;
+            yuvComponent->u_v_subsample = 1;
+            yuvComponent->v_h_subsample = 1;
+            yuvComponent->v_v_subsample = 1;            
+            break;
+        }
+        
+        case 2: { //UYVY 
+            yuvComponent->va_surface_format = (*surface_type) = VA_RT_FORMAT_YUV422;
+            yuvComponent->fourcc_val = fourcc->value.value.i = VA_FOURCC_UYVY;
+            yuvComponent->num_components = 3;
+            yuvComponent->y_h_subsample = 2;
+            yuvComponent->y_v_subsample = 1;
+            yuvComponent->u_h_subsample = 1;
+            yuvComponent->u_v_subsample = 1;
+            yuvComponent->v_h_subsample = 1;
+            yuvComponent->v_v_subsample = 1;
+            break;
+        }
+        
+        case 3: { //YUY2
+            yuvComponent->va_surface_format = (*surface_type) = VA_RT_FORMAT_YUV422;
+            yuvComponent->fourcc_val = fourcc->value.value.i = VA_FOURCC_YUY2;
+            yuvComponent->num_components = 3;
+            yuvComponent->y_h_subsample = 2;
+            yuvComponent->y_v_subsample = 1;
+            yuvComponent->u_h_subsample = 1;
+            yuvComponent->u_v_subsample = 1;
+            yuvComponent->v_h_subsample = 1;
+            yuvComponent->v_v_subsample = 1;
+            break;
+        }
+        
+        case 4: { //Y8
+            yuvComponent->va_surface_format = (*surface_type) = VA_RT_FORMAT_YUV400;
+            yuvComponent->fourcc_val = fourcc->value.value.i = VA_FOURCC_Y800;
+            yuvComponent->num_components = 1;
+            yuvComponent->y_h_subsample = 1;
+            yuvComponent->y_v_subsample = 1;
+            yuvComponent->u_h_subsample = 0;
+            yuvComponent->u_v_subsample = 0;
+            yuvComponent->v_h_subsample = 0;
+            yuvComponent->v_v_subsample = 0;
+            break;
+        }
+        
+        case 5: { //RGBA
+            yuvComponent->va_surface_format = (*surface_type) = VA_RT_FORMAT_RGB32;
+            yuvComponent->fourcc_val = fourcc->value.value.i = VA_FOURCC_RGBA;
+            yuvComponent->num_components = 3;
+            yuvComponent->y_h_subsample = 1;
+            yuvComponent->y_v_subsample = 1;
+            yuvComponent->u_h_subsample = 1;
+            yuvComponent->u_v_subsample = 1;
+            yuvComponent->v_h_subsample = 1;
+            yuvComponent->v_v_subsample = 1;
+            break;
+        }
+        
+        default: {
+            printf("Unsupported format:\n");
+            show_help();
+            break;
+        }
+        
+    }
+    
+}
+
+int encode_input_image(FILE *yuv_fp, FILE *jpeg_fp, int picture_width, int picture_height, int frame_size, int yuv_type, int quality)
+{
+    int num_entrypoints,enc_entrypoint;
+    int major_ver, minor_ver;
+    int surface_type;
+    VAEntrypoint entrypoints[5];
+    VASurfaceAttrib fourcc;
+    VAConfigAttrib attrib[2];
+    VADisplay   va_dpy;
+    VAStatus va_status;
+    VAConfigID config_id;
+    VASurfaceID surface_id;
+    VAContextID context_id;
+    VABufferID pic_param_buf_id;                /* Picture parameter id*/
+    VABufferID slice_param_buf_id;              /* Slice parameter id, only 1 slice per frame in jpeg encode */
+    VABufferID codedbuf_buf_id;                 /* Output buffer id, compressed data */
+    VABufferID packed_raw_header_param_buf_id;  /* Header parameter buffer id */
+    VABufferID packed_raw_header_buf_id;        /* Header buffer id */
+    VABufferID qmatrix_buf_id;                  /* Quantization Matrix id */
+    VABufferID huffmantable_buf_id;             /* Huffman table id*/
+    VAEncPictureParameterBufferJPEG pic_param;  /* Picture parameter buffer */
+    VAEncSliceParameterBufferJPEG slice_param;  /* Slice parameter buffer */
+    VAQMatrixBufferJPEG quantization_param;     /* Quantization Matrix buffer */
+    VAHuffmanTableBufferJPEGBaseline hufftable_param; /* Huffmantable buffer */
+    YUVComponentSpecs yuvComponent;
+    int writeToFile = 1;
+    
+    
+    fourcc.type =VASurfaceAttribPixelFormat;
+    fourcc.flags=VA_SURFACE_ATTRIB_SETTABLE;
+    fourcc.value.type=VAGenericValueTypeInteger;
+    
+    init_yuv_component(&yuvComponent, yuv_type, &surface_type, &fourcc);
+    
+    /* 1. Initialize the va driver */
+    va_dpy = va_open_display();
+    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+    assert(va_status == VA_STATUS_SUCCESS);
+    
+    /* 2. Query for the entrypoints for the JPEGBaseline profile */
+    va_status = vaQueryConfigEntrypoints(va_dpy, VAProfileJPEGBaseline, entrypoints, &num_entrypoints);
+    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
+    // We need picture level encoding (VAEntrypointEncPicture). Find if it is supported. 
+    for (enc_entrypoint = 0; enc_entrypoint < num_entrypoints; enc_entrypoint++) {
+        if (entrypoints[enc_entrypoint] == VAEntrypointEncPicture)
+            break;
+    }
+    if (enc_entrypoint == num_entrypoints) {
+        /* No JPEG Encode (VAEntrypointEncPicture) entry point found */
+        assert(0);
+    }
+    
+    /* 3. Query for the Render Target format supported */
+    attrib[0].type = VAConfigAttribRTFormat;
+    attrib[1].type = VAConfigAttribEncJPEG;
+    vaGetConfigAttributes(va_dpy, VAProfileJPEGBaseline, VAEntrypointEncPicture, &attrib[0], 2);
+
+    // RT should be one of below.
+    if(!((attrib[0].value & VA_RT_FORMAT_YUV420) || (attrib[0].value & VA_RT_FORMAT_YUV422) || (attrib[0].value & VA_RT_FORMAT_RGB32)
+        ||(attrib[0].value & VA_RT_FORMAT_YUV444) || (attrib[0].value & VA_RT_FORMAT_YUV400))) 
+    {
+        /* Did not find the supported RT format */
+        assert(0);        
+    }
+
+    VAConfigAttribValEncJPEG jpeg_attrib_val;
+    jpeg_attrib_val.value = attrib[1].value;
+
+    /* Set JPEG profile attribs */
+    jpeg_attrib_val.bits.arithmatic_coding_mode = 0;
+    jpeg_attrib_val.bits.progressive_dct_mode = 0;
+    jpeg_attrib_val.bits.non_interleaved_mode = 1;
+    jpeg_attrib_val.bits.differential_mode = 0;
+
+    attrib[1].value = jpeg_attrib_val.value;
+    
+    /* 4. Create Config for the profile=VAProfileJPEGBaseline, entrypoint=VAEntrypointEncPicture,
+     * with RT format attribute */
+    va_status = vaCreateConfig(va_dpy, VAProfileJPEGBaseline, VAEntrypointEncPicture, 
+                               &attrib[0], 2, &config_id);
+    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
+    
+    /* 5. Create Surface for the input picture */
+    va_status = vaCreateSurfaces(va_dpy, surface_type, picture_width, picture_height, 
+                                 &surface_id, 1, &fourcc, 1);
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+    
+    //Map the input yuv file to the input surface created with the surface_id
+    upload_yuv_to_surface(va_dpy, yuv_fp, surface_id, yuvComponent, picture_width, picture_height, frame_size);
+    
+    /* 6. Create Context for the encode pipe*/
+    va_status = vaCreateContext(va_dpy, config_id, picture_width, picture_height, 
+                                VA_PROGRESSIVE, &surface_id, 1, &context_id);
+    CHECK_VASTATUS(va_status, "vaCreateContext");
+
+    /* Create buffer for Encoded data to be stored */
+    va_status =  vaCreateBuffer(va_dpy, context_id, VAEncCodedBufferType,
+                                   frame_size, 1, NULL, &codedbuf_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+    
+    //Initialize the picture parameter buffer
+    pic_param.coded_buf = codedbuf_buf_id;
+    jpegenc_pic_param_init(&pic_param, picture_width, picture_height, quality, yuvComponent);
+    
+    /* 7. Create buffer for the picture parameter */
+    va_status = vaCreateBuffer(va_dpy, context_id, VAEncPictureParameterBufferType,
+                               sizeof(VAEncPictureParameterBufferJPEG), 1, &pic_param, &pic_param_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+    
+    //Load the QMatrix 
+    jpegenc_qmatrix_init(&quantization_param, yuvComponent);
+    
+    /* 8. Create buffer for Quantization Matrix */
+    va_status = vaCreateBuffer(va_dpy, context_id, VAQMatrixBufferType, 
+                               sizeof(VAQMatrixBufferJPEG), 1, &quantization_param, &qmatrix_buf_id);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+    
+    //Load the Huffman Tables
+    jpegenc_hufftable_init(&hufftable_param, yuvComponent);
+    
+    /* 9. Create buffer for Huffman Tables */
+    va_status = vaCreateBuffer(va_dpy, context_id, VAHuffmanTableBufferType, 
+                               sizeof(VAHuffmanTableBufferJPEGBaseline), 1, &hufftable_param, &huffmantable_buf_id);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+    
+    //Initialize the slice parameter buffer
+    jpegenc_slice_param_init(&slice_param, yuvComponent);
+    
+    /* 10. Create buffer for slice parameter */
+    va_status = vaCreateBuffer(va_dpy, context_id, VAEncSliceParameterBufferType, 
+                            sizeof(slice_param), 1, &slice_param, &slice_param_buf_id);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+
+    //Pack headers and send using Raw data buffer
+    VAEncPackedHeaderParameterBuffer packed_header_param_buffer;
+    unsigned int length_in_bits;
+    unsigned char *packed_header_buffer = NULL;
+
+    length_in_bits = build_packed_jpeg_header_buffer(&packed_header_buffer, yuvComponent, picture_width, picture_height, slice_param.restart_interval);
+    packed_header_param_buffer.type = VAEncPackedHeaderRawData;
+    packed_header_param_buffer.bit_length = length_in_bits;
+    packed_header_param_buffer.has_emulation_bytes = 0;
+    
+    /* 11. Create raw buffer for header */
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderParameterBufferType,
+                               sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
+                               &packed_raw_header_param_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    va_status = vaCreateBuffer(va_dpy,
+                               context_id,
+                               VAEncPackedHeaderDataBufferType,
+                               (length_in_bits + 7) / 8, 1, packed_header_buffer,
+                               &packed_raw_header_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+    
+    /* 12. Begin picture */
+    va_status = vaBeginPicture(va_dpy, context_id, surface_id);
+    CHECK_VASTATUS(va_status, "vaBeginPicture");   
+
+    /* 13. Render picture for all the VA buffers created */
+    va_status = vaRenderPicture(va_dpy,context_id, &pic_param_buf_id, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+   
+    va_status = vaRenderPicture(va_dpy,context_id, &qmatrix_buf_id, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+
+    va_status = vaRenderPicture(va_dpy,context_id, &huffmantable_buf_id, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+   
+    va_status = vaRenderPicture(va_dpy,context_id, &slice_param_buf_id, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &packed_raw_header_param_buf_id, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaRenderPicture(va_dpy,context_id, &packed_raw_header_buf_id, 1);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    
+    va_status = vaEndPicture(va_dpy,context_id);
+    CHECK_VASTATUS(va_status, "vaEndPicture");
+
+    if (writeToFile) {
+        VASurfaceStatus surface_status;
+        size_t w_items;
+        VACodedBufferSegment *coded_buffer_segment;
+        unsigned char *coded_mem;
+        int slice_data_length;
+
+        va_status = vaSyncSurface(va_dpy, surface_id);
+        CHECK_VASTATUS(va_status, "vaSyncSurface");
+    
+        surface_status = 0;
+        va_status = vaQuerySurfaceStatus(va_dpy, surface_id, &surface_status);
+        CHECK_VASTATUS(va_status,"vaQuerySurfaceStatus");
+
+        va_status = vaMapBuffer(va_dpy, codedbuf_buf_id, (void **)(&coded_buffer_segment));
+        CHECK_VASTATUS(va_status,"vaMapBuffer");
+
+        coded_mem = coded_buffer_segment->buf;
+  
+       if (coded_buffer_segment->status & VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK) {
+            vaUnmapBuffer(va_dpy, codedbuf_buf_id);
+            printf("ERROR......Coded buffer too small\n");
+        }
+
+
+        slice_data_length = coded_buffer_segment->size;
+
+        do {
+            w_items = fwrite(coded_mem, slice_data_length, 1, jpeg_fp);
+        } while (w_items != 1);
+
+        va_status = vaUnmapBuffer(va_dpy, codedbuf_buf_id);
+        CHECK_VASTATUS(va_status, "vaUnmapBuffer");
+    }
+       
+    vaDestroyBuffer(va_dpy, pic_param_buf_id);
+    vaDestroyBuffer(va_dpy, qmatrix_buf_id);
+    vaDestroyBuffer(va_dpy, slice_param_buf_id);
+    vaDestroyBuffer(va_dpy, huffmantable_buf_id);
+    vaDestroyBuffer(va_dpy, codedbuf_buf_id);
+    vaDestroyBuffer(va_dpy, packed_raw_header_param_buf_id);
+    vaDestroyBuffer(va_dpy, packed_raw_header_buf_id);
+    vaDestroySurfaces(va_dpy,&surface_id,1);
+    vaDestroyContext(va_dpy,context_id);
+    vaDestroyConfig(va_dpy,config_id);
+    vaTerminate(va_dpy);
+    va_close_display(va_dpy);
+
+    return 0;
+}
+
+
+int main(int argc, char *argv[])
+{
+    FILE *yuv_fp;
+    FILE *jpeg_fp;
+    off_t file_size;
+    clock_t start_time, finish_time;
+    unsigned int duration;
+    unsigned int yuv_type = 0;
+    int quality = 0;
+    unsigned int picture_width = 0;
+    unsigned int picture_height = 0;
+    unsigned int frame_size = 0;
+    
+    va_init_display_args(&argc, argv);
+    
+    if(argc != 7) {
+        show_help();
+        return -1;
+    }
+    
+    picture_width = atoi(argv[1]);
+    picture_height = atoi(argv[2]);
+    yuv_type = atoi(argv[5]);
+    quality = atoi(argv[6]);
+    
+    yuv_fp = fopen(argv[3],"rb");
+    if ( yuv_fp == NULL){
+        printf("Can't open input YUV file\n");
+        return -1;
+    }
+    
+    fseeko(yuv_fp, (off_t)0, SEEK_END);
+    file_size = ftello(yuv_fp);
+    
+    //<input file type: 0(I420)/1(NV12)/2(UYVY)/3(YUY2)/4(Y8)/5(RGBA)>
+    switch(yuv_type)
+    {
+        case 0 :   //I420 
+        case 1 : { //NV12
+            frame_size = picture_width * picture_height +  ((picture_width * picture_height) >> 1) ; 
+            break;
+        }
+        
+        case 2:  //UYVY
+        case 3: { //YUY2
+           frame_size = 2 * (picture_width * picture_height); 
+           break;
+        }
+        
+        case 4: { //Y8
+            frame_size = picture_width * picture_height;
+            break;
+        }
+        
+        case 5: { //RGBA
+            frame_size = 4 * (picture_width * picture_height) ;
+            break;
+        }
+        
+        default: {
+            printf("Unsupported format:\n");
+            show_help();
+            break;
+        }
+        
+    }
+    
+    if ( (file_size < frame_size) || (file_size % frame_size) ) {
+        fclose(yuv_fp);
+        printf("The YUV file's size is not correct: file_size=%zd, frame_size=%d\n", file_size, frame_size);
+        return -1;
+    }
+    
+    fseeko(yuv_fp, (off_t)0, SEEK_SET);
+
+    jpeg_fp = fopen(argv[4], "wb");  
+    if ( jpeg_fp == NULL) {
+        fclose(yuv_fp);
+        printf("Can't open output destination jpeg file\n");
+        return -1;
+    }   
+        
+    start_time = clock();
+    encode_input_image(yuv_fp, jpeg_fp, picture_width, picture_height, frame_size, yuv_type, quality);
+    if(yuv_fp != NULL) fclose(yuv_fp);
+    if(jpeg_fp != NULL) fclose(jpeg_fp);
+    finish_time = clock();
+    duration = finish_time - start_time;
+    printf("Encoding finished in %u ticks\n", duration);
+    
+    return 0;   
+}
+
diff --git a/examples/thirdparty/libva/test/encode/jpegenc_utils.h b/examples/thirdparty/libva/test/encode/jpegenc_utils.h
new file mode 100644
index 0000000..e003c7e
--- /dev/null
+++ b/examples/thirdparty/libva/test/encode/jpegenc_utils.h
@@ -0,0 +1,353 @@
+/*
+ * Copyright (c) 2014 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.
+ */
+/*
+ * This file is a utilities file which supports JPEG Encode process
+ */ 
+
+#include <sys/types.h>
+#include <stdio.h>
+
+#define MAX_JPEG_COMPONENTS 3 //only for Y, U and V
+#define JPEG_Y 0
+#define JPEG_U 1
+#define JPEG_V 2
+#define NUM_QUANT_ELEMENTS 64
+#define NUM_MAX_HUFFTABLE 2
+#define NUM_AC_RUN_SIZE_BITS 16
+#define NUM_AC_CODE_WORDS_HUFFVAL 162
+#define NUM_DC_RUN_SIZE_BITS 16
+#define NUM_DC_CODE_WORDS_HUFFVAL 12
+
+#define BITSTREAM_ALLOCATE_STEPPING     4096
+
+struct __bitstream {
+    unsigned int *buffer;
+    int bit_offset;
+    int max_size_in_dword;
+};
+
+typedef struct __bitstream bitstream;
+
+static unsigned int 
+swap32(unsigned int val)
+{
+    unsigned char *pval = (unsigned char *)&val;
+
+    return ((pval[0] << 24)     |
+            (pval[1] << 16)     |
+            (pval[2] << 8)      |
+            (pval[3] << 0));
+}
+
+static void
+bitstream_start(bitstream *bs)
+{
+    bs->max_size_in_dword = BITSTREAM_ALLOCATE_STEPPING;
+    bs->buffer = calloc(bs->max_size_in_dword * sizeof(int), 1);
+    bs->bit_offset = 0;
+}
+
+static void
+bitstream_end(bitstream *bs)
+{
+    int pos = (bs->bit_offset >> 5);
+    int bit_offset = (bs->bit_offset & 0x1f);
+    int bit_left = 32 - bit_offset;
+
+    if (bit_offset) {
+        bs->buffer[pos] = swap32((bs->buffer[pos] << bit_left));
+    }
+}
+ 
+static void
+bitstream_put_ui(bitstream *bs, unsigned int val, int size_in_bits)
+{
+    int pos = (bs->bit_offset >> 5);
+    int bit_offset = (bs->bit_offset & 0x1f);
+    int bit_left = 32 - bit_offset;
+
+    if (!size_in_bits)
+        return;
+
+    if (size_in_bits < 32)
+        val &= ((1 << size_in_bits) - 1);
+
+    bs->bit_offset += size_in_bits;
+
+    if (bit_left > size_in_bits) {
+        bs->buffer[pos] = (bs->buffer[pos] << size_in_bits | val);
+    } else {
+        size_in_bits -= bit_left;
+        bs->buffer[pos] = (bs->buffer[pos] << bit_left) | (val >> size_in_bits);
+        bs->buffer[pos] = swap32(bs->buffer[pos]);
+
+        if (pos + 1 == bs->max_size_in_dword) {
+            bs->max_size_in_dword += BITSTREAM_ALLOCATE_STEPPING;
+            bs->buffer = realloc(bs->buffer, bs->max_size_in_dword * sizeof(unsigned int));
+        }
+
+        bs->buffer[pos + 1] = val;
+    }
+}
+
+//As per Jpeg Spec ISO/IEC 10918-1, below values are assigned
+enum jpeg_markers {
+
+ //Define JPEG markers as 0xFFXX if you are adding the value directly to the buffer
+ //Else define marker as 0xXXFF if you are assigning the marker to a structure variable.
+ //This is needed because of the little-endedness of the IA 
+
+ SOI  = 0xFFD8, //Start of Image 
+ EOI  = 0xFFD9, //End of Image
+ SOS  = 0xFFDA, //Start of Scan
+ DQT  = 0xFFDB, //Define Quantization Table
+ DRI  = 0xFFDD, //Define restart interval
+ RST0 = 0xFFD0, //Restart interval termination
+ DHT  = 0xFFC4, //Huffman table
+ SOF0 = 0xFFC0, //Baseline DCT   
+ APP0 = 0xFFE0, //Application Segment
+ COM  = 0xFFFE  //Comment segment    
+};
+
+typedef struct _JPEGFrameHeader {
+    
+    uint16_t SOF;    //Start of Frame Header
+    uint16_t Lf;     //Length of Frame Header
+    uint8_t  P;      //Sample precision
+    uint16_t Y;      //Number of lines
+    uint16_t X;      //Number of samples per line
+    uint8_t  Nf;     //Number of image components in frame
+    
+    struct _JPEGComponent {        
+        uint8_t Ci;    //Component identifier
+        uint8_t Hi:4;  //Horizontal sampling factor
+        uint8_t Vi:4;  //Vertical sampling factor
+        uint8_t Tqi;   //Quantization table destination selector        
+    } JPEGComponent[MAX_JPEG_COMPONENTS];
+    
+} JPEGFrameHeader;
+
+
+typedef struct _JPEGScanHeader {
+    
+    uint16_t SOS;  //Start of Scan
+    uint16_t Ls;   //Length of Scan
+    uint8_t  Ns;   //Number of image components in the scan
+        
+    struct _ScanComponent {
+        uint8_t Csj;   //Scan component selector
+        uint8_t Tdj:4; //DC Entropy coding table destination selector(Tdj:4 bits) 
+        uint8_t Taj:4; //AC Entropy coding table destination selector(Taj:4 bits)       
+    } ScanComponent[MAX_JPEG_COMPONENTS];
+    
+    uint8_t Ss;    //Start of spectral or predictor selection, 0 for Baseline
+    uint8_t Se;    //End of spectral or predictor selection, 63 for Baseline
+    uint8_t Ah:4;  //Successive approximation bit position high, 0 for Baseline
+    uint8_t Al:4;  //Successive approximation bit position low, 0 for Baseline
+    
+} JPEGScanHeader;
+
+
+typedef struct _JPEGQuantSection {
+    
+    uint16_t DQT;    //Quantization table marker
+    uint16_t Lq;     //Length of Quantization table definition
+    uint8_t  Tq:4;   //Quantization table destination identifier
+    uint8_t  Pq:4;   //Quatization table precision. Should be 0 for 8-bit samples
+    uint8_t  Qk[NUM_QUANT_ELEMENTS]; //Quantization table elements    
+    
+} JPEGQuantSection;
+
+typedef struct _JPEGHuffSection {
+    
+        uint16_t DHT;                            //Huffman table marker
+        uint16_t Lh;                             //Huffman table definition length
+        uint8_t  Tc:4;                           //Table class- 0:DC, 1:AC
+        uint8_t  Th:4;                           //Huffman table destination identifier
+        uint8_t  Li[NUM_AC_RUN_SIZE_BITS];       //Number of Huffman codes of length i
+        uint8_t  Vij[NUM_AC_CODE_WORDS_HUFFVAL]; //Value associated with each Huffman code
+    
+} JPEGHuffSection;
+
+
+typedef struct _JPEGRestartSection {
+    
+    uint16_t DRI;  //Restart interval marker
+    uint16_t Lr;   //Legth of restart interval segment
+    uint16_t Ri;   //Restart interval
+    
+} JPEGRestartSection;
+
+
+typedef struct _JPEGCommentSection {
+    
+    uint16_t COM;  //Comment marker
+    uint16_t Lc;   //Comment segment length
+    uint8_t  Cmi;  //Comment byte
+    
+} JPEGCommentSection;
+
+
+typedef struct _JPEGAppSection {
+    
+    uint16_t APPn;  //Application data marker
+    uint16_t Lp;    //Application data segment length
+    uint8_t  Api;   //Application data byte
+    
+} JPEGAppSection;
+
+//Luminance quantization table
+//Source: Jpeg Spec ISO/IEC 10918-1, Annex K, Table K.1
+uint8_t jpeg_luma_quant[NUM_QUANT_ELEMENTS] = {
+    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    
+};
+
+//Luminance quantization table
+//Source: Jpeg Spec ISO/IEC 10918-1, Annex K, Table K.2
+uint8_t jpeg_chroma_quant[NUM_QUANT_ELEMENTS] = {
+    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
+};
+
+
+//Zigzag scan order of the the Luma and Chroma components
+//Note: Jpeg Spec ISO/IEC 10918-1, Figure A.6 shows the zigzag order differently.
+//The Spec is trying to show the zigzag pattern with number positions. The below
+//table will use the patter shown by A.6 and map the postion of the elements in the array
+uint8_t jpeg_zigzag[] = {
+    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
+};
+
+
+//Huffman table for Luminance DC Coefficients
+//Reference Jpeg Spec ISO/IEC 10918-1, K.3.3.1
+//K.3.3.1 is the summarized version of Table K.3
+uint8_t jpeg_hufftable_luma_dc[] = {
+    //TcTh (Tc=0 since 0:DC, 1:AC; Th=0)
+    0x00,
+    //Li
+    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
+};
+
+//Huffman table for Chrominance DC Coefficients
+//Reference Jpeg Spec ISO/IEC 10918-1, K.3.3.1
+//K.3.3.1 is the summarized version of Table K.4
+uint8_t jpeg_hufftable_chroma_dc[] = {
+    //TcTh (Tc=0 since 0:DC, 1:AC; Th=1)
+    0x01,
+    //Li
+    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    
+};
+
+
+//Huffman table for Luminance AC Coefficients
+//Reference Jpeg Spec ISO/IEC 10918-1, K.3.3.2
+//K.3.3.2 is the summarized version of Table K.5
+uint8_t jpeg_hufftable_luma_ac[] = {
+    //TcTh (Tc=1 since 0:DC, 1:AC; Th=0)
+    0x10,
+    //Li
+    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
+};
+
+//Huffman table for Chrominance AC Coefficients
+//Reference Jpeg Spec ISO/IEC 10918-1, K.3.3.2
+//K.3.3.2 is the summarized version of Table K.6
+uint8_t jpeg_hufftable_chroma_ac[] = {
+    //TcTh (Tc=1 since 0:DC, 1:AC; Th=1)
+    0x11,
+    //Li
+    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
+};
+
+typedef struct _YUVComponentSpecs {
+    //One of 0(I420)/1(NV12)/2(UYVY)/3(YUY2)/4(Y8)/5(RGBA)>
+    unsigned int yuv_type;
+    // One of VA_RT_FORMAT_YUV420, VA_RT_FORMAT_YUV422, VA_RT_FORMAT_YUV400, VA_RT_FORMAT_YUV444, VA_RT_FORMAT_RGB32
+    unsigned int va_surface_format;
+    //One of VA_FOURCC_I420, VA_FOURCC_NV12, VA_FOURCC_UYVY, VA_FOURCC_YUY2, VA_FOURCC_Y800, VA_FOURCC_444P, VA_FOURCC_RGBA
+    unsigned int fourcc_val; //Using this field to evaluate the input file type.
+    //no.of. components
+    unsigned int num_components;
+    //Y horizontal subsample
+    unsigned int y_h_subsample;
+    //Y vertical subsample
+    unsigned int y_v_subsample;
+    //U horizontal subsample
+    unsigned int u_h_subsample;
+    //U vertical subsample
+    unsigned int u_v_subsample;
+    //V horizontal subsample
+    unsigned int v_h_subsample;
+    //V vertical subsample
+    unsigned int v_v_subsample;    
+} YUVComponentSpecs;
diff --git a/examples/thirdparty/libva/test/encode/mpeg2vaenc.c b/examples/thirdparty/libva/test/encode/mpeg2vaenc.c
new file mode 100644
index 0000000..dc1c7f0
--- /dev/null
+++ b/examples/thirdparty/libva/test/encode/mpeg2vaenc.c
@@ -0,0 +1,1546 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+/*
+ * Simple MPEG-2 encoder based on libVA.
+ *
+ */  
+
+#include "sysdeps.h"
+
+#include <getopt.h>
+#include <unistd.h>
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <fcntl.h>
+#include <time.h>
+#include <pthread.h>
+
+#include <va/va.h>
+#include <va/va_enc_mpeg2.h>
+
+#include "va_display.h"
+
+#define START_CODE_PICUTRE      0x00000100
+#define START_CODE_SLICE        0x00000101
+#define START_CODE_USER         0x000001B2
+#define START_CODE_SEQ          0x000001B3
+#define START_CODE_EXT          0x000001B5
+#define START_CODE_GOP          0x000001B8
+
+#define CHROMA_FORMAT_RESERVED  0
+#define CHROMA_FORMAT_420       1
+#define CHROMA_FORMAT_422       2
+#define CHROMA_FORMAT_444       3
+
+#define MAX_SLICES              128
+
+enum {
+    MPEG2_MODE_I = 0,
+    MPEG2_MODE_IP,
+    MPEG2_MODE_IPB,
+};
+
+enum {
+    MPEG2_LEVEL_LOW = 0,
+    MPEG2_LEVEL_MAIN,
+    MPEG2_LEVEL_HIGH,
+};
+
+#define CHECK_VASTATUS(va_status, func)                                 \
+    if (va_status != VA_STATUS_SUCCESS) {                               \
+        fprintf(stderr, "%s:%s (%d) failed, exit\n", __func__, func, __LINE__); \
+        exit(1);                                                        \
+    }
+
+static VAProfile mpeg2_va_profiles[] = {
+    VAProfileMPEG2Simple,
+    VAProfileMPEG2Main
+};
+
+static struct _mpeg2_sampling_density
+{
+    int samplers_per_line;
+    int line_per_frame;
+    int frame_per_sec;
+} mpeg2_upper_samplings[2][3] = {
+    { { 0, 0, 0 },
+      { 720, 576, 30 },
+      { 0, 0, 0 },
+    },
+
+    { { 352, 288, 30 },
+      { 720, 576, 30 },
+      { 1920, 1152, 60 },
+    }
+};
+
+struct mpeg2enc_context {
+    /* args */
+    int rate_control_mode;
+    int fps;
+    int mode; /* 0:I, 1:I/P, 2:I/P/B */
+    VAProfile profile;
+    int level;
+    int width;
+    int height;
+    int frame_size;
+    int num_pictures;
+    int qp;
+    FILE *ifp;
+    FILE *ofp;
+    unsigned char *frame_data_buffer;
+    int intra_period;
+    int ip_period;
+    int bit_rate; /* in kbps */
+    VAEncPictureType next_type;
+    int next_display_order;
+    int next_bframes;
+    int new_sequence;
+    int new_gop_header;
+    int gop_header_in_display_order;
+
+    /* VA resource */
+    VADisplay va_dpy;
+    VAEncSequenceParameterBufferMPEG2 seq_param;
+    VAEncPictureParameterBufferMPEG2 pic_param;
+    VAEncSliceParameterBufferMPEG2 slice_param[MAX_SLICES];
+    VAContextID context_id;
+    VAConfigID config_id;
+    VABufferID seq_param_buf_id;                /* Sequence level parameter */
+    VABufferID pic_param_buf_id;                /* Picture level parameter */
+    VABufferID slice_param_buf_id[MAX_SLICES];  /* Slice level parameter, multil slices */
+    VABufferID codedbuf_buf_id;                 /* Output buffer, compressed data */
+    VABufferID packed_seq_header_param_buf_id;
+    VABufferID packed_seq_buf_id;
+    VABufferID packed_pic_header_param_buf_id;
+    VABufferID packed_pic_buf_id;
+    int num_slice_groups;
+    int codedbuf_i_size;
+    int codedbuf_pb_size;
+
+    /* thread */
+    pthread_t upload_thread_id;
+    int upload_thread_value;
+    int current_input_surface;
+    int current_upload_surface;
+};
+
+/*
+ * mpeg2enc helpers
+ */
+#define BITSTREAM_ALLOCATE_STEPPING     4096
+
+struct __bitstream {
+    unsigned int *buffer;
+    int bit_offset;
+    int max_size_in_dword;
+};
+
+typedef struct __bitstream bitstream;
+
+static unsigned int 
+swap32(unsigned int val)
+{
+    unsigned char *pval = (unsigned char *)&val;
+
+    return ((pval[0] << 24)     |
+            (pval[1] << 16)     |
+            (pval[2] << 8)      |
+            (pval[3] << 0));
+}
+
+static void
+bitstream_start(bitstream *bs)
+{
+    bs->max_size_in_dword = BITSTREAM_ALLOCATE_STEPPING;
+    bs->buffer = calloc(bs->max_size_in_dword * sizeof(int), 1);
+    bs->bit_offset = 0;
+}
+
+static void
+bitstream_end(bitstream *bs)
+{
+    int pos = (bs->bit_offset >> 5);
+    int bit_offset = (bs->bit_offset & 0x1f);
+    int bit_left = 32 - bit_offset;
+
+    if (bit_offset) {
+        bs->buffer[pos] = swap32((bs->buffer[pos] << bit_left));
+    }
+}
+ 
+static void
+bitstream_put_ui(bitstream *bs, unsigned int val, int size_in_bits)
+{
+    int pos = (bs->bit_offset >> 5);
+    int bit_offset = (bs->bit_offset & 0x1f);
+    int bit_left = 32 - bit_offset;
+
+    if (!size_in_bits)
+        return;
+
+    if (size_in_bits < 32)
+        val &= ((1 << size_in_bits) - 1);
+
+    bs->bit_offset += size_in_bits;
+
+    if (bit_left > size_in_bits) {
+        bs->buffer[pos] = (bs->buffer[pos] << size_in_bits | val);
+    } else {
+        size_in_bits -= bit_left;
+        bs->buffer[pos] = (bs->buffer[pos] << bit_left) | (val >> size_in_bits);
+        bs->buffer[pos] = swap32(bs->buffer[pos]);
+
+        if (pos + 1 == bs->max_size_in_dword) {
+            bs->max_size_in_dword += BITSTREAM_ALLOCATE_STEPPING;
+            bs->buffer = realloc(bs->buffer, bs->max_size_in_dword * sizeof(unsigned int));
+        }
+
+        bs->buffer[pos + 1] = val;
+    }
+}
+
+static void
+bitstream_byte_aligning(bitstream *bs, int bit)
+{
+    int bit_offset = (bs->bit_offset & 0x7);
+    int bit_left = 8 - bit_offset;
+    int new_val;
+
+    if (!bit_offset)
+        return;
+
+    assert(bit == 0 || bit == 1);
+
+    if (bit)
+        new_val = (1 << bit_left) - 1;
+    else
+        new_val = 0;
+
+    bitstream_put_ui(bs, new_val, bit_left);
+}
+
+static struct mpeg2_frame_rate {
+    int code;
+    float value;
+} frame_rate_tab[] = {
+    {1, 23.976},
+    {2, 24.0},
+    {3, 25.0},
+    {4, 29.97},
+    {5, 30},
+    {6, 50},
+    {7, 59.94},
+    {8, 60}
+};
+
+static int
+find_frame_rate_code(const VAEncSequenceParameterBufferMPEG2 *seq_param)
+{
+    unsigned int delta = -1;
+    int code = 1, i;
+    float frame_rate_value = seq_param->frame_rate * 
+        (seq_param->sequence_extension.bits.frame_rate_extension_d + 1) / 
+        (seq_param->sequence_extension.bits.frame_rate_extension_n + 1);
+
+    for (i = 0; i < sizeof(frame_rate_tab) / sizeof(frame_rate_tab[0]); i++) {
+
+        if (abs(1000 * frame_rate_tab[i].value - 1000 * frame_rate_value) < delta) {
+            code = frame_rate_tab[i].code;
+            delta = abs(1000 * frame_rate_tab[i].value - 1000 * frame_rate_value);
+        }
+    }
+
+    return code;
+}
+
+static void 
+sps_rbsp(struct mpeg2enc_context *ctx,
+         const VAEncSequenceParameterBufferMPEG2 *seq_param,
+         bitstream *bs)
+{
+    int frame_rate_code = find_frame_rate_code(seq_param);
+
+    if (ctx->new_sequence) {
+        bitstream_put_ui(bs, START_CODE_SEQ, 32);
+        bitstream_put_ui(bs, seq_param->picture_width, 12);
+        bitstream_put_ui(bs, seq_param->picture_height, 12);
+        bitstream_put_ui(bs, seq_param->aspect_ratio_information, 4);
+        bitstream_put_ui(bs, frame_rate_code, 4); /* frame_rate_code */
+        bitstream_put_ui(bs, (seq_param->bits_per_second + 399) / 400, 18); /* the low 18 bits of bit_rate */
+        bitstream_put_ui(bs, 1, 1); /* marker_bit */
+        bitstream_put_ui(bs, seq_param->vbv_buffer_size, 10);
+        bitstream_put_ui(bs, 0, 1); /* constraint_parameter_flag, always 0 for MPEG-2 */
+        bitstream_put_ui(bs, 0, 1); /* load_intra_quantiser_matrix */
+        bitstream_put_ui(bs, 0, 1); /* load_non_intra_quantiser_matrix */
+
+        bitstream_byte_aligning(bs, 0);
+
+        bitstream_put_ui(bs, START_CODE_EXT, 32);
+        bitstream_put_ui(bs, 1, 4); /* sequence_extension id */
+        bitstream_put_ui(bs, seq_param->sequence_extension.bits.profile_and_level_indication, 8);
+        bitstream_put_ui(bs, seq_param->sequence_extension.bits.progressive_sequence, 1);
+        bitstream_put_ui(bs, seq_param->sequence_extension.bits.chroma_format, 2);
+        bitstream_put_ui(bs, seq_param->picture_width >> 12, 2);
+        bitstream_put_ui(bs, seq_param->picture_height >> 12, 2);
+        bitstream_put_ui(bs, ((seq_param->bits_per_second + 399) / 400) >> 18, 12); /* bit_rate_extension */
+        bitstream_put_ui(bs, 1, 1); /* marker_bit */
+        bitstream_put_ui(bs, seq_param->vbv_buffer_size >> 10, 8);
+        bitstream_put_ui(bs, seq_param->sequence_extension.bits.low_delay, 1);
+        bitstream_put_ui(bs, seq_param->sequence_extension.bits.frame_rate_extension_n, 2);
+        bitstream_put_ui(bs, seq_param->sequence_extension.bits.frame_rate_extension_d, 5);
+
+        bitstream_byte_aligning(bs, 0);
+    }
+
+    if (ctx->new_gop_header) {
+        bitstream_put_ui(bs, START_CODE_GOP, 32);
+        bitstream_put_ui(bs, seq_param->gop_header.bits.time_code, 25);
+        bitstream_put_ui(bs, seq_param->gop_header.bits.closed_gop, 1);
+        bitstream_put_ui(bs, seq_param->gop_header.bits.broken_link, 1);
+
+        bitstream_byte_aligning(bs, 0);
+    }
+}
+
+static void 
+pps_rbsp(const VAEncSequenceParameterBufferMPEG2 *seq_param,
+         const VAEncPictureParameterBufferMPEG2 *pic_param,
+         bitstream *bs)
+{
+    int i;
+    int chroma_420_type;
+
+    if (seq_param->sequence_extension.bits.chroma_format == CHROMA_FORMAT_420)
+        chroma_420_type = pic_param->picture_coding_extension.bits.progressive_frame;
+    else
+        chroma_420_type = 0;
+
+    bitstream_put_ui(bs, START_CODE_PICUTRE, 32);
+    bitstream_put_ui(bs, pic_param->temporal_reference, 10);
+    bitstream_put_ui(bs,
+                     pic_param->picture_type == VAEncPictureTypeIntra ? 1 :
+                     pic_param->picture_type == VAEncPictureTypePredictive ? 2 : 3,
+                     3);
+    bitstream_put_ui(bs, 0xFFFF, 16); /* vbv_delay, always 0xFFFF */
+    
+    if (pic_param->picture_type == VAEncPictureTypePredictive ||
+        pic_param->picture_type == VAEncPictureTypeBidirectional) {
+        bitstream_put_ui(bs, 0, 1); /* full_pel_forward_vector, always 0 for MPEG-2 */
+        bitstream_put_ui(bs, 7, 3); /* forward_f_code, always 7 for MPEG-2 */
+    }
+
+    if (pic_param->picture_type == VAEncPictureTypeBidirectional) {
+        bitstream_put_ui(bs, 0, 1); /* full_pel_backward_vector, always 0 for MPEG-2 */
+        bitstream_put_ui(bs, 7, 3); /* backward_f_code, always 7 for MPEG-2 */
+    }
+     
+    bitstream_put_ui(bs, 0, 1); /* extra_bit_picture, 0 */
+
+    bitstream_byte_aligning(bs, 0);
+
+    bitstream_put_ui(bs, START_CODE_EXT, 32);
+    bitstream_put_ui(bs, 8, 4); /* Picture Coding Extension ID: 8 */
+    bitstream_put_ui(bs, pic_param->f_code[0][0], 4);
+    bitstream_put_ui(bs, pic_param->f_code[0][1], 4);
+    bitstream_put_ui(bs, pic_param->f_code[1][0], 4);
+    bitstream_put_ui(bs, pic_param->f_code[1][1], 4);
+
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.intra_dc_precision, 2);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.picture_structure, 2);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.top_field_first, 1);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.frame_pred_frame_dct, 1);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.concealment_motion_vectors, 1);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.q_scale_type, 1);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.intra_vlc_format, 1);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.alternate_scan, 1);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.repeat_first_field, 1);
+    bitstream_put_ui(bs, chroma_420_type, 1);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.progressive_frame, 1);
+    bitstream_put_ui(bs, pic_param->picture_coding_extension.bits.composite_display_flag, 1);
+
+    bitstream_byte_aligning(bs, 0);
+}
+
+static int
+build_packed_pic_buffer(const VAEncSequenceParameterBufferMPEG2 *seq_param,
+                        const VAEncPictureParameterBufferMPEG2 *pic_param,
+                        unsigned char **header_buffer)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    pps_rbsp(seq_param, pic_param, &bs);
+    bitstream_end(&bs);
+
+    *header_buffer = (unsigned char *)bs.buffer;
+    return bs.bit_offset;
+}
+
+static int
+build_packed_seq_buffer(struct mpeg2enc_context *ctx,
+                        const VAEncSequenceParameterBufferMPEG2 *seq_param,
+                        unsigned char **header_buffer)
+{
+    bitstream bs;
+
+    bitstream_start(&bs);
+    sps_rbsp(ctx, seq_param, &bs);
+    bitstream_end(&bs);
+
+    *header_buffer = (unsigned char *)bs.buffer;
+    return bs.bit_offset;
+}
+
+/*
+ * mpeg2enc
+ */
+#define SID_INPUT_PICTURE_0                     0
+#define SID_INPUT_PICTURE_1                     1
+#define SID_REFERENCE_PICTURE_L0                2
+#define SID_REFERENCE_PICTURE_L1                3
+#define SID_RECON_PICTURE                       4
+#define SID_NUMBER                              SID_RECON_PICTURE + 1
+
+static VASurfaceID surface_ids[SID_NUMBER];
+
+/*
+ * upload thread function
+ */
+static void *
+upload_yuv_to_surface(void *data)
+{
+    struct mpeg2enc_context *ctx = data;
+    VAImage surface_image;
+    VAStatus va_status;
+    void *surface_p = NULL;
+    unsigned char *y_src, *u_src, *v_src;
+    unsigned char *y_dst, *u_dst, *v_dst;
+    int y_size = ctx->width * ctx->height;
+    int u_size = (ctx->width >> 1) * (ctx->height >> 1);
+    int row, col;
+    size_t n_items;
+
+    do {
+        n_items = fread(ctx->frame_data_buffer, ctx->frame_size, 1, ctx->ifp);
+    } while (n_items != 1);
+
+    va_status = vaDeriveImage(ctx->va_dpy, surface_ids[ctx->current_upload_surface], &surface_image);
+    CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+    vaMapBuffer(ctx->va_dpy, surface_image.buf, &surface_p);
+    assert(VA_STATUS_SUCCESS == va_status);
+        
+    y_src = ctx->frame_data_buffer;
+    u_src = ctx->frame_data_buffer + y_size; /* UV offset for NV12 */
+    v_src = ctx->frame_data_buffer + y_size + u_size;
+
+    y_dst = surface_p + surface_image.offsets[0];
+    u_dst = surface_p + surface_image.offsets[1]; /* UV offset for NV12 */
+    v_dst = surface_p + surface_image.offsets[2];
+
+    /* Y plane */
+    for (row = 0; row < surface_image.height; row++) {
+        memcpy(y_dst, y_src, surface_image.width);
+        y_dst += surface_image.pitches[0];
+        y_src += ctx->width;
+    }
+
+    if (surface_image.format.fourcc == VA_FOURCC_NV12) { /* UV plane */
+        for (row = 0; row < surface_image.height / 2; row++) {
+            for (col = 0; col < surface_image.width / 2; col++) {
+                u_dst[col * 2] = u_src[col];
+                u_dst[col * 2 + 1] = v_src[col];
+            }
+
+            u_dst += surface_image.pitches[1];
+            u_src += (ctx->width / 2);
+            v_src += (ctx->width / 2);
+        }
+    } else {
+        for (row = 0; row < surface_image.height / 2; row++) {
+            for (col = 0; col < surface_image.width / 2; col++) {
+                u_dst[col] = u_src[col];
+                v_dst[col] = v_src[col];
+            }
+
+            u_dst += surface_image.pitches[1];
+            v_dst += surface_image.pitches[2];
+            u_src += (ctx->width / 2);
+            v_src += (ctx->width / 2);
+        }
+    }
+
+    vaUnmapBuffer(ctx->va_dpy, surface_image.buf);
+    vaDestroyImage(ctx->va_dpy, surface_image.image_id);
+
+    return NULL;
+}
+
+static void 
+mpeg2enc_exit(struct mpeg2enc_context *ctx, int exit_code)
+{
+    if (ctx->frame_data_buffer) {
+        free(ctx->frame_data_buffer);
+        ctx->frame_data_buffer = NULL;
+    }
+
+    if (ctx->ifp) {
+        fclose(ctx->ifp);
+        ctx->ifp = NULL;
+    }
+
+    if (ctx->ofp) {
+        fclose(ctx->ofp);
+        ctx->ofp = NULL;
+    }
+
+    exit(exit_code);
+}
+
+static void 
+usage(char *program)
+{   
+    fprintf(stderr, "Usage: %s --help\n", program);
+    fprintf(stderr, "\t--help   print this message\n");
+    fprintf(stderr, "Usage: %s <width> <height> <ifile> <ofile> [options]\n", program);
+    fprintf(stderr, "\t<width>  specifies the frame width\n");
+    fprintf(stderr, "\t<height> specifies the frame height\n");
+    fprintf(stderr, "\t<ifile>  specifies the I420/IYUV YUV file\n");
+    fprintf(stderr, "\t<ofile>  specifies the encoded MPEG-2 file\n");
+    fprintf(stderr, "where options include:\n");
+    fprintf(stderr, "\t--cqp <QP>       const qp mode with specified <QP>\n");
+    fprintf(stderr, "\t--fps <FPS>      specify the frame rate\n");
+    fprintf(stderr, "\t--mode <MODE>    specify the mode 0 (I), 1 (I/P) and 2 (I/P/B)\n");
+    fprintf(stderr, "\t--profile <PROFILE>      specify the profile 0(Simple), or 1(Main, default)\n");
+    fprintf(stderr, "\t--level <LEVEL>  specify the level 0(Low), 1(Main, default) or 2(High)\n");    
+}
+
+void
+mpeg2_profile_level(struct mpeg2enc_context *ctx,
+                    int profile,
+                    int level)
+{
+    int l = 2, p;
+
+    for (p = profile; p < 2; p++) {
+        for (l = level; l < 3; l++) {
+            if (ctx->width <= mpeg2_upper_samplings[p][l].samplers_per_line &&
+                ctx->height <= mpeg2_upper_samplings[p][l].line_per_frame &&
+                ctx->fps <= mpeg2_upper_samplings[p][l].frame_per_sec) {
+                
+                goto __find;
+                break;
+            }
+        }
+    }
+
+    if (p == 2) {
+        fprintf(stderr, "Warning: can't find a proper profile and level for the specified width/height/fps\n");
+        p = 1;
+        l = 2;
+    }
+
+__find:    
+    ctx->profile = mpeg2_va_profiles[p];
+    ctx->level = l;
+}
+
+static void 
+parse_args(struct mpeg2enc_context *ctx, int argc, char **argv)
+{
+    int c, tmp;
+    int option_index = 0;
+    long file_size;
+    int profile = 1, level = 1;
+
+    static struct option long_options[] = {
+        {"help",        no_argument,            0,      'h'},
+        {"cqp",         required_argument,      0,      'c'},
+        {"fps",         required_argument,      0,      'f'},
+        {"mode",        required_argument,      0,      'm'},
+        {"profile",     required_argument,      0,      'p'},
+        {"level",       required_argument,      0,      'l'},
+        { NULL,         0,                      NULL,   0 }
+    };
+
+    if ((argc == 2 && strcmp(argv[1], "--help") == 0) ||
+        (argc < 5))
+        goto print_usage;
+
+    ctx->width = atoi(argv[1]);
+    ctx->height = atoi(argv[2]);
+
+    if (ctx->width <= 0 || ctx->height <= 0) {
+        fprintf(stderr, "<width> and <height> must be greater than 0\n");
+        goto err_exit;
+    }
+
+    ctx->ifp = fopen(argv[3], "rb");
+
+    if (ctx->ifp == NULL) {
+        fprintf(stderr, "Can't open the input file\n");
+        goto err_exit;
+    }
+
+    fseek(ctx->ifp, 0l, SEEK_END);
+    file_size = ftell(ctx->ifp);
+    ctx->frame_size = ctx->width * ctx->height * 3 / 2;
+
+    if ((file_size < ctx->frame_size) ||
+        (file_size % ctx->frame_size)) {
+        fprintf(stderr, "The input file size %ld isn't a multiple of the frame size %d\n", file_size, ctx->frame_size);
+        goto err_exit;
+    }
+
+    ctx->num_pictures = file_size / ctx->frame_size;
+    fseek(ctx->ifp, 0l, SEEK_SET);
+    
+    ctx->ofp = fopen(argv[4], "wb");
+    
+    if (ctx->ofp == NULL) {
+        fprintf(stderr, "Can't create the output file\n");
+        goto err_exit;
+    }
+
+    opterr = 0;
+    ctx->fps = 30;
+    ctx->qp = 8;
+    ctx->rate_control_mode = VA_RC_CQP;
+    ctx->mode = MPEG2_MODE_IP;
+    ctx->profile = VAProfileMPEG2Main;
+    ctx->level = MPEG2_LEVEL_MAIN;
+
+    optind = 5;
+
+    while((c = getopt_long(argc, argv,
+                           "",
+                           long_options, 
+                           &option_index)) != -1) {
+        switch(c) {
+        case 'c':
+            tmp = atoi(optarg);
+
+            /* only support q_scale_type = 0 */
+            if (tmp > 62 || tmp < 2) {
+                fprintf(stderr, "Warning: QP must be in [2, 62]\n");
+
+                if (tmp > 62)
+                    tmp = 62;
+
+                if (tmp < 2)
+                    tmp = 2;
+            }
+
+            ctx->qp = tmp & 0xFE;
+            ctx->rate_control_mode = VA_RC_CQP;
+
+            break;
+
+        case 'f':
+            tmp = atoi(optarg);
+
+            if (tmp <= 0)
+                fprintf(stderr, "Warning: FPS must be greater than 0\n");
+            else
+                ctx->fps = tmp;
+
+            ctx->rate_control_mode = VA_RC_CBR;
+
+            break;
+
+        case 'm':
+            tmp = atoi(optarg);
+            
+            if (tmp < MPEG2_MODE_I || tmp > MPEG2_MODE_IPB)
+                fprintf(stderr, "Waning: MODE must be 0, 1, or 2\n");
+            else
+                ctx->mode = tmp;
+
+            break;
+
+        case 'p':
+            tmp = atoi(optarg);
+            
+            if (tmp < 0 || tmp > 1)
+                fprintf(stderr, "Waning: PROFILE must be 0 or 1\n");
+            else
+                profile = tmp;
+
+            break;
+
+        case 'l':
+            tmp = atoi(optarg);
+            
+            if (tmp < MPEG2_LEVEL_LOW || tmp > MPEG2_LEVEL_HIGH)
+                fprintf(stderr, "Waning: LEVEL must be 0, 1, or 2\n");
+            else
+                level = tmp;
+
+            break;
+
+        case '?':
+            fprintf(stderr, "Error: unkown command options\n");
+
+        case 'h':
+            goto print_usage;
+        }
+    }
+
+    mpeg2_profile_level(ctx, profile, level);
+
+    return;
+
+print_usage:    
+    usage(argv[0]);
+err_exit:
+    mpeg2enc_exit(ctx, 1);
+}
+
+/*
+ * init
+ */
+void
+mpeg2enc_init_sequence_parameter(struct mpeg2enc_context *ctx,
+                                VAEncSequenceParameterBufferMPEG2 *seq_param)
+{
+    int profile = 4, level = 8;
+
+    switch (ctx->profile) {
+    case VAProfileMPEG2Simple:
+        profile = 5;
+        break;
+
+    case VAProfileMPEG2Main:
+        profile = 4;
+        break;
+
+    default:
+        assert(0);
+        break;
+    }
+
+    switch (ctx->level) {
+    case MPEG2_LEVEL_LOW:
+        level = 10;
+        break;
+
+    case MPEG2_LEVEL_MAIN:
+        level = 8;
+        break;
+
+    case MPEG2_LEVEL_HIGH:
+        level = 4;
+        break;
+
+    default:
+        assert(0);
+        break;
+    }
+        
+    seq_param->intra_period = ctx->intra_period;
+    seq_param->ip_period = ctx->ip_period;   /* FIXME: ??? */
+    seq_param->picture_width = ctx->width;
+    seq_param->picture_height = ctx->height;
+
+    if (ctx->bit_rate > 0)
+        seq_param->bits_per_second = 1024 * ctx->bit_rate; /* use kbps as input */
+    else
+        seq_param->bits_per_second = 0x3FFFF * 400;
+
+    seq_param->frame_rate = ctx->fps;
+    seq_param->aspect_ratio_information = 1;
+    seq_param->vbv_buffer_size = 3; /* B = 16 * 1024 * vbv_buffer_size */
+
+    seq_param->sequence_extension.bits.profile_and_level_indication = profile << 4 | level;
+    seq_param->sequence_extension.bits.progressive_sequence = 1; /* progressive frame-pictures */
+    seq_param->sequence_extension.bits.chroma_format = CHROMA_FORMAT_420; /* 4:2:0 */
+    seq_param->sequence_extension.bits.low_delay = 0; /* FIXME */
+    seq_param->sequence_extension.bits.frame_rate_extension_n = 0;
+    seq_param->sequence_extension.bits.frame_rate_extension_d = 0;
+
+    seq_param->gop_header.bits.time_code = (1 << 12); /* bit12: marker_bit */
+    seq_param->gop_header.bits.closed_gop = 0;
+    seq_param->gop_header.bits.broken_link = 0;    
+}
+
+static void
+mpeg2enc_init_picture_parameter(struct mpeg2enc_context *ctx,
+                               VAEncPictureParameterBufferMPEG2 *pic_param)
+{
+    pic_param->forward_reference_picture = VA_INVALID_ID;
+    pic_param->backward_reference_picture = VA_INVALID_ID;
+    pic_param->reconstructed_picture = VA_INVALID_ID;
+    pic_param->coded_buf = VA_INVALID_ID;
+    pic_param->picture_type = VAEncPictureTypeIntra;
+
+    pic_param->temporal_reference = 0;
+    pic_param->f_code[0][0] = 0xf;
+    pic_param->f_code[0][1] = 0xf;
+    pic_param->f_code[1][0] = 0xf;
+    pic_param->f_code[1][1] = 0xf;
+
+    pic_param->picture_coding_extension.bits.intra_dc_precision = 0; /* 8bits */
+    pic_param->picture_coding_extension.bits.picture_structure = 3; /* frame picture */
+    pic_param->picture_coding_extension.bits.top_field_first = 0; 
+    pic_param->picture_coding_extension.bits.frame_pred_frame_dct = 1; /* FIXME */
+    pic_param->picture_coding_extension.bits.concealment_motion_vectors = 0;
+    pic_param->picture_coding_extension.bits.q_scale_type = 0;
+    pic_param->picture_coding_extension.bits.intra_vlc_format = 0;
+    pic_param->picture_coding_extension.bits.alternate_scan = 0;
+    pic_param->picture_coding_extension.bits.repeat_first_field = 0;
+    pic_param->picture_coding_extension.bits.progressive_frame = 1;
+    pic_param->picture_coding_extension.bits.composite_display_flag = 0;
+}
+
+static void 
+mpeg2enc_alloc_va_resources(struct mpeg2enc_context *ctx)
+{
+    VAEntrypoint *entrypoint_list;
+    VAConfigAttrib attrib_list[2];
+    VAStatus va_status;
+    int max_entrypoints, num_entrypoints, entrypoint;
+    int major_ver, minor_ver;
+
+    ctx->va_dpy = va_open_display();
+    va_status = vaInitialize(ctx->va_dpy,
+                             &major_ver,
+                             &minor_ver);
+    CHECK_VASTATUS(va_status, "vaInitialize");
+
+    max_entrypoints = vaMaxNumEntrypoints(ctx->va_dpy);
+    entrypoint_list = malloc(max_entrypoints * sizeof(VAEntrypoint));
+    vaQueryConfigEntrypoints(ctx->va_dpy,
+                             ctx->profile,
+                             entrypoint_list,
+                             &num_entrypoints);
+
+    for	(entrypoint = 0; entrypoint < num_entrypoints; entrypoint++) {
+        if (entrypoint_list[entrypoint] == VAEntrypointEncSlice)
+            break;
+    }
+
+    free(entrypoint_list);
+
+    if (entrypoint == num_entrypoints) {
+        /* not find Slice entry point */
+        assert(0);
+    }
+
+    /* find out the format for the render target, and rate control mode */
+    attrib_list[0].type = VAConfigAttribRTFormat;
+    attrib_list[1].type = VAConfigAttribRateControl;
+    vaGetConfigAttributes(ctx->va_dpy,
+                          ctx->profile,
+                          VAEntrypointEncSlice,
+                          &attrib_list[0],
+                          2);
+
+    if ((attrib_list[0].value & VA_RT_FORMAT_YUV420) == 0) {
+        /* not find desired YUV420 RT format */
+        assert(0);
+    }
+
+    if ((attrib_list[1].value & ctx->rate_control_mode) == 0) {
+        /* Can't find matched RC mode */
+        fprintf(stderr, "RC mode %d isn't found, exit\n", ctx->rate_control_mode);
+        assert(0);
+    }
+
+    attrib_list[0].value = VA_RT_FORMAT_YUV420; /* set to desired RT format */
+    attrib_list[1].value = ctx->rate_control_mode; /* set to desired RC mode */
+
+    va_status = vaCreateConfig(ctx->va_dpy,
+                               ctx->profile,
+                               VAEntrypointEncSlice,
+                               attrib_list,
+                               2,
+                               &ctx->config_id);
+    CHECK_VASTATUS(va_status, "vaCreateConfig");
+
+    /* Create a context for this decode pipe */
+    va_status = vaCreateContext(ctx->va_dpy,
+                                ctx->config_id,
+                                ctx->width,
+                                ctx->height,
+                                VA_PROGRESSIVE, 
+                                0,
+                                0,
+                                &ctx->context_id);
+    CHECK_VASTATUS(va_status, "vaCreateContext");
+
+    va_status = vaCreateSurfaces(ctx->va_dpy,
+                                 VA_RT_FORMAT_YUV420,
+                                 ctx->width,
+                                 ctx->height,
+                                 surface_ids,
+                                 SID_NUMBER,
+                                 NULL,
+                                 0);
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+}
+
+static void 
+mpeg2enc_init(struct mpeg2enc_context *ctx)
+{
+    int i;
+
+    ctx->frame_data_buffer = (unsigned char *)malloc(ctx->frame_size);
+    ctx->seq_param_buf_id = VA_INVALID_ID;
+    ctx->pic_param_buf_id = VA_INVALID_ID;
+    ctx->packed_seq_header_param_buf_id = VA_INVALID_ID;
+    ctx->packed_seq_buf_id = VA_INVALID_ID;
+    ctx->packed_pic_header_param_buf_id = VA_INVALID_ID;
+    ctx->packed_pic_buf_id = VA_INVALID_ID;
+    ctx->codedbuf_buf_id = VA_INVALID_ID;
+    ctx->codedbuf_i_size = ctx->frame_size;
+    ctx->codedbuf_pb_size = 0;
+    ctx->next_display_order = 0;
+    ctx->next_type = VAEncPictureTypeIntra;
+
+    if (ctx->mode == MPEG2_MODE_I) {
+        ctx->intra_period = 1;
+        ctx->ip_period = 0;
+    } else if (ctx->mode == MPEG2_MODE_IP) {
+        ctx->intra_period = 16;
+        ctx->ip_period = 0;
+    } else {
+        ctx->intra_period = 16;
+        ctx->ip_period = 2;
+    }
+
+    ctx->next_bframes = ctx->ip_period;
+
+    ctx->new_sequence = 1;
+    ctx->new_gop_header = 1;
+    ctx->gop_header_in_display_order = 0;
+
+    ctx->bit_rate = -1;
+
+    for (i = 0; i < MAX_SLICES; i++) {
+        ctx->slice_param_buf_id[i] = VA_INVALID_ID;
+    }
+
+    mpeg2enc_init_sequence_parameter(ctx, &ctx->seq_param);
+    mpeg2enc_init_picture_parameter(ctx, &ctx->pic_param);
+    mpeg2enc_alloc_va_resources(ctx);
+
+    /* thread */
+    ctx->current_input_surface = SID_INPUT_PICTURE_0;
+    ctx->current_upload_surface = SID_INPUT_PICTURE_1;
+    ctx->upload_thread_value = pthread_create(&ctx->upload_thread_id,
+                                              NULL,
+                                              upload_yuv_to_surface,
+                                              ctx);
+}
+
+static int 
+mpeg2enc_time_code(VAEncSequenceParameterBufferMPEG2 *seq_param,
+                   int num_frames)
+{
+    int fps = (int)(seq_param->frame_rate + 0.5);
+    int time_code = 0;
+    int time_code_pictures, time_code_seconds, time_code_minutes, time_code_hours;
+    int drop_frame_flag = 0;
+
+    assert(fps <= 60);
+
+    time_code_seconds = num_frames / fps;
+    time_code_pictures = num_frames % fps;
+    time_code |= time_code_pictures;
+
+    time_code_minutes = time_code_seconds / 60;
+    time_code_seconds = time_code_seconds % 60;
+    time_code |= (time_code_seconds << 6);
+
+    time_code_hours = time_code_minutes / 60;
+    time_code_minutes = time_code_minutes % 60;
+
+    time_code |= (1 << 12);     /* marker_bit */
+    time_code |= (time_code_minutes << 13);
+
+    time_code_hours = time_code_hours % 24;
+    time_code |= (time_code_hours << 19);
+
+    time_code |= (drop_frame_flag << 24);
+
+    return time_code;
+}
+
+/*
+ * run
+ */
+static void
+mpeg2enc_update_sequence_parameter(struct mpeg2enc_context *ctx,
+                                   VAEncPictureType picture_type,
+                                   int coded_order,
+                                   int display_order)
+{
+    VAEncSequenceParameterBufferMPEG2 *seq_param = &ctx->seq_param;
+
+    /* update the time_code info for the new GOP */
+    if (ctx->new_gop_header) {
+        seq_param->gop_header.bits.time_code = mpeg2enc_time_code(seq_param, display_order);
+    }
+}
+
+static void
+mpeg2enc_update_picture_parameter(struct mpeg2enc_context *ctx,
+                                  VAEncPictureType picture_type,
+                                  int coded_order,
+                                  int display_order)
+{
+    VAEncPictureParameterBufferMPEG2 *pic_param = &ctx->pic_param;
+    uint8_t f_code_x, f_code_y;
+
+    pic_param->picture_type = picture_type;
+    pic_param->temporal_reference = (display_order - ctx->gop_header_in_display_order) & 0x3FF;
+    pic_param->reconstructed_picture = surface_ids[SID_RECON_PICTURE];
+    pic_param->forward_reference_picture = surface_ids[SID_REFERENCE_PICTURE_L0];
+    pic_param->backward_reference_picture = surface_ids[SID_REFERENCE_PICTURE_L1];
+
+    f_code_x = 0xf;
+    f_code_y = 0xf;
+    if (pic_param->picture_type != VAEncPictureTypeIntra) {
+	if (ctx->level == MPEG2_LEVEL_LOW) {
+		f_code_x = 7;
+		f_code_y = 4;
+	} else if (ctx->level == MPEG2_LEVEL_MAIN) {
+		f_code_x = 8;
+		f_code_y = 5;
+	} else {
+		f_code_x = 9;
+		f_code_y = 5;
+	}
+    }
+    
+    if (pic_param->picture_type == VAEncPictureTypeIntra) {
+        pic_param->f_code[0][0] = 0xf;
+        pic_param->f_code[0][1] = 0xf;
+        pic_param->f_code[1][0] = 0xf;
+        pic_param->f_code[1][1] = 0xf;
+        pic_param->forward_reference_picture = VA_INVALID_SURFACE;
+        pic_param->backward_reference_picture = VA_INVALID_SURFACE;
+
+    } else if (pic_param->picture_type == VAEncPictureTypePredictive) {
+        pic_param->f_code[0][0] = f_code_x;
+        pic_param->f_code[0][1] = f_code_y;
+        pic_param->f_code[1][0] = 0xf;
+        pic_param->f_code[1][1] = 0xf;
+        pic_param->forward_reference_picture = surface_ids[SID_REFERENCE_PICTURE_L0];
+        pic_param->backward_reference_picture = VA_INVALID_SURFACE;
+    } else if (pic_param->picture_type == VAEncPictureTypeBidirectional) {
+        pic_param->f_code[0][0] = f_code_x;
+        pic_param->f_code[0][1] = f_code_y;
+        pic_param->f_code[1][0] = f_code_x;
+        pic_param->f_code[1][1] = f_code_y;
+        pic_param->forward_reference_picture = surface_ids[SID_REFERENCE_PICTURE_L0];
+        pic_param->backward_reference_picture = surface_ids[SID_REFERENCE_PICTURE_L1];
+    } else {
+        assert(0);
+    }
+}
+
+static void
+mpeg2enc_update_picture_parameter_buffer(struct mpeg2enc_context *ctx,
+                                         VAEncPictureType picture_type,
+                                         int coded_order,
+                                         int display_order)
+{
+    VAEncPictureParameterBufferMPEG2 *pic_param = &ctx->pic_param;
+    VAStatus va_status;
+
+    /* update the coded buffer id */
+    pic_param->coded_buf = ctx->codedbuf_buf_id;
+    va_status = vaCreateBuffer(ctx->va_dpy,
+                               ctx->context_id,
+                               VAEncPictureParameterBufferType,
+                               sizeof(*pic_param),
+                               1,
+                               pic_param,
+                               &ctx->pic_param_buf_id);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+}
+
+static void 
+mpeg2enc_update_slice_parameter(struct mpeg2enc_context *ctx, VAEncPictureType picture_type)
+{
+    VAEncSequenceParameterBufferMPEG2 *seq_param;
+    VAEncPictureParameterBufferMPEG2 *pic_param;
+    VAEncSliceParameterBufferMPEG2 *slice_param;
+    VAStatus va_status;
+    int i, width_in_mbs, height_in_mbs;
+
+    pic_param = &ctx->pic_param;
+    assert(pic_param->picture_coding_extension.bits.q_scale_type == 0);
+
+    seq_param = &ctx->seq_param;
+    width_in_mbs = (seq_param->picture_width + 15) / 16;
+    height_in_mbs = (seq_param->picture_height + 15) / 16;
+    ctx->num_slice_groups = 1;
+
+    for (i = 0; i < height_in_mbs; i++) {
+        slice_param = &ctx->slice_param[i];
+        slice_param->macroblock_address = i * width_in_mbs;
+        slice_param->num_macroblocks = width_in_mbs;
+        slice_param->is_intra_slice = (picture_type == VAEncPictureTypeIntra);
+        slice_param->quantiser_scale_code = ctx->qp / 2;
+    }
+
+    va_status = vaCreateBuffer(ctx->va_dpy,
+                               ctx->context_id,
+                               VAEncSliceParameterBufferType,
+                               sizeof(*slice_param),
+                               height_in_mbs,
+                               ctx->slice_param,
+                               ctx->slice_param_buf_id);
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");;
+}
+
+static int 
+begin_picture(struct mpeg2enc_context *ctx,
+              int coded_order,
+              int display_order,
+              VAEncPictureType picture_type)
+{
+    VAStatus va_status;
+    int tmp;
+    VAEncPackedHeaderParameterBuffer packed_header_param_buffer;
+    unsigned int length_in_bits;
+    unsigned char *packed_seq_buffer = NULL, *packed_pic_buffer = NULL;
+
+    if (ctx->upload_thread_value != 0) {
+        fprintf(stderr, "FATAL error!!!\n");
+        exit(1);
+    }
+    
+    pthread_join(ctx->upload_thread_id, NULL);
+
+    ctx->upload_thread_value = -1;
+    tmp = ctx->current_input_surface;
+    ctx->current_input_surface = ctx->current_upload_surface;
+    ctx->current_upload_surface = tmp;
+
+    mpeg2enc_update_sequence_parameter(ctx, picture_type, coded_order, display_order);
+    mpeg2enc_update_picture_parameter(ctx, picture_type, coded_order, display_order);
+
+    if (ctx->new_sequence || ctx->new_gop_header) {
+        assert(picture_type == VAEncPictureTypeIntra);
+        length_in_bits = build_packed_seq_buffer(ctx, &ctx->seq_param, &packed_seq_buffer);
+        packed_header_param_buffer.type = VAEncPackedHeaderMPEG2_SPS;
+        packed_header_param_buffer.has_emulation_bytes = 0;
+        packed_header_param_buffer.bit_length = length_in_bits;
+        va_status = vaCreateBuffer(ctx->va_dpy,
+                                   ctx->context_id,
+                                   VAEncPackedHeaderParameterBufferType,
+                                   sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
+                                   &ctx->packed_seq_header_param_buf_id);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+        va_status = vaCreateBuffer(ctx->va_dpy,
+                                   ctx->context_id,
+                                   VAEncPackedHeaderDataBufferType,
+                                   (length_in_bits + 7) / 8, 1, packed_seq_buffer,
+                                   &ctx->packed_seq_buf_id);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+        free(packed_seq_buffer);
+    }
+
+    length_in_bits = build_packed_pic_buffer(&ctx->seq_param, &ctx->pic_param, &packed_pic_buffer);
+    packed_header_param_buffer.type = VAEncPackedHeaderMPEG2_PPS;
+    packed_header_param_buffer.has_emulation_bytes = 0;
+    packed_header_param_buffer.bit_length = length_in_bits;
+
+    va_status = vaCreateBuffer(ctx->va_dpy,
+                               ctx->context_id,
+                               VAEncPackedHeaderParameterBufferType,
+                               sizeof(packed_header_param_buffer), 1, &packed_header_param_buffer,
+                               &ctx->packed_pic_header_param_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    va_status = vaCreateBuffer(ctx->va_dpy,
+                               ctx->context_id,
+                               VAEncPackedHeaderDataBufferType,
+                               (length_in_bits + 7) / 8, 1, packed_pic_buffer,
+                               &ctx->packed_pic_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+    free(packed_pic_buffer);
+
+    /* sequence parameter set */
+    VAEncSequenceParameterBufferMPEG2 *seq_param = &ctx->seq_param;
+    va_status = vaCreateBuffer(ctx->va_dpy,
+                               ctx->context_id,
+                               VAEncSequenceParameterBufferType,
+                               sizeof(*seq_param),
+                               1,
+                               seq_param,
+                               &ctx->seq_param_buf_id);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");;
+
+    /* slice parameter */
+    mpeg2enc_update_slice_parameter(ctx, picture_type);
+
+    return 0;
+}
+
+static int 
+mpeg2enc_render_picture(struct mpeg2enc_context *ctx)
+{
+    VAStatus va_status;
+    VABufferID va_buffers[16];
+    unsigned int num_va_buffers = 0;
+
+    va_buffers[num_va_buffers++] = ctx->seq_param_buf_id;
+    va_buffers[num_va_buffers++] = ctx->pic_param_buf_id;
+
+    if (ctx->packed_seq_header_param_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = ctx->packed_seq_header_param_buf_id;
+
+    if (ctx->packed_seq_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = ctx->packed_seq_buf_id;
+
+    if (ctx->packed_pic_header_param_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = ctx->packed_pic_header_param_buf_id;
+
+    if (ctx->packed_pic_buf_id != VA_INVALID_ID)
+        va_buffers[num_va_buffers++] = ctx->packed_pic_buf_id;
+
+    va_status = vaBeginPicture(ctx->va_dpy,
+                               ctx->context_id,
+                               surface_ids[ctx->current_input_surface]);
+    CHECK_VASTATUS(va_status,"vaBeginPicture");
+
+    va_status = vaRenderPicture(ctx->va_dpy,
+                                ctx->context_id,
+                                va_buffers,
+                                num_va_buffers);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+
+    va_status = vaRenderPicture(ctx->va_dpy,
+                                ctx->context_id,
+                                &ctx->slice_param_buf_id[0],
+                                ctx->num_slice_groups);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+
+    va_status = vaEndPicture(ctx->va_dpy, ctx->context_id);
+    CHECK_VASTATUS(va_status,"vaEndPicture");
+
+    return 0;
+}
+
+static int 
+mpeg2enc_destroy_buffers(struct mpeg2enc_context *ctx, VABufferID *va_buffers, unsigned int num_va_buffers)
+{
+    VAStatus va_status;
+    unsigned int i;
+
+    for (i = 0; i < num_va_buffers; i++) {
+        if (va_buffers[i] != VA_INVALID_ID) {
+            va_status = vaDestroyBuffer(ctx->va_dpy, va_buffers[i]);
+            CHECK_VASTATUS(va_status,"vaDestroyBuffer");
+            va_buffers[i] = VA_INVALID_ID;
+        }
+    }
+
+    return 0;
+}
+
+static void
+end_picture(struct mpeg2enc_context *ctx, VAEncPictureType picture_type, int next_is_bpic)
+{
+    VABufferID tempID;
+
+    /* Prepare for next picture */
+    tempID = surface_ids[SID_RECON_PICTURE];  
+
+    if (picture_type != VAEncPictureTypeBidirectional) {
+        if (next_is_bpic) {
+            surface_ids[SID_RECON_PICTURE] = surface_ids[SID_REFERENCE_PICTURE_L1]; 
+            surface_ids[SID_REFERENCE_PICTURE_L1] = tempID;	
+        } else {
+            surface_ids[SID_RECON_PICTURE] = surface_ids[SID_REFERENCE_PICTURE_L0]; 
+            surface_ids[SID_REFERENCE_PICTURE_L0] = tempID;
+        }
+    } else {
+        if (!next_is_bpic) {
+            surface_ids[SID_RECON_PICTURE] = surface_ids[SID_REFERENCE_PICTURE_L0]; 
+            surface_ids[SID_REFERENCE_PICTURE_L0] = surface_ids[SID_REFERENCE_PICTURE_L1];
+            surface_ids[SID_REFERENCE_PICTURE_L1] = tempID;
+        }
+    }
+
+    mpeg2enc_destroy_buffers(ctx, &ctx->seq_param_buf_id, 1);
+    mpeg2enc_destroy_buffers(ctx, &ctx->pic_param_buf_id, 1);
+    mpeg2enc_destroy_buffers(ctx, &ctx->packed_seq_header_param_buf_id, 1);
+    mpeg2enc_destroy_buffers(ctx, &ctx->packed_seq_buf_id, 1);
+    mpeg2enc_destroy_buffers(ctx, &ctx->packed_pic_header_param_buf_id, 1);
+    mpeg2enc_destroy_buffers(ctx, &ctx->packed_pic_buf_id, 1);
+    mpeg2enc_destroy_buffers(ctx, &ctx->slice_param_buf_id[0], ctx->num_slice_groups);
+    mpeg2enc_destroy_buffers(ctx, &ctx->codedbuf_buf_id, 1);
+    memset(ctx->slice_param, 0, sizeof(ctx->slice_param));
+    ctx->num_slice_groups = 0;
+}
+
+static int
+store_coded_buffer(struct mpeg2enc_context *ctx, VAEncPictureType picture_type)
+{
+    VACodedBufferSegment *coded_buffer_segment;
+    unsigned char *coded_mem;
+    int slice_data_length;
+    VAStatus va_status;
+    VASurfaceStatus surface_status;
+    size_t w_items;
+
+    va_status = vaSyncSurface(ctx->va_dpy, surface_ids[ctx->current_input_surface]);
+    CHECK_VASTATUS(va_status,"vaSyncSurface");
+
+    surface_status = 0;
+    va_status = vaQuerySurfaceStatus(ctx->va_dpy, surface_ids[ctx->current_input_surface], &surface_status);
+    CHECK_VASTATUS(va_status,"vaQuerySurfaceStatus");
+
+    va_status = vaMapBuffer(ctx->va_dpy, ctx->codedbuf_buf_id, (void **)(&coded_buffer_segment));
+    CHECK_VASTATUS(va_status,"vaMapBuffer");
+    coded_mem = coded_buffer_segment->buf;
+
+    if (coded_buffer_segment->status & VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK) {
+        if (picture_type == VAEncPictureTypeIntra)
+            ctx->codedbuf_i_size *= 2;
+        else
+            ctx->codedbuf_pb_size *= 2;
+
+        vaUnmapBuffer(ctx->va_dpy, ctx->codedbuf_buf_id);
+        return -1;
+    }
+
+    slice_data_length = coded_buffer_segment->size;
+
+    do {
+        w_items = fwrite(coded_mem, slice_data_length, 1, ctx->ofp);
+    } while (w_items != 1);
+
+    if (picture_type == VAEncPictureTypeIntra) {
+        if (ctx->codedbuf_i_size > slice_data_length * 3 / 2) {
+            ctx->codedbuf_i_size = slice_data_length * 3 / 2;
+        }
+        
+        if (ctx->codedbuf_pb_size < slice_data_length) {
+            ctx->codedbuf_pb_size = slice_data_length;
+        }
+    } else {
+        if (ctx->codedbuf_pb_size > slice_data_length * 3 / 2) {
+            ctx->codedbuf_pb_size = slice_data_length * 3 / 2;
+        }
+    }
+
+    vaUnmapBuffer(ctx->va_dpy, ctx->codedbuf_buf_id);
+
+    return 0;
+}
+
+static void
+encode_picture(struct mpeg2enc_context *ctx,
+               int coded_order,
+               int display_order,
+               VAEncPictureType picture_type,
+               int next_is_bpic,
+               int next_display_order)
+{
+    VAStatus va_status;
+    int ret = 0, codedbuf_size;
+    
+    begin_picture(ctx, coded_order, display_order, picture_type);
+
+    if (1) {
+        /* upload YUV data to VA surface for next frame */
+        if (next_display_order >= ctx->num_pictures)
+            next_display_order = ctx->num_pictures - 1;
+
+        fseek(ctx->ifp, ctx->frame_size * next_display_order, SEEK_SET);
+        ctx->upload_thread_value = pthread_create(&ctx->upload_thread_id,
+                                                  NULL,
+                                                  upload_yuv_to_surface,
+                                                  ctx);
+    }
+
+    do {
+        mpeg2enc_destroy_buffers(ctx, &ctx->codedbuf_buf_id, 1);
+        mpeg2enc_destroy_buffers(ctx, &ctx->pic_param_buf_id, 1);
+
+
+        if (VAEncPictureTypeIntra == picture_type) {
+            codedbuf_size = ctx->codedbuf_i_size;
+        } else {
+            codedbuf_size = ctx->codedbuf_pb_size;
+        }
+
+        /* coded buffer */
+        va_status = vaCreateBuffer(ctx->va_dpy,
+                                   ctx->context_id,
+                                   VAEncCodedBufferType,
+                                   codedbuf_size, 1, NULL,
+                                   &ctx->codedbuf_buf_id);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");
+
+        /* picture parameter set */
+        mpeg2enc_update_picture_parameter_buffer(ctx, picture_type, coded_order, display_order);
+
+        mpeg2enc_render_picture(ctx);
+
+        ret = store_coded_buffer(ctx, picture_type);
+    } while (ret);
+
+    end_picture(ctx, picture_type, next_is_bpic);
+}
+
+static void
+update_next_frame_info(struct mpeg2enc_context *ctx,
+                       VAEncPictureType curr_type,
+                       int curr_coded_order,
+                       int curr_display_order)
+{
+    if (((curr_coded_order + 1) % ctx->intra_period) == 0) {
+        ctx->next_type = VAEncPictureTypeIntra;
+        ctx->next_display_order = curr_coded_order + 1;
+        
+        return;
+    }
+
+    if (curr_type == VAEncPictureTypeIntra) {
+        assert(curr_display_order == curr_coded_order);
+        ctx->next_type = VAEncPictureTypePredictive;
+        ctx->next_bframes = ctx->ip_period;
+        ctx->next_display_order = curr_display_order + ctx->next_bframes + 1;
+    } else if (curr_type == VAEncPictureTypePredictive) {
+        if (ctx->ip_period == 0) {
+            assert(curr_display_order == curr_coded_order);
+            ctx->next_type = VAEncPictureTypePredictive;
+            ctx->next_display_order = curr_display_order + 1;
+        } else {
+            ctx->next_type = VAEncPictureTypeBidirectional;
+            ctx->next_display_order = curr_display_order - ctx->next_bframes;
+            ctx->next_bframes--;
+        }
+    } else if (curr_type == VAEncPictureTypeBidirectional) {
+        if (ctx->next_bframes == 0) {
+            ctx->next_type = VAEncPictureTypePredictive;
+            ctx->next_bframes = ctx->ip_period;
+            ctx->next_display_order = curr_display_order + ctx->next_bframes + 2;
+        } else {
+            ctx->next_type = VAEncPictureTypeBidirectional;
+            ctx->next_display_order = curr_display_order + 1;
+            ctx->next_bframes--;
+        }
+    }
+
+    if (ctx->next_display_order >= ctx->num_pictures) {
+        int rtmp = ctx->next_display_order - (ctx->num_pictures - 1);
+        ctx->next_display_order = ctx->num_pictures - 1;
+        ctx->next_bframes -= rtmp;
+    }
+}
+
+static void
+mpeg2enc_run(struct mpeg2enc_context *ctx)
+{
+    int display_order = 0, coded_order = 0;
+    VAEncPictureType type;
+
+    ctx->new_sequence = 1;
+    ctx->new_gop_header = 1;
+    ctx->gop_header_in_display_order = display_order;
+
+    while (coded_order < ctx->num_pictures) {
+        type = ctx->next_type;
+        display_order = ctx->next_display_order;
+        /* follow the IPBxxBPBxxB mode */
+        update_next_frame_info(ctx, type, coded_order, display_order);
+        encode_picture(ctx,
+                       coded_order,
+                       display_order,
+                       type,
+                       ctx->next_type == VAEncPictureTypeBidirectional,
+                       ctx->next_display_order);
+
+        /* update gop_header */
+        ctx->new_sequence = 0;
+        ctx->new_gop_header = ctx->next_type == VAEncPictureTypeIntra;
+
+        if (ctx->new_gop_header)
+            ctx->gop_header_in_display_order += ctx->intra_period;
+
+        coded_order++;
+
+        fprintf(stderr, "\r %d/%d ...", coded_order, ctx->num_pictures);
+        fflush(stdout);
+    }
+}
+
+/*
+ * end
+ */
+static void
+mpeg2enc_release_va_resources(struct mpeg2enc_context *ctx)
+{
+    vaDestroySurfaces(ctx->va_dpy, surface_ids, SID_NUMBER);	
+    vaDestroyContext(ctx->va_dpy, ctx->context_id);
+    vaDestroyConfig(ctx->va_dpy, ctx->config_id);
+    vaTerminate(ctx->va_dpy);
+    va_close_display(ctx->va_dpy);
+}
+
+static void
+mpeg2enc_end(struct mpeg2enc_context *ctx)
+{
+    pthread_join(ctx->upload_thread_id, NULL);
+    mpeg2enc_release_va_resources(ctx);
+}
+
+int 
+main(int argc, char *argv[])
+{
+    struct mpeg2enc_context ctx;
+    struct timeval tpstart, tpend; 
+    float timeuse;
+
+    gettimeofday(&tpstart, NULL);
+
+    memset(&ctx, 0, sizeof(ctx));
+    parse_args(&ctx, argc, argv);
+    mpeg2enc_init(&ctx);
+    mpeg2enc_run(&ctx);
+    mpeg2enc_end(&ctx);
+
+    gettimeofday(&tpend, NULL);
+    timeuse = 1000000 * (tpend.tv_sec - tpstart.tv_sec) + tpend.tv_usec - tpstart.tv_usec;
+    timeuse /= 1000000;
+    fprintf(stderr, "\ndone!\n");
+    fprintf(stderr, "encode %d frames in %f secondes, FPS is %.1f\n", ctx.num_pictures, timeuse, ctx.num_pictures / timeuse);
+
+    mpeg2enc_exit(&ctx, 0);
+
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/loadsurface.h b/examples/thirdparty/libva/test/loadsurface.h
new file mode 100755
index 0000000..119db97
--- /dev/null
+++ b/examples/thirdparty/libva/test/loadsurface.h
@@ -0,0 +1,480 @@
+/*
+ * Copyright (c) 2008-2009 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 "loadsurface_yuv.h"
+
+static int scale_2dimage(unsigned char *src_img, int src_imgw, int src_imgh,
+                         unsigned char *dst_img, int dst_imgw, int dst_imgh)
+{
+    int row=0, col=0;
+
+    for (row=0; row<dst_imgh; row++) {
+        for (col=0; col<dst_imgw; col++) {
+            *(dst_img + row * dst_imgw + col) = *(src_img + (row * src_imgh/dst_imgh) * src_imgw + col * src_imgw/dst_imgw);
+        }
+    }
+
+    return 0;
+}
+
+
+static int YUV_blend_with_pic(int width, int height,
+                              unsigned char *Y_start, int Y_pitch,
+                              unsigned char *U_start, int U_pitch,
+                              unsigned char *V_start, int V_pitch,
+                              unsigned int fourcc, int fixed_alpha)
+{
+    /* PIC YUV format */
+    unsigned char *pic_y_old = yuvga_pic;
+    unsigned char *pic_u_old = pic_y_old + 640*480;
+    unsigned char *pic_v_old = pic_u_old + 640*480/4;
+    unsigned char *pic_y, *pic_u, *pic_v;
+
+    int alpha_values[] = {100,90,80,70,60,50,40,30,20,30,40,50,60,70,80,90};
+    
+    static int alpha_idx = 0;
+    int alpha;
+    int allocated = 0;
+    
+    int row, col;
+
+    if (fixed_alpha == 0) {
+        alpha = alpha_values[alpha_idx % 16 ];
+        alpha_idx ++;
+    } else
+        alpha = fixed_alpha;
+
+    //alpha = 0;
+    
+    pic_y = pic_y_old;
+    pic_u = pic_u_old;
+    pic_v = pic_v_old;
+    
+    if (width != 640 || height != 480) { /* need to scale the pic */
+        pic_y = (unsigned char *)malloc(width * height);
+        pic_u = (unsigned char *)malloc(width * height/4);
+        pic_v = (unsigned char *)malloc(width * height/4);
+
+        allocated = 1;
+        
+        scale_2dimage(pic_y_old, 640, 480,
+                      pic_y, width, height);
+        scale_2dimage(pic_u_old, 320, 240,
+                      pic_u, width/2, height/2);
+        scale_2dimage(pic_v_old, 320, 240,
+                      pic_v, width/2, height/2);
+    }
+
+    /* begin blend */
+
+    /* Y plane */
+    int Y_pixel_stride = 1;
+    if (fourcc == VA_FOURCC_YUY2) 
+        Y_pixel_stride = 2;
+         
+    for (row=0; row<height; row++) {
+        unsigned char *p = Y_start + row * Y_pitch;
+        unsigned char *q = pic_y + row * width;
+        for (col=0; col<width; col++, q++) {
+            *p  = *p * (100 - alpha) / 100 + *q * alpha/100;
+            p += Y_pixel_stride;
+        }
+    }
+
+    /* U/V plane */
+    int U_pixel_stride = 0, V_pixel_stride = 0;
+    int v_factor_to_nv12 = 1;
+    switch (fourcc) {
+    case VA_FOURCC_YV12:
+        U_pixel_stride = V_pixel_stride = 1;
+        break;
+    case VA_FOURCC_NV12:
+        U_pixel_stride = V_pixel_stride = 2;
+        break;
+    case VA_FOURCC_YUY2:
+        U_pixel_stride = V_pixel_stride = 4;
+        v_factor_to_nv12 = 2;
+        break;
+    default:
+        break;
+    }
+    for (row=0; row<height/2*v_factor_to_nv12; row++) {
+        unsigned char *pU = U_start + row * U_pitch;
+        unsigned char *pV = V_start + row * V_pitch;
+        unsigned char *qU = pic_u + row/v_factor_to_nv12 * width/2;
+        unsigned char *qV = pic_v + row/v_factor_to_nv12 * width/2;
+            
+        for (col=0; col<width/2; col++, qU++, qV++) {
+            *pU  = *pU * (100 - alpha) / 100 + *qU * alpha/100;
+            *pV  = *pV * (100 - alpha) / 100 + *qV * alpha/100;
+
+            pU += U_pixel_stride;
+            pV += V_pixel_stride;
+        }
+    }
+        
+    
+    if (allocated) {
+        free(pic_y);
+        free(pic_u);
+        free(pic_v);
+    }
+    
+    return 0;
+}
+
+static int yuvgen_planar(int width, int height,
+                         unsigned char *Y_start, int Y_pitch,
+                         unsigned char *U_start, int U_pitch,
+                         unsigned char *V_start, int V_pitch,
+                         unsigned int fourcc, int box_width, int row_shift,
+                         int field)
+{
+    int row, alpha;
+    unsigned char uv_value = 0x80;
+
+    /* copy Y plane */
+    int y_factor = 1;
+    if (fourcc == VA_FOURCC_YUY2) y_factor = 2;
+    for (row=0;row<height;row++) {
+        unsigned char *Y_row = Y_start + row * Y_pitch;
+        int jj, xpos, ypos;
+
+        ypos = (row / box_width) & 0x1;
+
+        /* fill garbage data into the other field */
+        if (((field == VA_TOP_FIELD) && (row &1))
+            || ((field == VA_BOTTOM_FIELD) && ((row &1)==0))) { 
+            memset(Y_row, 0xff, width);
+            continue;
+        }
+        
+        for (jj=0; jj<width; jj++) {
+            xpos = ((row_shift + jj) / box_width) & 0x1;
+            if (xpos == ypos)
+                Y_row[jj*y_factor] = 0xeb;
+            else 
+                Y_row[jj*y_factor] = 0x10;
+
+            if (fourcc == VA_FOURCC_YUY2) {
+                Y_row[jj*y_factor+1] = uv_value; // it is for UV
+            }
+        }
+    }
+  
+    /* copy UV data */
+    for( row =0; row < height/2; row++) {
+
+        /* fill garbage data into the other field */
+        if (((field == VA_TOP_FIELD) && (row &1))
+            || ((field == VA_BOTTOM_FIELD) && ((row &1)==0))) {
+            uv_value = 0xff;
+        }
+
+        unsigned char *U_row = U_start + row * U_pitch;
+        unsigned char *V_row = V_start + row * V_pitch;
+        switch (fourcc) {
+        case VA_FOURCC_NV12:
+            memset(U_row, uv_value, width);
+            break;
+        case VA_FOURCC_YV12:
+            memset (U_row,uv_value,width/2);
+            memset (V_row,uv_value,width/2);
+            break;
+        case VA_FOURCC_YUY2:
+            // see above. it is set with Y update.
+            break;
+        default:
+            printf("unsupported fourcc in loadsurface.h\n");
+            assert(0);
+        }
+    }
+
+    if (getenv("AUTO_NOUV"))
+        return 0;
+
+    if (getenv("AUTO_ALPHA"))
+        alpha = 0;
+    else
+        alpha = 70;
+    
+    YUV_blend_with_pic(width,height,
+                       Y_start, Y_pitch,
+                       U_start, U_pitch,
+                       V_start, V_pitch,
+                       fourcc, alpha);
+    
+    return 0;
+}
+
+static int upload_surface(VADisplay va_dpy, VASurfaceID surface_id,
+                          int box_width, int row_shift,
+                          int field)
+{
+    VAImage surface_image;
+    void *surface_p=NULL, *U_start = NULL,*V_start = NULL;
+    VAStatus va_status;
+    unsigned int pitches[3]={0,0,0};
+    
+    va_status = vaDeriveImage(va_dpy,surface_id,&surface_image);
+    CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+    vaMapBuffer(va_dpy,surface_image.buf,&surface_p);
+    assert(VA_STATUS_SUCCESS == va_status);
+
+    pitches[0] = surface_image.pitches[0];
+    switch (surface_image.format.fourcc) {
+    case VA_FOURCC_NV12:
+        U_start = (char *)surface_p + surface_image.offsets[1];
+        V_start = (char *)U_start + 1;
+        pitches[1] = surface_image.pitches[1];
+        pitches[2] = surface_image.pitches[1];
+        break;
+    case VA_FOURCC_IYUV:
+        U_start = (char *)surface_p + surface_image.offsets[1];
+        V_start = (char *)surface_p + surface_image.offsets[2];
+        pitches[1] = surface_image.pitches[1];
+        pitches[2] = surface_image.pitches[2];
+        break;
+    case VA_FOURCC_YV12:
+        U_start = (char *)surface_p + surface_image.offsets[2];
+        V_start = (char *)surface_p + surface_image.offsets[1];
+        pitches[1] = surface_image.pitches[2];
+        pitches[2] = surface_image.pitches[1];
+        break;
+    case VA_FOURCC_YUY2:
+        U_start = (char *)surface_p + 1;
+        V_start = (char *)surface_p + 3;
+        pitches[1] = surface_image.pitches[0];
+        pitches[2] = surface_image.pitches[0];
+        break;
+    default:
+        assert(0);
+    }
+
+    /* assume surface is planar format */
+    yuvgen_planar(surface_image.width, surface_image.height,
+                  (unsigned char *)surface_p, pitches[0],
+                  (unsigned char *)U_start, pitches[1],
+                  (unsigned char *)V_start, pitches[2],
+                  surface_image.format.fourcc,
+                  box_width, row_shift, field);
+        
+    vaUnmapBuffer(va_dpy,surface_image.buf);
+
+    vaDestroyImage(va_dpy,surface_image.image_id);
+
+    return 0;
+}
+
+/*
+ * Upload YUV data from memory into a surface
+ * if src_fourcc == NV12, assume the buffer pointed by src_U
+ * is UV interleaved (src_V is ignored)
+ */
+static int upload_surface_yuv(VADisplay va_dpy, VASurfaceID surface_id,
+                              int src_fourcc, int src_width, int src_height,
+                              unsigned char *src_Y, unsigned char *src_U, unsigned char *src_V)
+{
+    VAImage surface_image;
+    unsigned char *surface_p=NULL, *Y_start=NULL, *U_start=NULL, *V_start=NULL;
+    int Y_pitch=0, U_pitch=0, V_pitch=0, row;
+    VAStatus va_status;
+    
+    va_status = vaDeriveImage(va_dpy,surface_id, &surface_image);
+    CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+    vaMapBuffer(va_dpy,surface_image.buf,(void **)&surface_p);
+    assert(VA_STATUS_SUCCESS == va_status);
+
+    Y_start = surface_p;
+    Y_pitch = surface_image.pitches[0];
+    switch (surface_image.format.fourcc) {
+    case VA_FOURCC_NV12:
+        U_start = (unsigned char *)surface_p + surface_image.offsets[1];
+        V_start = U_start + 1;
+        U_pitch = surface_image.pitches[1];
+        V_pitch = surface_image.pitches[1];
+        break;
+    case VA_FOURCC_IYUV:
+        U_start = (unsigned char *)surface_p + surface_image.offsets[1];
+        V_start = (unsigned char *)surface_p + surface_image.offsets[2];
+        U_pitch = surface_image.pitches[1];
+        V_pitch = surface_image.pitches[2];
+        break;
+    case VA_FOURCC_YV12:
+        U_start = (unsigned char *)surface_p + surface_image.offsets[2];
+        V_start = (unsigned char *)surface_p + surface_image.offsets[1];
+        U_pitch = surface_image.pitches[2];
+        V_pitch = surface_image.pitches[1];
+        break;
+    case VA_FOURCC_YUY2:
+        U_start = surface_p + 1;
+        V_start = surface_p + 3;
+        U_pitch = surface_image.pitches[0];
+        V_pitch = surface_image.pitches[0];
+        break;
+    default:
+        assert(0);
+    }
+
+    /* copy Y plane */
+    for (row=0;row<src_height;row++) {
+        unsigned char *Y_row = Y_start + row * Y_pitch;
+        memcpy(Y_row, src_Y + row*src_width, src_width);
+    }
+  
+    for (row =0; row < src_height/2; row++) {
+        unsigned char *U_row = U_start + row * U_pitch;
+        unsigned char *u_ptr = NULL, *v_ptr=NULL;
+        int j;
+        switch (surface_image.format.fourcc) {
+        case VA_FOURCC_NV12:
+            if (src_fourcc == VA_FOURCC_NV12) {
+                memcpy(U_row, src_U + row * src_width, src_width);
+                break;
+            } else if (src_fourcc == VA_FOURCC_IYUV) {
+                u_ptr = src_U + row * (src_width/2);
+                v_ptr = src_V + row * (src_width/2);
+            } else if (src_fourcc == VA_FOURCC_YV12) {
+                v_ptr = src_U + row * (src_width/2);
+                u_ptr = src_V + row * (src_width/2);
+            }
+            for(j = 0; j < src_width/2; j++) {
+                U_row[2*j] = u_ptr[j];
+                U_row[2*j+1] = v_ptr[j];
+            }
+            break;
+        case VA_FOURCC_IYUV:
+        case VA_FOURCC_YV12:
+        case VA_FOURCC_YUY2:
+        default:
+            printf("unsupported fourcc in load_surface_yuv\n");
+            assert(0);
+        }
+    }
+    
+    vaUnmapBuffer(va_dpy,surface_image.buf);
+
+    vaDestroyImage(va_dpy,surface_image.image_id);
+
+    return 0;
+}
+
+/*
+ * Download YUV data from a surface into memory
+ * Some hardward doesn't have a aperture for linear access of
+ * tiled surface, thus use vaGetImage to expect the implemnetion
+ * to do tile to linear convert
+ * 
+ * if dst_fourcc == NV12, assume the buffer pointed by dst_U
+ * is UV interleaved (src_V is ignored)
+ */
+static int download_surface_yuv(VADisplay va_dpy, VASurfaceID surface_id,
+                                int dst_fourcc, int dst_width, int dst_height,
+                                unsigned char *dst_Y, unsigned char *dst_U, unsigned char *dst_V)
+{
+    VAImage surface_image;
+    unsigned char *surface_p=NULL, *Y_start=NULL, *U_start=NULL,*V_start=NULL;
+    int Y_pitch=0, U_pitch=0, V_pitch=0, row;
+    VAStatus va_status;
+    
+    va_status = vaDeriveImage(va_dpy,surface_id, &surface_image);
+    CHECK_VASTATUS(va_status,"vaDeriveImage");
+
+    vaMapBuffer(va_dpy,surface_image.buf,(void **)&surface_p);
+    assert(VA_STATUS_SUCCESS == va_status);
+
+    Y_start = surface_p;
+    Y_pitch = surface_image.pitches[0];
+    switch (surface_image.format.fourcc) {
+    case VA_FOURCC_NV12:
+        U_start = (unsigned char *)surface_p + surface_image.offsets[1];
+        V_start = U_start + 1;
+        U_pitch = surface_image.pitches[1];
+        V_pitch = surface_image.pitches[1];
+        break;
+    case VA_FOURCC_IYUV:
+        U_start = (unsigned char *)surface_p + surface_image.offsets[1];
+        V_start = (unsigned char *)surface_p + surface_image.offsets[2];
+        U_pitch = surface_image.pitches[1];
+        V_pitch = surface_image.pitches[2];
+        break;
+    case VA_FOURCC_YV12:
+        U_start = (unsigned char *)surface_p + surface_image.offsets[2];
+        V_start = (unsigned char *)surface_p + surface_image.offsets[1];
+        U_pitch = surface_image.pitches[2];
+        V_pitch = surface_image.pitches[1];
+        break;
+    case VA_FOURCC_YUY2:
+        U_start = surface_p + 1;
+        V_start = surface_p + 3;
+        U_pitch = surface_image.pitches[0];
+        V_pitch = surface_image.pitches[0];
+        break;
+    default:
+        assert(0);
+    }
+
+    /* copy Y plane */
+    for (row=0;row<dst_height;row++) {
+        unsigned char *Y_row = Y_start + row * Y_pitch;
+        memcpy(dst_Y + row*dst_width, Y_row, dst_width);
+    }
+  
+    for (row =0; row < dst_height/2; row++) {
+        unsigned char *U_row = U_start + row * U_pitch;
+        unsigned char *u_ptr = NULL, *v_ptr = NULL;
+        int j;
+        switch (surface_image.format.fourcc) {
+        case VA_FOURCC_NV12:
+            if (dst_fourcc == VA_FOURCC_NV12) {
+                memcpy(dst_U + row * dst_width, U_row, dst_width);
+                break;
+            } else if (dst_fourcc == VA_FOURCC_IYUV) {
+                u_ptr = dst_U + row * (dst_width/2);
+                v_ptr = dst_V + row * (dst_width/2);
+            } else if (dst_fourcc == VA_FOURCC_YV12) {
+                v_ptr = dst_U + row * (dst_width/2);
+                u_ptr = dst_V + row * (dst_width/2);
+            }
+            for(j = 0; j < dst_width/2; j++) {
+                u_ptr[j] = U_row[2*j];
+                v_ptr[j] = U_row[2*j+1];
+            }
+            break;
+        case VA_FOURCC_IYUV:
+        case VA_FOURCC_YV12:
+        case VA_FOURCC_YUY2:
+        default:
+            printf("unsupported fourcc in load_surface_yuv\n");
+            assert(0);
+        }
+    }
+    
+    vaUnmapBuffer(va_dpy,surface_image.buf);
+
+    vaDestroyImage(va_dpy,surface_image.image_id);
+
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/loadsurface_yuv.h b/examples/thirdparty/libva/test/loadsurface_yuv.h
new file mode 100644
index 0000000..13c5184
--- /dev/null
+++ b/examples/thirdparty/libva/test/loadsurface_yuv.h
@@ -0,0 +1,28836 @@
+/*
+ * Copyright (c) 2008-2009 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.
+ */
+
+#ifndef _YUVGA_H
+#define _YUVGA_H
+
+static unsigned char yuvga_pic[]={
+0x59,0x59,0x58,0x59,0x5a,0x59,0x58,0x56,0x4c,0x4c,0x4c,0x4e,0x54,0x57,0x54,0x4f,
+0x42,0x42,0x44,0x47,0x4a,0x4d,0x53,0x59,0x56,0x57,0x4f,0x3e,0x30,0x31,0x3c,0x47,
+0x4d,0x58,0x60,0x5e,0x58,0x55,0x55,0x55,0x4f,0x4d,0x4f,0x58,0x61,0x60,0x5a,0x54,
+0x42,0x4a,0x4c,0x46,0x3f,0x3d,0x3c,0x3a,0x39,0x37,0x37,0x3c,0x3f,0x3b,0x36,0x32,
+0x3a,0x30,0x33,0x4a,0x60,0x62,0x53,0x46,0x40,0x3e,0x40,0x47,0x49,0x45,0x40,0x3f,
+0x3f,0x47,0x49,0x45,0x4c,0x64,0x7c,0x87,0x81,0x77,0x61,0x48,0x3a,0x3b,0x3f,0x3f,
+0x44,0x40,0x3e,0x3f,0x3f,0x3e,0x41,0x46,0x4b,0x53,0x4a,0x4c,0x4d,0x49,0x4c,0x3c,
+0x3f,0x3e,0x43,0x4c,0x4b,0x45,0x46,0x4e,0x52,0x56,0x57,0x54,0x55,0x5a,0x58,0x51,
+0x50,0x51,0x51,0x4d,0x47,0x43,0x41,0x42,0x44,0x48,0x4a,0x4b,0x4d,0x4d,0x47,0x3f,
+0x32,0x28,0x22,0x24,0x25,0x23,0x24,0x29,0x2d,0x32,0x34,0x32,0x32,0x37,0x3c,0x3e,
+0x40,0x40,0x3b,0x33,0x2f,0x33,0x3c,0x41,0x4b,0x58,0x5e,0x5c,0x57,0x4e,0x4c,0x52,
+0x5f,0x66,0x74,0x7b,0x72,0x60,0x5b,0x60,0x63,0x61,0x5f,0x65,0x77,0x86,0x80,0x71,
+0x6d,0x87,0x98,0x98,0x98,0x99,0x98,0x98,0x9f,0xa6,0xb3,0xd1,0xd9,0xee,0xe0,0xc8,
+0x9c,0x88,0x85,0x83,0x82,0x86,0x82,0x83,0x7e,0x7d,0x7d,0x82,0x83,0x7e,0x86,0x9b,
+0xb4,0xb4,0x9a,0x87,0x81,0x7f,0x7f,0x76,0x71,0x78,0x7f,0x7f,0x78,0x73,0x72,0x75,
+0x75,0x75,0x76,0x76,0x7d,0x8d,0x93,0x88,0x80,0x73,0x66,0x57,0x45,0x3e,0x3f,0x3e,
+0x45,0x46,0x54,0x66,0x65,0x50,0x3f,0x3b,0x37,0x42,0x52,0x5b,0x5b,0x59,0x4e,0x3b,
+0x29,0x2c,0x27,0x2a,0x3e,0x52,0x57,0x57,0x63,0x69,0x68,0x56,0x50,0x6a,0x77,0x65,
+0x5a,0x5f,0x69,0x6d,0x67,0x64,0x64,0x5f,0x5b,0x67,0x74,0x7d,0x86,0x8b,0x86,0x7d,
+0x6d,0x60,0x69,0x80,0x86,0x80,0x85,0x8e,0x87,0x7c,0x69,0x6b,0x62,0x69,0x63,0x68,
+0x69,0x6c,0x6f,0x6f,0x6c,0x67,0x63,0x61,0x59,0x53,0x51,0x41,0x40,0x46,0x3e,0x4a,
+0x50,0x57,0x53,0x46,0x41,0x49,0x51,0x51,0x53,0x4c,0x43,0x3c,0x38,0x35,0x32,0x2f,
+0x32,0x34,0x36,0x36,0x33,0x31,0x32,0x33,0x30,0x2c,0x27,0x25,0x26,0x28,0x2a,0x2b,
+0x2d,0x28,0x2e,0x32,0x2d,0x34,0x3e,0x3c,0x3b,0x35,0x30,0x36,0x42,0x49,0x46,0x41,
+0x39,0x3f,0x37,0x3a,0x40,0x4b,0x5c,0x99,0xcc,0xdf,0xd2,0x9a,0x69,0x74,0x69,0x56,
+0x49,0x42,0x41,0x49,0x49,0x42,0x51,0x6f,0x97,0xa4,0x95,0x7a,0x79,0x81,0x7d,0x77,
+0x7a,0x7e,0x80,0x7d,0x7b,0x7a,0x76,0x71,0x75,0x83,0x9a,0xb0,0xc0,0xc6,0xc5,0xc2,
+0xc9,0xc6,0xb3,0x94,0x81,0x80,0x7e,0x77,0x7a,0x79,0x76,0x75,0x77,0x78,0x76,0x71,
+0x6c,0x6f,0x72,0x71,0x6d,0x6b,0x73,0x7d,0x74,0x6d,0x61,0x58,0x56,0x57,0x54,0x4d,
+0x4c,0x50,0x53,0x4e,0x4b,0x68,0x9b,0xbf,0xc2,0x9c,0x78,0x6d,0x6a,0x64,0x67,0x71,
+0x75,0x77,0x79,0x7b,0x7b,0x79,0x77,0x75,0x72,0x74,0x77,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x78,0x81,0x92,0xa4,0xae,0x9e,0x94,0x86,0x77,0x66,0x5a,0x58,0x5c,
+0x5f,0x8e,0xc0,0xd5,0xd6,0xd6,0xda,0xdc,0xcf,0xb7,0x76,0x54,0x50,0x57,0x8b,0xc1,
+0xda,0xd5,0xce,0xc8,0xb5,0x92,0x7b,0x7b,0x7a,0x77,0x82,0x91,0x92,0x94,0xa7,0xbb,
+0xcd,0xcc,0xb0,0x71,0x44,0x4a,0x54,0x45,0x35,0x2c,0x23,0x20,0x20,0x1e,0x1d,0x1d,
+0x20,0x1f,0x16,0x13,0x1e,0x27,0x28,0x29,0x36,0x32,0x30,0x2f,0x26,0x1a,0x15,0x17,
+0x1a,0x1e,0x25,0x2c,0x33,0x33,0x29,0x1d,0x1c,0x1e,0x24,0x2e,0x38,0x3c,0x3c,0x3a,
+0x2f,0x23,0x1f,0x28,0x30,0x31,0x36,0x40,0x48,0x3a,0x42,0x69,0x8b,0x91,0x8c,0x8a,
+0x86,0x86,0x84,0x82,0x81,0x80,0x7b,0x76,0x65,0x71,0x7b,0x75,0x5e,0x4f,0x54,0x63,
+0x6b,0x74,0x7e,0x86,0x81,0x6d,0x5f,0x63,0x6e,0x68,0x5c,0x4e,0x48,0x51,0x65,0x76,
+0x59,0x59,0x59,0x5a,0x5b,0x5b,0x59,0x57,0x52,0x52,0x51,0x52,0x55,0x57,0x52,0x4c,
+0x41,0x3f,0x41,0x45,0x49,0x4b,0x4f,0x53,0x4f,0x4d,0x45,0x39,0x31,0x33,0x39,0x3d,
+0x39,0x45,0x52,0x57,0x58,0x57,0x53,0x4f,0x47,0x44,0x44,0x48,0x4b,0x49,0x45,0x43,
+0x4d,0x52,0x51,0x47,0x3d,0x3a,0x3a,0x39,0x35,0x34,0x35,0x3a,0x3d,0x39,0x34,0x31,
+0x30,0x30,0x31,0x35,0x3c,0x40,0x3e,0x39,0x3d,0x3b,0x39,0x37,0x37,0x3b,0x43,0x4b,
+0x4c,0x50,0x4d,0x47,0x50,0x65,0x71,0x70,0x78,0x82,0x76,0x51,0x35,0x35,0x40,0x43,
+0x45,0x40,0x3d,0x3c,0x3c,0x3e,0x43,0x49,0x4e,0x55,0x4b,0x4b,0x4c,0x4d,0x53,0x49,
+0x47,0x49,0x4e,0x54,0x53,0x4e,0x4d,0x4f,0x55,0x5e,0x64,0x63,0x60,0x5d,0x54,0x4a,
+0x4c,0x4d,0x4c,0x49,0x45,0x42,0x41,0x42,0x3b,0x46,0x50,0x51,0x4c,0x47,0x41,0x3c,
+0x2f,0x26,0x20,0x22,0x25,0x24,0x26,0x2a,0x2f,0x2f,0x31,0x31,0x2f,0x30,0x39,0x44,
+0x45,0x45,0x42,0x3c,0x3a,0x3f,0x46,0x4a,0x53,0x5b,0x5c,0x59,0x55,0x4d,0x46,0x49,
+0x56,0x59,0x62,0x68,0x64,0x5b,0x57,0x5a,0x5f,0x5f,0x5e,0x61,0x6c,0x75,0x72,0x69,
+0x69,0x82,0x9e,0xb6,0xc4,0xc4,0xc2,0xc8,0xc8,0xc5,0xc9,0xdb,0xdb,0xea,0xdf,0xcd,
+0x97,0x84,0x83,0x83,0x84,0x89,0x86,0x87,0x83,0x82,0x82,0x86,0x86,0x80,0x87,0x9a,
+0xbb,0xba,0xa0,0x8c,0x86,0x81,0x80,0x78,0x79,0x81,0x88,0x8a,0x84,0x7e,0x7c,0x7c,
+0x80,0x7e,0x7d,0x7c,0x84,0x96,0x9c,0x92,0x7c,0x6c,0x5f,0x55,0x4c,0x49,0x47,0x41,
+0x43,0x46,0x57,0x6b,0x69,0x51,0x3a,0x32,0x46,0x58,0x60,0x5c,0x58,0x54,0x45,0x32,
+0x29,0x2b,0x29,0x2f,0x45,0x59,0x64,0x6b,0x6f,0x72,0x76,0x6c,0x5f,0x65,0x6f,0x6a,
+0x6a,0x69,0x6c,0x6b,0x68,0x68,0x69,0x65,0x67,0x67,0x6d,0x7a,0x85,0x88,0x82,0x7b,
+0x72,0x64,0x6a,0x80,0x86,0x81,0x81,0x84,0x89,0x7c,0x6b,0x69,0x66,0x68,0x65,0x68,
+0x68,0x6a,0x6b,0x6c,0x69,0x64,0x5e,0x5b,0x5c,0x58,0x58,0x48,0x48,0x42,0x44,0x4d,
+0x4e,0x51,0x4e,0x45,0x40,0x44,0x48,0x48,0x49,0x48,0x47,0x47,0x45,0x40,0x38,0x32,
+0x32,0x33,0x35,0x36,0x37,0x37,0x36,0x35,0x33,0x32,0x31,0x31,0x32,0x32,0x30,0x2f,
+0x36,0x32,0x37,0x3a,0x34,0x38,0x3f,0x3c,0x37,0x33,0x31,0x36,0x3e,0x44,0x44,0x42,
+0x3d,0x3e,0x36,0x3b,0x44,0x51,0x65,0xa4,0xd4,0xde,0xca,0x92,0x61,0x6f,0x6c,0x64,
+0x54,0x4b,0x48,0x4b,0x4a,0x4a,0x52,0x5e,0x87,0x96,0x96,0x85,0x7c,0x7c,0x7e,0x7f,
+0x82,0x84,0x84,0x82,0x81,0x81,0x7e,0x79,0x80,0x88,0x94,0x9e,0xa4,0xa3,0x9f,0x9b,
+0x90,0x91,0x87,0x77,0x70,0x74,0x75,0x72,0x76,0x78,0x7a,0x7b,0x7d,0x7e,0x7b,0x76,
+0x7a,0x7a,0x7c,0x7c,0x7a,0x77,0x7a,0x7f,0x84,0x83,0x7f,0x79,0x73,0x6e,0x66,0x5f,
+0x5b,0x57,0x52,0x49,0x4a,0x6c,0xa1,0xc3,0xbb,0x97,0x74,0x67,0x65,0x64,0x68,0x72,
+0x72,0x75,0x79,0x7b,0x7b,0x78,0x73,0x70,0x6f,0x72,0x75,0x77,0x77,0x77,0x77,0x78,
+0x79,0x78,0x76,0x77,0x7c,0x84,0x87,0x86,0x82,0x7b,0x71,0x67,0x5d,0x56,0x56,0x5a,
+0x61,0x8e,0xbf,0xd6,0xd8,0xd7,0xd8,0xd8,0xde,0xc1,0x7d,0x55,0x4e,0x5b,0x93,0xcc,
+0xe1,0xe2,0xe4,0xe0,0xc5,0x96,0x7a,0x7c,0x86,0x8b,0x8e,0x8d,0x8c,0x94,0xad,0xc6,
+0xcf,0xd2,0xc0,0x8e,0x61,0x51,0x4c,0x41,0x35,0x2d,0x25,0x23,0x21,0x1e,0x1c,0x1b,
+0x1a,0x18,0x13,0x13,0x1a,0x1c,0x21,0x2c,0x36,0x32,0x2f,0x2c,0x23,0x18,0x15,0x19,
+0x1d,0x26,0x30,0x33,0x2a,0x21,0x23,0x29,0x12,0x1e,0x2b,0x32,0x37,0x38,0x30,0x26,
+0x1e,0x1a,0x1d,0x26,0x28,0x25,0x29,0x32,0x40,0x6d,0x86,0x72,0x5e,0x67,0x76,0x78,
+0x7c,0x7e,0x83,0x89,0x8c,0x8c,0x8a,0x89,0x8e,0x7d,0x6b,0x65,0x69,0x71,0x7a,0x80,
+0x96,0x83,0x6c,0x5e,0x4f,0x38,0x32,0x3e,0x2f,0x3f,0x55,0x68,0x75,0x82,0x8f,0x99,
+0x5a,0x59,0x5a,0x5b,0x5c,0x5c,0x5b,0x5a,0x58,0x58,0x57,0x57,0x57,0x57,0x51,0x4a,
+0x3d,0x3c,0x3f,0x45,0x49,0x48,0x45,0x44,0x44,0x41,0x3b,0x36,0x37,0x3b,0x3d,0x3b,
+0x3c,0x3e,0x41,0x44,0x4a,0x50,0x54,0x54,0x4b,0x48,0x46,0x46,0x44,0x40,0x3e,0x3e,
+0x47,0x4e,0x50,0x47,0x3d,0x3a,0x3a,0x39,0x38,0x38,0x3b,0x3f,0x3f,0x3b,0x35,0x32,
+0x30,0x37,0x38,0x33,0x33,0x3b,0x40,0x40,0x3c,0x3b,0x37,0x32,0x31,0x36,0x3c,0x40,
+0x41,0x49,0x4e,0x4b,0x48,0x54,0x6f,0x86,0xab,0xbf,0xb0,0x73,0x3d,0x33,0x3c,0x40,
+0x45,0x42,0x3e,0x3c,0x3a,0x3a,0x3d,0x42,0x4b,0x51,0x4b,0x4c,0x4f,0x55,0x61,0x60,
+0x67,0x6b,0x6c,0x6a,0x67,0x64,0x5f,0x5b,0x4f,0x5b,0x66,0x67,0x62,0x5c,0x54,0x4d,
+0x46,0x49,0x4b,0x4c,0x49,0x46,0x43,0x41,0x4a,0x53,0x5a,0x58,0x4e,0x42,0x38,0x32,
+0x2d,0x27,0x24,0x27,0x2a,0x2b,0x2d,0x31,0x34,0x2f,0x2f,0x31,0x2c,0x29,0x35,0x47,
+0x50,0x4e,0x49,0x44,0x46,0x4f,0x57,0x5b,0x5d,0x60,0x5d,0x5a,0x59,0x52,0x4a,0x4a,
+0x50,0x4d,0x4b,0x4b,0x4e,0x52,0x55,0x56,0x59,0x5a,0x5c,0x5f,0x62,0x64,0x64,0x63,
+0x61,0x62,0x69,0x79,0x84,0x82,0x89,0x9b,0xa6,0xa8,0xba,0xd7,0xdd,0xe7,0xdd,0xcc,
+0x99,0x87,0x86,0x85,0x84,0x86,0x81,0x81,0x80,0x80,0x80,0x84,0x86,0x82,0x89,0x9b,
+0xb8,0xb7,0x9e,0x8c,0x86,0x82,0x81,0x7a,0x77,0x7c,0x82,0x82,0x7e,0x79,0x77,0x77,
+0x77,0x77,0x79,0x7c,0x87,0x9a,0x9f,0x93,0x85,0x70,0x60,0x5a,0x5a,0x5a,0x51,0x42,
+0x46,0x47,0x50,0x5a,0x56,0x43,0x36,0x34,0x54,0x6a,0x6b,0x5c,0x59,0x55,0x43,0x34,
+0x2d,0x2d,0x2b,0x31,0x42,0x50,0x5d,0x6c,0x73,0x72,0x79,0x77,0x65,0x5c,0x66,0x73,
+0x76,0x75,0x71,0x6c,0x6a,0x6a,0x68,0x63,0x66,0x69,0x74,0x81,0x83,0x7a,0x75,0x77,
+0x74,0x65,0x69,0x7f,0x8b,0x8c,0x8a,0x87,0x8a,0x78,0x6a,0x61,0x65,0x61,0x64,0x66,
+0x6d,0x6c,0x6c,0x6c,0x6b,0x67,0x60,0x5b,0x5d,0x5e,0x5a,0x50,0x4f,0x3e,0x47,0x4d,
+0x4e,0x4c,0x48,0x44,0x40,0x3e,0x3e,0x3e,0x40,0x3e,0x3d,0x3d,0x3e,0x3d,0x39,0x36,
+0x35,0x34,0x34,0x37,0x3a,0x3b,0x38,0x35,0x36,0x36,0x36,0x37,0x38,0x37,0x35,0x33,
+0x34,0x32,0x36,0x37,0x32,0x33,0x36,0x33,0x3a,0x39,0x39,0x3a,0x3e,0x42,0x45,0x46,
+0x43,0x41,0x39,0x41,0x46,0x51,0x65,0xa3,0xd8,0xdd,0xc7,0x8f,0x5e,0x6a,0x6b,0x69,
+0x55,0x48,0x44,0x45,0x48,0x58,0x68,0x68,0x72,0x79,0x84,0x86,0x7c,0x79,0x7d,0x80,
+0x80,0x7d,0x78,0x74,0x72,0x71,0x6c,0x67,0x68,0x6b,0x6f,0x71,0x71,0x6f,0x6c,0x6a,
+0x66,0x65,0x61,0x5e,0x5e,0x61,0x62,0x61,0x65,0x69,0x6c,0x6d,0x6e,0x70,0x6e,0x6b,
+0x6c,0x6b,0x6b,0x6e,0x6e,0x6d,0x6c,0x6d,0x69,0x71,0x79,0x7f,0x82,0x84,0x83,0x81,
+0x78,0x6b,0x5b,0x4c,0x4c,0x70,0xa3,0xc3,0xb7,0x95,0x71,0x61,0x60,0x63,0x6a,0x71,
+0x72,0x74,0x78,0x7a,0x7a,0x77,0x74,0x71,0x6f,0x72,0x75,0x77,0x77,0x77,0x77,0x77,
+0x7a,0x78,0x76,0x77,0x78,0x75,0x68,0x5b,0x5d,0x5a,0x57,0x56,0x56,0x57,0x5b,0x5f,
+0x6c,0x85,0x9b,0x9e,0x9a,0xa0,0xab,0xb2,0xb4,0xa2,0x75,0x5b,0x58,0x60,0x88,0xb3,
+0xc6,0xcf,0xd8,0xd6,0xba,0x8c,0x75,0x7b,0x89,0x95,0x8e,0x7e,0x7c,0x8a,0xa7,0xc8,
+0xcb,0xd4,0xc8,0xa3,0x76,0x51,0x3d,0x39,0x35,0x2f,0x29,0x26,0x23,0x1e,0x1b,0x19,
+0x16,0x14,0x12,0x15,0x17,0x14,0x1c,0x30,0x35,0x32,0x2e,0x2a,0x20,0x18,0x18,0x1e,
+0x1d,0x1e,0x22,0x29,0x32,0x33,0x27,0x19,0x28,0x20,0x1e,0x28,0x37,0x38,0x29,0x19,
+0x1b,0x1b,0x1f,0x25,0x25,0x28,0x35,0x45,0x74,0x5f,0x58,0x6d,0x87,0x92,0x95,0x98,
+0x98,0x87,0x79,0x78,0x7a,0x76,0x6b,0x63,0x6d,0x67,0x68,0x75,0x86,0x90,0x91,0x8f,
+0x75,0x67,0x53,0x3e,0x29,0x1d,0x34,0x5d,0x73,0x82,0x8e,0x87,0x76,0x6b,0x70,0x7a,
+0x5a,0x5a,0x5a,0x5c,0x5d,0x5e,0x5d,0x5c,0x5b,0x5b,0x5b,0x59,0x59,0x58,0x52,0x4b,
+0x3e,0x3e,0x41,0x49,0x4d,0x49,0x41,0x3c,0x3d,0x3b,0x38,0x39,0x3f,0x47,0x49,0x47,
+0x4b,0x46,0x3e,0x3a,0x3d,0x45,0x4d,0x51,0x50,0x4e,0x4d,0x4e,0x4d,0x49,0x46,0x45,
+0x47,0x50,0x56,0x51,0x4a,0x46,0x41,0x3c,0x3c,0x3c,0x3e,0x41,0x40,0x3a,0x34,0x31,
+0x33,0x37,0x39,0x36,0x36,0x38,0x38,0x35,0x3f,0x3f,0x3b,0x36,0x36,0x39,0x38,0x34,
+0x38,0x3b,0x45,0x49,0x41,0x48,0x74,0xa7,0xd1,0xdd,0xc5,0x82,0x47,0x34,0x37,0x38,
+0x3c,0x3d,0x3f,0x41,0x40,0x40,0x43,0x45,0x48,0x4c,0x4a,0x4a,0x4f,0x5c,0x6e,0x76,
+0x87,0x99,0xa7,0xa7,0x9c,0x89,0x69,0x4e,0x5e,0x6e,0x7d,0x7f,0x76,0x6a,0x5d,0x55,
+0x51,0x50,0x4e,0x4c,0x4a,0x48,0x47,0x46,0x4a,0x4c,0x4d,0x4e,0x4c,0x45,0x3b,0x34,
+0x2f,0x2c,0x2c,0x31,0x34,0x34,0x34,0x36,0x37,0x33,0x31,0x30,0x2d,0x2c,0x37,0x45,
+0x51,0x52,0x52,0x53,0x57,0x5c,0x5e,0x5c,0x52,0x55,0x53,0x53,0x59,0x59,0x56,0x59,
+0x57,0x53,0x4c,0x48,0x4a,0x4f,0x50,0x4d,0x54,0x55,0x5a,0x5f,0x5f,0x5d,0x5d,0x60,
+0x61,0x5e,0x5c,0x63,0x68,0x64,0x6b,0x7f,0x88,0x8d,0xac,0xd4,0xe4,0xe7,0xd9,0xc3,
+0x96,0x86,0x87,0x86,0x83,0x84,0x7e,0x7d,0x7c,0x7d,0x7d,0x81,0x84,0x81,0x86,0x97,
+0xac,0xab,0x94,0x86,0x83,0x80,0x80,0x7b,0x7c,0x7e,0x80,0x7e,0x7b,0x78,0x77,0x78,
+0x75,0x74,0x77,0x7c,0x8c,0xa4,0xad,0xa3,0x94,0x7c,0x68,0x65,0x6a,0x6b,0x5b,0x42,
+0x44,0x45,0x49,0x48,0x3e,0x34,0x38,0x43,0x50,0x62,0x5b,0x4d,0x52,0x4b,0x39,0x34,
+0x31,0x2f,0x2d,0x32,0x3b,0x40,0x4c,0x5f,0x70,0x6d,0x70,0x6d,0x5c,0x50,0x5d,0x73,
+0x7c,0x80,0x7d,0x76,0x73,0x6f,0x68,0x63,0x5e,0x61,0x69,0x72,0x75,0x70,0x6f,0x70,
+0x6e,0x60,0x63,0x7a,0x90,0x9f,0xa3,0x9e,0x95,0x7d,0x6e,0x5f,0x65,0x5e,0x67,0x6a,
+0x6c,0x6b,0x6a,0x6d,0x70,0x6f,0x69,0x64,0x5e,0x65,0x56,0x5a,0x52,0x44,0x4a,0x4f,
+0x50,0x48,0x42,0x42,0x40,0x3a,0x37,0x38,0x3c,0x3a,0x37,0x36,0x37,0x37,0x37,0x37,
+0x36,0x36,0x36,0x38,0x39,0x38,0x35,0x33,0x36,0x35,0x34,0x33,0x34,0x34,0x34,0x35,
+0x35,0x35,0x36,0x37,0x35,0x35,0x37,0x35,0x36,0x36,0x35,0x35,0x37,0x39,0x3c,0x3e,
+0x43,0x40,0x3e,0x48,0x4a,0x53,0x68,0xa3,0xd5,0xdb,0xc4,0x8c,0x5f,0x71,0x77,0x77,
+0x62,0x4f,0x49,0x4a,0x4f,0x6f,0x91,0x98,0x78,0x6a,0x6f,0x7d,0x7b,0x78,0x78,0x74,
+0x70,0x69,0x60,0x5b,0x5a,0x59,0x54,0x4f,0x54,0x55,0x56,0x58,0x59,0x59,0x59,0x59,
+0x5c,0x56,0x52,0x52,0x52,0x52,0x52,0x53,0x55,0x58,0x59,0x57,0x57,0x59,0x5b,0x5a,
+0x5f,0x5e,0x5f,0x62,0x64,0x64,0x67,0x6a,0x65,0x68,0x6b,0x6e,0x73,0x77,0x7a,0x7b,
+0x81,0x73,0x61,0x4f,0x4f,0x74,0xa6,0xc3,0xb6,0x97,0x72,0x60,0x5e,0x64,0x6a,0x6f,
+0x75,0x76,0x78,0x79,0x79,0x78,0x76,0x75,0x71,0x74,0x77,0x79,0x78,0x77,0x77,0x76,
+0x78,0x77,0x77,0x78,0x77,0x6e,0x5b,0x49,0x4f,0x4e,0x4f,0x53,0x58,0x5d,0x61,0x64,
+0x6e,0x7a,0x80,0x77,0x6d,0x6e,0x74,0x78,0x74,0x71,0x65,0x62,0x66,0x66,0x72,0x84,
+0x97,0xa3,0xaa,0xa7,0x99,0x85,0x7d,0x86,0x81,0x8c,0x7f,0x6c,0x6e,0x78,0x91,0xb6,
+0xcb,0xd6,0xc9,0xa5,0x7a,0x4e,0x33,0x32,0x34,0x30,0x2c,0x2a,0x25,0x1f,0x1a,0x19,
+0x15,0x17,0x16,0x16,0x17,0x15,0x1e,0x30,0x38,0x35,0x30,0x2a,0x21,0x1b,0x1d,0x24,
+0x1b,0x23,0x22,0x1c,0x21,0x2e,0x2e,0x22,0x14,0x1b,0x2d,0x3d,0x37,0x25,0x1e,0x24,
+0x28,0x2a,0x2d,0x31,0x32,0x39,0x4a,0x5b,0x62,0x7a,0x91,0x94,0x8c,0x88,0x8d,0x93,
+0x7f,0x84,0x8b,0x8a,0x7b,0x6d,0x6e,0x78,0x73,0x73,0x76,0x79,0x79,0x74,0x6b,0x65,
+0x48,0x38,0x32,0x4f,0x7c,0x95,0x9d,0xa2,0x97,0x81,0x68,0x5e,0x63,0x6a,0x6a,0x65,
+0x5a,0x5a,0x5a,0x5c,0x5e,0x5e,0x5e,0x5c,0x5a,0x5b,0x5b,0x5a,0x5a,0x59,0x54,0x4f,
+0x44,0x41,0x42,0x48,0x4d,0x4b,0x46,0x42,0x3a,0x3a,0x3a,0x3b,0x42,0x4b,0x51,0x52,
+0x4f,0x4c,0x48,0x45,0x42,0x40,0x3f,0x3f,0x45,0x44,0x46,0x4d,0x51,0x4e,0x49,0x46,
+0x48,0x4e,0x51,0x4e,0x4a,0x46,0x3d,0x33,0x35,0x34,0x37,0x3b,0x3b,0x36,0x30,0x2d,
+0x33,0x34,0x3a,0x40,0x40,0x3c,0x3b,0x3d,0x42,0x44,0x44,0x40,0x3d,0x3d,0x3e,0x3f,
+0x44,0x3f,0x3d,0x40,0x44,0x50,0x6d,0x8b,0x9a,0x9b,0x88,0x62,0x41,0x36,0x37,0x37,
+0x3c,0x3e,0x3f,0x3c,0x39,0x39,0x3a,0x3c,0x42,0x43,0x47,0x4c,0x5d,0x7e,0x9f,0xb6,
+0xc9,0xdd,0xec,0xec,0xe6,0xdb,0xc2,0xa9,0x93,0xa6,0xbd,0xc7,0xc2,0xb5,0xa7,0x9f,
+0x88,0x80,0x73,0x67,0x5e,0x56,0x50,0x4d,0x4c,0x4a,0x4a,0x4b,0x4a,0x46,0x40,0x3c,
+0x32,0x31,0x33,0x36,0x36,0x34,0x31,0x30,0x35,0x35,0x33,0x30,0x32,0x38,0x3f,0x44,
+0x4c,0x50,0x56,0x5b,0x5e,0x5d,0x55,0x4d,0x49,0x4e,0x4d,0x4f,0x57,0x5d,0x62,0x6a,
+0x5f,0x5d,0x59,0x55,0x53,0x53,0x4e,0x48,0x52,0x53,0x57,0x5d,0x5f,0x5c,0x5a,0x5b,
+0x59,0x5f,0x62,0x62,0x64,0x66,0x70,0x81,0x8b,0x8b,0xa8,0xcd,0xe3,0xe7,0xda,0xc1,
+0x89,0x7c,0x80,0x83,0x84,0x87,0x83,0x84,0x82,0x83,0x83,0x85,0x88,0x84,0x88,0x96,
+0xaa,0xa9,0x93,0x87,0x84,0x80,0x80,0x7b,0x7d,0x80,0x82,0x81,0x7d,0x79,0x77,0x77,
+0x75,0x76,0x79,0x7f,0x8e,0xa7,0xb2,0xa9,0x93,0x7b,0x69,0x69,0x72,0x76,0x64,0x47,
+0x3a,0x42,0x48,0x43,0x36,0x33,0x44,0x57,0x63,0x66,0x57,0x4f,0x55,0x49,0x35,0x35,
+0x2f,0x30,0x31,0x37,0x3c,0x3c,0x46,0x5a,0x6c,0x6c,0x69,0x61,0x56,0x50,0x5a,0x6c,
+0x81,0x8c,0x89,0x80,0x7e,0x7a,0x72,0x71,0x73,0x6b,0x63,0x68,0x79,0x86,0x82,0x77,
+0x68,0x5c,0x5e,0x71,0x8d,0xaa,0xb9,0xb6,0x9d,0x81,0x6d,0x59,0x5c,0x54,0x60,0x67,
+0x6c,0x69,0x67,0x6a,0x6f,0x70,0x6d,0x69,0x5e,0x69,0x52,0x61,0x53,0x51,0x4f,0x55,
+0x4f,0x45,0x3d,0x3e,0x3d,0x38,0x36,0x38,0x3c,0x3d,0x3e,0x3f,0x3f,0x3b,0x37,0x34,
+0x34,0x36,0x38,0x39,0x37,0x36,0x36,0x37,0x37,0x37,0x37,0x36,0x35,0x35,0x36,0x36,
+0x37,0x37,0x34,0x33,0x33,0x33,0x32,0x34,0x36,0x33,0x31,0x32,0x36,0x39,0x3a,0x39,
+0x3c,0x3b,0x3d,0x48,0x49,0x58,0x72,0xaa,0xd7,0xdd,0xc5,0x8a,0x5d,0x73,0x79,0x75,
+0x67,0x53,0x4e,0x50,0x53,0x74,0xa0,0xb1,0x95,0x79,0x70,0x7a,0x7a,0x77,0x75,0x6f,
+0x65,0x5c,0x53,0x51,0x53,0x54,0x53,0x50,0x54,0x54,0x54,0x55,0x55,0x55,0x55,0x56,
+0x54,0x4d,0x47,0x48,0x49,0x49,0x4b,0x4e,0x50,0x54,0x56,0x56,0x56,0x58,0x58,0x56,
+0x5a,0x5a,0x5b,0x5d,0x5c,0x60,0x69,0x72,0x75,0x6d,0x64,0x61,0x63,0x65,0x65,0x64,
+0x68,0x62,0x58,0x4c,0x50,0x77,0xaa,0xc7,0xb4,0x95,0x71,0x60,0x5f,0x65,0x6b,0x70,
+0x77,0x79,0x7b,0x7c,0x7b,0x77,0x73,0x70,0x6e,0x72,0x76,0x78,0x79,0x78,0x78,0x78,
+0x76,0x77,0x78,0x78,0x77,0x6e,0x5e,0x4f,0x59,0x59,0x59,0x5b,0x5e,0x61,0x62,0x62,
+0x6e,0x71,0x6e,0x63,0x5a,0x59,0x5d,0x5f,0x5f,0x5d,0x5f,0x64,0x6c,0x6c,0x67,0x6a,
+0x60,0x6a,0x6a,0x64,0x69,0x70,0x76,0x7c,0x7f,0x80,0x70,0x64,0x69,0x6b,0x79,0x99,
+0xbb,0xc7,0xba,0x95,0x71,0x4e,0x35,0x2f,0x33,0x30,0x2e,0x2b,0x25,0x1d,0x1a,0x19,
+0x14,0x1a,0x18,0x15,0x18,0x1d,0x23,0x2c,0x39,0x35,0x2f,0x27,0x1e,0x1b,0x1f,0x25,
+0x21,0x27,0x28,0x25,0x24,0x25,0x24,0x1f,0x1e,0x27,0x39,0x4b,0x55,0x53,0x4e,0x4b,
+0x57,0x5b,0x60,0x63,0x65,0x67,0x6c,0x71,0x76,0x7d,0x75,0x69,0x76,0x8d,0x86,0x6c,
+0x73,0x66,0x5b,0x5d,0x64,0x66,0x66,0x66,0x61,0x5d,0x5d,0x65,0x6d,0x6c,0x5d,0x4e,
+0x3b,0x58,0x71,0x7c,0x80,0x7d,0x78,0x7a,0x6b,0x62,0x56,0x4d,0x4b,0x51,0x59,0x5f,
+0x59,0x59,0x5a,0x5c,0x5d,0x5e,0x5d,0x5c,0x59,0x5a,0x5a,0x59,0x59,0x5a,0x57,0x52,
+0x49,0x42,0x3e,0x41,0x45,0x46,0x46,0x46,0x38,0x3a,0x3b,0x3a,0x3e,0x47,0x4f,0x53,
+0x55,0x52,0x4f,0x4f,0x4b,0x43,0x3d,0x39,0x39,0x38,0x3c,0x45,0x4b,0x4b,0x47,0x44,
+0x44,0x45,0x43,0x44,0x4a,0x4d,0x45,0x3a,0x32,0x30,0x32,0x38,0x3d,0x3b,0x37,0x34,
+0x37,0x38,0x3d,0x43,0x3f,0x36,0x37,0x3f,0x42,0x4b,0x56,0x5a,0x52,0x47,0x42,0x43,
+0x44,0x47,0x42,0x3b,0x40,0x51,0x5b,0x5a,0x58,0x55,0x4f,0x46,0x3e,0x39,0x38,0x38,
+0x41,0x42,0x40,0x3b,0x3a,0x40,0x49,0x4e,0x44,0x3f,0x43,0x47,0x5f,0x8b,0xb6,0xd9,
+0xeb,0xf0,0xeb,0xdc,0xd5,0xd8,0xd4,0xca,0xb7,0xc1,0xce,0xd5,0xd6,0xd3,0xd2,0xd1,
+0xce,0xc8,0xbd,0xae,0x9b,0x84,0x6c,0x5c,0x51,0x4d,0x49,0x47,0x45,0x42,0x41,0x42,
+0x32,0x33,0x34,0x33,0x31,0x2d,0x29,0x26,0x2f,0x32,0x33,0x32,0x38,0x42,0x48,0x48,
+0x51,0x52,0x53,0x53,0x54,0x56,0x53,0x4f,0x44,0x47,0x42,0x3e,0x42,0x47,0x4e,0x59,
+0x61,0x5c,0x55,0x52,0x52,0x55,0x56,0x57,0x55,0x55,0x56,0x59,0x5c,0x5d,0x5a,0x57,
+0x5a,0x6a,0x71,0x6f,0x6e,0x71,0x7a,0x87,0x90,0x8e,0xab,0xca,0xe4,0xe6,0xd9,0xba,
+0x82,0x76,0x7d,0x82,0x83,0x88,0x85,0x86,0x83,0x86,0x87,0x8b,0x90,0x90,0x94,0xa0,
+0xb1,0xaf,0x99,0x8d,0x89,0x82,0x80,0x7b,0x77,0x7d,0x84,0x86,0x81,0x7b,0x76,0x75,
+0x72,0x7a,0x87,0x91,0x9b,0xa8,0xa6,0x96,0x85,0x72,0x64,0x66,0x72,0x78,0x68,0x4d,
+0x3a,0x3e,0x3e,0x36,0x30,0x3b,0x58,0x70,0x81,0x76,0x63,0x5b,0x5b,0x4b,0x38,0x37,
+0x2f,0x34,0x37,0x3c,0x3f,0x3d,0x46,0x58,0x65,0x6d,0x6b,0x63,0x61,0x62,0x65,0x6d,
+0x7d,0x8b,0x86,0x7a,0x7c,0x7b,0x78,0x7c,0x7e,0x7d,0x7b,0x7c,0x85,0x8d,0x86,0x78,
+0x6a,0x61,0x5d,0x65,0x7d,0xa1,0xb8,0xb8,0xa1,0x86,0x6d,0x5b,0x56,0x51,0x5d,0x6b,
+0x7b,0x76,0x6f,0x6c,0x6b,0x69,0x64,0x60,0x5d,0x65,0x52,0x5b,0x4f,0x55,0x4e,0x54,
+0x4b,0x41,0x3a,0x3a,0x3b,0x39,0x39,0x3a,0x3d,0x3d,0x3d,0x3d,0x3c,0x3b,0x3a,0x39,
+0x3a,0x3d,0x3f,0x3f,0x3e,0x3e,0x40,0x43,0x41,0x43,0x46,0x46,0x45,0x42,0x40,0x3f,
+0x40,0x41,0x3a,0x36,0x38,0x35,0x31,0x34,0x39,0x35,0x32,0x34,0x38,0x3b,0x3a,0x37,
+0x39,0x37,0x38,0x3f,0x3e,0x51,0x67,0x94,0xa2,0xb0,0xaa,0x85,0x63,0x74,0x6f,0x66,
+0x5b,0x51,0x53,0x58,0x60,0x7e,0xa3,0xb3,0xaa,0x8f,0x7c,0x79,0x78,0x77,0x78,0x79,
+0x6a,0x60,0x56,0x53,0x55,0x55,0x54,0x54,0x53,0x53,0x53,0x53,0x52,0x52,0x52,0x52,
+0x4d,0x49,0x44,0x43,0x43,0x43,0x46,0x48,0x4e,0x55,0x5d,0x61,0x63,0x62,0x5c,0x56,
+0x52,0x53,0x53,0x51,0x4f,0x54,0x62,0x71,0x6b,0x5f,0x53,0x52,0x58,0x5b,0x5a,0x57,
+0x53,0x54,0x52,0x4c,0x53,0x7c,0xae,0xc9,0xae,0x8f,0x6e,0x61,0x61,0x65,0x6b,0x71,
+0x73,0x78,0x7d,0x80,0x7d,0x75,0x6c,0x65,0x69,0x6d,0x72,0x76,0x78,0x79,0x79,0x7a,
+0x77,0x78,0x79,0x78,0x77,0x71,0x65,0x5a,0x5f,0x61,0x62,0x62,0x63,0x65,0x66,0x65,
+0x6a,0x67,0x60,0x57,0x52,0x54,0x56,0x56,0x55,0x51,0x5a,0x60,0x69,0x6f,0x66,0x64,
+0x5b,0x62,0x5e,0x5a,0x66,0x77,0x7f,0x82,0x84,0x7a,0x68,0x61,0x67,0x66,0x6b,0x7d,
+0x89,0x93,0x8d,0x74,0x5f,0x4d,0x3a,0x2e,0x30,0x2e,0x2c,0x28,0x22,0x1b,0x19,0x1a,
+0x14,0x1b,0x18,0x15,0x1d,0x25,0x28,0x2b,0x37,0x31,0x27,0x1e,0x19,0x1c,0x23,0x2a,
+0x29,0x22,0x23,0x2a,0x28,0x1e,0x1d,0x26,0x3c,0x61,0x7c,0x75,0x63,0x5f,0x62,0x62,
+0x6c,0x6d,0x6d,0x6d,0x6f,0x72,0x73,0x71,0x69,0x6e,0x78,0x7b,0x71,0x64,0x67,0x72,
+0x64,0x5f,0x58,0x50,0x4c,0x4e,0x56,0x5c,0x56,0x55,0x57,0x5b,0x5d,0x52,0x3b,0x26,
+0x48,0x62,0x6f,0x68,0x62,0x5e,0x57,0x54,0x53,0x4b,0x45,0x48,0x52,0x55,0x4f,0x47,
+0x59,0x59,0x59,0x5b,0x5c,0x5d,0x5c,0x5a,0x5a,0x5c,0x5b,0x59,0x59,0x59,0x57,0x54,
+0x4e,0x48,0x44,0x44,0x44,0x42,0x3f,0x3e,0x36,0x39,0x39,0x39,0x3c,0x44,0x4c,0x50,
+0x56,0x4f,0x4a,0x4b,0x4b,0x46,0x3f,0x3b,0x37,0x36,0x38,0x3d,0x42,0x43,0x44,0x46,
+0x44,0x42,0x42,0x4c,0x5f,0x6b,0x65,0x57,0x3d,0x39,0x3a,0x42,0x4a,0x4c,0x48,0x45,
+0x41,0x40,0x41,0x44,0x46,0x45,0x42,0x41,0x4e,0x50,0x5c,0x6e,0x71,0x60,0x4d,0x44,
+0x3f,0x45,0x45,0x3d,0x3c,0x48,0x53,0x57,0x5f,0x5e,0x5b,0x52,0x45,0x3c,0x3a,0x3b,
+0x3d,0x41,0x43,0x42,0x48,0x56,0x66,0x6f,0x50,0x45,0x44,0x3f,0x4e,0x74,0x95,0xb6,
+0xd8,0xe6,0xf0,0xf0,0xf0,0xf1,0xeb,0xe1,0xe8,0xe5,0xe0,0xde,0xdc,0xde,0xe2,0xe6,
+0xdc,0xdb,0xd8,0xd3,0xc8,0xb4,0x9c,0x8b,0x6d,0x58,0x43,0x3b,0x3f,0x42,0x42,0x41,
+0x33,0x34,0x33,0x31,0x2e,0x2c,0x2a,0x29,0x2e,0x2f,0x32,0x37,0x3c,0x42,0x49,0x4e,
+0x5c,0x5f,0x62,0x64,0x67,0x6a,0x69,0x66,0x67,0x66,0x5d,0x57,0x5b,0x60,0x69,0x75,
+0x6c,0x64,0x5f,0x63,0x66,0x64,0x61,0x62,0x5b,0x5c,0x5b,0x58,0x5b,0x61,0x61,0x5d,
+0x6d,0x84,0x98,0xa1,0xa3,0x9f,0x9e,0xa5,0x9e,0xa0,0xbd,0xd3,0xe8,0xe4,0xd4,0xaf,
+0x84,0x78,0x7f,0x82,0x82,0x85,0x82,0x84,0x7f,0x83,0x85,0x8a,0x91,0x91,0x96,0xa1,
+0xad,0xab,0x95,0x8b,0x88,0x81,0x80,0x7c,0x7d,0x84,0x8b,0x8c,0x87,0x82,0x81,0x82,
+0x81,0x8c,0x9a,0xa1,0xa4,0xa8,0xa0,0x8d,0x82,0x74,0x69,0x68,0x6e,0x73,0x65,0x4c,
+0x3c,0x37,0x2e,0x29,0x32,0x4b,0x6a,0x7e,0x79,0x6c,0x5c,0x53,0x4c,0x41,0x35,0x2e,
+0x2e,0x36,0x3a,0x3d,0x41,0x42,0x4b,0x5b,0x6c,0x76,0x72,0x6b,0x6f,0x70,0x6d,0x71,
+0x72,0x80,0x77,0x69,0x70,0x71,0x6d,0x72,0x6b,0x74,0x7d,0x7e,0x78,0x72,0x6f,0x6f,
+0x75,0x6d,0x63,0x5c,0x69,0x8b,0xa4,0xa6,0x9e,0x88,0x6e,0x64,0x59,0x5b,0x67,0x7a,
+0x86,0x7f,0x75,0x6d,0x69,0x65,0x61,0x5d,0x61,0x62,0x5f,0x4d,0x49,0x49,0x45,0x48,
+0x46,0x40,0x3b,0x3a,0x3d,0x3e,0x3f,0x3e,0x42,0x42,0x41,0x41,0x43,0x46,0x49,0x4c,
+0x4d,0x4d,0x4d,0x4d,0x4e,0x50,0x52,0x54,0x54,0x56,0x58,0x58,0x55,0x53,0x51,0x51,
+0x5a,0x5c,0x54,0x4e,0x52,0x4c,0x44,0x47,0x3f,0x3b,0x38,0x38,0x39,0x38,0x34,0x31,
+0x37,0x36,0x36,0x3a,0x36,0x44,0x49,0x62,0x4d,0x60,0x72,0x71,0x62,0x71,0x6a,0x65,
+0x58,0x5f,0x67,0x71,0x89,0xaa,0xc0,0xc6,0xb8,0xa3,0x85,0x76,0x78,0x7b,0x7b,0x7d,
+0x72,0x67,0x5c,0x57,0x55,0x53,0x52,0x52,0x54,0x54,0x55,0x56,0x57,0x58,0x5a,0x5a,
+0x56,0x56,0x54,0x50,0x4d,0x4b,0x49,0x48,0x51,0x58,0x60,0x67,0x6a,0x67,0x5d,0x54,
+0x52,0x52,0x51,0x4f,0x4d,0x54,0x65,0x75,0x67,0x58,0x4b,0x49,0x4e,0x50,0x4d,0x4b,
+0x50,0x52,0x52,0x4e,0x58,0x81,0xb1,0xc8,0xad,0x8c,0x6d,0x64,0x65,0x64,0x68,0x71,
+0x71,0x75,0x7a,0x7e,0x7c,0x75,0x6c,0x66,0x69,0x6d,0x72,0x76,0x78,0x79,0x79,0x79,
+0x78,0x78,0x78,0x78,0x79,0x75,0x6a,0x60,0x61,0x65,0x67,0x64,0x63,0x65,0x67,0x66,
+0x61,0x62,0x64,0x65,0x66,0x61,0x58,0x4f,0x46,0x41,0x4f,0x54,0x5b,0x68,0x63,0x62,
+0x5c,0x60,0x5e,0x5f,0x69,0x72,0x7a,0x83,0x89,0x7b,0x68,0x5f,0x63,0x69,0x6e,0x70,
+0x6b,0x6b,0x69,0x60,0x55,0x4f,0x42,0x30,0x2c,0x2a,0x28,0x24,0x1d,0x17,0x17,0x1b,
+0x19,0x1b,0x1b,0x1e,0x28,0x2d,0x2f,0x35,0x3b,0x33,0x27,0x1f,0x22,0x2e,0x3e,0x47,
+0x61,0x63,0x64,0x5c,0x4f,0x4e,0x65,0x80,0x9b,0x91,0x75,0x50,0x3e,0x48,0x5d,0x69,
+0x78,0x78,0x75,0x72,0x76,0x7b,0x7b,0x78,0x79,0x67,0x4b,0x34,0x29,0x28,0x25,0x21,
+0x35,0x3d,0x47,0x51,0x5b,0x60,0x57,0x49,0x51,0x50,0x4b,0x41,0x39,0x33,0x2d,0x28,
+0x3f,0x49,0x49,0x43,0x48,0x4f,0x4e,0x4b,0x45,0x4a,0x4d,0x49,0x41,0x3a,0x3a,0x3d,
+0x59,0x58,0x59,0x5a,0x5c,0x5c,0x5b,0x59,0x5d,0x5e,0x5c,0x59,0x58,0x59,0x57,0x55,
+0x55,0x52,0x51,0x51,0x4d,0x43,0x3a,0x35,0x34,0x37,0x38,0x39,0x3d,0x45,0x4c,0x4f,
+0x4c,0x44,0x40,0x46,0x4b,0x46,0x3a,0x32,0x36,0x35,0x35,0x36,0x37,0x39,0x3f,0x45,
+0x3d,0x3b,0x3e,0x4f,0x6a,0x7a,0x71,0x5f,0x4a,0x45,0x44,0x4d,0x56,0x59,0x55,0x51,
+0x4a,0x4b,0x51,0x63,0x7f,0x95,0x96,0x8b,0x62,0x51,0x50,0x6b,0x81,0x7a,0x62,0x51,
+0x4c,0x41,0x3d,0x40,0x41,0x45,0x57,0x6e,0x81,0x85,0x7e,0x67,0x4c,0x3d,0x3c,0x40,
+0x43,0x46,0x44,0x3e,0x3c,0x43,0x4c,0x51,0x4e,0x44,0x49,0x47,0x57,0x79,0x94,0xb3,
+0xe3,0xf2,0xfd,0xf8,0xea,0xd9,0xc3,0xb0,0xa0,0x9e,0x9e,0xa1,0xa5,0xa8,0xaa,0xac,
+0xbb,0xb8,0xb6,0xba,0xc1,0xc6,0xc6,0xc4,0xbd,0x8e,0x5b,0x45,0x48,0x4a,0x3f,0x34,
+0x34,0x35,0x34,0x31,0x30,0x32,0x34,0x34,0x30,0x2e,0x32,0x3a,0x3d,0x3c,0x45,0x52,
+0x5d,0x6c,0x80,0x8f,0x94,0x90,0x84,0x7a,0x71,0x6f,0x67,0x65,0x6f,0x7b,0x88,0x95,
+0x7d,0x7a,0x81,0x8f,0x90,0x7c,0x65,0x58,0x60,0x63,0x60,0x5a,0x5d,0x67,0x6b,0x67,
+0x6c,0x77,0x7f,0x83,0x84,0x82,0x89,0x97,0x9b,0x9e,0xbb,0xcb,0xe0,0xe1,0xd9,0xb7,
+0x84,0x78,0x7f,0x82,0x82,0x86,0x83,0x85,0x80,0x83,0x83,0x85,0x89,0x87,0x89,0x92,
+0x9f,0x9e,0x8b,0x84,0x84,0x7e,0x7f,0x7c,0x7f,0x84,0x88,0x87,0x82,0x80,0x85,0x8b,
+0x94,0x95,0x96,0x90,0x8e,0x98,0x9a,0x90,0x8c,0x80,0x75,0x6e,0x6d,0x6d,0x5e,0x46,
+0x37,0x30,0x28,0x2d,0x42,0x5e,0x72,0x7a,0x65,0x5c,0x52,0x48,0x41,0x3f,0x3b,0x30,
+0x29,0x34,0x3a,0x3e,0x44,0x4b,0x56,0x66,0x7e,0x84,0x7b,0x70,0x72,0x6e,0x68,0x6d,
+0x69,0x76,0x6b,0x5e,0x67,0x68,0x5f,0x61,0x67,0x66,0x69,0x6c,0x6a,0x67,0x6e,0x79,
+0x7e,0x77,0x68,0x58,0x5c,0x7a,0x93,0x95,0x86,0x75,0x5c,0x5b,0x4d,0x55,0x61,0x79,
+0x7d,0x77,0x70,0x6a,0x68,0x68,0x68,0x67,0x6a,0x66,0x6f,0x44,0x48,0x3e,0x3e,0x3f,
+0x43,0x41,0x3e,0x3d,0x40,0x44,0x44,0x42,0x47,0x4c,0x54,0x5b,0x5f,0x60,0x5f,0x5e,
+0x61,0x5e,0x5b,0x5b,0x5d,0x5f,0x60,0x60,0x65,0x64,0x63,0x60,0x5d,0x5c,0x5e,0x60,
+0x65,0x6a,0x62,0x5d,0x62,0x5b,0x50,0x52,0x53,0x51,0x4e,0x4a,0x46,0x41,0x3c,0x39,
+0x34,0x34,0x37,0x3d,0x38,0x40,0x36,0x3d,0x3b,0x43,0x52,0x5b,0x50,0x5a,0x55,0x5b,
+0x59,0x6b,0x75,0x81,0xa5,0xcc,0xd9,0xd2,0xcb,0xb4,0x8b,0x74,0x7c,0x80,0x77,0x74,
+0x72,0x68,0x5d,0x5a,0x58,0x56,0x55,0x57,0x54,0x54,0x54,0x55,0x57,0x59,0x5b,0x5d,
+0x61,0x67,0x68,0x64,0x5e,0x5a,0x56,0x51,0x5a,0x5e,0x64,0x68,0x6b,0x68,0x5e,0x54,
+0x52,0x51,0x4f,0x4e,0x4f,0x57,0x68,0x78,0x6a,0x5b,0x4d,0x4a,0x4e,0x50,0x50,0x50,
+0x4f,0x50,0x50,0x4d,0x5a,0x85,0xb4,0xca,0xb0,0x8d,0x6f,0x68,0x68,0x63,0x65,0x6f,
+0x70,0x72,0x75,0x78,0x78,0x76,0x73,0x71,0x6d,0x71,0x75,0x78,0x79,0x78,0x77,0x77,
+0x78,0x77,0x77,0x79,0x7c,0x7a,0x6e,0x62,0x68,0x6c,0x6c,0x66,0x60,0x5f,0x5f,0x5e,
+0x66,0x61,0x5d,0x5d,0x61,0x65,0x63,0x5f,0x46,0x3e,0x49,0x46,0x4a,0x5c,0x5f,0x64,
+0x60,0x61,0x62,0x69,0x70,0x70,0x79,0x8c,0x8e,0x7e,0x6b,0x5e,0x61,0x71,0x79,0x72,
+0x7a,0x6d,0x6a,0x67,0x5c,0x56,0x4a,0x37,0x29,0x27,0x25,0x20,0x19,0x14,0x16,0x1b,
+0x1e,0x1d,0x1e,0x29,0x34,0x33,0x35,0x41,0x46,0x3c,0x30,0x2a,0x34,0x49,0x5f,0x6c,
+0x73,0x7f,0x83,0x7e,0x83,0x8e,0x8b,0x7c,0x7a,0x6f,0x68,0x64,0x59,0x52,0x62,0x7a,
+0x73,0x79,0x7c,0x7b,0x7d,0x7e,0x77,0x6d,0x4f,0x42,0x31,0x23,0x1c,0x1d,0x25,0x2d,
+0x34,0x4a,0x58,0x51,0x47,0x49,0x4f,0x52,0x4a,0x48,0x3f,0x34,0x2d,0x2d,0x2d,0x2b,
+0x31,0x3f,0x48,0x4b,0x4e,0x4b,0x45,0x46,0x49,0x45,0x43,0x43,0x45,0x45,0x42,0x3e,
+0x59,0x59,0x5a,0x5a,0x5b,0x5b,0x5b,0x5b,0x58,0x59,0x59,0x59,0x57,0x57,0x57,0x58,
+0x57,0x59,0x5a,0x58,0x52,0x49,0x3d,0x35,0x33,0x35,0x39,0x3d,0x40,0x43,0x4d,0x57,
+0x51,0x46,0x3e,0x42,0x4b,0x4c,0x42,0x37,0x38,0x36,0x31,0x31,0x38,0x39,0x3a,0x40,
+0x3b,0x3e,0x4f,0x65,0x6b,0x62,0x5e,0x64,0x55,0x58,0x57,0x54,0x54,0x56,0x55,0x51,
+0x40,0x42,0x56,0x80,0xa7,0xaa,0x89,0x66,0x49,0x41,0x4a,0x66,0x81,0x90,0x8c,0x7f,
+0x62,0x45,0x35,0x39,0x3e,0x45,0x53,0x5e,0x62,0x7f,0x85,0x7e,0x68,0x45,0x3a,0x3e,
+0x41,0x40,0x3c,0x39,0x39,0x3e,0x42,0x44,0x3e,0x47,0x44,0x48,0x5b,0x83,0x96,0xb6,
+0xd8,0xe8,0xeb,0xeb,0xe1,0xc7,0xa1,0x76,0x6f,0x72,0x71,0x6d,0x6b,0x6c,0x6b,0x67,
+0x76,0x7d,0x79,0x6b,0x65,0x6e,0x7a,0x7e,0x82,0x6b,0x5b,0x5e,0x5f,0x52,0x43,0x3e,
+0x33,0x34,0x33,0x34,0x37,0x33,0x32,0x38,0x35,0x34,0x3b,0x44,0x43,0x3c,0x44,0x54,
+0x65,0x6f,0x7d,0x8d,0x99,0x98,0x95,0x9b,0x8f,0x7d,0x69,0x5f,0x5f,0x6c,0x85,0x9c,
+0x98,0x9c,0x9a,0x98,0x95,0x86,0x72,0x69,0x76,0x7c,0x7a,0x77,0x85,0x99,0x99,0x8b,
+0x7e,0x87,0x8c,0x83,0x73,0x66,0x61,0x5f,0x5d,0x74,0xac,0xda,0xe6,0xe5,0xd5,0xb6,
+0x85,0x7e,0x7c,0x82,0x87,0x86,0x86,0x89,0x83,0x83,0x81,0x84,0x87,0x86,0x8e,0x9e,
+0xac,0xac,0x91,0x84,0x88,0x84,0x7f,0x78,0x7a,0x7e,0x83,0x82,0x86,0x97,0xa3,0xa0,
+0x91,0x8e,0x85,0x7d,0x85,0x95,0x9a,0x96,0x85,0x78,0x6f,0x6f,0x72,0x72,0x5f,0x45,
+0x37,0x2f,0x27,0x2d,0x45,0x61,0x6c,0x6a,0x56,0x46,0x40,0x3e,0x39,0x3a,0x3a,0x2f,
+0x30,0x3a,0x43,0x43,0x42,0x4b,0x5f,0x71,0x79,0x85,0x83,0x71,0x63,0x62,0x60,0x5a,
+0x5d,0x5d,0x5e,0x61,0x62,0x5f,0x58,0x53,0x52,0x5d,0x67,0x70,0x60,0x5e,0x5b,0x78,
+0x8c,0x81,0x64,0x41,0x61,0x88,0xa0,0x97,0x7e,0x63,0x4d,0x45,0x44,0x4d,0x5d,0x67,
+0x69,0x6b,0x6c,0x6d,0x6f,0x6c,0x60,0x52,0x46,0x49,0x49,0x44,0x41,0x42,0x43,0x42,
+0x41,0x43,0x4b,0x4d,0x49,0x4d,0x57,0x5b,0x60,0x66,0x6d,0x70,0x6f,0x6e,0x6e,0x70,
+0x70,0x65,0x5f,0x62,0x66,0x65,0x66,0x69,0x70,0x69,0x65,0x65,0x62,0x5d,0x5e,0x62,
+0x70,0x68,0x64,0x66,0x63,0x5d,0x5d,0x62,0x5f,0x5f,0x55,0x54,0x5b,0x53,0x48,0x4c,
+0x44,0x40,0x3b,0x38,0x38,0x39,0x3a,0x3a,0x3c,0x39,0x3c,0x44,0x48,0x48,0x4a,0x50,
+0x5f,0x70,0x85,0x98,0xac,0xc1,0xcd,0xd0,0xd6,0xb1,0x8b,0x7b,0x77,0x75,0x75,0x78,
+0x70,0x67,0x5e,0x5a,0x58,0x57,0x57,0x57,0x58,0x55,0x55,0x57,0x58,0x58,0x5b,0x5f,
+0x6a,0x72,0x72,0x6e,0x6f,0x69,0x5d,0x57,0x5c,0x5f,0x64,0x6b,0x6e,0x6a,0x61,0x5a,
+0x55,0x55,0x52,0x4d,0x4c,0x55,0x66,0x74,0x6a,0x57,0x49,0x49,0x4e,0x4e,0x4d,0x4e,
+0x50,0x4e,0x4e,0x4c,0x59,0x89,0xb6,0xc1,0xaf,0x8a,0x70,0x6c,0x69,0x66,0x6c,0x73,
+0x71,0x74,0x75,0x74,0x72,0x71,0x70,0x6d,0x6d,0x72,0x76,0x78,0x77,0x76,0x77,0x79,
+0x77,0x78,0x79,0x7b,0x7d,0x7a,0x6f,0x64,0x67,0x6b,0x6d,0x68,0x5f,0x5a,0x5a,0x5c,
+0x63,0x5b,0x56,0x4e,0x4c,0x64,0x7a,0x77,0x4d,0x43,0x3f,0x40,0x44,0x52,0x5f,0x62,
+0x66,0x65,0x62,0x62,0x6a,0x77,0x83,0x88,0x88,0x83,0x70,0x62,0x63,0x66,0x75,0x8e,
+0x91,0x90,0x7b,0x62,0x58,0x55,0x4a,0x41,0x36,0x30,0x2a,0x22,0x1c,0x20,0x23,0x1b,
+0x1b,0x19,0x29,0x40,0x3a,0x21,0x1e,0x30,0x3b,0x35,0x2f,0x36,0x4b,0x63,0x6e,0x6e,
+0x6c,0x6a,0x6d,0x7b,0x86,0x7d,0x70,0x70,0x6b,0x54,0x48,0x42,0x45,0x68,0x82,0x75,
+0x77,0x70,0x6b,0x6d,0x6c,0x61,0x4f,0x43,0x23,0x1b,0x1a,0x21,0x24,0x24,0x32,0x45,
+0x62,0x5c,0x52,0x4c,0x4b,0x4b,0x45,0x3e,0x37,0x37,0x34,0x2d,0x26,0x27,0x2f,0x37,
+0x34,0x38,0x38,0x32,0x2e,0x33,0x39,0x3d,0x46,0x43,0x36,0x29,0x2a,0x34,0x35,0x2d,
+0x57,0x58,0x58,0x59,0x5a,0x5b,0x5b,0x5b,0x5a,0x5a,0x5a,0x5a,0x58,0x57,0x57,0x58,
+0x57,0x58,0x58,0x57,0x52,0x4a,0x3e,0x34,0x35,0x38,0x3c,0x3d,0x3f,0x44,0x4d,0x53,
+0x4b,0x42,0x3c,0x42,0x4c,0x50,0x4a,0x44,0x3d,0x3d,0x3c,0x41,0x49,0x43,0x36,0x31,
+0x39,0x4d,0x6c,0x7e,0x76,0x5f,0x54,0x57,0x57,0x57,0x53,0x4d,0x4b,0x4a,0x46,0x41,
+0x48,0x46,0x4e,0x6c,0x99,0xb0,0x99,0x75,0x55,0x46,0x47,0x56,0x60,0x68,0x72,0x78,
+0x5d,0x43,0x34,0x36,0x38,0x3c,0x42,0x45,0x45,0x5c,0x6f,0x85,0x7d,0x52,0x39,0x35,
+0x3b,0x3b,0x3b,0x39,0x38,0x39,0x3b,0x3d,0x45,0x47,0x47,0x50,0x52,0x5c,0x78,0xbd,
+0xe6,0xf9,0xf7,0xea,0xdb,0xc6,0xa1,0x71,0x5f,0x63,0x65,0x64,0x65,0x66,0x64,0x5f,
+0x67,0x7c,0x83,0x73,0x66,0x69,0x6b,0x66,0x64,0x61,0x6c,0x82,0x87,0x6f,0x4c,0x37,
+0x35,0x35,0x34,0x34,0x34,0x30,0x30,0x38,0x36,0x38,0x3f,0x43,0x3e,0x41,0x5c,0x7c,
+0x81,0x80,0x74,0x69,0x71,0x7d,0x83,0x87,0x85,0x6c,0x56,0x55,0x64,0x73,0x7e,0x85,
+0x8a,0x90,0x94,0x9c,0xa3,0x97,0x7f,0x70,0x6f,0x71,0x6f,0x6c,0x70,0x79,0x7a,0x75,
+0x6d,0x78,0x82,0x86,0x88,0x8a,0x88,0x84,0x76,0x80,0xa7,0xcf,0xe0,0xe4,0xd4,0xb4,
+0x87,0x84,0x83,0x85,0x87,0x87,0x87,0x89,0x8b,0x89,0x86,0x88,0x8c,0x89,0x8d,0x9c,
+0xae,0xae,0x97,0x8d,0x8f,0x85,0x7d,0x76,0x7a,0x81,0x8e,0x96,0x99,0x9e,0x99,0x8b,
+0x86,0x89,0x8a,0x8c,0x94,0x9c,0x99,0x91,0x81,0x74,0x6e,0x6f,0x72,0x71,0x60,0x48,
+0x3a,0x32,0x2d,0x33,0x45,0x55,0x59,0x55,0x47,0x41,0x40,0x41,0x3b,0x36,0x33,0x30,
+0x39,0x3e,0x43,0x44,0x45,0x4e,0x5d,0x6a,0x84,0x8b,0x84,0x6d,0x5e,0x62,0x6a,0x6b,
+0x59,0x5a,0x5a,0x5c,0x5d,0x5d,0x5c,0x5b,0x59,0x66,0x76,0x80,0x6d,0x62,0x5e,0x7e,
+0x94,0x86,0x64,0x45,0x5c,0x86,0x9b,0x95,0x65,0x4e,0x45,0x4c,0x50,0x52,0x5c,0x65,
+0x6c,0x6a,0x66,0x63,0x63,0x61,0x59,0x50,0x49,0x4a,0x49,0x44,0x42,0x45,0x49,0x49,
+0x4b,0x4f,0x5a,0x62,0x61,0x63,0x66,0x64,0x69,0x6e,0x75,0x77,0x74,0x71,0x6f,0x6f,
+0x75,0x6f,0x67,0x65,0x68,0x6d,0x6d,0x6a,0x73,0x6f,0x6b,0x68,0x65,0x63,0x63,0x66,
+0x6a,0x63,0x5f,0x61,0x60,0x5c,0x5d,0x62,0x5d,0x5d,0x57,0x57,0x5e,0x59,0x51,0x55,
+0x50,0x4b,0x45,0x41,0x3f,0x3d,0x39,0x36,0x3d,0x3c,0x3c,0x3d,0x3e,0x3e,0x40,0x44,
+0x4e,0x5d,0x70,0x81,0x92,0xa7,0xbc,0xc9,0xcd,0xac,0x87,0x76,0x75,0x78,0x7a,0x7c,
+0x70,0x67,0x5e,0x5a,0x59,0x58,0x57,0x58,0x57,0x56,0x56,0x58,0x59,0x5a,0x5e,0x62,
+0x6e,0x74,0x72,0x6d,0x6c,0x66,0x5b,0x56,0x5f,0x63,0x69,0x6f,0x6f,0x68,0x5d,0x54,
+0x53,0x55,0x53,0x4d,0x4f,0x5c,0x69,0x70,0x68,0x57,0x4d,0x51,0x54,0x4f,0x4e,0x52,
+0x4f,0x4d,0x4f,0x4f,0x5d,0x8c,0xb8,0xc2,0xab,0x86,0x6c,0x69,0x66,0x64,0x6a,0x71,
+0x71,0x73,0x75,0x73,0x71,0x70,0x6d,0x6a,0x6c,0x70,0x76,0x78,0x77,0x76,0x76,0x77,
+0x7a,0x7a,0x7a,0x7c,0x80,0x81,0x7b,0x73,0x6d,0x6a,0x68,0x66,0x61,0x5b,0x59,0x5a,
+0x5f,0x55,0x4f,0x4b,0x51,0x6e,0x82,0x7c,0x4e,0x3d,0x35,0x38,0x3c,0x46,0x57,0x61,
+0x5f,0x5e,0x5b,0x5d,0x66,0x75,0x80,0x85,0x81,0x7a,0x68,0x5e,0x60,0x64,0x74,0x8e,
+0xa5,0x95,0x7a,0x63,0x58,0x4e,0x43,0x3d,0x43,0x3f,0x45,0x48,0x37,0x2a,0x32,0x3f,
+0x46,0x4a,0x4d,0x47,0x38,0x31,0x3e,0x51,0x3e,0x49,0x58,0x69,0x75,0x77,0x6c,0x5f,
+0x5a,0x62,0x70,0x81,0x87,0x77,0x5e,0x51,0x39,0x41,0x47,0x4d,0x5c,0x73,0x7b,0x72,
+0x76,0x6a,0x5b,0x50,0x45,0x38,0x2b,0x24,0x32,0x2c,0x2b,0x30,0x33,0x37,0x44,0x53,
+0x53,0x4e,0x47,0x43,0x44,0x45,0x41,0x3a,0x38,0x32,0x2a,0x27,0x28,0x2b,0x2e,0x2f,
+0x45,0x48,0x46,0x39,0x2d,0x29,0x2c,0x2f,0x34,0x34,0x32,0x31,0x32,0x31,0x2d,0x27,
+0x57,0x57,0x58,0x59,0x59,0x5a,0x5b,0x5b,0x5b,0x5c,0x5c,0x5b,0x59,0x58,0x58,0x58,
+0x57,0x57,0x56,0x55,0x51,0x48,0x3d,0x35,0x3a,0x3f,0x42,0x3f,0x3f,0x46,0x4c,0x4f,
+0x44,0x3d,0x3a,0x42,0x4c,0x53,0x55,0x55,0x54,0x4f,0x46,0x47,0x53,0x53,0x47,0x3f,
+0x39,0x4d,0x64,0x6a,0x5a,0x47,0x3f,0x41,0x48,0x45,0x41,0x3e,0x3e,0x3f,0x3b,0x36,
+0x43,0x45,0x46,0x58,0x87,0xb2,0xae,0x91,0x6e,0x53,0x42,0x42,0x42,0x4a,0x64,0x7a,
+0x62,0x4a,0x39,0x36,0x39,0x41,0x4a,0x4c,0x5a,0x71,0x81,0x8b,0x76,0x4a,0x38,0x39,
+0x37,0x3a,0x3d,0x3d,0x3a,0x39,0x3a,0x3c,0x3c,0x44,0x3f,0x40,0x3f,0x47,0x65,0xb1,
+0xe4,0xf9,0xfb,0xf4,0xe8,0xcf,0xa4,0x6f,0x5d,0x5e,0x5f,0x60,0x63,0x65,0x63,0x60,
+0x5e,0x7c,0x97,0x95,0x7f,0x6b,0x62,0x61,0x56,0x54,0x61,0x7d,0x8e,0x7e,0x5a,0x3e,
+0x30,0x31,0x36,0x3c,0x3a,0x34,0x32,0x35,0x33,0x36,0x3d,0x3f,0x3b,0x43,0x65,0x8a,
+0xae,0xa1,0x80,0x63,0x64,0x7d,0x99,0xae,0x92,0x70,0x50,0x4e,0x65,0x81,0x96,0xa0,
+0x97,0x92,0x89,0x88,0x8e,0x87,0x75,0x6a,0x66,0x66,0x64,0x5f,0x5a,0x57,0x59,0x5d,
+0x5e,0x62,0x62,0x5f,0x61,0x64,0x60,0x57,0x71,0x72,0x8e,0xb3,0xce,0xdc,0xd1,0xb5,
+0x7c,0x7f,0x81,0x83,0x87,0x8e,0x92,0x92,0x8c,0x8b,0x88,0x8a,0x8f,0x8d,0x92,0xa1,
+0xaf,0xa8,0x91,0x8c,0x8d,0x84,0x82,0x7e,0x88,0x94,0xa3,0xa3,0x96,0x8e,0x8d,0x88,
+0x8f,0x92,0x95,0x98,0x9b,0x9b,0x93,0x8b,0x7d,0x72,0x6c,0x6c,0x6c,0x69,0x5c,0x48,
+0x3b,0x35,0x33,0x3b,0x46,0x4a,0x47,0x43,0x3f,0x41,0x42,0x41,0x3b,0x31,0x33,0x40,
+0x4f,0x4e,0x4c,0x4b,0x4e,0x55,0x5c,0x61,0x78,0x85,0x84,0x6f,0x60,0x64,0x6d,0x6f,
+0x62,0x61,0x61,0x62,0x64,0x68,0x6b,0x6d,0x6a,0x76,0x88,0x90,0x7c,0x69,0x61,0x7d,
+0x9a,0x8d,0x68,0x4c,0x51,0x75,0x84,0x81,0x63,0x50,0x50,0x61,0x67,0x64,0x68,0x70,
+0x6d,0x69,0x61,0x59,0x55,0x53,0x4e,0x49,0x3f,0x42,0x44,0x45,0x48,0x4d,0x51,0x53,
+0x5b,0x5f,0x6a,0x73,0x73,0x74,0x74,0x6e,0x72,0x76,0x7a,0x7b,0x78,0x74,0x71,0x70,
+0x75,0x73,0x6c,0x65,0x68,0x70,0x70,0x68,0x6f,0x6e,0x6a,0x65,0x63,0x64,0x65,0x64,
+0x63,0x5d,0x59,0x5a,0x5a,0x58,0x5a,0x5e,0x58,0x59,0x56,0x57,0x5c,0x59,0x55,0x59,
+0x54,0x51,0x4d,0x4c,0x4b,0x49,0x45,0x41,0x38,0x3a,0x39,0x36,0x34,0x37,0x3a,0x3b,
+0x43,0x49,0x51,0x59,0x66,0x81,0xa7,0xc5,0xc7,0xae,0x8d,0x78,0x74,0x78,0x7b,0x7a,
+0x70,0x68,0x5f,0x5b,0x5b,0x59,0x59,0x59,0x57,0x56,0x57,0x59,0x5b,0x5c,0x61,0x66,
+0x72,0x77,0x74,0x6e,0x6c,0x66,0x5c,0x5a,0x63,0x68,0x70,0x76,0x77,0x6f,0x63,0x59,
+0x51,0x55,0x56,0x55,0x5a,0x66,0x6e,0x70,0x65,0x59,0x54,0x58,0x57,0x51,0x4f,0x54,
+0x54,0x4f,0x50,0x50,0x61,0x91,0xbb,0xc2,0xa9,0x84,0x6b,0x69,0x67,0x66,0x6c,0x72,
+0x72,0x74,0x75,0x74,0x72,0x71,0x6e,0x6a,0x6b,0x70,0x76,0x78,0x78,0x76,0x75,0x75,
+0x7a,0x79,0x79,0x7c,0x83,0x89,0x89,0x85,0x72,0x68,0x62,0x63,0x61,0x5a,0x57,0x59,
+0x5c,0x50,0x48,0x48,0x57,0x7a,0x8b,0x7d,0x51,0x3c,0x32,0x36,0x37,0x3c,0x4c,0x59,
+0x5b,0x59,0x57,0x5a,0x65,0x74,0x7f,0x82,0x79,0x6e,0x5e,0x58,0x5c,0x63,0x79,0x96,
+0x96,0x8c,0x7a,0x63,0x4b,0x45,0x5b,0x78,0x8f,0x7a,0x6b,0x64,0x5c,0x66,0x8b,0xae,
+0xa0,0x9c,0x95,0x8a,0x7e,0x75,0x71,0x70,0x79,0x80,0x88,0x8d,0x8c,0x86,0x7b,0x71,
+0x6e,0x6d,0x84,0x9d,0x86,0x4d,0x30,0x39,0x52,0x61,0x61,0x60,0x6b,0x6f,0x68,0x68,
+0x5a,0x52,0x49,0x45,0x43,0x43,0x45,0x48,0x36,0x33,0x31,0x31,0x33,0x38,0x42,0x4c,
+0x46,0x44,0x40,0x3e,0x3f,0x40,0x3b,0x35,0x2d,0x2e,0x2c,0x26,0x20,0x20,0x27,0x2e,
+0x33,0x3f,0x48,0x49,0x46,0x48,0x4e,0x54,0x3c,0x37,0x37,0x39,0x34,0x29,0x21,0x1f,
+0x58,0x58,0x58,0x59,0x59,0x5a,0x5b,0x5b,0x5d,0x5d,0x5d,0x5b,0x59,0x57,0x57,0x57,
+0x55,0x55,0x56,0x53,0x4b,0x41,0x3a,0x38,0x40,0x48,0x49,0x43,0x42,0x49,0x4d,0x4b,
+0x42,0x3c,0x3b,0x42,0x4b,0x53,0x5a,0x61,0x72,0x68,0x53,0x48,0x4d,0x50,0x48,0x41,
+0x45,0x4c,0x50,0x4c,0x43,0x3d,0x3b,0x3a,0x3f,0x3c,0x3a,0x3b,0x3f,0x42,0x41,0x3e,
+0x3d,0x44,0x4a,0x56,0x79,0x9b,0x9b,0x85,0x5b,0x49,0x42,0x46,0x43,0x3e,0x3f,0x41,
+0x54,0x45,0x3c,0x3a,0x3b,0x44,0x4d,0x4e,0x66,0x84,0x8e,0x81,0x5f,0x3f,0x36,0x32,
+0x34,0x37,0x3a,0x3b,0x38,0x36,0x38,0x3d,0x36,0x43,0x41,0x42,0x40,0x47,0x66,0xb7,
+0xe8,0xf2,0xf2,0xf6,0xf2,0xd7,0xa6,0x71,0x58,0x56,0x54,0x53,0x56,0x58,0x58,0x56,
+0x58,0x6f,0x98,0xb3,0xa0,0x75,0x63,0x6c,0x67,0x57,0x51,0x64,0x7f,0x86,0x75,0x61,
+0x3c,0x34,0x35,0x3b,0x3a,0x35,0x34,0x35,0x37,0x34,0x34,0x36,0x3a,0x4b,0x6f,0x91,
+0x8f,0x8e,0x86,0x80,0x83,0x80,0x75,0x70,0x73,0x63,0x56,0x5a,0x6f,0x8d,0xa9,0xbc,
+0xc3,0xb9,0xa3,0x90,0x87,0x7c,0x70,0x6d,0x67,0x6a,0x68,0x61,0x59,0x56,0x5a,0x5d,
+0x54,0x56,0x53,0x4d,0x51,0x5c,0x63,0x62,0x5b,0x57,0x63,0x78,0x8d,0xa2,0xa8,0x9d,
+0x81,0x84,0x84,0x83,0x87,0x8d,0x8e,0x89,0x8a,0x8a,0x88,0x8b,0x8f,0x90,0x9c,0xb0,
+0xbb,0xaa,0x90,0x8e,0x91,0x8f,0x95,0x95,0x9b,0x9c,0x9d,0x93,0x83,0x81,0x8c,0x92,
+0x9a,0x96,0x92,0x8f,0x90,0x90,0x8d,0x8a,0x7c,0x70,0x69,0x65,0x60,0x5b,0x51,0x43,
+0x38,0x33,0x35,0x40,0x47,0x46,0x42,0x41,0x42,0x46,0x41,0x3b,0x37,0x31,0x3f,0x5d,
+0x6c,0x63,0x59,0x57,0x5a,0x5e,0x5f,0x5d,0x69,0x7a,0x80,0x6f,0x61,0x64,0x6d,0x6f,
+0x63,0x60,0x5d,0x5e,0x63,0x68,0x6b,0x6c,0x70,0x7d,0x90,0x95,0x8b,0x7a,0x6a,0x75,
+0x79,0x77,0x63,0x58,0x51,0x71,0x81,0x87,0x70,0x61,0x60,0x6b,0x6f,0x6e,0x70,0x72,
+0x68,0x64,0x5b,0x52,0x4c,0x48,0x46,0x44,0x43,0x49,0x51,0x5a,0x61,0x66,0x69,0x6a,
+0x6d,0x6e,0x76,0x7a,0x77,0x78,0x7a,0x77,0x76,0x78,0x79,0x79,0x77,0x74,0x73,0x72,
+0x73,0x70,0x6a,0x65,0x67,0x6c,0x6a,0x65,0x65,0x67,0x64,0x5e,0x5d,0x61,0x63,0x60,
+0x5c,0x57,0x52,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x56,0x55,0x57,0x55,0x53,0x55,
+0x4e,0x4e,0x4e,0x4e,0x4d,0x4c,0x4c,0x4b,0x3d,0x41,0x40,0x39,0x36,0x38,0x3a,0x38,
+0x3d,0x3c,0x3d,0x40,0x47,0x5b,0x7f,0x9f,0xab,0xa1,0x8e,0x7c,0x75,0x78,0x79,0x76,
+0x70,0x68,0x5f,0x5c,0x5c,0x5b,0x5a,0x5a,0x58,0x58,0x58,0x5a,0x5b,0x5d,0x62,0x68,
+0x73,0x78,0x77,0x73,0x71,0x69,0x61,0x60,0x63,0x66,0x6c,0x73,0x76,0x6f,0x61,0x56,
+0x54,0x56,0x5b,0x62,0x67,0x68,0x6b,0x6f,0x77,0x76,0x73,0x70,0x6e,0x6d,0x6d,0x6d,
+0x64,0x57,0x4f,0x4f,0x64,0x96,0xbd,0xc0,0xa5,0x81,0x68,0x68,0x68,0x67,0x6d,0x72,
+0x74,0x76,0x78,0x77,0x76,0x76,0x72,0x6e,0x6e,0x71,0x75,0x77,0x77,0x76,0x75,0x75,
+0x77,0x77,0x77,0x7a,0x82,0x8b,0x8d,0x8a,0x71,0x65,0x5e,0x62,0x60,0x57,0x54,0x5a,
+0x5c,0x50,0x48,0x47,0x5a,0x7f,0x8d,0x7a,0x4e,0x3f,0x38,0x3a,0x38,0x3c,0x47,0x4e,
+0x59,0x58,0x56,0x59,0x65,0x73,0x7c,0x7e,0x76,0x68,0x5a,0x56,0x59,0x62,0x7a,0x94,
+0x92,0x7e,0x6c,0x5e,0x54,0x59,0x73,0x8b,0x87,0x79,0x6f,0x6e,0x74,0x87,0x9a,0xa1,
+0xa3,0x92,0x87,0x8c,0x90,0x89,0x83,0x82,0x92,0x94,0x97,0x99,0x9c,0x9d,0x9d,0x9d,
+0x92,0x8a,0x76,0x53,0x37,0x3a,0x54,0x66,0x76,0x6f,0x65,0x5e,0x5b,0x53,0x4c,0x4d,
+0x49,0x41,0x3a,0x35,0x30,0x2b,0x28,0x29,0x2c,0x2b,0x29,0x27,0x2a,0x32,0x3b,0x3f,
+0x42,0x42,0x3f,0x3d,0x3d,0x3d,0x37,0x31,0x26,0x2a,0x2a,0x22,0x19,0x16,0x1e,0x27,
+0x2f,0x3a,0x45,0x48,0x45,0x40,0x3e,0x3d,0x3b,0x33,0x2a,0x26,0x21,0x1b,0x18,0x17,
+0x59,0x59,0x59,0x59,0x59,0x5a,0x5a,0x5b,0x5d,0x5d,0x5d,0x5b,0x59,0x57,0x56,0x57,
+0x52,0x54,0x54,0x50,0x44,0x39,0x39,0x3e,0x48,0x4f,0x4f,0x48,0x46,0x4c,0x4e,0x4b,
+0x44,0x3e,0x3d,0x43,0x49,0x50,0x5b,0x66,0x6d,0x69,0x57,0x48,0x4a,0x4c,0x45,0x40,
+0x41,0x46,0x49,0x47,0x44,0x41,0x3b,0x35,0x39,0x38,0x37,0x39,0x3c,0x3e,0x3e,0x3e,
+0x4f,0x57,0x63,0x73,0x86,0x8b,0x76,0x5c,0x56,0x4a,0x42,0x3e,0x3e,0x44,0x4a,0x48,
+0x40,0x3d,0x41,0x45,0x43,0x43,0x44,0x42,0x48,0x64,0x75,0x73,0x5d,0x46,0x3c,0x2c,
+0x37,0x37,0x38,0x38,0x34,0x31,0x35,0x3b,0x42,0x48,0x51,0x60,0x52,0x45,0x64,0xc2,
+0xe0,0xe5,0xd8,0xd6,0xdd,0xd4,0xaa,0x6f,0x55,0x53,0x52,0x52,0x53,0x53,0x51,0x51,
+0x50,0x5b,0x80,0xaa,0xac,0x89,0x6d,0x6a,0x70,0x63,0x59,0x5e,0x72,0x81,0x80,0x77,
+0x53,0x3c,0x30,0x31,0x2f,0x30,0x34,0x33,0x3c,0x36,0x32,0x33,0x3d,0x59,0x86,0xac,
+0xb5,0xae,0x95,0x81,0x86,0x8d,0x7e,0x6a,0x4f,0x50,0x54,0x5c,0x6c,0x88,0xaa,0xc4,
+0xcb,0xcf,0xc6,0xb2,0x9a,0x80,0x70,0x6e,0x6f,0x76,0x76,0x6e,0x6c,0x73,0x77,0x75,
+0x80,0x81,0x7b,0x6c,0x5f,0x60,0x67,0x6d,0x70,0x69,0x62,0x59,0x58,0x66,0x77,0x80,
+0x80,0x83,0x84,0x85,0x8d,0x95,0x94,0x8d,0x8f,0x91,0x8f,0x8f,0x90,0x93,0xa4,0xbd,
+0xbe,0xac,0x97,0x98,0x9b,0x98,0x9c,0x96,0x98,0x8e,0x87,0x84,0x85,0x8e,0x93,0x8d,
+0x89,0x86,0x82,0x80,0x85,0x8c,0x8e,0x8c,0x7b,0x6f,0x66,0x5e,0x53,0x4d,0x48,0x40,
+0x36,0x32,0x34,0x3e,0x46,0x46,0x45,0x46,0x3f,0x42,0x3a,0x32,0x33,0x38,0x50,0x74,
+0x78,0x6d,0x61,0x5e,0x63,0x67,0x64,0x5f,0x69,0x79,0x7c,0x6b,0x5f,0x64,0x6e,0x71,
+0x5f,0x5a,0x57,0x59,0x60,0x64,0x63,0x5f,0x64,0x76,0x8f,0x95,0x99,0x8e,0x74,0x6b,
+0x52,0x5a,0x59,0x5a,0x4c,0x63,0x76,0x81,0x76,0x6e,0x6a,0x6c,0x6d,0x72,0x74,0x6d,
+0x60,0x5a,0x52,0x4a,0x47,0x47,0x4b,0x4e,0x57,0x5b,0x61,0x69,0x6f,0x72,0x73,0x73,
+0x75,0x77,0x7e,0x7f,0x78,0x77,0x7c,0x7d,0x7b,0x79,0x77,0x75,0x74,0x73,0x72,0x71,
+0x74,0x6d,0x69,0x68,0x66,0x61,0x5f,0x5f,0x5d,0x60,0x5f,0x5a,0x5b,0x60,0x61,0x5e,
+0x55,0x52,0x4e,0x4c,0x4e,0x52,0x53,0x52,0x55,0x54,0x54,0x53,0x51,0x52,0x52,0x50,
+0x49,0x4b,0x4b,0x47,0x42,0x41,0x44,0x48,0x4a,0x4e,0x4c,0x43,0x3d,0x3c,0x39,0x34,
+0x36,0x36,0x3a,0x3e,0x3e,0x41,0x4d,0x5c,0x6e,0x77,0x7d,0x7b,0x7a,0x7b,0x7a,0x75,
+0x70,0x68,0x60,0x5d,0x5d,0x5c,0x5b,0x5b,0x5a,0x59,0x5a,0x5b,0x5b,0x5d,0x62,0x69,
+0x75,0x7a,0x7a,0x78,0x75,0x6b,0x61,0x61,0x69,0x69,0x6d,0x72,0x75,0x6f,0x61,0x55,
+0x57,0x56,0x5f,0x6f,0x71,0x69,0x6c,0x77,0x8a,0x92,0x91,0x88,0x87,0x90,0x93,0x8d,
+0x77,0x60,0x4d,0x4b,0x65,0x9b,0xbf,0xbd,0x9f,0x7b,0x63,0x64,0x66,0x66,0x6b,0x70,
+0x75,0x77,0x79,0x79,0x7a,0x7a,0x77,0x72,0x73,0x74,0x75,0x75,0x75,0x76,0x76,0x77,
+0x75,0x76,0x77,0x79,0x7f,0x84,0x83,0x80,0x6c,0x63,0x5f,0x62,0x5e,0x54,0x54,0x5b,
+0x5a,0x51,0x4b,0x4a,0x5c,0x82,0x8e,0x76,0x47,0x40,0x3d,0x3a,0x39,0x44,0x4f,0x4f,
+0x59,0x59,0x58,0x5b,0x65,0x72,0x7a,0x7c,0x7c,0x6f,0x64,0x5e,0x59,0x5d,0x6c,0x7b,
+0x78,0x6a,0x66,0x67,0x64,0x6d,0x7e,0x87,0x86,0x83,0x7f,0x73,0x5e,0x4d,0x3b,0x29,
+0x39,0x3b,0x4a,0x63,0x76,0x7d,0x83,0x8a,0x8a,0x82,0x77,0x72,0x74,0x79,0x7f,0x83,
+0x79,0x69,0x53,0x3d,0x39,0x51,0x67,0x67,0x5d,0x45,0x46,0x52,0x4a,0x41,0x3f,0x38,
+0x32,0x2e,0x2b,0x2d,0x2e,0x2c,0x29,0x27,0x24,0x25,0x23,0x22,0x28,0x33,0x3a,0x3c,
+0x3a,0x3c,0x3b,0x39,0x38,0x36,0x31,0x2b,0x29,0x24,0x1d,0x19,0x18,0x18,0x18,0x16,
+0x13,0x19,0x24,0x2d,0x32,0x33,0x31,0x31,0x29,0x23,0x1a,0x14,0x16,0x1c,0x1e,0x1c,
+0x59,0x58,0x58,0x58,0x58,0x59,0x5a,0x5b,0x5d,0x5d,0x5d,0x5b,0x59,0x57,0x57,0x57,
+0x52,0x51,0x50,0x4a,0x3e,0x36,0x3b,0x45,0x4f,0x53,0x53,0x4e,0x4c,0x4e,0x4e,0x4c,
+0x46,0x40,0x3e,0x43,0x48,0x4e,0x5b,0x69,0x72,0x72,0x60,0x4a,0x46,0x49,0x48,0x46,
+0x37,0x3e,0x45,0x45,0x41,0x3c,0x38,0x35,0x34,0x35,0x39,0x3b,0x3b,0x39,0x3c,0x40,
+0x52,0x58,0x68,0x7f,0x8e,0x84,0x65,0x49,0x43,0x45,0x4c,0x4d,0x4b,0x4e,0x4e,0x46,
+0x43,0x3c,0x3e,0x42,0x3d,0x3b,0x40,0x42,0x3d,0x4c,0x5a,0x5e,0x49,0x36,0x3a,0x38,
+0x43,0x41,0x40,0x41,0x3c,0x37,0x39,0x3f,0x47,0x4b,0x51,0x59,0x4c,0x49,0x58,0x8f,
+0x9d,0xad,0xa4,0xa1,0xb6,0xc7,0xaa,0x6d,0x57,0x57,0x59,0x5c,0x5c,0x58,0x56,0x56,
+0x55,0x58,0x6c,0x8d,0xa4,0x9b,0x7b,0x61,0x5d,0x5d,0x57,0x50,0x53,0x5e,0x64,0x63,
+0x53,0x36,0x2c,0x32,0x31,0x31,0x32,0x2b,0x30,0x34,0x3a,0x3f,0x46,0x5b,0x83,0xa6,
+0xb8,0xc7,0xb2,0x88,0x7a,0x80,0x73,0x5b,0x49,0x4e,0x52,0x55,0x5d,0x72,0x91,0xa9,
+0xb7,0xc7,0xcb,0xb9,0x99,0x76,0x61,0x5f,0x6b,0x74,0x76,0x74,0x79,0x86,0x8b,0x87,
+0x82,0x88,0x89,0x80,0x70,0x66,0x6c,0x77,0x84,0x88,0x84,0x74,0x65,0x62,0x6b,0x74,
+0x78,0x7b,0x80,0x87,0x91,0x98,0x98,0x94,0x92,0x94,0x92,0x91,0x8e,0x8d,0x9b,0xb3,
+0xb6,0xad,0xa5,0xab,0xa9,0xa1,0x9d,0x8e,0x8a,0x8e,0x95,0x98,0x99,0x9d,0x96,0x86,
+0x7f,0x82,0x83,0x84,0x8d,0x97,0x94,0x8b,0x7c,0x71,0x68,0x5e,0x4e,0x46,0x44,0x42,
+0x38,0x35,0x36,0x3d,0x44,0x47,0x46,0x46,0x35,0x35,0x30,0x2d,0x33,0x42,0x5b,0x74,
+0x6d,0x65,0x5f,0x61,0x69,0x6d,0x69,0x64,0x67,0x77,0x7c,0x6d,0x62,0x65,0x68,0x66,
+0x5a,0x57,0x55,0x59,0x5f,0x60,0x5c,0x56,0x5d,0x72,0x94,0x99,0xa1,0x91,0x76,0x6a,
+0x65,0x64,0x68,0x66,0x55,0x5f,0x73,0x7c,0x67,0x64,0x62,0x60,0x62,0x6c,0x6c,0x60,
+0x59,0x52,0x4a,0x48,0x4a,0x51,0x5a,0x62,0x6f,0x6c,0x6b,0x6c,0x6d,0x6d,0x6e,0x70,
+0x75,0x78,0x80,0x81,0x78,0x76,0x7b,0x7b,0x80,0x7c,0x77,0x74,0x73,0x73,0x71,0x70,
+0x72,0x6d,0x6b,0x6b,0x65,0x5a,0x56,0x59,0x5a,0x5c,0x5c,0x5c,0x5d,0x5f,0x5f,0x5e,
+0x56,0x55,0x52,0x4f,0x52,0x58,0x59,0x55,0x53,0x4f,0x50,0x50,0x4c,0x50,0x52,0x4b,
+0x47,0x48,0x47,0x43,0x3e,0x3e,0x43,0x49,0x47,0x48,0x47,0x43,0x40,0x3e,0x3a,0x36,
+0x38,0x37,0x39,0x3b,0x3a,0x39,0x3a,0x3c,0x3f,0x52,0x66,0x72,0x78,0x7a,0x78,0x74,
+0x6f,0x67,0x60,0x5d,0x5e,0x5d,0x5c,0x5c,0x5b,0x5b,0x5b,0x5c,0x5c,0x5d,0x64,0x6b,
+0x79,0x7e,0x7d,0x7a,0x76,0x69,0x5f,0x60,0x67,0x69,0x6e,0x73,0x75,0x6e,0x62,0x59,
+0x56,0x55,0x60,0x74,0x7a,0x76,0x7c,0x8c,0x8e,0x97,0x97,0x8e,0x91,0x9f,0xa3,0x9b,
+0x7d,0x62,0x4b,0x4a,0x68,0x9f,0xc0,0xba,0x9c,0x78,0x61,0x64,0x67,0x68,0x6d,0x72,
+0x75,0x77,0x78,0x7a,0x7c,0x7d,0x79,0x73,0x76,0x75,0x74,0x74,0x74,0x75,0x77,0x78,
+0x76,0x78,0x79,0x7a,0x7c,0x7c,0x78,0x73,0x6a,0x66,0x65,0x65,0x5f,0x56,0x55,0x5c,
+0x57,0x51,0x4d,0x4c,0x61,0x88,0x90,0x75,0x44,0x42,0x40,0x3c,0x3d,0x4d,0x5a,0x59,
+0x5b,0x5c,0x5e,0x61,0x69,0x75,0x7d,0x80,0x85,0x7b,0x74,0x6b,0x60,0x63,0x6c,0x6f,
+0x6d,0x60,0x64,0x6a,0x64,0x6c,0x80,0x88,0x80,0x79,0x71,0x5f,0x44,0x39,0x45,0x53,
+0x53,0x5c,0x65,0x6a,0x6b,0x66,0x5a,0x4e,0x42,0x3b,0x36,0x3b,0x47,0x54,0x5f,0x66,
+0x6c,0x4c,0x41,0x4c,0x4f,0x57,0x66,0x6d,0x40,0x28,0x32,0x44,0x3a,0x35,0x38,0x2b,
+0x2e,0x29,0x26,0x27,0x27,0x25,0x22,0x20,0x22,0x20,0x1d,0x1c,0x21,0x28,0x2c,0x2c,
+0x2c,0x2f,0x31,0x2f,0x2d,0x2b,0x27,0x22,0x21,0x1e,0x19,0x16,0x14,0x14,0x13,0x12,
+0x1b,0x19,0x1a,0x1e,0x21,0x20,0x20,0x20,0x1d,0x1c,0x18,0x14,0x16,0x1d,0x1f,0x1c,
+0x56,0x55,0x55,0x55,0x57,0x59,0x5a,0x5c,0x5d,0x5e,0x5d,0x5c,0x5a,0x58,0x58,0x59,
+0x54,0x4e,0x49,0x44,0x3d,0x39,0x41,0x4d,0x54,0x54,0x54,0x52,0x50,0x4e,0x4e,0x4d,
+0x46,0x3f,0x3e,0x44,0x49,0x4f,0x5d,0x6d,0x90,0x8c,0x70,0x4c,0x3e,0x3e,0x3e,0x3d,
+0x3b,0x3d,0x40,0x42,0x40,0x3e,0x3f,0x41,0x3a,0x3f,0x46,0x48,0x43,0x3e,0x42,0x4a,
+0x43,0x4a,0x57,0x65,0x6c,0x69,0x5c,0x52,0x56,0x4b,0x45,0x47,0x4a,0x53,0x59,0x56,
+0x5c,0x47,0x3a,0x36,0x30,0x30,0x3b,0x44,0x48,0x53,0x5b,0x5b,0x43,0x37,0x44,0x44,
+0x46,0x44,0x47,0x4b,0x48,0x41,0x3e,0x40,0x42,0x43,0x43,0x41,0x3b,0x4e,0x4b,0x4e,
+0x5a,0x6b,0x6c,0x75,0x8f,0xa2,0x95,0x6d,0x54,0x53,0x54,0x55,0x53,0x4f,0x50,0x54,
+0x58,0x59,0x61,0x72,0x84,0x85,0x70,0x59,0x4c,0x51,0x4f,0x4a,0x50,0x5e,0x65,0x62,
+0x50,0x33,0x2d,0x36,0x33,0x30,0x30,0x26,0x26,0x2f,0x3c,0x46,0x4c,0x54,0x68,0x7a,
+0x97,0xaa,0x9e,0x77,0x5f,0x59,0x50,0x43,0x47,0x55,0x60,0x60,0x5c,0x63,0x77,0x89,
+0xb7,0xc7,0xc9,0xb4,0x92,0x6c,0x58,0x57,0x5b,0x60,0x66,0x6c,0x76,0x81,0x87,0x88,
+0x8a,0x8c,0x90,0x8f,0x7e,0x6c,0x6a,0x75,0x7d,0x8c,0x94,0x90,0x87,0x7b,0x73,0x73,
+0x7e,0x7f,0x83,0x86,0x84,0x7f,0x7a,0x79,0x7f,0x81,0x82,0x84,0x83,0x7d,0x82,0x93,
+0xa1,0xa3,0xa7,0xaf,0xa9,0xa6,0xa8,0x98,0x90,0xa2,0xb1,0xac,0xa1,0xa1,0x9d,0x8f,
+0x91,0x97,0x96,0x94,0x9c,0xa7,0xa0,0x8e,0x83,0x79,0x71,0x65,0x51,0x44,0x43,0x42,
+0x3b,0x3b,0x3c,0x3f,0x45,0x49,0x46,0x40,0x32,0x2d,0x2c,0x2d,0x36,0x4c,0x5f,0x66,
+0x5a,0x5a,0x5d,0x65,0x6e,0x71,0x6e,0x69,0x66,0x74,0x78,0x6c,0x65,0x67,0x66,0x5f,
+0x53,0x54,0x56,0x59,0x5c,0x5b,0x57,0x54,0x5d,0x73,0x9a,0x9d,0x9c,0x84,0x7a,0x82,
+0x7c,0x66,0x5f,0x54,0x48,0x4d,0x63,0x67,0x56,0x50,0x50,0x51,0x54,0x5b,0x5b,0x52,
+0x55,0x51,0x4f,0x54,0x5b,0x62,0x6a,0x70,0x7e,0x78,0x74,0x75,0x76,0x75,0x77,0x79,
+0x7a,0x7a,0x7f,0x7f,0x76,0x75,0x78,0x77,0x7f,0x7b,0x77,0x76,0x77,0x76,0x73,0x70,
+0x6f,0x72,0x74,0x71,0x69,0x60,0x5d,0x5e,0x5f,0x5f,0x61,0x64,0x65,0x63,0x62,0x63,
+0x61,0x61,0x5e,0x59,0x5c,0x62,0x60,0x59,0x57,0x51,0x52,0x51,0x4d,0x52,0x54,0x4a,
+0x48,0x47,0x46,0x44,0x43,0x45,0x49,0x4c,0x40,0x3c,0x3b,0x3e,0x40,0x3e,0x3c,0x3b,
+0x3e,0x3c,0x38,0x34,0x34,0x38,0x3b,0x3b,0x38,0x41,0x4e,0x5a,0x65,0x6d,0x72,0x73,
+0x6e,0x66,0x5f,0x5d,0x5e,0x5d,0x5c,0x5c,0x5b,0x5b,0x5d,0x5e,0x5d,0x5f,0x67,0x6f,
+0x7d,0x80,0x7e,0x7b,0x76,0x69,0x60,0x63,0x68,0x70,0x7a,0x7c,0x76,0x6b,0x61,0x5b,
+0x5d,0x5c,0x61,0x6c,0x74,0x7a,0x84,0x8e,0x89,0x8b,0x89,0x88,0x8e,0x97,0x98,0x93,
+0x75,0x5d,0x4a,0x4d,0x6c,0xa2,0xc1,0xba,0x9b,0x77,0x61,0x65,0x6a,0x6b,0x70,0x74,
+0x76,0x78,0x79,0x7b,0x7d,0x7e,0x79,0x73,0x75,0x75,0x74,0x74,0x75,0x75,0x75,0x75,
+0x75,0x77,0x7a,0x7b,0x7d,0x7c,0x77,0x71,0x6d,0x6d,0x6c,0x6a,0x63,0x5c,0x59,0x5a,
+0x57,0x52,0x4e,0x4f,0x66,0x8f,0x93,0x72,0x46,0x42,0x43,0x42,0x41,0x4a,0x54,0x54,
+0x57,0x5b,0x5f,0x63,0x6b,0x77,0x81,0x86,0x86,0x7f,0x7c,0x74,0x71,0x83,0x96,0x97,
+0x9a,0x6d,0x57,0x5d,0x5c,0x5d,0x61,0x5c,0x6b,0x6a,0x69,0x5f,0x53,0x57,0x67,0x70,
+0x58,0x57,0x54,0x4c,0x44,0x3e,0x3c,0x3b,0x5b,0x5c,0x62,0x6c,0x71,0x6b,0x62,0x5d,
+0x49,0x4f,0x56,0x51,0x52,0x6c,0x73,0x57,0x33,0x32,0x38,0x37,0x2e,0x2e,0x30,0x29,
+0x2f,0x2d,0x2d,0x2f,0x2e,0x2c,0x2c,0x2d,0x21,0x1c,0x17,0x17,0x19,0x1c,0x1d,0x1d,
+0x23,0x27,0x29,0x27,0x25,0x22,0x1f,0x1b,0x16,0x18,0x17,0x15,0x11,0x10,0x13,0x16,
+0x15,0x12,0x13,0x17,0x19,0x1a,0x1c,0x1f,0x19,0x17,0x16,0x17,0x19,0x1e,0x27,0x30,
+0x52,0x52,0x53,0x54,0x56,0x58,0x5b,0x5c,0x5e,0x5e,0x5e,0x5d,0x5b,0x59,0x59,0x5a,
+0x56,0x4c,0x43,0x40,0x3d,0x3d,0x46,0x52,0x56,0x54,0x53,0x54,0x52,0x4e,0x4d,0x4e,
+0x45,0x3e,0x3d,0x45,0x4b,0x51,0x60,0x71,0x86,0x84,0x6b,0x4a,0x3d,0x3e,0x3e,0x3b,
+0x3b,0x36,0x35,0x3c,0x43,0x42,0x40,0x3f,0x3a,0x41,0x49,0x49,0x3e,0x35,0x39,0x42,
+0x4f,0x59,0x5d,0x55,0x4d,0x51,0x5e,0x68,0x5f,0x4f,0x53,0x6e,0x88,0x98,0x9b,0x95,
+0x81,0x62,0x4c,0x45,0x3b,0x36,0x3b,0x43,0x51,0x63,0x73,0x7b,0x74,0x74,0x6f,0x4f,
+0x3a,0x3b,0x41,0x4a,0x4a,0x41,0x3a,0x3a,0x40,0x38,0x3e,0x45,0x3b,0x47,0x43,0x44,
+0x52,0x51,0x4e,0x5f,0x71,0x76,0x78,0x6f,0x58,0x54,0x51,0x4d,0x48,0x46,0x4c,0x55,
+0x50,0x4f,0x55,0x5e,0x5f,0x56,0x50,0x50,0x4c,0x52,0x57,0x61,0x7a,0x93,0x96,0x89,
+0x62,0x3e,0x30,0x31,0x27,0x26,0x2d,0x28,0x2e,0x2f,0x35,0x41,0x4b,0x52,0x59,0x5f,
+0x62,0x5e,0x54,0x51,0x56,0x52,0x4b,0x4a,0x60,0x6d,0x73,0x69,0x5e,0x69,0x8a,0xa8,
+0xbc,0xc8,0xc8,0xb2,0x90,0x6b,0x54,0x51,0x4e,0x4f,0x57,0x65,0x70,0x76,0x7d,0x84,
+0x85,0x82,0x86,0x8b,0x7f,0x6b,0x67,0x70,0x86,0x92,0x9a,0x9b,0x99,0x8f,0x81,0x7c,
+0x77,0x79,0x7e,0x80,0x76,0x69,0x64,0x67,0x64,0x67,0x6b,0x72,0x75,0x6e,0x6c,0x76,
+0x7b,0x83,0x8b,0x93,0x8e,0x94,0xa4,0x9c,0xa5,0xb0,0xb3,0xa5,0x9d,0xa7,0xaa,0x9d,
+0xa7,0xab,0xa4,0x9b,0xa3,0xb2,0xac,0x98,0x8a,0x81,0x7a,0x6d,0x55,0x45,0x42,0x41,
+0x3d,0x40,0x41,0x43,0x48,0x4c,0x46,0x3c,0x37,0x2e,0x2d,0x30,0x38,0x51,0x60,0x59,
+0x4e,0x54,0x5e,0x6a,0x73,0x75,0x71,0x6c,0x6f,0x76,0x72,0x63,0x5e,0x68,0x6e,0x6a,
+0x5a,0x5e,0x63,0x66,0x65,0x63,0x62,0x62,0x5c,0x70,0x9a,0x9c,0x94,0x79,0x85,0xa7,
+0xb7,0x8b,0x73,0x59,0x4d,0x4a,0x5e,0x59,0x61,0x55,0x52,0x56,0x58,0x5c,0x5e,0x5a,
+0x55,0x54,0x59,0x64,0x6d,0x70,0x72,0x74,0x74,0x70,0x70,0x76,0x7a,0x7b,0x7d,0x7f,
+0x86,0x81,0x80,0x7d,0x76,0x75,0x79,0x76,0x7b,0x78,0x76,0x77,0x7a,0x7a,0x76,0x72,
+0x6e,0x7a,0x80,0x7a,0x72,0x6f,0x6e,0x6b,0x6a,0x67,0x6a,0x70,0x70,0x6b,0x69,0x6b,
+0x6d,0x6e,0x69,0x62,0x63,0x68,0x64,0x5a,0x62,0x5a,0x5a,0x59,0x53,0x59,0x5b,0x4e,
+0x4e,0x4a,0x46,0x45,0x46,0x48,0x49,0x48,0x44,0x3c,0x39,0x3d,0x41,0x3e,0x3d,0x3e,
+0x3f,0x40,0x3c,0x35,0x33,0x36,0x36,0x31,0x3f,0x39,0x37,0x3f,0x4e,0x5e,0x6d,0x76,
+0x6d,0x66,0x5f,0x5d,0x5e,0x5d,0x5c,0x5c,0x5b,0x5b,0x5d,0x5f,0x5f,0x61,0x6a,0x72,
+0x7f,0x81,0x7f,0x7c,0x77,0x6b,0x65,0x6a,0x86,0x92,0x9d,0x9a,0x8a,0x77,0x6b,0x67,
+0x6a,0x69,0x64,0x5f,0x64,0x70,0x77,0x78,0x79,0x72,0x6f,0x75,0x7c,0x7c,0x79,0x78,
+0x6a,0x56,0x4a,0x50,0x6f,0xa4,0xc2,0xbb,0x98,0x74,0x5e,0x63,0x68,0x6a,0x6e,0x72,
+0x78,0x7a,0x7b,0x7c,0x7e,0x7f,0x79,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x74,0x73,
+0x71,0x75,0x79,0x7c,0x7f,0x80,0x7c,0x77,0x71,0x72,0x71,0x6e,0x68,0x61,0x5b,0x58,
+0x5a,0x54,0x4f,0x51,0x6a,0x93,0x94,0x6f,0x46,0x40,0x42,0x46,0x41,0x3e,0x40,0x40,
+0x4e,0x54,0x5b,0x60,0x67,0x74,0x7f,0x85,0x81,0x7c,0x7b,0x77,0x80,0xa6,0xca,0xd1,
+0xa2,0x71,0x5d,0x61,0x4f,0x3d,0x3e,0x40,0x5a,0x68,0x75,0x78,0x81,0x8d,0x7d,0x5a,
+0x5c,0x63,0x71,0x76,0x62,0x4b,0x53,0x6b,0x73,0x6e,0x6b,0x6b,0x66,0x5e,0x57,0x55,
+0x4e,0x4f,0x58,0x58,0x5a,0x6b,0x5e,0x31,0x2c,0x47,0x4d,0x40,0x3c,0x3f,0x3e,0x3d,
+0x36,0x37,0x38,0x35,0x2d,0x24,0x21,0x22,0x20,0x19,0x15,0x19,0x1e,0x1f,0x21,0x23,
+0x23,0x27,0x28,0x26,0x22,0x1f,0x1b,0x18,0x17,0x11,0x0b,0x0e,0x16,0x1a,0x17,0x11,
+0x14,0x15,0x1a,0x1f,0x1f,0x1c,0x1d,0x21,0x1e,0x19,0x1a,0x22,0x29,0x33,0x4d,0x67,
+0x54,0x56,0x57,0x56,0x57,0x5a,0x5b,0x5a,0x5b,0x5e,0x5f,0x5c,0x5a,0x5b,0x5c,0x5c,
+0x56,0x48,0x40,0x3d,0x3c,0x44,0x50,0x55,0x58,0x57,0x54,0x53,0x52,0x51,0x50,0x4f,
+0x4a,0x44,0x42,0x46,0x4c,0x53,0x5b,0x63,0x69,0x60,0x52,0x46,0x3f,0x3d,0x3e,0x3f,
+0x39,0x3a,0x3a,0x3b,0x3e,0x42,0x44,0x43,0x44,0x48,0x51,0x4f,0x40,0x41,0x54,0x64,
+0x89,0xa8,0xb0,0x96,0x8b,0xa5,0xae,0x99,0x6b,0x4e,0x59,0x96,0xd1,0xe8,0xe5,0xdc,
+0xd1,0xb5,0x87,0x4e,0x33,0x35,0x43,0x5c,0x86,0xad,0xb9,0x9d,0x87,0x87,0x79,0x5d,
+0x45,0x42,0x3c,0x3d,0x40,0x3b,0x34,0x36,0x3b,0x3e,0x3e,0x41,0x43,0x3e,0x3e,0x47,
+0x54,0x60,0x63,0x68,0x6a,0x68,0x6a,0x60,0x62,0x5b,0x57,0x58,0x56,0x4f,0x4d,0x51,
+0x4a,0x4c,0x4f,0x4d,0x48,0x48,0x51,0x5d,0x68,0x69,0x6b,0x7d,0xa8,0xc5,0xad,0x7f,
+0x54,0x3e,0x2e,0x28,0x25,0x27,0x2b,0x2a,0x29,0x2c,0x2d,0x37,0x44,0x43,0x49,0x5e,
+0x76,0x6f,0x67,0x67,0x70,0x74,0x69,0x5a,0x78,0x98,0xa6,0x9c,0x9b,0xa9,0xb5,0xba,
+0xca,0xce,0xc2,0xac,0x8f,0x68,0x52,0x57,0x5a,0x61,0x6a,0x6d,0x6c,0x6c,0x70,0x74,
+0x75,0x7a,0x7e,0x7c,0x77,0x6f,0x65,0x5c,0x7d,0x8e,0x9d,0x9e,0x94,0x89,0x81,0x7b,
+0x7c,0x79,0x7a,0x7d,0x75,0x66,0x5d,0x5e,0x5c,0x61,0x66,0x6b,0x6d,0x70,0x73,0x75,
+0x70,0x73,0x74,0x73,0x76,0x7d,0x84,0x88,0x98,0xa9,0xac,0x9f,0x9d,0xa9,0xab,0xa1,
+0xa9,0xae,0xa5,0x9f,0xac,0xb7,0xaa,0x96,0x87,0x85,0x80,0x74,0x60,0x4c,0x45,0x46,
+0x45,0x43,0x42,0x43,0x43,0x42,0x3e,0x3a,0x39,0x33,0x32,0x38,0x47,0x5c,0x65,0x5f,
+0x53,0x53,0x5c,0x6d,0x78,0x78,0x75,0x75,0x75,0x72,0x69,0x5a,0x5a,0x6f,0x79,0x70,
+0x59,0x61,0x6c,0x72,0x72,0x73,0x7d,0x87,0x83,0x94,0x97,0x98,0x97,0x83,0x8c,0xba,
+0xce,0xc2,0xa9,0x81,0x51,0x4c,0x6a,0x6e,0x73,0x67,0x5d,0x5b,0x59,0x54,0x55,0x59,
+0x5d,0x64,0x6d,0x74,0x7b,0x81,0x7f,0x7b,0x76,0x7a,0x7a,0x79,0x7c,0x7b,0x79,0x7d,
+0x87,0x84,0x7c,0x79,0x7d,0x7b,0x76,0x79,0x7d,0x7c,0x7a,0x7a,0x7b,0x7c,0x7b,0x7b,
+0x7b,0x7e,0x7f,0x7f,0x7f,0x7e,0x79,0x74,0x75,0x70,0x76,0x78,0x70,0x72,0x77,0x72,
+0x70,0x72,0x70,0x71,0x73,0x6e,0x69,0x6d,0x6f,0x69,0x62,0x60,0x60,0x61,0x61,0x60,
+0x5a,0x54,0x4f,0x4e,0x4f,0x4e,0x49,0x44,0x43,0x42,0x41,0x3f,0x3d,0x3d,0x3e,0x40,
+0x40,0x40,0x3f,0x3d,0x3a,0x37,0x35,0x34,0x34,0x34,0x35,0x39,0x3e,0x47,0x57,0x67,
+0x6a,0x66,0x61,0x5c,0x59,0x59,0x5b,0x5c,0x5f,0x5e,0x5f,0x61,0x62,0x64,0x69,0x6f,
+0x80,0x7e,0x7d,0x7f,0x7a,0x6a,0x64,0x6f,0x99,0xaf,0xc1,0xbd,0xad,0xa1,0x9d,0x9b,
+0x99,0x87,0x6a,0x57,0x5c,0x6d,0x77,0x76,0x67,0x64,0x5e,0x5b,0x5d,0x62,0x63,0x62,
+0x5b,0x4f,0x4d,0x55,0x79,0xa6,0xca,0xb3,0x92,0x75,0x67,0x62,0x64,0x6c,0x6d,0x72,
+0x75,0x78,0x7b,0x7d,0x7e,0x7e,0x79,0x74,0x75,0x75,0x76,0x77,0x78,0x78,0x77,0x76,
+0x77,0x77,0x76,0x76,0x7b,0x82,0x85,0x84,0x75,0x72,0x6e,0x6a,0x64,0x5c,0x57,0x56,
+0x56,0x5c,0x58,0x5b,0x7a,0x9c,0x93,0x72,0x4c,0x49,0x44,0x3f,0x3d,0x3d,0x3d,0x3d,
+0x42,0x4c,0x5a,0x64,0x65,0x64,0x6c,0x76,0x72,0x73,0x6c,0x6c,0x88,0xad,0xb8,0xad,
+0x84,0x69,0x5c,0x5e,0x5f,0x6a,0x7c,0x84,0x83,0x76,0x6f,0x7d,0x79,0x73,0x57,0x41,
+0x53,0x54,0x5a,0x62,0x69,0x6b,0x68,0x64,0x4b,0x3a,0x32,0x3d,0x4c,0x52,0x53,0x55,
+0x5f,0x59,0x56,0x57,0x57,0x4d,0x3b,0x2b,0x35,0x3d,0x45,0x47,0x46,0x45,0x44,0x42,
+0x46,0x3f,0x33,0x2a,0x28,0x28,0x22,0x1b,0x1d,0x17,0x13,0x13,0x18,0x1b,0x19,0x16,
+0x1a,0x20,0x1e,0x19,0x17,0x13,0x0f,0x11,0x17,0x17,0x18,0x17,0x14,0x13,0x17,0x1d,
+0x1c,0x19,0x1c,0x1e,0x18,0x1d,0x2b,0x34,0x46,0x53,0x60,0x64,0x67,0x74,0x89,0x99,
+0x54,0x56,0x56,0x56,0x57,0x5a,0x5b,0x5a,0x5c,0x5d,0x5d,0x5a,0x59,0x5a,0x59,0x57,
+0x51,0x44,0x3e,0x3d,0x3f,0x48,0x53,0x56,0x5a,0x58,0x55,0x54,0x53,0x52,0x51,0x50,
+0x4b,0x47,0x45,0x49,0x4f,0x55,0x5d,0x63,0x6a,0x5e,0x4e,0x43,0x40,0x42,0x44,0x45,
+0x3e,0x39,0x36,0x37,0x39,0x40,0x4f,0x5e,0x55,0x5b,0x67,0x62,0x4e,0x4f,0x63,0x6d,
+0x72,0x9d,0xbd,0xbd,0xc2,0xd8,0xcf,0xab,0x73,0x5b,0x6b,0xac,0xe7,0xfc,0xf6,0xe9,
+0xd3,0xa8,0x77,0x4d,0x37,0x36,0x4b,0x74,0xc2,0xdf,0xd9,0xa7,0x8b,0x94,0x94,0x81,
+0x55,0x49,0x3a,0x38,0x3d,0x39,0x34,0x37,0x40,0x41,0x45,0x4f,0x52,0x46,0x45,0x53,
+0x6d,0x79,0x78,0x71,0x62,0x54,0x56,0x53,0x56,0x57,0x52,0x48,0x46,0x4c,0x4f,0x4c,
+0x4c,0x49,0x48,0x4d,0x59,0x64,0x6b,0x6e,0x67,0x6c,0x75,0x89,0xa7,0xb3,0x99,0x74,
+0x4c,0x3e,0x39,0x3c,0x39,0x34,0x2f,0x28,0x2a,0x2d,0x29,0x29,0x2f,0x38,0x53,0x78,
+0x8d,0x89,0x8f,0xa3,0xb6,0xb1,0x93,0x77,0x8d,0xa5,0xb8,0xc0,0xc4,0xc4,0xc6,0xcd,
+0xc8,0xcb,0xbd,0xa3,0x84,0x62,0x56,0x61,0x6b,0x6e,0x6f,0x6b,0x66,0x64,0x69,0x6e,
+0x73,0x79,0x80,0x81,0x7e,0x75,0x67,0x5b,0x73,0x83,0x91,0x94,0x8e,0x85,0x7d,0x77,
+0x77,0x76,0x79,0x7c,0x77,0x6c,0x64,0x63,0x61,0x68,0x71,0x76,0x75,0x70,0x6c,0x6b,
+0x6b,0x6c,0x6a,0x65,0x62,0x63,0x64,0x64,0x68,0x78,0x85,0x8f,0xa1,0xb3,0xb0,0xa1,
+0xae,0xb1,0xa7,0xa0,0xae,0xb8,0xab,0x98,0x81,0x7b,0x75,0x71,0x68,0x5a,0x4e,0x48,
+0x49,0x46,0x42,0x3f,0x3d,0x3c,0x3a,0x39,0x3a,0x35,0x38,0x43,0x54,0x68,0x6f,0x67,
+0x54,0x58,0x60,0x6c,0x77,0x7c,0x76,0x6e,0x7e,0x6d,0x5b,0x52,0x5b,0x71,0x75,0x66,
+0x5d,0x60,0x66,0x6e,0x76,0x7c,0x80,0x81,0x86,0x98,0x9b,0x9c,0x9c,0x8d,0x94,0xbc,
+0xdb,0xcd,0xb2,0x8a,0x59,0x4f,0x68,0x6c,0x6c,0x63,0x5c,0x59,0x57,0x55,0x5a,0x62,
+0x71,0x73,0x75,0x79,0x80,0x86,0x84,0x7f,0x83,0x86,0x82,0x7d,0x7c,0x7b,0x7e,0x87,
+0x88,0x85,0x7d,0x7b,0x7f,0x7d,0x7b,0x81,0x80,0x81,0x82,0x81,0x80,0x80,0x82,0x83,
+0x83,0x85,0x85,0x84,0x83,0x82,0x7e,0x7a,0x7a,0x78,0x79,0x79,0x76,0x78,0x7c,0x7c,
+0x73,0x76,0x74,0x75,0x79,0x74,0x70,0x74,0x70,0x6f,0x6b,0x67,0x67,0x6a,0x69,0x66,
+0x65,0x60,0x5b,0x59,0x59,0x56,0x4f,0x49,0x45,0x46,0x46,0x45,0x43,0x3f,0x3c,0x3a,
+0x3e,0x3e,0x3f,0x3e,0x3c,0x3a,0x38,0x37,0x34,0x34,0x36,0x39,0x3a,0x3d,0x46,0x4f,
+0x59,0x5a,0x5b,0x5c,0x5d,0x5d,0x5d,0x5d,0x5d,0x5c,0x5c,0x5f,0x61,0x64,0x6b,0x71,
+0x7d,0x7e,0x7e,0x80,0x7d,0x6f,0x67,0x6e,0x89,0x98,0xa8,0xb0,0xb1,0xb3,0xb8,0xbc,
+0xb4,0x9f,0x7e,0x64,0x61,0x6d,0x77,0x78,0x78,0x79,0x78,0x76,0x74,0x72,0x70,0x6e,
+0x65,0x55,0x4d,0x54,0x7b,0xa8,0xc9,0xaf,0x92,0x75,0x68,0x62,0x62,0x6a,0x6b,0x71,
+0x73,0x77,0x7b,0x7c,0x7e,0x7d,0x79,0x73,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,
+0x74,0x78,0x77,0x76,0x7f,0x8b,0x8a,0x7f,0x76,0x75,0x73,0x6d,0x64,0x5b,0x5a,0x5d,
+0x70,0x78,0x7b,0x7f,0x95,0xa9,0x9a,0x7a,0x5f,0x5d,0x5a,0x55,0x4c,0x42,0x3d,0x3e,
+0x41,0x49,0x58,0x64,0x67,0x62,0x5f,0x5f,0x6d,0x67,0x5c,0x5d,0x77,0x92,0x91,0x7f,
+0x66,0x70,0x85,0x93,0x92,0x89,0x7f,0x75,0x67,0x70,0x7a,0x82,0x67,0x54,0x3f,0x36,
+0x46,0x57,0x6a,0x70,0x63,0x4f,0x3e,0x35,0x32,0x2d,0x2f,0x3b,0x4a,0x54,0x5c,0x63,
+0x64,0x5c,0x52,0x4d,0x48,0x3e,0x2e,0x22,0x2d,0x33,0x38,0x39,0x39,0x39,0x38,0x36,
+0x34,0x30,0x28,0x21,0x1d,0x1b,0x17,0x13,0x0d,0x10,0x11,0x0f,0x0d,0x10,0x19,0x20,
+0x20,0x1f,0x17,0x11,0x16,0x18,0x15,0x15,0x10,0x19,0x1e,0x1c,0x1b,0x1d,0x20,0x20,
+0x18,0x13,0x18,0x2b,0x4d,0x7a,0x96,0x98,0x92,0x69,0x50,0x5d,0x6d,0x77,0x90,0xb0,
+0x54,0x56,0x57,0x56,0x57,0x5a,0x5b,0x59,0x5f,0x5e,0x5c,0x59,0x59,0x59,0x56,0x52,
+0x49,0x3e,0x3b,0x3f,0x43,0x4d,0x56,0x57,0x5b,0x59,0x55,0x53,0x52,0x51,0x51,0x51,
+0x4e,0x4b,0x4a,0x4e,0x54,0x59,0x5e,0x62,0x67,0x59,0x48,0x3f,0x3f,0x44,0x48,0x48,
+0x3e,0x37,0x36,0x3a,0x3f,0x4a,0x64,0x7e,0x77,0x61,0x55,0x4e,0x4c,0x62,0x75,0x6e,
+0x78,0xa7,0xcd,0xcc,0xc3,0xca,0xc2,0xa6,0x77,0x61,0x6c,0x9f,0xce,0xe3,0xe5,0xe0,
+0xd4,0xaa,0x7b,0x4f,0x36,0x2e,0x3a,0x5c,0x7c,0x8e,0x89,0x6b,0x60,0x78,0x90,0x95,
+0x86,0x68,0x46,0x3d,0x43,0x3f,0x38,0x3b,0x40,0x45,0x53,0x64,0x64,0x50,0x4b,0x5b,
+0xa4,0xc2,0xce,0xbe,0x8c,0x5a,0x4b,0x45,0x3e,0x44,0x47,0x43,0x44,0x47,0x44,0x3c,
+0x46,0x44,0x41,0x44,0x52,0x65,0x6f,0x71,0x77,0x73,0x6d,0x6d,0x73,0x74,0x66,0x55,
+0x46,0x3b,0x3a,0x3f,0x3e,0x3b,0x36,0x30,0x30,0x2f,0x2a,0x2c,0x33,0x3b,0x4e,0x67,
+0x77,0x82,0x97,0xaf,0xbc,0xb5,0xa4,0x97,0x92,0x9a,0xa8,0xb8,0xbc,0xb0,0xad,0xba,
+0xc9,0xc5,0xb3,0x9a,0x7f,0x66,0x5f,0x69,0x6c,0x6e,0x6d,0x68,0x62,0x60,0x66,0x6c,
+0x6f,0x74,0x79,0x7d,0x7d,0x77,0x6a,0x5f,0x68,0x73,0x80,0x86,0x86,0x84,0x80,0x7d,
+0x78,0x7a,0x7b,0x7b,0x77,0x73,0x70,0x6f,0x6d,0x7a,0x8a,0x96,0x9b,0x9c,0x9c,0x9e,
+0x8f,0x8f,0x8a,0x80,0x76,0x6f,0x69,0x64,0x67,0x6d,0x73,0x7d,0x91,0xa6,0xad,0xaa,
+0xb8,0xb9,0xae,0xa7,0xb2,0xba,0xae,0x9e,0x8c,0x7e,0x71,0x6e,0x6d,0x65,0x55,0x48,
+0x42,0x3e,0x39,0x37,0x38,0x3b,0x3e,0x3f,0x40,0x3b,0x41,0x50,0x61,0x70,0x72,0x67,
+0x57,0x5f,0x65,0x67,0x6d,0x74,0x73,0x6b,0x76,0x65,0x54,0x4e,0x54,0x66,0x6e,0x67,
+0x5f,0x5d,0x5d,0x66,0x78,0x85,0x81,0x76,0x8b,0x9f,0xa5,0xa7,0xab,0xa1,0xa5,0xc2,
+0xce,0xcc,0xbe,0x9d,0x68,0x50,0x61,0x68,0x66,0x61,0x5d,0x5c,0x5b,0x5d,0x66,0x70,
+0x7b,0x7b,0x7c,0x7f,0x85,0x88,0x83,0x7c,0x84,0x89,0x86,0x7f,0x7c,0x7c,0x81,0x8d,
+0x89,0x88,0x80,0x7d,0x80,0x7f,0x7f,0x86,0x88,0x8b,0x8d,0x8b,0x87,0x85,0x88,0x8b,
+0x8b,0x8c,0x8b,0x89,0x88,0x87,0x83,0x7f,0x7c,0x7d,0x79,0x76,0x78,0x7a,0x7c,0x81,
+0x7b,0x7d,0x7a,0x79,0x7a,0x74,0x6e,0x72,0x6e,0x72,0x71,0x6b,0x6a,0x6e,0x6e,0x68,
+0x62,0x60,0x5f,0x5f,0x5f,0x5c,0x56,0x51,0x50,0x4f,0x4b,0x47,0x44,0x41,0x3e,0x3d,
+0x3a,0x3b,0x3c,0x3c,0x3c,0x3a,0x38,0x37,0x39,0x38,0x38,0x39,0x38,0x38,0x3a,0x3e,
+0x45,0x4a,0x52,0x5a,0x5f,0x60,0x5f,0x5e,0x5d,0x5c,0x5d,0x5f,0x61,0x66,0x6e,0x76,
+0x7a,0x7f,0x7f,0x7f,0x7d,0x72,0x68,0x68,0x72,0x7d,0x8a,0x8d,0x86,0x82,0x89,0x93,
+0x94,0x84,0x6b,0x59,0x5c,0x6d,0x7b,0x7f,0x78,0x7a,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,
+0x6d,0x5a,0x4d,0x52,0x7e,0xab,0xc7,0xab,0x8f,0x73,0x68,0x62,0x62,0x6a,0x6d,0x75,
+0x7a,0x7e,0x81,0x83,0x83,0x82,0x7c,0x76,0x76,0x76,0x75,0x74,0x74,0x74,0x74,0x75,
+0x75,0x7a,0x79,0x78,0x86,0x96,0x90,0x7c,0x67,0x6b,0x6f,0x6c,0x61,0x58,0x59,0x5f,
+0x65,0x6f,0x79,0x84,0x9a,0xae,0xab,0x9c,0x95,0x8f,0x86,0x79,0x62,0x4b,0x43,0x47,
+0x45,0x50,0x61,0x6c,0x6b,0x65,0x62,0x63,0x6a,0x6e,0x6c,0x65,0x64,0x6c,0x71,0x70,
+0x7d,0x8d,0x93,0x88,0x77,0x65,0x56,0x51,0x5f,0x69,0x6e,0x6a,0x4b,0x4a,0x58,0x6c,
+0x66,0x6b,0x69,0x5b,0x44,0x32,0x2d,0x2f,0x2a,0x29,0x2c,0x39,0x4b,0x5c,0x64,0x66,
+0x5d,0x56,0x4b,0x42,0x39,0x2e,0x21,0x18,0x1c,0x20,0x24,0x26,0x29,0x2d,0x2e,0x2d,
+0x2d,0x1c,0x17,0x20,0x21,0x14,0x12,0x1a,0x15,0x15,0x15,0x15,0x15,0x14,0x13,0x12,
+0x17,0x1f,0x1f,0x17,0x12,0x14,0x26,0x3e,0x4d,0x46,0x3f,0x3c,0x3f,0x44,0x48,0x4a,
+0x5f,0x75,0x9b,0xb1,0xa8,0x91,0x7a,0x6a,0x5e,0x5b,0x60,0x71,0x7e,0x7d,0x79,0x78,
+0x55,0x57,0x58,0x58,0x59,0x5c,0x5c,0x5b,0x61,0x60,0x5c,0x5a,0x5b,0x5a,0x54,0x4d,
+0x41,0x38,0x3a,0x42,0x49,0x52,0x59,0x59,0x5a,0x57,0x53,0x50,0x50,0x50,0x50,0x50,
+0x51,0x50,0x50,0x53,0x57,0x5a,0x5d,0x5f,0x5e,0x52,0x43,0x3b,0x3d,0x42,0x47,0x49,
+0x4c,0x48,0x43,0x3d,0x38,0x39,0x47,0x57,0x5f,0x52,0x50,0x4b,0x4b,0x70,0x98,0x9d,
+0x8f,0xb5,0xd8,0xd7,0xc1,0xb2,0xa4,0x91,0x6a,0x61,0x71,0x96,0xb2,0xc3,0xd1,0xda,
+0xd4,0xbe,0x91,0x53,0x33,0x32,0x35,0x42,0x4a,0x49,0x47,0x43,0x3e,0x42,0x55,0x68,
+0x72,0x5b,0x41,0x38,0x3b,0x3d,0x48,0x5c,0x5a,0x76,0xa1,0xc3,0xc2,0x9a,0x73,0x67,
+0xb5,0xdc,0xee,0xd5,0x91,0x55,0x49,0x4d,0x54,0x47,0x3d,0x3e,0x40,0x3f,0x41,0x47,
+0x3d,0x3e,0x3c,0x3f,0x50,0x69,0x78,0x7a,0x74,0x6c,0x5a,0x48,0x43,0x49,0x4d,0x4b,
+0x40,0x36,0x36,0x3d,0x3e,0x3f,0x41,0x3f,0x39,0x3b,0x3e,0x43,0x47,0x46,0x4a,0x51,
+0x60,0x5d,0x61,0x74,0x92,0xa7,0xab,0xa4,0x91,0x90,0x95,0xa4,0xad,0xa6,0xab,0xbf,
+0xc8,0xbb,0xa6,0x91,0x7e,0x6d,0x65,0x66,0x62,0x66,0x68,0x65,0x60,0x5f,0x64,0x6a,
+0x6f,0x6f,0x6f,0x70,0x73,0x73,0x6d,0x65,0x63,0x6a,0x73,0x7a,0x7e,0x7f,0x7d,0x7c,
+0x83,0x87,0x8a,0x8c,0x91,0x9a,0xa0,0xa3,0xaf,0xb4,0xba,0xb9,0xb5,0xb1,0xb1,0xb3,
+0xb8,0xb8,0xb4,0xaa,0x9f,0x94,0x8a,0x83,0x6c,0x6e,0x6e,0x70,0x7a,0x8f,0xa8,0xba,
+0xc5,0xc9,0xc2,0xbb,0xc2,0xc6,0xbc,0xb2,0x9d,0x8c,0x79,0x6f,0x6c,0x65,0x56,0x49,
+0x3e,0x38,0x32,0x33,0x3b,0x43,0x46,0x46,0x45,0x40,0x47,0x5a,0x68,0x70,0x6b,0x5e,
+0x5b,0x61,0x64,0x62,0x63,0x6a,0x70,0x72,0x6d,0x5c,0x50,0x4e,0x53,0x61,0x6b,0x6a,
+0x66,0x64,0x62,0x6c,0x83,0x95,0x8e,0x7d,0x8a,0x9e,0xa9,0xad,0xb2,0xaa,0xa7,0xb6,
+0xd2,0xd3,0xc9,0xaf,0x80,0x61,0x66,0x66,0x61,0x5f,0x5e,0x61,0x64,0x68,0x71,0x7a,
+0x78,0x7b,0x7f,0x84,0x87,0x85,0x7f,0x79,0x7b,0x83,0x84,0x82,0x83,0x82,0x85,0x8d,
+0x8b,0x8b,0x85,0x82,0x84,0x82,0x82,0x89,0x90,0x92,0x93,0x91,0x8d,0x8a,0x8a,0x8b,
+0x8e,0x8f,0x8f,0x8d,0x8b,0x89,0x85,0x7f,0x7b,0x80,0x79,0x75,0x7a,0x79,0x78,0x81,
+0x7f,0x80,0x7c,0x7a,0x7b,0x74,0x6e,0x71,0x6e,0x75,0x74,0x6b,0x69,0x70,0x70,0x6a,
+0x68,0x68,0x6a,0x6b,0x6c,0x68,0x63,0x5f,0x57,0x56,0x53,0x51,0x4d,0x48,0x43,0x40,
+0x3e,0x3d,0x3c,0x3b,0x3a,0x39,0x38,0x37,0x3d,0x3a,0x37,0x36,0x36,0x37,0x39,0x3a,
+0x38,0x3e,0x48,0x52,0x59,0x5c,0x5d,0x5c,0x5e,0x5d,0x5d,0x5f,0x60,0x65,0x6e,0x77,
+0x7a,0x80,0x7f,0x7c,0x7a,0x71,0x66,0x63,0x6a,0x7e,0x92,0x90,0x78,0x68,0x72,0x87,
+0x7f,0x71,0x5e,0x55,0x5e,0x6f,0x79,0x7a,0x67,0x65,0x63,0x64,0x66,0x68,0x6c,0x70,
+0x67,0x58,0x4c,0x53,0x82,0xae,0xc6,0xaa,0x89,0x70,0x67,0x63,0x64,0x6d,0x72,0x7b,
+0x82,0x85,0x87,0x86,0x85,0x83,0x7c,0x76,0x75,0x76,0x78,0x78,0x79,0x7a,0x7b,0x7c,
+0x7a,0x7c,0x7b,0x7e,0x8b,0x97,0x90,0x7f,0x6b,0x71,0x77,0x74,0x68,0x5b,0x58,0x5b,
+0x66,0x6f,0x7b,0x86,0x94,0xa0,0xa3,0xa1,0x9a,0x99,0x9a,0x93,0x77,0x55,0x44,0x45,
+0x4d,0x5c,0x6b,0x6d,0x64,0x61,0x6b,0x78,0x8d,0x81,0x71,0x68,0x6a,0x71,0x72,0x6f,
+0x78,0x7f,0x71,0x5b,0x4c,0x3d,0x38,0x42,0x5d,0x5e,0x58,0x52,0x3a,0x40,0x4c,0x5a,
+0x40,0x3c,0x35,0x2d,0x27,0x25,0x28,0x2b,0x2a,0x23,0x21,0x30,0x4c,0x61,0x62,0x58,
+0x4d,0x48,0x41,0x3a,0x31,0x26,0x1b,0x14,0x13,0x15,0x17,0x18,0x1c,0x22,0x24,0x23,
+0x1b,0x1a,0x13,0x0a,0x0c,0x14,0x14,0x0d,0x12,0x10,0x0f,0x12,0x17,0x1c,0x1e,0x1e,
+0x22,0x2e,0x1e,0x0c,0x2a,0x64,0x83,0x83,0x68,0x6b,0x7a,0x8e,0x99,0x9a,0xa2,0xae,
+0xab,0xbe,0xbb,0x8e,0x5f,0x51,0x4d,0x40,0x53,0x69,0x72,0x6a,0x69,0x77,0x7a,0x70,
+0x56,0x58,0x5a,0x5a,0x5b,0x5e,0x5e,0x5d,0x61,0x60,0x5d,0x5b,0x5b,0x59,0x51,0x48,
+0x3b,0x36,0x3c,0x47,0x4f,0x56,0x5b,0x59,0x59,0x56,0x52,0x50,0x4f,0x50,0x50,0x50,
+0x53,0x53,0x53,0x55,0x57,0x5a,0x5b,0x5a,0x50,0x49,0x40,0x3b,0x3d,0x42,0x49,0x4c,
+0x47,0x4b,0x49,0x41,0x3c,0x40,0x45,0x46,0x4b,0x4b,0x52,0x4c,0x40,0x4e,0x62,0x5f,
+0x57,0x61,0x70,0x75,0x6b,0x62,0x59,0x4e,0x44,0x41,0x4d,0x5f,0x6a,0x80,0xa7,0xc7,
+0xdd,0xd1,0xa3,0x59,0x33,0x35,0x36,0x3b,0x48,0x3e,0x3b,0x3c,0x36,0x2b,0x2f,0x3c,
+0x3d,0x40,0x3f,0x39,0x33,0x33,0x4d,0x72,0x9c,0xa9,0xbd,0xd2,0xdc,0xc6,0xa0,0x89,
+0xac,0xd1,0xe5,0xd5,0xa4,0x78,0x70,0x6f,0x58,0x4b,0x44,0x49,0x4f,0x4b,0x44,0x41,
+0x3d,0x41,0x40,0x3e,0x45,0x53,0x59,0x56,0x69,0x6a,0x5d,0x48,0x41,0x48,0x49,0x40,
+0x35,0x2f,0x34,0x3e,0x41,0x43,0x46,0x45,0x43,0x4b,0x55,0x55,0x4c,0x4b,0x54,0x5d,
+0x49,0x68,0x86,0x8f,0x90,0x9b,0xa9,0xb1,0xb8,0xb8,0xb7,0xb9,0xba,0xb4,0xb4,0xc0,
+0xc0,0xb1,0x9d,0x87,0x74,0x68,0x66,0x66,0x65,0x67,0x68,0x64,0x5f,0x5e,0x64,0x6a,
+0x71,0x6f,0x6a,0x67,0x69,0x6a,0x66,0x61,0x5e,0x64,0x6e,0x77,0x7b,0x79,0x73,0x6f,
+0x75,0x79,0x7d,0x80,0x85,0x8d,0x92,0x94,0x99,0x9d,0xa0,0xa1,0xa2,0xa5,0xac,0xb2,
+0xaf,0xb1,0xb0,0xac,0xa6,0xa0,0x97,0x90,0x8d,0x8d,0x8b,0x85,0x7d,0x7d,0x8a,0x98,
+0xa9,0xb2,0xb1,0xad,0xb1,0xb3,0xae,0xab,0xa4,0x99,0x89,0x7a,0x6d,0x61,0x53,0x49,
+0x42,0x3a,0x33,0x38,0x44,0x4c,0x4b,0x46,0x43,0x40,0x4d,0x66,0x76,0x79,0x72,0x65,
+0x66,0x60,0x5f,0x66,0x6e,0x73,0x75,0x78,0x6d,0x57,0x4a,0x4e,0x5a,0x68,0x6b,0x63,
+0x63,0x64,0x66,0x70,0x86,0x98,0x95,0x87,0x99,0xab,0xb5,0xba,0xba,0xae,0xa4,0xa7,
+0xb5,0xb4,0xa6,0x97,0x7e,0x6a,0x6b,0x65,0x5f,0x5d,0x5e,0x64,0x6c,0x72,0x77,0x7a,
+0x7a,0x7e,0x83,0x85,0x84,0x80,0x7d,0x7d,0x7e,0x84,0x86,0x88,0x8d,0x8d,0x8d,0x92,
+0x8b,0x8d,0x8a,0x89,0x8c,0x89,0x87,0x8e,0x94,0x93,0x93,0x92,0x91,0x8e,0x8c,0x8a,
+0x8d,0x90,0x91,0x8f,0x8e,0x8b,0x85,0x7f,0x7d,0x83,0x7e,0x7a,0x7e,0x7b,0x77,0x7f,
+0x7c,0x7d,0x7b,0x7b,0x7e,0x7a,0x76,0x7a,0x75,0x7b,0x79,0x6f,0x6c,0x73,0x75,0x6f,
+0x6e,0x6f,0x70,0x70,0x6d,0x68,0x62,0x5f,0x58,0x5a,0x5d,0x5f,0x5c,0x54,0x4a,0x42,
+0x48,0x45,0x40,0x3d,0x3b,0x3a,0x39,0x38,0x3a,0x38,0x36,0x35,0x36,0x38,0x38,0x37,
+0x37,0x3a,0x3f,0x46,0x4d,0x52,0x56,0x58,0x5c,0x5c,0x5d,0x5e,0x5f,0x62,0x6b,0x74,
+0x7b,0x7f,0x7d,0x79,0x77,0x70,0x67,0x66,0x6b,0x83,0x9a,0x96,0x7a,0x67,0x73,0x8b,
+0x81,0x70,0x5c,0x58,0x65,0x74,0x78,0x75,0x5f,0x56,0x4e,0x4d,0x51,0x53,0x54,0x57,
+0x58,0x52,0x4b,0x55,0x87,0xaf,0xc4,0xaa,0x85,0x6d,0x65,0x63,0x64,0x6e,0x73,0x7b,
+0x7d,0x7f,0x80,0x7e,0x7d,0x7b,0x76,0x71,0x73,0x75,0x76,0x76,0x75,0x75,0x76,0x77,
+0x7b,0x79,0x79,0x7f,0x87,0x8a,0x87,0x81,0x79,0x7b,0x7c,0x77,0x6c,0x60,0x5b,0x5c,
+0x68,0x72,0x80,0x8b,0x8f,0x8e,0x8d,0x8c,0x87,0x86,0x87,0x82,0x6e,0x57,0x52,0x5b,
+0x71,0x7d,0x85,0x82,0x7a,0x7d,0x8c,0x9b,0xa1,0x8e,0x75,0x67,0x68,0x70,0x75,0x76,
+0x6c,0x62,0x4c,0x3e,0x3f,0x3e,0x47,0x5d,0x5f,0x55,0x46,0x41,0x31,0x38,0x39,0x3b,
+0x32,0x2d,0x27,0x24,0x25,0x25,0x24,0x23,0x1c,0x17,0x19,0x2d,0x4a,0x5c,0x56,0x46,
+0x43,0x3f,0x38,0x30,0x28,0x1f,0x18,0x14,0x17,0x17,0x15,0x13,0x14,0x16,0x16,0x14,
+0x0e,0x0d,0x14,0x20,0x1e,0x13,0x12,0x1b,0x13,0x1b,0x23,0x24,0x21,0x20,0x25,0x2a,
+0x36,0x32,0x49,0x75,0x82,0x63,0x4f,0x5a,0x74,0x86,0x98,0x9b,0x93,0x8f,0x96,0xa0,
+0xa4,0x8d,0x76,0x60,0x4b,0x46,0x50,0x5a,0x75,0x76,0x77,0x77,0x77,0x74,0x6e,0x68,
+0x55,0x58,0x5b,0x5b,0x5d,0x60,0x61,0x5f,0x5f,0x5f,0x5e,0x5c,0x5a,0x56,0x4b,0x41,
+0x38,0x37,0x41,0x4e,0x54,0x58,0x5b,0x58,0x58,0x56,0x53,0x51,0x51,0x52,0x52,0x52,
+0x53,0x54,0x55,0x55,0x57,0x5a,0x5a,0x57,0x48,0x44,0x3f,0x3e,0x41,0x47,0x4e,0x53,
+0x5e,0x62,0x5c,0x4c,0x43,0x42,0x3e,0x36,0x42,0x44,0x48,0x47,0x44,0x45,0x43,0x3a,
+0x4c,0x48,0x47,0x42,0x3a,0x3b,0x3f,0x3c,0x3d,0x3b,0x42,0x46,0x43,0x53,0x7b,0x9c,
+0xb1,0xa5,0x87,0x53,0x36,0x31,0x2f,0x37,0x37,0x35,0x30,0x2c,0x2b,0x2e,0x31,0x33,
+0x34,0x3a,0x3b,0x3a,0x39,0x38,0x43,0x56,0x50,0x57,0x68,0x8e,0xbd,0xd1,0xc5,0xb5,
+0xbb,0xd4,0xdd,0xd6,0xbe,0xa2,0x8f,0x7a,0x51,0x58,0x60,0x6a,0x74,0x74,0x60,0x4a,
+0x50,0x63,0x6e,0x62,0x4c,0x40,0x43,0x48,0x56,0x5f,0x5b,0x4d,0x47,0x4a,0x41,0x30,
+0x31,0x29,0x2a,0x31,0x33,0x38,0x40,0x43,0x4d,0x4f,0x55,0x55,0x4e,0x51,0x57,0x56,
+0x6d,0x7e,0x8a,0x86,0x7f,0x7f,0x82,0x82,0x8b,0x97,0x9e,0xa6,0xb3,0xbb,0xbd,0xc1,
+0xb0,0xa4,0x95,0x7f,0x67,0x62,0x6b,0x71,0x6b,0x6c,0x6a,0x64,0x5f,0x61,0x6a,0x73,
+0x70,0x6e,0x69,0x63,0x60,0x5e,0x57,0x51,0x52,0x5b,0x6a,0x79,0x80,0x7b,0x73,0x6e,
+0x74,0x77,0x7c,0x7f,0x7f,0x7d,0x7b,0x7a,0x7f,0x80,0x82,0x82,0x82,0x84,0x87,0x8a,
+0x8f,0x92,0x96,0x97,0x97,0x96,0x92,0x8c,0x85,0x85,0x86,0x87,0x87,0x87,0x8a,0x8e,
+0x90,0x9a,0x9d,0x9c,0xa1,0xa2,0xa2,0xa4,0xa1,0xa0,0x97,0x86,0x72,0x5e,0x4d,0x43,
+0x3d,0x36,0x32,0x3b,0x49,0x51,0x4d,0x46,0x43,0x44,0x5b,0x7c,0x8e,0x90,0x87,0x7c,
+0x73,0x65,0x63,0x74,0x86,0x89,0x81,0x7a,0x68,0x5d,0x57,0x57,0x5a,0x63,0x6a,0x67,
+0x67,0x6b,0x71,0x7a,0x8a,0x98,0x9a,0x95,0xa2,0xab,0xb2,0xb4,0xaf,0xa0,0x93,0x93,
+0x97,0xa7,0xa3,0x93,0x78,0x64,0x65,0x63,0x63,0x63,0x65,0x6b,0x73,0x79,0x7c,0x7c,
+0x80,0x81,0x83,0x81,0x7d,0x7b,0x7f,0x86,0x89,0x8d,0x8b,0x8b,0x90,0x91,0x91,0x96,
+0x8d,0x8f,0x8d,0x8f,0x93,0x91,0x8e,0x93,0x94,0x93,0x93,0x93,0x93,0x90,0x8d,0x89,
+0x8e,0x90,0x91,0x90,0x8f,0x8d,0x87,0x82,0x7f,0x82,0x81,0x7f,0x7f,0x7c,0x79,0x7c,
+0x7b,0x7d,0x7a,0x7a,0x7d,0x79,0x76,0x7a,0x7b,0x7d,0x7a,0x72,0x71,0x76,0x77,0x73,
+0x6a,0x6b,0x6d,0x6c,0x69,0x65,0x62,0x61,0x64,0x61,0x5f,0x5d,0x5c,0x5a,0x56,0x53,
+0x4e,0x4a,0x43,0x3f,0x3d,0x3c,0x3a,0x38,0x37,0x39,0x3a,0x39,0x39,0x3a,0x37,0x34,
+0x39,0x39,0x3a,0x3c,0x41,0x47,0x4d,0x50,0x59,0x5b,0x5e,0x61,0x62,0x65,0x6d,0x76,
+0x7c,0x7e,0x7b,0x79,0x78,0x6f,0x69,0x6c,0x80,0x90,0x9d,0x95,0x7f,0x71,0x79,0x8a,
+0x87,0x71,0x5b,0x57,0x66,0x75,0x78,0x74,0x5d,0x52,0x4a,0x4c,0x4f,0x4f,0x4d,0x4d,
+0x4c,0x4d,0x4b,0x58,0x8c,0xb1,0xc2,0xaa,0x82,0x69,0x63,0x61,0x63,0x6c,0x6f,0x75,
+0x77,0x77,0x75,0x72,0x71,0x72,0x70,0x6c,0x75,0x73,0x6f,0x67,0x5f,0x59,0x57,0x57,
+0x4e,0x4b,0x4c,0x51,0x54,0x52,0x52,0x55,0x5d,0x5c,0x5d,0x5d,0x5a,0x58,0x5b,0x60,
+0x6e,0x74,0x7e,0x86,0x8a,0x8b,0x8f,0x93,0x8a,0x88,0x87,0x81,0x73,0x65,0x67,0x71,
+0x71,0x76,0x7b,0x7c,0x80,0x88,0x92,0x97,0x97,0x8e,0x7c,0x68,0x5f,0x63,0x6d,0x73,
+0x6c,0x56,0x3e,0x37,0x3e,0x46,0x57,0x6c,0x5e,0x52,0x3d,0x37,0x2e,0x42,0x4f,0x57,
+0x57,0x50,0x44,0x37,0x2c,0x27,0x26,0x27,0x18,0x1d,0x29,0x3b,0x4a,0x4e,0x45,0x3c,
+0x40,0x3a,0x2f,0x25,0x1d,0x18,0x15,0x15,0x16,0x17,0x16,0x13,0x12,0x13,0x12,0x11,
+0x1d,0x11,0x10,0x1a,0x17,0x0f,0x21,0x40,0x74,0x6c,0x5d,0x4f,0x46,0x46,0x4d,0x54,
+0x63,0x87,0x9a,0x85,0x5d,0x44,0x4f,0x69,0x7e,0x8f,0x94,0x8b,0x8f,0x9f,0xa0,0x94,
+0x73,0x59,0x4e,0x4f,0x46,0x41,0x58,0x75,0x85,0x77,0x6b,0x68,0x64,0x5e,0x5c,0x60,
+0x54,0x57,0x5a,0x5c,0x5e,0x61,0x62,0x60,0x60,0x61,0x61,0x5f,0x5a,0x52,0x46,0x3a,
+0x37,0x39,0x47,0x55,0x58,0x59,0x5a,0x57,0x56,0x54,0x52,0x52,0x52,0x53,0x53,0x52,
+0x51,0x53,0x54,0x54,0x57,0x5b,0x5b,0x58,0x4a,0x45,0x3f,0x3f,0x44,0x4c,0x52,0x55,
+0x4f,0x53,0x52,0x4b,0x46,0x45,0x44,0x41,0x3d,0x4a,0x4a,0x40,0x3a,0x38,0x41,0x53,
+0x66,0x6b,0x6b,0x5c,0x4e,0x4f,0x4a,0x3a,0x36,0x38,0x45,0x4e,0x4a,0x48,0x52,0x5a,
+0x60,0x5a,0x50,0x3c,0x35,0x35,0x31,0x3b,0x44,0x42,0x3a,0x30,0x2b,0x2e,0x30,0x2e,
+0x33,0x31,0x2b,0x2d,0x39,0x3f,0x3c,0x3d,0x44,0x40,0x3e,0x51,0x76,0x93,0xa5,0xb2,
+0xb7,0xc5,0xbf,0xb2,0xa7,0x9c,0x8c,0x6f,0x46,0x47,0x47,0x48,0x50,0x57,0x51,0x45,
+0x3a,0x50,0x62,0x5b,0x42,0x32,0x38,0x46,0x3b,0x44,0x49,0x4a,0x4d,0x4f,0x46,0x39,
+0x36,0x2d,0x2b,0x2e,0x2c,0x2e,0x37,0x3b,0x4a,0x46,0x4b,0x50,0x4f,0x55,0x53,0x44,
+0x55,0x7b,0xa6,0xb1,0x97,0x76,0x6d,0x74,0x82,0x83,0x7a,0x75,0x80,0x8d,0x91,0x93,
+0x96,0x89,0x80,0x73,0x65,0x68,0x74,0x75,0x6c,0x6d,0x6b,0x66,0x62,0x64,0x6e,0x76,
+0x72,0x70,0x6b,0x63,0x5c,0x57,0x4f,0x49,0x4a,0x52,0x62,0x73,0x7b,0x79,0x74,0x72,
+0x6b,0x6b,0x70,0x76,0x76,0x71,0x6f,0x71,0x71,0x72,0x73,0x76,0x78,0x7a,0x7b,0x7b,
+0x78,0x7b,0x7f,0x81,0x83,0x84,0x81,0x7c,0x76,0x74,0x71,0x6e,0x6d,0x6c,0x6b,0x69,
+0x6e,0x73,0x72,0x73,0x79,0x7b,0x7c,0x80,0x88,0x8c,0x8a,0x7e,0x6c,0x5a,0x4a,0x3f,
+0x38,0x35,0x35,0x3d,0x4a,0x50,0x4c,0x46,0x44,0x4a,0x68,0x8e,0x9f,0x9a,0x8d,0x81,
+0x7c,0x77,0x78,0x83,0x90,0x91,0x87,0x7c,0x6a,0x6d,0x71,0x6a,0x60,0x67,0x76,0x7c,
+0x85,0x88,0x8f,0x96,0x9c,0xa2,0xa5,0xa7,0xb3,0xb4,0xb6,0xb9,0xb4,0xa8,0xa3,0xa6,
+0xb5,0xc9,0xbf,0xa0,0x7d,0x67,0x67,0x65,0x6b,0x6c,0x6e,0x72,0x76,0x7c,0x7f,0x80,
+0x83,0x81,0x80,0x7f,0x7d,0x7e,0x85,0x8e,0x8f,0x93,0x91,0x8e,0x8f,0x8f,0x90,0x97,
+0x92,0x92,0x8e,0x90,0x95,0x93,0x8f,0x93,0x96,0x97,0x98,0x96,0x93,0x8f,0x8b,0x89,
+0x8f,0x90,0x90,0x8e,0x8d,0x8d,0x8a,0x86,0x81,0x7f,0x82,0x82,0x7d,0x7c,0x7d,0x7b,
+0x7d,0x7e,0x7b,0x7a,0x7c,0x77,0x73,0x78,0x7d,0x7c,0x79,0x76,0x77,0x79,0x78,0x75,
+0x71,0x73,0x74,0x73,0x70,0x6e,0x6e,0x6f,0x6d,0x67,0x5f,0x5b,0x5b,0x5d,0x5f,0x5f,
+0x52,0x4e,0x49,0x46,0x44,0x42,0x3e,0x3b,0x3a,0x3d,0x3d,0x3b,0x3a,0x3b,0x3a,0x37,
+0x38,0x37,0x37,0x37,0x3a,0x3f,0x44,0x47,0x51,0x55,0x5c,0x62,0x64,0x67,0x6f,0x78,
+0x7d,0x7e,0x7c,0x7c,0x78,0x6b,0x65,0x6c,0x8d,0x9c,0xa7,0xa1,0x94,0x90,0x99,0xa3,
+0x96,0x80,0x69,0x63,0x6d,0x76,0x75,0x6f,0x5b,0x51,0x4c,0x4f,0x52,0x50,0x50,0x52,
+0x4a,0x4e,0x4c,0x5a,0x91,0xb4,0xbf,0xa6,0x7f,0x66,0x60,0x60,0x64,0x6c,0x6d,0x71,
+0x77,0x76,0x71,0x6b,0x6a,0x6b,0x6a,0x68,0x74,0x6f,0x64,0x56,0x49,0x42,0x41,0x42,
+0x43,0x44,0x45,0x46,0x46,0x47,0x48,0x49,0x43,0x45,0x48,0x4b,0x4c,0x4d,0x53,0x59,
+0x5d,0x5c,0x59,0x58,0x58,0x5c,0x62,0x67,0x70,0x78,0x83,0x85,0x7b,0x6c,0x61,0x5e,
+0x69,0x6e,0x73,0x77,0x7e,0x85,0x88,0x87,0x8e,0x84,0x74,0x69,0x6b,0x6f,0x66,0x59,
+0x4e,0x44,0x40,0x45,0x48,0x4d,0x55,0x57,0x4b,0x47,0x3d,0x3a,0x2f,0x40,0x4b,0x52,
+0x42,0x3f,0x3a,0x34,0x2e,0x29,0x27,0x25,0x23,0x29,0x35,0x41,0x42,0x3a,0x34,0x32,
+0x36,0x2f,0x25,0x1d,0x17,0x15,0x14,0x14,0x13,0x17,0x19,0x17,0x15,0x15,0x16,0x15,
+0x0f,0x1c,0x1b,0x17,0x35,0x6a,0x86,0x83,0x3c,0x2f,0x24,0x28,0x40,0x61,0x7d,0x8d,
+0x9a,0x91,0x73,0x4b,0x30,0x2f,0x4c,0x70,0x82,0x8d,0x95,0x9b,0xa6,0xa9,0x90,0x70,
+0x4a,0x5a,0x5a,0x40,0x3b,0x5e,0x7c,0x7c,0x6a,0x6c,0x6a,0x61,0x58,0x54,0x52,0x50,
+0x53,0x56,0x5a,0x5b,0x5e,0x61,0x62,0x61,0x62,0x64,0x65,0x62,0x5c,0x51,0x43,0x37,
+0x37,0x3c,0x4b,0x59,0x5a,0x59,0x59,0x56,0x53,0x52,0x51,0x51,0x52,0x52,0x52,0x51,
+0x4f,0x52,0x54,0x54,0x57,0x5c,0x5d,0x59,0x50,0x48,0x3f,0x3e,0x45,0x4d,0x52,0x52,
+0x54,0x55,0x56,0x53,0x4b,0x43,0x40,0x42,0x41,0x45,0x3d,0x43,0x5f,0x72,0x81,0x9a,
+0xa8,0xa6,0x95,0x7d,0x7b,0x8e,0x88,0x69,0x43,0x38,0x37,0x3e,0x43,0x4b,0x53,0x55,
+0x4e,0x48,0x3d,0x2a,0x2a,0x31,0x2d,0x33,0x3a,0x35,0x33,0x33,0x30,0x2c,0x2e,0x34,
+0x3b,0x3e,0x37,0x2f,0x32,0x36,0x39,0x3c,0x38,0x3e,0x45,0x4f,0x55,0x58,0x6a,0x85,
+0x99,0xb6,0xbf,0xbd,0xb8,0xb2,0x9f,0x7d,0x4c,0x41,0x3a,0x3c,0x3c,0x36,0x33,0x34,
+0x3a,0x3b,0x3e,0x3f,0x3c,0x36,0x34,0x35,0x3e,0x44,0x4e,0x58,0x5b,0x53,0x46,0x3b,
+0x3b,0x36,0x3b,0x41,0x3b,0x36,0x34,0x32,0x3d,0x3f,0x4b,0x4e,0x48,0x4f,0x55,0x4c,
+0x47,0x5c,0x7e,0x94,0x8c,0x7d,0x8b,0xa6,0xad,0x9b,0x77,0x5f,0x63,0x72,0x7d,0x84,
+0x7d,0x6c,0x65,0x65,0x67,0x73,0x79,0x6f,0x6c,0x6f,0x6f,0x6a,0x64,0x62,0x67,0x6d,
+0x78,0x76,0x6f,0x65,0x5d,0x58,0x54,0x4f,0x4d,0x50,0x5a,0x66,0x6c,0x6b,0x6b,0x6e,
+0x78,0x70,0x6c,0x6c,0x65,0x59,0x56,0x5a,0x5e,0x5d,0x5d,0x5f,0x63,0x65,0x66,0x65,
+0x69,0x6b,0x6c,0x6d,0x6d,0x6d,0x68,0x63,0x5a,0x5e,0x61,0x5f,0x5d,0x5e,0x5e,0x5e,
+0x5d,0x5c,0x56,0x55,0x5d,0x5f,0x5e,0x62,0x65,0x6a,0x6b,0x66,0x5e,0x56,0x4c,0x43,
+0x40,0x3f,0x3f,0x44,0x4a,0x4c,0x48,0x43,0x44,0x4c,0x6c,0x93,0x9f,0x93,0x80,0x72,
+0x80,0x89,0x8f,0x8c,0x89,0x89,0x85,0x7f,0x7b,0x7d,0x7e,0x78,0x73,0x7e,0x8c,0x8d,
+0x98,0x9a,0x9f,0xa2,0xa2,0xa0,0xa3,0xa8,0xa2,0x9d,0x9e,0xa3,0xa2,0x9c,0x9f,0xa9,
+0xb8,0xb8,0x97,0x76,0x69,0x69,0x6e,0x67,0x6d,0x70,0x72,0x73,0x74,0x78,0x7d,0x80,
+0x83,0x80,0x80,0x84,0x86,0x87,0x8d,0x94,0x8e,0x96,0x97,0x93,0x92,0x8e,0x8f,0x97,
+0x98,0x96,0x8f,0x8e,0x92,0x90,0x8b,0x8e,0x9b,0x9d,0x9e,0x9a,0x92,0x8b,0x88,0x87,
+0x90,0x90,0x8e,0x8b,0x8a,0x8c,0x8b,0x89,0x85,0x7f,0x84,0x85,0x7d,0x7e,0x83,0x7e,
+0x7c,0x7e,0x7b,0x7c,0x7f,0x7c,0x7a,0x7f,0x7f,0x7c,0x7a,0x7c,0x7e,0x7e,0x7b,0x78,
+0x77,0x78,0x78,0x74,0x6f,0x6c,0x6c,0x6d,0x66,0x64,0x64,0x65,0x66,0x64,0x5e,0x5a,
+0x56,0x53,0x51,0x4f,0x4f,0x4c,0x47,0x42,0x3d,0x3e,0x3c,0x36,0x34,0x38,0x3b,0x3c,
+0x37,0x36,0x36,0x36,0x38,0x3b,0x3f,0x41,0x46,0x4c,0x56,0x5e,0x62,0x65,0x6d,0x76,
+0x80,0x7f,0x7d,0x7e,0x77,0x65,0x5e,0x68,0x71,0x86,0x95,0x8f,0x83,0x81,0x8b,0x94,
+0x8b,0x7a,0x6a,0x68,0x71,0x78,0x76,0x71,0x5c,0x53,0x4c,0x4d,0x4d,0x4b,0x4d,0x53,
+0x4d,0x50,0x4d,0x5b,0x94,0xb5,0xbe,0xa3,0x7c,0x63,0x5e,0x60,0x66,0x6f,0x6f,0x72,
+0x7b,0x78,0x70,0x68,0x64,0x65,0x65,0x63,0x6d,0x67,0x5c,0x4f,0x45,0x42,0x46,0x4b,
+0x46,0x4c,0x4d,0x49,0x49,0x4e,0x4f,0x4b,0x55,0x58,0x5b,0x5b,0x53,0x4b,0x48,0x4b,
+0x54,0x53,0x50,0x4d,0x4b,0x4c,0x4c,0x4b,0x4b,0x4f,0x52,0x51,0x4f,0x4f,0x51,0x53,
+0x5e,0x67,0x6e,0x6d,0x6a,0x6a,0x6c,0x6b,0x75,0x80,0x83,0x7a,0x71,0x6b,0x61,0x55,
+0x49,0x46,0x4a,0x49,0x42,0x47,0x4c,0x43,0x40,0x3e,0x35,0x32,0x27,0x38,0x43,0x49,
+0x40,0x36,0x2a,0x26,0x2a,0x30,0x33,0x32,0x28,0x26,0x2b,0x34,0x33,0x2a,0x27,0x2a,
+0x27,0x23,0x1e,0x1a,0x18,0x17,0x15,0x14,0x18,0x1d,0x1f,0x1c,0x17,0x16,0x15,0x14,
+0x1a,0x19,0x32,0x62,0x83,0x74,0x46,0x21,0x39,0x4b,0x65,0x7d,0x8a,0x8d,0x88,0x84,
+0x67,0x4f,0x30,0x2b,0x44,0x5f,0x71,0x7c,0x89,0x8c,0x97,0xa2,0x9c,0x83,0x6a,0x5d,
+0x6c,0x50,0x3c,0x3e,0x4d,0x60,0x6b,0x6b,0x69,0x62,0x5a,0x56,0x50,0x4b,0x4b,0x4f,
+0x4c,0x51,0x57,0x5c,0x5f,0x60,0x5f,0x5e,0x60,0x61,0x63,0x61,0x57,0x48,0x3d,0x38,
+0x3d,0x43,0x4d,0x55,0x59,0x59,0x57,0x55,0x55,0x52,0x50,0x50,0x53,0x54,0x53,0x52,
+0x55,0x54,0x54,0x56,0x57,0x58,0x58,0x57,0x52,0x4a,0x42,0x41,0x43,0x44,0x44,0x45,
+0x50,0x55,0x56,0x50,0x4a,0x48,0x47,0x46,0x41,0x40,0x45,0x51,0x77,0x9f,0xb0,0xbe,
+0xb7,0xc1,0xb5,0x98,0x8b,0x93,0x90,0x80,0x53,0x35,0x2c,0x37,0x3c,0x40,0x44,0x42,
+0x3b,0x32,0x2a,0x2b,0x33,0x3a,0x3a,0x36,0x44,0x4a,0x4a,0x3f,0x33,0x32,0x39,0x41,
+0x4e,0x49,0x41,0x39,0x36,0x3a,0x42,0x49,0x44,0x46,0x49,0x4d,0x52,0x57,0x5c,0x5f,
+0x6f,0x86,0x96,0x91,0x88,0x84,0x7e,0x75,0x59,0x4b,0x42,0x40,0x39,0x2e,0x2c,0x32,
+0x32,0x37,0x37,0x39,0x3c,0x38,0x33,0x35,0x42,0x4d,0x51,0x5a,0x59,0x4e,0x46,0x36,
+0x39,0x3f,0x47,0x4a,0x48,0x43,0x40,0x3e,0x41,0x4e,0x56,0x54,0x53,0x57,0x56,0x50,
+0x47,0x48,0x5e,0x5c,0x6a,0x70,0x84,0x96,0x94,0x89,0x74,0x61,0x58,0x5a,0x5f,0x60,
+0x64,0x53,0x54,0x61,0x68,0x72,0x7d,0x7c,0x7c,0x77,0x74,0x72,0x6d,0x67,0x65,0x68,
+0x6e,0x76,0x7c,0x7b,0x79,0x74,0x68,0x5c,0x5a,0x51,0x50,0x5f,0x6e,0x72,0x71,0x71,
+0x70,0x74,0x74,0x6a,0x59,0x4d,0x4b,0x4d,0x4e,0x4b,0x46,0x42,0x42,0x45,0x49,0x4b,
+0x4a,0x4a,0x4c,0x51,0x53,0x51,0x51,0x52,0x49,0x4b,0x4d,0x4f,0x4e,0x4e,0x4e,0x4e,
+0x40,0x3f,0x3d,0x3c,0x3d,0x40,0x44,0x46,0x44,0x43,0x45,0x4d,0x52,0x50,0x4b,0x48,
+0x45,0x3f,0x3e,0x42,0x47,0x47,0x45,0x46,0x43,0x64,0x83,0x8f,0x8d,0x7f,0x70,0x6a,
+0x7a,0x73,0x78,0x84,0x88,0x85,0x7d,0x74,0x71,0x70,0x6e,0x6c,0x6c,0x6f,0x73,0x77,
+0x83,0x84,0x85,0x87,0x89,0x8d,0x92,0x95,0x95,0x96,0x94,0x8e,0x88,0x88,0x8b,0x8f,
+0x8c,0x90,0x82,0x72,0x6f,0x6a,0x68,0x70,0x73,0x70,0x71,0x76,0x7a,0x7c,0x7e,0x82,
+0x86,0x85,0x83,0x82,0x84,0x88,0x8e,0x92,0x98,0x9c,0x9b,0x94,0x8e,0x8f,0x93,0x94,
+0x98,0x9b,0x9a,0x95,0x92,0x94,0x95,0x94,0x99,0x97,0x99,0x9c,0x97,0x8b,0x85,0x87,
+0x8a,0x8c,0x8e,0x8e,0x8c,0x88,0x86,0x85,0x86,0x85,0x86,0x89,0x89,0x85,0x81,0x80,
+0x85,0x7b,0x7e,0x81,0x7e,0x83,0x86,0x7d,0x7b,0x7d,0x80,0x81,0x80,0x7e,0x7d,0x7d,
+0x79,0x7b,0x7b,0x75,0x6f,0x6b,0x68,0x65,0x66,0x6a,0x6c,0x66,0x5c,0x55,0x57,0x5c,
+0x5f,0x59,0x52,0x4f,0x4e,0x4c,0x47,0x43,0x40,0x3a,0x37,0x39,0x3c,0x3d,0x3d,0x3d,
+0x3b,0x3b,0x39,0x38,0x37,0x3a,0x3e,0x41,0x47,0x49,0x4f,0x58,0x5f,0x66,0x6e,0x75,
+0x7d,0x7f,0x83,0x7e,0x71,0x6a,0x64,0x5a,0x6d,0x87,0x92,0x8b,0x77,0x6d,0x7d,0x88,
+0x8c,0x6d,0x66,0x71,0x73,0x78,0x7b,0x6f,0x61,0x51,0x4c,0x51,0x50,0x4f,0x52,0x55,
+0x51,0x50,0x51,0x5a,0x96,0xba,0xbc,0xa0,0x79,0x68,0x5f,0x62,0x64,0x69,0x6e,0x6e,
+0x6e,0x71,0x6d,0x6a,0x6c,0x6a,0x67,0x69,0x6b,0x61,0x51,0x43,0x3d,0x3e,0x3f,0x3d,
+0x3e,0x3f,0x3f,0x3e,0x3e,0x40,0x45,0x49,0x4b,0x50,0x54,0x51,0x48,0x40,0x3f,0x43,
+0x4c,0x4f,0x51,0x52,0x51,0x51,0x52,0x54,0x55,0x50,0x50,0x4f,0x47,0x44,0x46,0x43,
+0x4c,0x4a,0x4b,0x4d,0x4b,0x47,0x48,0x4c,0x5d,0x6c,0x72,0x6f,0x6f,0x6b,0x5e,0x56,
+0x4b,0x51,0x48,0x49,0x4c,0x46,0x48,0x47,0x49,0x38,0x36,0x3d,0x2f,0x2d,0x3a,0x2c,
+0x2e,0x24,0x23,0x28,0x2b,0x30,0x33,0x30,0x26,0x1f,0x1b,0x1b,0x1c,0x1a,0x19,0x1b,
+0x18,0x1b,0x1a,0x15,0x17,0x20,0x27,0x28,0x25,0x22,0x23,0x22,0x1d,0x1d,0x1c,0x15,
+0x20,0x50,0x8d,0x97,0x63,0x34,0x37,0x4e,0x65,0x77,0x7f,0x7e,0x7f,0x76,0x5e,0x4a,
+0x3f,0x3c,0x53,0x78,0x7f,0x6a,0x64,0x72,0x8e,0x99,0x97,0x9a,0x85,0x62,0x59,0x51,
+0x3f,0x37,0x36,0x45,0x54,0x5b,0x5d,0x60,0x62,0x5c,0x52,0x4a,0x4a,0x4e,0x4d,0x47,
+0x4d,0x51,0x56,0x5c,0x5f,0x60,0x5f,0x5f,0x5a,0x5b,0x5d,0x5a,0x4f,0x41,0x39,0x38,
+0x44,0x49,0x51,0x58,0x5c,0x5c,0x5a,0x59,0x56,0x55,0x53,0x54,0x55,0x55,0x52,0x50,
+0x52,0x52,0x53,0x55,0x57,0x57,0x56,0x54,0x52,0x4a,0x44,0x46,0x4b,0x50,0x53,0x55,
+0x57,0x58,0x56,0x51,0x4f,0x4d,0x48,0x41,0x48,0x48,0x4f,0x59,0x7a,0x9d,0xac,0xbb,
+0xb5,0xba,0xb2,0x9b,0x8a,0x8b,0x95,0x9a,0x75,0x4d,0x2c,0x27,0x2d,0x31,0x34,0x35,
+0x2e,0x2b,0x2a,0x2e,0x37,0x3e,0x43,0x44,0x54,0x56,0x51,0x44,0x38,0x33,0x35,0x38,
+0x37,0x37,0x39,0x3c,0x41,0x46,0x49,0x4a,0x4c,0x49,0x48,0x4c,0x54,0x5b,0x5f,0x5f,
+0x75,0x8d,0xa1,0x9f,0x8f,0x79,0x60,0x4c,0x50,0x4b,0x47,0x45,0x42,0x3d,0x37,0x34,
+0x2b,0x34,0x39,0x3f,0x45,0x41,0x39,0x39,0x43,0x51,0x54,0x54,0x49,0x3b,0x3a,0x33,
+0x36,0x3b,0x42,0x46,0x47,0x48,0x4a,0x4c,0x54,0x5b,0x5d,0x59,0x5a,0x60,0x5f,0x58,
+0x4f,0x43,0x48,0x40,0x4b,0x4c,0x51,0x57,0x5a,0x59,0x58,0x5a,0x5b,0x59,0x55,0x51,
+0x5b,0x59,0x62,0x70,0x78,0x7f,0x85,0x86,0x83,0x7e,0x79,0x78,0x75,0x71,0x70,0x72,
+0x78,0x7e,0x83,0x82,0x7e,0x79,0x72,0x6d,0x65,0x5a,0x57,0x62,0x6f,0x73,0x70,0x6e,
+0x76,0x79,0x79,0x71,0x64,0x5c,0x5b,0x5e,0x57,0x55,0x50,0x4c,0x47,0x43,0x3f,0x3d,
+0x3a,0x39,0x3a,0x3c,0x3c,0x38,0x36,0x36,0x34,0x36,0x37,0x38,0x37,0x36,0x37,0x37,
+0x39,0x38,0x37,0x36,0x36,0x38,0x3a,0x3b,0x34,0x34,0x39,0x43,0x4a,0x4a,0x46,0x43,
+0x47,0x42,0x40,0x44,0x48,0x49,0x49,0x4a,0x4b,0x6b,0x83,0x83,0x75,0x65,0x5e,0x61,
+0x61,0x62,0x71,0x81,0x7f,0x75,0x6c,0x65,0x64,0x62,0x60,0x5c,0x59,0x59,0x5b,0x5d,
+0x5b,0x5d,0x5f,0x61,0x64,0x68,0x6c,0x6f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7e,0x81,0x82,
+0x81,0x7f,0x76,0x72,0x75,0x6f,0x6a,0x73,0x74,0x72,0x74,0x79,0x7d,0x7d,0x7e,0x80,
+0x8b,0x88,0x84,0x82,0x84,0x89,0x90,0x94,0x96,0x9a,0x9a,0x96,0x93,0x95,0x98,0x99,
+0x98,0x9a,0x9a,0x96,0x92,0x91,0x92,0x93,0x98,0x97,0x99,0x9c,0x97,0x8c,0x86,0x87,
+0x89,0x8b,0x8d,0x8e,0x8c,0x89,0x88,0x88,0x89,0x87,0x87,0x89,0x88,0x84,0x81,0x80,
+0x86,0x81,0x81,0x83,0x82,0x84,0x83,0x7e,0x87,0x84,0x81,0x7e,0x7d,0x7f,0x81,0x82,
+0x76,0x7a,0x7b,0x76,0x71,0x6e,0x6d,0x6c,0x6a,0x6c,0x6b,0x64,0x5d,0x5b,0x60,0x66,
+0x5b,0x58,0x54,0x52,0x51,0x50,0x4e,0x4b,0x43,0x3f,0x3c,0x3c,0x3d,0x3d,0x3e,0x41,
+0x40,0x40,0x40,0x3e,0x3d,0x3c,0x3d,0x3e,0x44,0x46,0x4c,0x54,0x5b,0x64,0x6f,0x78,
+0x7d,0x7c,0x7e,0x78,0x6b,0x62,0x61,0x60,0x70,0x8d,0x97,0x8a,0x72,0x6d,0x88,0x9a,
+0x8a,0x6b,0x63,0x6d,0x70,0x77,0x7a,0x70,0x5f,0x59,0x5b,0x5e,0x58,0x54,0x54,0x52,
+0x50,0x4e,0x51,0x5e,0x99,0xbc,0xbb,0x9d,0x77,0x67,0x5f,0x61,0x64,0x68,0x6d,0x6c,
+0x6a,0x6e,0x6b,0x68,0x6b,0x6a,0x68,0x6b,0x62,0x58,0x47,0x3b,0x38,0x3a,0x38,0x34,
+0x2e,0x2e,0x2e,0x2e,0x2f,0x30,0x30,0x2f,0x38,0x39,0x39,0x39,0x38,0x3b,0x42,0x49,
+0x4c,0x51,0x4f,0x46,0x42,0x47,0x4c,0x4b,0x43,0x4a,0x54,0x54,0x4a,0x44,0x43,0x41,
+0x3a,0x36,0x35,0x39,0x3c,0x3f,0x42,0x46,0x4c,0x56,0x5f,0x67,0x6c,0x65,0x5f,0x62,
+0x7f,0x81,0x70,0x64,0x5a,0x4a,0x46,0x43,0x3e,0x49,0x3c,0x3f,0x59,0x61,0x55,0x43,
+0x21,0x1e,0x21,0x20,0x17,0x13,0x16,0x16,0x15,0x19,0x16,0x0f,0x12,0x1c,0x1d,0x14,
+0x14,0x17,0x17,0x21,0x45,0x72,0x85,0x7f,0x6a,0x5c,0x55,0x4c,0x3a,0x2f,0x36,0x40,
+0x6f,0x90,0x7d,0x46,0x34,0x42,0x5a,0x74,0x76,0x70,0x65,0x5b,0x52,0x47,0x4a,0x5b,
+0x66,0x7b,0x78,0x57,0x45,0x58,0x74,0x81,0x93,0x9c,0x91,0x81,0x64,0x47,0x42,0x3b,
+0x39,0x35,0x39,0x47,0x54,0x56,0x54,0x53,0x56,0x52,0x4b,0x45,0x45,0x47,0x43,0x3d,
+0x4e,0x51,0x56,0x5b,0x5e,0x5f,0x5f,0x5e,0x59,0x5a,0x59,0x53,0x47,0x3d,0x3b,0x3f,
+0x49,0x4d,0x52,0x58,0x5b,0x5b,0x5a,0x59,0x57,0x56,0x54,0x55,0x55,0x53,0x4f,0x4c,
+0x4f,0x50,0x52,0x54,0x57,0x57,0x55,0x54,0x4b,0x44,0x41,0x46,0x50,0x57,0x5b,0x5d,
+0x55,0x54,0x54,0x55,0x59,0x5b,0x57,0x50,0x45,0x4a,0x51,0x4e,0x5a,0x71,0x83,0x9b,
+0xb1,0xb1,0xb4,0xb3,0xa2,0x88,0x77,0x73,0x72,0x56,0x38,0x30,0x34,0x30,0x2a,0x2d,
+0x31,0x2e,0x2b,0x29,0x2b,0x33,0x3e,0x45,0x46,0x45,0x3f,0x37,0x31,0x31,0x31,0x30,
+0x2e,0x2b,0x2a,0x2f,0x38,0x40,0x44,0x44,0x4a,0x4d,0x51,0x57,0x5b,0x5e,0x5e,0x5e,
+0x5e,0x64,0x68,0x63,0x5a,0x52,0x4c,0x49,0x41,0x43,0x42,0x3f,0x40,0x41,0x3c,0x33,
+0x30,0x3a,0x46,0x51,0x56,0x4c,0x44,0x47,0x4d,0x4f,0x45,0x40,0x3a,0x36,0x3c,0x38,
+0x33,0x36,0x39,0x3a,0x3b,0x3e,0x42,0x45,0x49,0x4d,0x4e,0x4d,0x53,0x5b,0x59,0x51,
+0x42,0x3d,0x46,0x41,0x46,0x46,0x49,0x50,0x4f,0x4d,0x53,0x5e,0x65,0x61,0x5b,0x58,
+0x52,0x5d,0x63,0x69,0x71,0x76,0x77,0x79,0x7c,0x77,0x73,0x72,0x72,0x71,0x70,0x71,
+0x74,0x76,0x7a,0x7c,0x7a,0x77,0x77,0x7a,0x73,0x68,0x62,0x69,0x72,0x74,0x6f,0x6c,
+0x6d,0x71,0x72,0x6e,0x64,0x5c,0x58,0x58,0x5b,0x5a,0x5a,0x58,0x53,0x4c,0x43,0x3d,
+0x3f,0x3e,0x3d,0x3d,0x3a,0x35,0x31,0x30,0x33,0x34,0x34,0x33,0x32,0x32,0x33,0x34,
+0x34,0x34,0x34,0x34,0x34,0x33,0x33,0x32,0x30,0x30,0x35,0x3e,0x45,0x47,0x46,0x46,
+0x48,0x44,0x41,0x43,0x46,0x48,0x49,0x4b,0x55,0x6a,0x73,0x67,0x56,0x49,0x48,0x4f,
+0x4f,0x59,0x71,0x80,0x73,0x5d,0x55,0x54,0x58,0x59,0x58,0x57,0x56,0x56,0x58,0x59,
+0x55,0x56,0x58,0x59,0x5a,0x5b,0x5d,0x5f,0x65,0x68,0x6b,0x6c,0x6d,0x6f,0x74,0x79,
+0x79,0x74,0x70,0x78,0x7f,0x77,0x70,0x77,0x77,0x76,0x78,0x7d,0x80,0x80,0x80,0x80,
+0x86,0x81,0x7c,0x7b,0x7f,0x87,0x8d,0x91,0x92,0x95,0x96,0x95,0x94,0x96,0x97,0x96,
+0x97,0x99,0x9b,0x99,0x94,0x8e,0x8f,0x92,0x98,0x97,0x99,0x9b,0x97,0x8e,0x89,0x89,
+0x8a,0x8c,0x8d,0x8f,0x8f,0x8f,0x8e,0x8e,0x8b,0x89,0x88,0x8a,0x8a,0x87,0x85,0x84,
+0x87,0x88,0x86,0x85,0x89,0x87,0x82,0x82,0x8c,0x87,0x81,0x7d,0x7c,0x7d,0x80,0x82,
+0x7c,0x80,0x81,0x7a,0x73,0x6f,0x6d,0x6d,0x6f,0x6c,0x66,0x5f,0x5b,0x5c,0x61,0x66,
+0x5b,0x5b,0x59,0x58,0x57,0x55,0x54,0x54,0x46,0x44,0x43,0x42,0x3f,0x3d,0x3f,0x43,
+0x41,0x43,0x44,0x43,0x41,0x3f,0x3d,0x3d,0x40,0x42,0x47,0x4d,0x54,0x5e,0x6d,0x7a,
+0x80,0x7d,0x7c,0x78,0x6b,0x60,0x65,0x72,0x7c,0x98,0x9e,0x8e,0x7c,0x7e,0x99,0xa4,
+0x91,0x75,0x6a,0x70,0x72,0x77,0x79,0x6f,0x60,0x60,0x64,0x66,0x63,0x64,0x61,0x58,
+0x4f,0x4b,0x50,0x65,0x9d,0xbf,0xb9,0x99,0x75,0x65,0x5e,0x62,0x64,0x68,0x6c,0x6a,
+0x6a,0x6c,0x69,0x67,0x6b,0x69,0x67,0x6a,0x6b,0x60,0x52,0x48,0x46,0x44,0x3a,0x30,
+0x37,0x34,0x31,0x30,0x31,0x32,0x30,0x2f,0x32,0x30,0x2e,0x30,0x36,0x3e,0x45,0x49,
+0x4c,0x52,0x4b,0x37,0x2b,0x2f,0x32,0x2e,0x38,0x3b,0x3d,0x3f,0x44,0x47,0x40,0x36,
+0x3e,0x3b,0x3c,0x43,0x4b,0x51,0x55,0x58,0x52,0x53,0x59,0x64,0x67,0x5c,0x5a,0x68,
+0x83,0x8a,0x7f,0x74,0x65,0x4e,0x43,0x3e,0x42,0x39,0x52,0x73,0x6d,0x6a,0x71,0x59,
+0x36,0x22,0x15,0x16,0x1b,0x1e,0x1a,0x0e,0x19,0x15,0x15,0x18,0x17,0x14,0x15,0x19,
+0x14,0x21,0x43,0x6b,0x7c,0x70,0x5e,0x57,0x4f,0x43,0x3e,0x3d,0x40,0x53,0x73,0x89,
+0x97,0x66,0x4d,0x50,0x53,0x5c,0x6d,0x73,0x60,0x60,0x55,0x4d,0x55,0x5f,0x65,0x69,
+0x55,0x43,0x40,0x58,0x73,0x80,0x88,0x90,0x7f,0x81,0x6e,0x56,0x3f,0x33,0x34,0x2d,
+0x31,0x32,0x3b,0x4a,0x54,0x53,0x4e,0x4c,0x48,0x47,0x45,0x43,0x43,0x43,0x3e,0x38,
+0x50,0x51,0x55,0x59,0x5c,0x5e,0x5e,0x5d,0x5c,0x5a,0x55,0x4c,0x40,0x3a,0x40,0x49,
+0x4f,0x50,0x53,0x56,0x59,0x5a,0x59,0x58,0x56,0x54,0x52,0x51,0x52,0x50,0x4d,0x4b,
+0x4b,0x4b,0x4c,0x4e,0x51,0x52,0x51,0x50,0x4b,0x46,0x45,0x4c,0x55,0x5b,0x5e,0x5f,
+0x56,0x59,0x5e,0x62,0x67,0x6a,0x6c,0x6c,0x6b,0x69,0x65,0x55,0x53,0x5f,0x6d,0x86,
+0x94,0x98,0xa4,0xaa,0x98,0x72,0x52,0x45,0x43,0x42,0x3a,0x3a,0x3f,0x35,0x2b,0x32,
+0x34,0x32,0x2e,0x28,0x25,0x28,0x2f,0x36,0x33,0x32,0x2e,0x2d,0x30,0x35,0x36,0x34,
+0x2d,0x2b,0x2c,0x30,0x38,0x3e,0x40,0x40,0x40,0x48,0x50,0x52,0x50,0x50,0x54,0x59,
+0x55,0x53,0x50,0x4d,0x48,0x43,0x43,0x45,0x43,0x44,0x44,0x41,0x41,0x43,0x41,0x3e,
+0x3d,0x4a,0x63,0x7b,0x7b,0x61,0x51,0x58,0x62,0x61,0x52,0x49,0x41,0x3b,0x40,0x3c,
+0x38,0x3a,0x3a,0x3a,0x3a,0x3a,0x3c,0x3e,0x3e,0x43,0x46,0x47,0x4a,0x4c,0x46,0x3d,
+0x3a,0x3d,0x4b,0x4c,0x4f,0x51,0x50,0x56,0x5b,0x53,0x55,0x60,0x66,0x61,0x5b,0x5b,
+0x59,0x64,0x60,0x5b,0x67,0x6f,0x6e,0x70,0x6d,0x6a,0x67,0x68,0x6a,0x6b,0x69,0x67,
+0x63,0x60,0x61,0x67,0x69,0x67,0x69,0x6f,0x71,0x69,0x66,0x6b,0x71,0x71,0x6e,0x6d,
+0x70,0x73,0x76,0x72,0x68,0x5c,0x52,0x4d,0x4b,0x4d,0x50,0x54,0x55,0x53,0x4d,0x48,
+0x44,0x43,0x42,0x41,0x3e,0x37,0x33,0x33,0x36,0x35,0x35,0x33,0x31,0x31,0x33,0x34,
+0x37,0x38,0x39,0x39,0x38,0x37,0x35,0x34,0x3a,0x3b,0x3e,0x41,0x43,0x44,0x48,0x4d,
+0x4a,0x47,0x44,0x44,0x45,0x47,0x4a,0x4c,0x5a,0x5e,0x56,0x47,0x40,0x3c,0x38,0x3a,
+0x44,0x55,0x73,0x7b,0x60,0x41,0x3a,0x3e,0x40,0x42,0x44,0x46,0x47,0x48,0x4a,0x4b,
+0x4d,0x4f,0x51,0x52,0x52,0x52,0x53,0x54,0x53,0x57,0x5d,0x60,0x60,0x64,0x6f,0x7a,
+0x7a,0x79,0x7b,0x82,0x86,0x7f,0x78,0x78,0x7a,0x7a,0x7b,0x7f,0x82,0x84,0x84,0x84,
+0x8b,0x87,0x84,0x86,0x8d,0x95,0x9a,0x9c,0x92,0x93,0x95,0x95,0x94,0x93,0x91,0x8f,
+0x97,0x98,0x9c,0x9d,0x97,0x90,0x90,0x94,0x9a,0x98,0x98,0x99,0x96,0x91,0x8f,0x90,
+0x91,0x8e,0x8e,0x92,0x97,0x99,0x97,0x93,0x8d,0x8b,0x8c,0x8f,0x90,0x8d,0x8a,0x8a,
+0x87,0x8e,0x8a,0x89,0x8f,0x8b,0x84,0x87,0x89,0x88,0x86,0x83,0x7f,0x7e,0x7e,0x7f,
+0x80,0x84,0x84,0x7d,0x74,0x70,0x6f,0x6f,0x73,0x6e,0x66,0x60,0x5c,0x5c,0x5d,0x5d,
+0x5d,0x5e,0x5e,0x5c,0x58,0x55,0x54,0x54,0x4e,0x4c,0x4b,0x4a,0x48,0x44,0x43,0x44,
+0x3e,0x40,0x42,0x43,0x41,0x3f,0x3e,0x3e,0x3e,0x3f,0x43,0x47,0x4c,0x56,0x67,0x76,
+0x81,0x7f,0x7d,0x7b,0x6f,0x62,0x6c,0x85,0xaa,0xbe,0xbd,0xb5,0xb1,0xb8,0xc3,0xbb,
+0x9a,0x82,0x75,0x77,0x77,0x78,0x75,0x6b,0x65,0x6e,0x74,0x68,0x58,0x57,0x59,0x53,
+0x53,0x49,0x4e,0x6b,0x9f,0xc1,0xb8,0x97,0x74,0x65,0x5f,0x63,0x65,0x69,0x6c,0x6a,
+0x6d,0x6f,0x6b,0x69,0x6b,0x68,0x65,0x69,0x71,0x6c,0x68,0x6b,0x73,0x75,0x6b,0x5e,
+0x59,0x56,0x54,0x56,0x5b,0x63,0x6a,0x6d,0x68,0x67,0x65,0x67,0x69,0x65,0x5a,0x4e,
+0x4f,0x55,0x53,0x47,0x3e,0x3d,0x3d,0x3a,0x37,0x38,0x36,0x3c,0x4e,0x59,0x51,0x46,
+0x3e,0x41,0x46,0x4c,0x53,0x56,0x58,0x59,0x61,0x60,0x60,0x62,0x5f,0x53,0x53,0x62,
+0x67,0x74,0x73,0x74,0x71,0x65,0x64,0x63,0x79,0xa0,0xa4,0x91,0x88,0x86,0x7f,0x6a,
+0x5d,0x4e,0x44,0x3d,0x34,0x30,0x2f,0x2a,0x21,0x1b,0x17,0x18,0x1a,0x20,0x2e,0x3d,
+0x4f,0x63,0x67,0x54,0x47,0x4a,0x4c,0x44,0x44,0x44,0x46,0x4a,0x5c,0x7e,0x90,0x8a,
+0x66,0x45,0x4b,0x58,0x4f,0x60,0x77,0x6a,0x6a,0x6c,0x62,0x5d,0x6a,0x74,0x6c,0x5f,
+0x5d,0x4f,0x47,0x54,0x6b,0x75,0x6b,0x5d,0x5b,0x53,0x41,0x32,0x2d,0x2f,0x33,0x2f,
+0x35,0x37,0x3f,0x49,0x4e,0x4b,0x48,0x47,0x44,0x43,0x43,0x42,0x43,0x41,0x3d,0x39,
+0x52,0x52,0x53,0x57,0x5a,0x5c,0x5c,0x5b,0x5c,0x56,0x4d,0x42,0x39,0x39,0x44,0x4f,
+0x56,0x56,0x56,0x59,0x5b,0x5d,0x5c,0x5b,0x56,0x52,0x4f,0x4e,0x4f,0x50,0x4f,0x4e,
+0x49,0x48,0x47,0x46,0x47,0x47,0x46,0x45,0x50,0x4d,0x4e,0x54,0x5a,0x5b,0x5a,0x59,
+0x51,0x58,0x5f,0x5e,0x5a,0x5a,0x63,0x6c,0x75,0x6e,0x67,0x5b,0x61,0x6f,0x7b,0x91,
+0x92,0x96,0x94,0x82,0x62,0x46,0x3a,0x3a,0x29,0x2f,0x2d,0x2f,0x36,0x31,0x2d,0x35,
+0x2d,0x2e,0x2e,0x2d,0x2c,0x2a,0x29,0x2a,0x2f,0x2e,0x2c,0x2b,0x2e,0x32,0x31,0x2f,
+0x2a,0x32,0x3f,0x4c,0x52,0x50,0x48,0x42,0x3b,0x3e,0x3f,0x3f,0x3e,0x41,0x48,0x4e,
+0x4d,0x4d,0x4f,0x50,0x4c,0x42,0x3d,0x3d,0x43,0x42,0x42,0x42,0x3e,0x3a,0x3a,0x3e,
+0x3f,0x4e,0x71,0x94,0x91,0x6b,0x58,0x67,0x74,0x80,0x7a,0x6a,0x4f,0x39,0x3a,0x39,
+0x3f,0x41,0x44,0x46,0x47,0x47,0x47,0x47,0x52,0x57,0x59,0x55,0x50,0x4c,0x46,0x3f,
+0x4a,0x45,0x49,0x4f,0x59,0x64,0x5a,0x57,0x55,0x50,0x54,0x61,0x68,0x62,0x5a,0x58,
+0x64,0x6c,0x66,0x64,0x75,0x7f,0x78,0x74,0x63,0x62,0x61,0x63,0x65,0x66,0x63,0x5f,
+0x56,0x4f,0x4d,0x54,0x5a,0x5a,0x59,0x5b,0x5f,0x5e,0x60,0x66,0x6b,0x6e,0x70,0x72,
+0x78,0x79,0x79,0x73,0x67,0x59,0x4f,0x49,0x3c,0x3c,0x3f,0x45,0x4c,0x4f,0x4f,0x4d,
+0x48,0x46,0x45,0x44,0x40,0x39,0x34,0x33,0x37,0x37,0x35,0x33,0x31,0x31,0x33,0x34,
+0x3a,0x3a,0x3b,0x3c,0x3c,0x3c,0x3b,0x3b,0x40,0x44,0x49,0x4a,0x45,0x42,0x45,0x4c,
+0x4f,0x4d,0x4b,0x47,0x46,0x48,0x4c,0x4e,0x57,0x54,0x44,0x36,0x35,0x36,0x32,0x31,
+0x34,0x4e,0x70,0x74,0x4f,0x2b,0x24,0x29,0x2d,0x2f,0x32,0x33,0x33,0x32,0x32,0x32,
+0x34,0x37,0x3a,0x3d,0x3e,0x3f,0x41,0x42,0x45,0x44,0x48,0x52,0x5d,0x68,0x73,0x7c,
+0x7c,0x84,0x8a,0x89,0x84,0x82,0x7f,0x78,0x7d,0x7d,0x7d,0x7e,0x82,0x86,0x89,0x89,
+0x83,0x81,0x80,0x84,0x8b,0x91,0x93,0x93,0x92,0x93,0x95,0x97,0x95,0x92,0x8f,0x8d,
+0x96,0x99,0x9d,0x9f,0x9b,0x95,0x95,0x98,0x9d,0x99,0x96,0x95,0x95,0x94,0x95,0x97,
+0x96,0x91,0x8f,0x94,0x9e,0xa2,0x9d,0x96,0x90,0x8f,0x91,0x95,0x95,0x91,0x8c,0x8a,
+0x8c,0x93,0x90,0x8e,0x92,0x8c,0x84,0x89,0x88,0x8b,0x8d,0x8a,0x84,0x80,0x81,0x83,
+0x7c,0x80,0x81,0x7c,0x76,0x74,0x75,0x75,0x76,0x71,0x6b,0x67,0x65,0x62,0x5e,0x5a,
+0x5f,0x61,0x62,0x5f,0x5a,0x55,0x53,0x52,0x54,0x51,0x50,0x53,0x53,0x4e,0x48,0x45,
+0x40,0x41,0x42,0x41,0x40,0x3f,0x3f,0x40,0x3e,0x3f,0x40,0x42,0x45,0x4d,0x5d,0x6b,
+0x7c,0x7d,0x7c,0x7b,0x71,0x61,0x6c,0x8e,0xae,0xbd,0xbb,0xb8,0xbd,0xc5,0xc7,0xb5,
+0xae,0x9d,0x93,0x93,0x94,0x92,0x8c,0x85,0x89,0x9c,0xa3,0x88,0x62,0x56,0x5b,0x5a,
+0x5a,0x4a,0x4c,0x71,0xa0,0xc2,0xb7,0x95,0x73,0x65,0x5f,0x64,0x67,0x6b,0x6e,0x6c,
+0x70,0x70,0x6d,0x6c,0x6e,0x6a,0x67,0x6c,0x73,0x71,0x70,0x77,0x82,0x89,0x82,0x78,
+0x6a,0x6d,0x71,0x77,0x80,0x8c,0x98,0x9f,0xaa,0xab,0xad,0xaf,0xac,0x98,0x76,0x58,
+0x51,0x5a,0x69,0x79,0x82,0x84,0x84,0x85,0x85,0x89,0x7f,0x70,0x67,0x5a,0x49,0x42,
+0x49,0x4d,0x50,0x4f,0x4d,0x4c,0x4e,0x4f,0x5b,0x63,0x63,0x5e,0x59,0x50,0x4d,0x52,
+0x56,0x60,0x5e,0x65,0x6f,0x73,0x82,0x8a,0x96,0x9b,0x90,0x94,0x98,0x8a,0x85,0x88,
+0x87,0x7b,0x72,0x6b,0x5d,0x52,0x4a,0x42,0x34,0x36,0x29,0x18,0x27,0x4e,0x63,0x5f,
+0x52,0x4e,0x57,0x68,0x69,0x59,0x4f,0x52,0x3f,0x4e,0x64,0x78,0x87,0x90,0x7f,0x5f,
+0x4c,0x4d,0x46,0x41,0x4f,0x62,0x64,0x5a,0x5c,0x58,0x57,0x60,0x64,0x53,0x44,0x45,
+0x50,0x4f,0x46,0x3d,0x46,0x57,0x59,0x4d,0x42,0x37,0x30,0x2c,0x2c,0x2e,0x32,0x39,
+0x41,0x41,0x43,0x45,0x45,0x42,0x41,0x41,0x44,0x42,0x3e,0x3b,0x38,0x35,0x32,0x31,
+0x54,0x52,0x52,0x54,0x58,0x5a,0x5a,0x59,0x5b,0x52,0x46,0x3e,0x3b,0x3f,0x4a,0x55,
+0x57,0x56,0x56,0x58,0x5b,0x5d,0x5c,0x5b,0x56,0x53,0x4f,0x4e,0x50,0x52,0x53,0x52,
+0x50,0x4e,0x4b,0x49,0x47,0x45,0x42,0x40,0x49,0x48,0x49,0x4d,0x4d,0x4a,0x48,0x47,
+0x4a,0x50,0x56,0x53,0x4a,0x4a,0x59,0x6a,0x78,0x7b,0x7d,0x6f,0x69,0x72,0x84,0xa4,
+0xa7,0xa7,0x9a,0x7e,0x64,0x53,0x45,0x39,0x33,0x30,0x2a,0x2b,0x32,0x32,0x2d,0x2c,
+0x2f,0x2d,0x2a,0x28,0x27,0x28,0x29,0x2b,0x32,0x34,0x33,0x30,0x2e,0x2f,0x2f,0x2d,
+0x30,0x39,0x47,0x53,0x57,0x53,0x4a,0x43,0x3c,0x3c,0x3e,0x44,0x4a,0x4b,0x47,0x42,
+0x3e,0x41,0x45,0x47,0x45,0x43,0x45,0x49,0x44,0x41,0x41,0x41,0x3b,0x33,0x32,0x36,
+0x3a,0x41,0x57,0x71,0x70,0x57,0x55,0x6d,0x72,0x79,0x6f,0x61,0x4b,0x3a,0x3c,0x3a,
+0x3e,0x40,0x42,0x45,0x46,0x46,0x46,0x46,0x55,0x5b,0x60,0x5e,0x5c,0x5d,0x5e,0x5f,
+0x62,0x5b,0x56,0x54,0x53,0x61,0x5b,0x5e,0x56,0x52,0x53,0x5c,0x61,0x60,0x5c,0x5b,
+0x5e,0x66,0x69,0x6d,0x78,0x7a,0x6d,0x60,0x57,0x58,0x59,0x59,0x5a,0x5b,0x57,0x53,
+0x4a,0x45,0x44,0x4c,0x58,0x5f,0x5f,0x5e,0x57,0x58,0x5b,0x60,0x67,0x6e,0x75,0x79,
+0x7a,0x79,0x76,0x6d,0x61,0x56,0x4f,0x4d,0x43,0x41,0x40,0x44,0x4a,0x4f,0x51,0x50,
+0x51,0x4e,0x4c,0x4a,0x44,0x3c,0x37,0x35,0x3c,0x3c,0x3a,0x38,0x36,0x36,0x37,0x38,
+0x39,0x39,0x39,0x3a,0x3c,0x3f,0x42,0x44,0x44,0x49,0x51,0x53,0x4d,0x46,0x44,0x47,
+0x4d,0x4e,0x4c,0x47,0x44,0x46,0x4a,0x4c,0x52,0x52,0x46,0x38,0x35,0x35,0x34,0x36,
+0x32,0x53,0x77,0x74,0x4b,0x29,0x22,0x25,0x2b,0x2d,0x30,0x32,0x31,0x31,0x30,0x30,
+0x33,0x34,0x36,0x37,0x36,0x36,0x36,0x36,0x3b,0x35,0x38,0x4d,0x65,0x74,0x7a,0x7c,
+0x7f,0x88,0x91,0x89,0x7d,0x7f,0x81,0x79,0x7f,0x7f,0x7e,0x7e,0x82,0x88,0x8b,0x8b,
+0x8b,0x8b,0x8d,0x90,0x94,0x96,0x95,0x94,0x8e,0x8f,0x93,0x95,0x94,0x8f,0x8d,0x8d,
+0x95,0x9a,0x9e,0x9e,0x9c,0x9b,0x9a,0x99,0x9e,0x9b,0x96,0x94,0x94,0x96,0x98,0x9a,
+0x97,0x93,0x91,0x97,0xa0,0xa3,0x9d,0x96,0x95,0x94,0x95,0x97,0x96,0x91,0x8c,0x8a,
+0x92,0x97,0x96,0x93,0x91,0x8b,0x86,0x88,0x8a,0x8c,0x8d,0x89,0x82,0x7f,0x82,0x85,
+0x7e,0x81,0x80,0x7c,0x77,0x76,0x76,0x75,0x73,0x70,0x6c,0x6b,0x6c,0x69,0x62,0x5d,
+0x65,0x67,0x69,0x67,0x62,0x5c,0x59,0x57,0x55,0x52,0x51,0x54,0x55,0x50,0x49,0x44,
+0x48,0x48,0x47,0x44,0x42,0x40,0x40,0x40,0x41,0x40,0x40,0x40,0x41,0x47,0x53,0x5e,
+0x73,0x79,0x79,0x78,0x71,0x61,0x6c,0x91,0xaf,0xbe,0xbd,0xbc,0xbe,0xc5,0xcb,0xc0,
+0xbc,0xb4,0xae,0xb0,0xb3,0xb2,0xae,0xac,0xb4,0xbe,0xbf,0xac,0x94,0x8b,0x84,0x77,
+0x61,0x4b,0x4c,0x78,0xa1,0xc3,0xb5,0x93,0x73,0x64,0x5f,0x64,0x68,0x6c,0x70,0x6f,
+0x71,0x71,0x6e,0x6f,0x72,0x6e,0x6b,0x72,0x78,0x74,0x70,0x70,0x76,0x7d,0x7b,0x76,
+0x7b,0x80,0x86,0x8b,0x8e,0x92,0x97,0x9b,0xa8,0xab,0xaf,0xb5,0xb5,0xa2,0x7c,0x59,
+0x4d,0x57,0x73,0x98,0xb1,0xb9,0xb8,0xb9,0xb4,0xb1,0x9c,0x87,0x7e,0x6e,0x61,0x64,
+0x6c,0x6d,0x69,0x5f,0x57,0x56,0x5a,0x5d,0x56,0x64,0x66,0x5e,0x58,0x51,0x48,0x43,
+0x4b,0x55,0x53,0x5d,0x69,0x6c,0x74,0x76,0x6e,0x7c,0x85,0x87,0x82,0x8f,0x91,0x6d,
+0x61,0x51,0x48,0x4a,0x4e,0x53,0x53,0x4d,0x5e,0x59,0x4a,0x41,0x4f,0x63,0x62,0x51,
+0x4b,0x60,0x6d,0x6c,0x72,0x75,0x5c,0x39,0x2f,0x3e,0x61,0x83,0x8b,0x7e,0x68,0x55,
+0x4c,0x34,0x38,0x5b,0x71,0x69,0x52,0x3f,0x5a,0x50,0x43,0x44,0x51,0x57,0x59,0x5f,
+0x42,0x31,0x2c,0x3b,0x44,0x3d,0x36,0x39,0x35,0x2f,0x34,0x31,0x2c,0x2b,0x30,0x42,
+0x41,0x41,0x42,0x42,0x41,0x40,0x40,0x40,0x3c,0x37,0x31,0x2b,0x25,0x20,0x20,0x22,
+0x55,0x53,0x51,0x52,0x56,0x58,0x57,0x56,0x57,0x4d,0x42,0x3f,0x42,0x49,0x53,0x5a,
+0x54,0x52,0x51,0x54,0x57,0x5a,0x59,0x58,0x56,0x53,0x51,0x51,0x53,0x55,0x55,0x54,
+0x55,0x55,0x54,0x53,0x51,0x4d,0x49,0x45,0x42,0x42,0x44,0x45,0x42,0x3e,0x3e,0x40,
+0x4f,0x52,0x54,0x53,0x51,0x57,0x6b,0x7e,0x7e,0x80,0x7d,0x64,0x51,0x51,0x65,0x89,
+0xa5,0xa5,0x9f,0x97,0x92,0x86,0x65,0x43,0x37,0x32,0x31,0x32,0x32,0x34,0x31,0x29,
+0x33,0x31,0x2d,0x28,0x25,0x25,0x29,0x2d,0x36,0x3d,0x40,0x3c,0x37,0x36,0x39,0x3c,
+0x3a,0x39,0x39,0x3d,0x43,0x46,0x44,0x42,0x3e,0x43,0x4b,0x53,0x57,0x54,0x4d,0x47,
+0x4d,0x55,0x5b,0x58,0x51,0x4d,0x4f,0x52,0x55,0x52,0x4c,0x45,0x42,0x41,0x3f,0x3c,
+0x37,0x3a,0x3f,0x46,0x49,0x44,0x4c,0x60,0x5e,0x5b,0x4b,0x45,0x43,0x40,0x43,0x3b,
+0x3b,0x3a,0x39,0x39,0x3a,0x3d,0x3f,0x40,0x47,0x4f,0x58,0x5e,0x62,0x68,0x6e,0x73,
+0x6d,0x69,0x5e,0x52,0x42,0x4e,0x4b,0x55,0x5a,0x54,0x4f,0x4d,0x4f,0x53,0x55,0x57,
+0x56,0x5a,0x63,0x67,0x63,0x5e,0x54,0x47,0x4f,0x51,0x50,0x4c,0x4b,0x4d,0x4b,0x48,
+0x45,0x45,0x46,0x4d,0x5b,0x69,0x6d,0x6b,0x5f,0x5c,0x59,0x5b,0x63,0x6d,0x74,0x77,
+0x7a,0x7c,0x7b,0x74,0x69,0x5f,0x59,0x57,0x4e,0x4b,0x49,0x4c,0x52,0x56,0x56,0x55,
+0x51,0x4e,0x4c,0x49,0x43,0x3b,0x35,0x34,0x39,0x39,0x38,0x37,0x35,0x34,0x35,0x36,
+0x3a,0x39,0x38,0x39,0x3d,0x44,0x4b,0x50,0x4f,0x4f,0x52,0x54,0x52,0x4b,0x46,0x44,
+0x46,0x4a,0x49,0x44,0x41,0x44,0x48,0x4a,0x50,0x54,0x4b,0x3e,0x3b,0x3c,0x3b,0x3d,
+0x44,0x65,0x82,0x73,0x47,0x2b,0x27,0x28,0x28,0x2b,0x2e,0x31,0x33,0x33,0x34,0x35,
+0x38,0x38,0x39,0x37,0x35,0x34,0x34,0x34,0x39,0x3b,0x48,0x60,0x73,0x7b,0x7e,0x80,
+0x87,0x89,0x8f,0x89,0x79,0x7a,0x80,0x7c,0x80,0x81,0x81,0x80,0x83,0x89,0x8b,0x89,
+0x87,0x89,0x8b,0x8e,0x8f,0x8f,0x8e,0x8d,0x8b,0x8d,0x92,0x94,0x91,0x8c,0x8b,0x8d,
+0x94,0x9b,0x9e,0x9a,0x9a,0x9f,0x9d,0x96,0x9e,0x9b,0x97,0x94,0x94,0x96,0x97,0x96,
+0x95,0x95,0x97,0x9c,0x9f,0x9f,0x9c,0x98,0x99,0x97,0x96,0x97,0x96,0x93,0x90,0x90,
+0x94,0x94,0x98,0x96,0x8e,0x8b,0x8b,0x89,0x8d,0x8c,0x8a,0x86,0x83,0x81,0x81,0x81,
+0x82,0x83,0x80,0x7c,0x79,0x78,0x76,0x73,0x70,0x6c,0x6a,0x6a,0x6c,0x6b,0x67,0x63,
+0x6c,0x6d,0x6e,0x6c,0x68,0x62,0x5c,0x59,0x57,0x54,0x54,0x56,0x55,0x50,0x4c,0x4a,
+0x4f,0x4f,0x4d,0x4a,0x46,0x43,0x41,0x41,0x44,0x42,0x41,0x42,0x42,0x44,0x4c,0x53,
+0x65,0x70,0x71,0x71,0x6f,0x63,0x6f,0x96,0xb4,0xbf,0xbe,0xbe,0xbe,0xc2,0xcb,0xc5,
+0xb7,0xb5,0xb2,0xb2,0xb6,0xb6,0xb5,0xb8,0xbf,0xbd,0xbb,0xb5,0xb0,0xb0,0xa2,0x8c,
+0x67,0x4d,0x4d,0x7e,0xa4,0xc5,0xb2,0x8f,0x72,0x63,0x5e,0x63,0x68,0x6d,0x72,0x71,
+0x74,0x73,0x70,0x72,0x75,0x6f,0x6d,0x75,0x75,0x74,0x73,0x73,0x78,0x80,0x83,0x83,
+0x88,0x8b,0x91,0x96,0x99,0x9a,0x9a,0x9a,0x91,0x8e,0x8c,0x8f,0x96,0x91,0x77,0x5b,
+0x48,0x52,0x6a,0x8c,0xa9,0xb3,0xad,0xa4,0xab,0xa5,0x8e,0x7f,0x7c,0x6b,0x5f,0x68,
+0x77,0x76,0x6f,0x64,0x5d,0x5f,0x65,0x68,0x60,0x6b,0x6a,0x60,0x5b,0x54,0x49,0x44,
+0x48,0x53,0x55,0x63,0x6d,0x65,0x5c,0x51,0x5c,0x7a,0x74,0x73,0x75,0x4e,0x33,0x3e,
+0x36,0x39,0x43,0x48,0x45,0x4e,0x63,0x71,0x88,0x80,0x7e,0x85,0x82,0x74,0x69,0x68,
+0x78,0x77,0x73,0x6f,0x6f,0x6e,0x66,0x5d,0x62,0x62,0x70,0x7d,0x72,0x5e,0x50,0x49,
+0x38,0x38,0x55,0x68,0x5a,0x55,0x57,0x49,0x3c,0x44,0x44,0x46,0x51,0x52,0x3f,0x2d,
+0x3d,0x48,0x4d,0x47,0x42,0x43,0x40,0x3b,0x30,0x2c,0x31,0x28,0x23,0x29,0x2b,0x39,
+0x33,0x37,0x3b,0x3d,0x3d,0x3a,0x36,0x32,0x27,0x22,0x1d,0x1a,0x16,0x14,0x18,0x1f,
+0x56,0x53,0x51,0x51,0x54,0x56,0x56,0x54,0x51,0x47,0x3e,0x3f,0x47,0x4f,0x56,0x5a,
+0x52,0x50,0x50,0x52,0x56,0x59,0x59,0x57,0x55,0x53,0x52,0x53,0x55,0x55,0x54,0x52,
+0x53,0x55,0x57,0x59,0x58,0x55,0x4f,0x4b,0x4a,0x4a,0x4c,0x4c,0x48,0x45,0x47,0x4b,
+0x4f,0x4c,0x4a,0x4c,0x50,0x5c,0x71,0x83,0x85,0x76,0x66,0x55,0x57,0x66,0x78,0x95,
+0xa3,0xa7,0xa5,0xa0,0x9a,0x8b,0x68,0x45,0x2c,0x29,0x2f,0x2f,0x27,0x2d,0x36,0x31,
+0x2a,0x31,0x38,0x39,0x35,0x2e,0x2a,0x29,0x2f,0x39,0x40,0x3b,0x33,0x32,0x37,0x3d,
+0x38,0x32,0x2c,0x2f,0x39,0x41,0x44,0x43,0x42,0x4a,0x51,0x50,0x4a,0x49,0x50,0x58,
+0x5d,0x61,0x5d,0x4e,0x43,0x45,0x51,0x5a,0x5f,0x5b,0x4d,0x3e,0x3e,0x47,0x47,0x3e,
+0x37,0x41,0x44,0x43,0x47,0x49,0x49,0x4c,0x49,0x4f,0x4a,0x4a,0x46,0x3f,0x3e,0x35,
+0x3b,0x38,0x35,0x35,0x39,0x3f,0x46,0x4a,0x49,0x51,0x5c,0x62,0x66,0x68,0x6a,0x6a,
+0x63,0x5c,0x4f,0x4c,0x48,0x5d,0x57,0x5d,0x59,0x58,0x53,0x4f,0x4f,0x53,0x54,0x53,
+0x57,0x59,0x63,0x62,0x52,0x4d,0x4f,0x49,0x4f,0x51,0x4f,0x48,0x46,0x48,0x48,0x47,
+0x4a,0x4c,0x4d,0x50,0x5b,0x69,0x6f,0x6d,0x69,0x60,0x56,0x54,0x5b,0x66,0x6b,0x6c,
+0x71,0x76,0x7b,0x78,0x6d,0x61,0x58,0x55,0x4c,0x4a,0x49,0x4e,0x54,0x59,0x58,0x56,
+0x54,0x52,0x4f,0x4e,0x48,0x41,0x3b,0x3a,0x3a,0x3b,0x3a,0x39,0x37,0x36,0x37,0x38,
+0x3d,0x3b,0x3a,0x3b,0x41,0x4a,0x54,0x5a,0x5a,0x54,0x4e,0x4e,0x4f,0x4b,0x46,0x43,
+0x44,0x49,0x49,0x44,0x42,0x45,0x49,0x4b,0x53,0x53,0x49,0x40,0x43,0x45,0x42,0x40,
+0x57,0x73,0x85,0x6a,0x3b,0x23,0x24,0x25,0x2b,0x2e,0x31,0x34,0x35,0x35,0x36,0x36,
+0x35,0x36,0x38,0x39,0x39,0x3a,0x3c,0x3e,0x3e,0x4e,0x67,0x7b,0x7e,0x7a,0x7e,0x88,
+0x91,0x8a,0x8d,0x8a,0x7a,0x77,0x7f,0x7f,0x7f,0x82,0x82,0x82,0x84,0x89,0x89,0x86,
+0x8a,0x8c,0x90,0x92,0x92,0x92,0x92,0x93,0x8f,0x91,0x95,0x97,0x93,0x8c,0x8b,0x8f,
+0x93,0x9c,0x9d,0x96,0x98,0xa0,0x9d,0x92,0x9e,0x9c,0x98,0x95,0x95,0x95,0x94,0x92,
+0x93,0x98,0x9d,0xa0,0x9f,0x9c,0x9b,0x9a,0x9b,0x97,0x95,0x96,0x97,0x97,0x97,0x99,
+0x92,0x90,0x97,0x98,0x8d,0x8c,0x91,0x8d,0x90,0x8d,0x8a,0x89,0x89,0x87,0x81,0x7d,
+0x7f,0x7f,0x7d,0x7a,0x7b,0x7d,0x7b,0x78,0x72,0x6e,0x6a,0x69,0x6b,0x6d,0x6c,0x6a,
+0x6d,0x6e,0x6d,0x6b,0x66,0x5f,0x57,0x53,0x5d,0x5c,0x5c,0x5c,0x59,0x54,0x53,0x55,
+0x51,0x51,0x51,0x4e,0x4a,0x46,0x44,0x43,0x45,0x43,0x42,0x43,0x43,0x44,0x48,0x4d,
+0x56,0x64,0x67,0x68,0x6a,0x63,0x72,0x9a,0xbc,0xc1,0xbc,0xbf,0xc3,0xc4,0xc9,0xc1,
+0xb9,0xba,0xb5,0xb3,0xb6,0xb5,0xb6,0xbc,0xc0,0xc3,0xc5,0xbc,0xb0,0xac,0xa7,0x9a,
+0x69,0x4e,0x4e,0x83,0xa6,0xc6,0xb1,0x8c,0x72,0x62,0x5d,0x62,0x67,0x6d,0x73,0x72,
+0x78,0x76,0x72,0x73,0x76,0x6f,0x6c,0x73,0x72,0x75,0x75,0x74,0x74,0x77,0x77,0x76,
+0x72,0x75,0x7d,0x89,0x97,0xa2,0xa7,0xa9,0x9d,0x92,0x84,0x7f,0x87,0x8a,0x7c,0x68,
+0x4a,0x52,0x61,0x78,0x91,0x9c,0x90,0x7e,0x6b,0x7a,0x7e,0x7d,0x78,0x61,0x56,0x69,
+0x6a,0x6a,0x65,0x5e,0x5d,0x62,0x66,0x66,0x6b,0x6f,0x69,0x5f,0x5b,0x56,0x50,0x50,
+0x45,0x4e,0x4e,0x5b,0x66,0x5c,0x4e,0x3f,0x49,0x5b,0x5e,0x5b,0x4b,0x3a,0x37,0x33,
+0x36,0x39,0x46,0x51,0x50,0x51,0x54,0x53,0x54,0x60,0x6c,0x6a,0x5f,0x59,0x64,0x73,
+0x6b,0x6a,0x5b,0x4e,0x61,0x89,0x9d,0x99,0x7f,0x7a,0x75,0x6a,0x58,0x4a,0x3e,0x31,
+0x3d,0x54,0x5c,0x57,0x50,0x3f,0x3f,0x5a,0x6e,0x61,0x4d,0x40,0x35,0x2a,0x2f,0x43,
+0x64,0x71,0x74,0x6b,0x68,0x68,0x59,0x44,0x34,0x29,0x26,0x16,0x18,0x27,0x21,0x23,
+0x29,0x2e,0x34,0x36,0x33,0x2b,0x20,0x17,0x13,0x10,0x0f,0x10,0x11,0x13,0x1c,0x26,
+0x5a,0x58,0x54,0x52,0x57,0x5c,0x59,0x51,0x4c,0x3f,0x3b,0x41,0x4b,0x56,0x5d,0x5a,
+0x53,0x51,0x51,0x53,0x57,0x5a,0x5a,0x59,0x58,0x54,0x50,0x50,0x53,0x56,0x56,0x56,
+0x5c,0x59,0x57,0x56,0x55,0x53,0x55,0x58,0x5a,0x66,0x6a,0x5d,0x4e,0x4b,0x51,0x55,
+0x55,0x50,0x4a,0x52,0x6c,0x8a,0x96,0x95,0x8f,0x83,0x6e,0x5e,0x60,0x72,0x96,0xba,
+0xbd,0xae,0x82,0x63,0x66,0x5f,0x49,0x3f,0x33,0x31,0x2f,0x30,0x32,0x33,0x34,0x34,
+0x33,0x39,0x3f,0x3c,0x34,0x2c,0x2a,0x2c,0x29,0x2e,0x31,0x2e,0x2d,0x37,0x39,0x2c,
+0x36,0x35,0x37,0x35,0x33,0x3a,0x40,0x3c,0x3c,0x40,0x45,0x48,0x4d,0x57,0x64,0x6e,
+0x70,0x66,0x5a,0x4f,0x44,0x3f,0x45,0x50,0x59,0x56,0x4d,0x42,0x3e,0x40,0x42,0x41,
+0x48,0x48,0x48,0x45,0x44,0x45,0x48,0x4b,0x47,0x47,0x4a,0x4d,0x48,0x3f,0x38,0x37,
+0x3c,0x38,0x37,0x3f,0x48,0x4d,0x50,0x51,0x50,0x51,0x57,0x5e,0x60,0x5d,0x5c,0x5f,
+0x5a,0x56,0x4f,0x4c,0x50,0x57,0x5a,0x58,0x5c,0x56,0x50,0x51,0x56,0x5b,0x5b,0x59,
+0x5c,0x5c,0x5d,0x5c,0x5b,0x58,0x56,0x54,0x63,0x61,0x5f,0x5d,0x5a,0x55,0x50,0x4c,
+0x50,0x52,0x54,0x55,0x59,0x61,0x67,0x6a,0x6c,0x67,0x5f,0x5a,0x5e,0x67,0x69,0x66,
+0x6d,0x6d,0x6a,0x64,0x61,0x5d,0x55,0x4c,0x4b,0x4c,0x4b,0x47,0x47,0x4c,0x53,0x56,
+0x58,0x56,0x55,0x53,0x4d,0x43,0x3c,0x3a,0x3a,0x3b,0x3c,0x3b,0x39,0x38,0x39,0x3b,
+0x3c,0x3e,0x3d,0x3c,0x44,0x4f,0x51,0x4d,0x48,0x4b,0x4e,0x4f,0x4e,0x4b,0x48,0x46,
+0x45,0x45,0x49,0x4b,0x48,0x42,0x42,0x46,0x47,0x42,0x41,0x49,0x53,0x5c,0x66,0x6e,
+0x7d,0x87,0x7c,0x56,0x32,0x26,0x27,0x28,0x2c,0x30,0x35,0x37,0x37,0x36,0x37,0x38,
+0x3a,0x3c,0x3d,0x3c,0x3a,0x3b,0x3f,0x43,0x4d,0x60,0x72,0x78,0x79,0x7f,0x84,0x85,
+0x86,0x89,0x8c,0x8b,0x87,0x84,0x83,0x84,0x88,0x86,0x84,0x81,0x81,0x84,0x89,0x8d,
+0x91,0x92,0x93,0x93,0x92,0x94,0x96,0x98,0x94,0x96,0x98,0x97,0x94,0x91,0x92,0x93,
+0x9d,0x9c,0x96,0x90,0x94,0x9d,0x9f,0x9b,0x9c,0x96,0x94,0x98,0x99,0x94,0x91,0x93,
+0x92,0x9b,0x9e,0x9f,0xa0,0x9b,0x97,0x9a,0x99,0x94,0x94,0x97,0x96,0x91,0x90,0x95,
+0x8b,0x91,0x8a,0x87,0x93,0x97,0x90,0x8f,0x8f,0x8f,0x90,0x90,0x8d,0x89,0x84,0x80,
+0x81,0x82,0x82,0x7f,0x7e,0x7e,0x7c,0x79,0x73,0x77,0x78,0x74,0x70,0x6f,0x6d,0x6c,
+0x6d,0x6e,0x6f,0x6e,0x6b,0x66,0x62,0x60,0x5c,0x5c,0x5c,0x5b,0x5a,0x59,0x59,0x5a,
+0x5c,0x5a,0x56,0x51,0x4e,0x4d,0x48,0x43,0x47,0x48,0x48,0x47,0x45,0x43,0x43,0x43,
+0x48,0x55,0x63,0x6a,0x67,0x65,0x7e,0xa4,0xc2,0xc5,0xc6,0xc6,0xc6,0xc7,0xc6,0xc4,
+0xc1,0xbe,0xba,0xba,0xba,0xb9,0xb9,0xb9,0xbc,0xbe,0xbf,0xb9,0xb4,0xb6,0xab,0x95,
+0x68,0x48,0x51,0x84,0xaf,0xc2,0xaf,0x87,0x6c,0x65,0x60,0x63,0x69,0x6d,0x70,0x72,
+0x74,0x75,0x75,0x73,0x72,0x72,0x71,0x70,0x72,0x69,0x62,0x60,0x5f,0x5a,0x56,0x54,
+0x56,0x5a,0x60,0x6c,0x7e,0x92,0x9c,0x9c,0x97,0x97,0x98,0x9b,0x9b,0x92,0x7c,0x68,
+0x4a,0x4d,0x5b,0x67,0x70,0x7f,0x7d,0x67,0x69,0x6d,0x78,0x85,0x7c,0x59,0x41,0x44,
+0x49,0x4d,0x51,0x55,0x5f,0x6b,0x73,0x75,0x70,0x72,0x6b,0x5d,0x5c,0x69,0x64,0x4c,
+0x58,0x5c,0x6c,0x69,0x5f,0x58,0x50,0x4c,0x51,0x55,0x55,0x46,0x35,0x38,0x47,0x4e,
+0x69,0x5f,0x5c,0x68,0x77,0x7c,0x76,0x71,0x68,0x6d,0x68,0x5c,0x5a,0x64,0x6c,0x6c,
+0x65,0x55,0x49,0x4d,0x52,0x50,0x4c,0x4c,0x5b,0x61,0x5e,0x55,0x4b,0x3c,0x31,0x31,
+0x4d,0x52,0x4d,0x3e,0x3d,0x49,0x50,0x4d,0x42,0x3c,0x35,0x2f,0x2c,0x2b,0x2a,0x27,
+0x30,0x3c,0x47,0x5b,0x71,0x68,0x4d,0x3f,0x2c,0x29,0x23,0x22,0x25,0x28,0x24,0x1f,
+0x28,0x28,0x24,0x1d,0x19,0x18,0x14,0x0f,0x12,0x16,0x15,0x13,0x17,0x23,0x30,0x37,
+0x5d,0x5c,0x58,0x56,0x58,0x59,0x54,0x4c,0x46,0x3c,0x3c,0x46,0x4e,0x55,0x58,0x52,
+0x54,0x50,0x4e,0x51,0x58,0x5d,0x5d,0x5a,0x56,0x52,0x4f,0x50,0x53,0x56,0x57,0x56,
+0x56,0x56,0x59,0x5a,0x5a,0x5b,0x60,0x67,0x7d,0x86,0x88,0x7d,0x72,0x6d,0x6a,0x67,
+0x5e,0x56,0x57,0x6b,0x88,0x9c,0x9f,0x9b,0x8e,0x80,0x63,0x48,0x3c,0x48,0x72,0xa0,
+0xc5,0xbf,0x89,0x4d,0x44,0x4e,0x44,0x36,0x3a,0x35,0x32,0x35,0x3a,0x3b,0x38,0x36,
+0x3c,0x3e,0x3f,0x3c,0x36,0x2f,0x29,0x26,0x25,0x27,0x2c,0x2c,0x2b,0x34,0x3c,0x3a,
+0x3c,0x37,0x35,0x32,0x2f,0x34,0x3c,0x3c,0x3c,0x3a,0x3b,0x3e,0x46,0x50,0x5e,0x69,
+0x6c,0x67,0x60,0x57,0x4a,0x3e,0x3c,0x40,0x47,0x4a,0x49,0x44,0x40,0x3f,0x3c,0x38,
+0x47,0x48,0x48,0x46,0x43,0x44,0x4a,0x4f,0x47,0x48,0x4b,0x4d,0x48,0x40,0x3a,0x3a,
+0x3b,0x3a,0x3d,0x43,0x49,0x4c,0x4f,0x52,0x53,0x56,0x5b,0x5f,0x5d,0x55,0x51,0x51,
+0x59,0x56,0x52,0x52,0x58,0x5d,0x5d,0x5a,0x52,0x51,0x53,0x57,0x5e,0x64,0x66,0x67,
+0x6b,0x67,0x62,0x5f,0x5e,0x5d,0x5c,0x5a,0x5a,0x5b,0x5d,0x5f,0x5f,0x5c,0x56,0x51,
+0x50,0x53,0x56,0x56,0x57,0x5a,0x5b,0x5b,0x65,0x6a,0x70,0x74,0x77,0x77,0x72,0x6a,
+0x6b,0x6d,0x6b,0x66,0x62,0x5d,0x55,0x4d,0x4f,0x53,0x55,0x52,0x50,0x50,0x51,0x50,
+0x58,0x57,0x56,0x55,0x4e,0x44,0x3c,0x3a,0x3b,0x3b,0x3c,0x3b,0x3a,0x39,0x39,0x39,
+0x3d,0x3f,0x3d,0x3a,0x3f,0x47,0x4a,0x47,0x41,0x42,0x42,0x43,0x44,0x44,0x44,0x44,
+0x47,0x49,0x4d,0x50,0x4d,0x45,0x42,0x42,0x47,0x41,0x3e,0x43,0x4e,0x59,0x65,0x6e,
+0x75,0x69,0x4f,0x34,0x29,0x2b,0x2a,0x24,0x2c,0x30,0x35,0x37,0x37,0x37,0x37,0x39,
+0x37,0x36,0x37,0x3a,0x39,0x3a,0x43,0x4e,0x62,0x6f,0x7b,0x7e,0x80,0x85,0x87,0x85,
+0x87,0x8a,0x8b,0x8b,0x89,0x88,0x88,0x89,0x8b,0x8a,0x87,0x85,0x83,0x84,0x87,0x8a,
+0x8f,0x8d,0x8d,0x8f,0x93,0x95,0x95,0x94,0x91,0x94,0x98,0x99,0x98,0x98,0x9a,0x9d,
+0xa1,0xa1,0x9d,0x98,0x99,0x9f,0x9f,0x9a,0x98,0x95,0x97,0x9c,0x9a,0x92,0x8f,0x91,
+0x95,0x9d,0xa0,0x9f,0x9e,0x99,0x94,0x98,0x99,0x93,0x91,0x94,0x94,0x8f,0x8e,0x92,
+0x8c,0x92,0x8c,0x89,0x93,0x97,0x90,0x8f,0x8d,0x8e,0x8f,0x90,0x8f,0x8b,0x87,0x83,
+0x85,0x86,0x85,0x81,0x7f,0x80,0x81,0x80,0x7f,0x7e,0x7a,0x74,0x71,0x71,0x71,0x6f,
+0x71,0x70,0x6e,0x6d,0x6c,0x6a,0x66,0x63,0x5c,0x5d,0x5e,0x5e,0x5e,0x5c,0x5a,0x58,
+0x5b,0x5c,0x5a,0x56,0x53,0x51,0x4c,0x48,0x48,0x47,0x46,0x45,0x45,0x44,0x44,0x44,
+0x44,0x4f,0x5d,0x66,0x65,0x64,0x7b,0x9e,0xbb,0xbe,0xc0,0xc0,0xc1,0xc3,0xc2,0xbf,
+0xbd,0xbd,0xbe,0xbe,0xbd,0xbd,0xbd,0xbf,0xc7,0xc6,0xc3,0xba,0xb3,0xb3,0xa9,0x93,
+0x60,0x48,0x55,0x80,0xa2,0xb0,0xa2,0x83,0x6a,0x63,0x5f,0x62,0x69,0x6e,0x72,0x75,
+0x75,0x74,0x72,0x71,0x70,0x6f,0x6c,0x69,0x64,0x58,0x4e,0x4b,0x4b,0x48,0x45,0x43,
+0x4c,0x4f,0x54,0x5d,0x6b,0x7c,0x86,0x89,0x8e,0x91,0x97,0x9e,0xa4,0xa1,0x93,0x85,
+0x5d,0x49,0x43,0x4a,0x52,0x60,0x6d,0x6d,0x6a,0x73,0x7b,0x7f,0x76,0x5c,0x45,0x40,
+0x42,0x4b,0x54,0x5b,0x5e,0x5d,0x56,0x4e,0x5b,0x62,0x68,0x6a,0x6a,0x64,0x57,0x4c,
+0x48,0x56,0x5a,0x5d,0x5b,0x60,0x59,0x4f,0x54,0x49,0x41,0x3e,0x41,0x50,0x5f,0x61,
+0x41,0x65,0x87,0x8e,0x81,0x75,0x71,0x72,0x74,0x76,0x71,0x67,0x63,0x66,0x6a,0x6a,
+0x4a,0x44,0x46,0x50,0x52,0x46,0x37,0x2f,0x48,0x50,0x4e,0x46,0x3e,0x36,0x35,0x3d,
+0x4f,0x43,0x3d,0x3e,0x38,0x2d,0x2d,0x36,0x36,0x35,0x2d,0x25,0x2a,0x32,0x29,0x17,
+0x40,0x4c,0x5d,0x70,0x7c,0x77,0x6e,0x6c,0x73,0x73,0x71,0x6b,0x67,0x60,0x52,0x44,
+0x3c,0x37,0x32,0x2d,0x26,0x22,0x26,0x2d,0x22,0x25,0x27,0x2c,0x36,0x41,0x46,0x46,
+0x68,0x66,0x62,0x5f,0x5d,0x59,0x51,0x49,0x3a,0x37,0x41,0x53,0x5f,0x67,0x68,0x61,
+0x5b,0x55,0x51,0x54,0x5b,0x60,0x5f,0x5d,0x5a,0x58,0x56,0x56,0x58,0x5a,0x5a,0x5a,
+0x5d,0x5f,0x62,0x63,0x61,0x60,0x66,0x6e,0x84,0x8f,0x99,0x99,0x94,0x88,0x75,0x66,
+0x58,0x56,0x5c,0x67,0x6a,0x64,0x61,0x63,0x5a,0x62,0x62,0x53,0x3c,0x31,0x48,0x6e,
+0x95,0x90,0x6c,0x44,0x3b,0x3b,0x37,0x37,0x39,0x38,0x39,0x3e,0x49,0x51,0x50,0x4b,
+0x46,0x43,0x40,0x3d,0x3a,0x34,0x2d,0x27,0x28,0x28,0x2e,0x32,0x34,0x3f,0x4c,0x51,
+0x37,0x30,0x31,0x36,0x32,0x2f,0x30,0x2e,0x35,0x30,0x30,0x35,0x3c,0x43,0x4c,0x55,
+0x53,0x53,0x52,0x4e,0x46,0x3d,0x38,0x38,0x31,0x36,0x3c,0x3d,0x3c,0x3b,0x39,0x37,
+0x48,0x4a,0x4a,0x47,0x44,0x44,0x49,0x4e,0x47,0x47,0x4a,0x4c,0x4a,0x44,0x3e,0x3c,
+0x3b,0x3b,0x3b,0x3d,0x3e,0x40,0x45,0x4b,0x52,0x55,0x5b,0x5f,0x5e,0x5b,0x5b,0x5e,
+0x62,0x5f,0x5b,0x59,0x5b,0x5b,0x55,0x4d,0x49,0x4b,0x4f,0x54,0x5a,0x61,0x68,0x6d,
+0x6f,0x6b,0x67,0x66,0x67,0x69,0x67,0x66,0x5e,0x5e,0x5f,0x5f,0x5d,0x54,0x48,0x3f,
+0x40,0x46,0x4d,0x52,0x55,0x56,0x55,0x52,0x5a,0x5f,0x63,0x65,0x66,0x68,0x69,0x69,
+0x68,0x6c,0x6d,0x6a,0x66,0x62,0x5c,0x58,0x57,0x57,0x53,0x4c,0x48,0x4b,0x4f,0x52,
+0x58,0x57,0x58,0x56,0x4f,0x44,0x3c,0x39,0x3e,0x3e,0x3e,0x3e,0x3e,0x3d,0x3b,0x3a,
+0x39,0x3a,0x38,0x35,0x39,0x41,0x44,0x43,0x3e,0x3c,0x3a,0x3a,0x3e,0x41,0x43,0x43,
+0x40,0x42,0x48,0x4d,0x4c,0x46,0x3f,0x3c,0x41,0x3a,0x35,0x36,0x3c,0x44,0x4c,0x52,
+0x52,0x4b,0x3d,0x30,0x29,0x28,0x28,0x26,0x2c,0x30,0x35,0x38,0x38,0x38,0x39,0x3a,
+0x3d,0x38,0x37,0x3a,0x3a,0x3c,0x4a,0x5a,0x74,0x7b,0x7f,0x81,0x85,0x89,0x88,0x84,
+0x8b,0x8b,0x8c,0x8c,0x8c,0x8b,0x8a,0x8a,0x84,0x85,0x85,0x85,0x86,0x87,0x8a,0x8c,
+0x8d,0x8a,0x88,0x8d,0x95,0x99,0x96,0x92,0x98,0x9a,0x9c,0x9c,0x9a,0x99,0x9a,0x9c,
+0x9f,0xa2,0xa1,0x9c,0x9b,0x9d,0x9c,0x98,0x98,0x98,0x9b,0x9e,0x9a,0x92,0x90,0x94,
+0x9b,0xa2,0xa2,0x9f,0x9e,0x98,0x93,0x97,0x9d,0x97,0x93,0x94,0x94,0x91,0x91,0x93,
+0x8c,0x91,0x8e,0x8c,0x94,0x97,0x93,0x90,0x8d,0x8e,0x8f,0x90,0x8f,0x8c,0x8a,0x88,
+0x87,0x88,0x86,0x81,0x7e,0x80,0x83,0x84,0x86,0x83,0x7c,0x74,0x72,0x74,0x75,0x74,
+0x76,0x72,0x6e,0x6d,0x6d,0x6c,0x68,0x64,0x60,0x60,0x61,0x63,0x64,0x62,0x5e,0x5a,
+0x5d,0x5f,0x60,0x5d,0x59,0x57,0x53,0x4f,0x4f,0x4c,0x49,0x47,0x47,0x47,0x46,0x44,
+0x46,0x4d,0x57,0x60,0x63,0x64,0x7a,0x9c,0xb4,0xb7,0xba,0xba,0xbc,0xbe,0xbe,0xbc,
+0xba,0xbc,0xbc,0xba,0xb7,0xb6,0xb9,0xbb,0xb8,0xba,0xbd,0xb9,0xb2,0xae,0x9f,0x86,
+0x57,0x48,0x53,0x71,0x84,0x8d,0x89,0x79,0x6c,0x66,0x62,0x65,0x6b,0x6f,0x73,0x76,
+0x76,0x73,0x70,0x71,0x72,0x70,0x6b,0x66,0x61,0x55,0x4a,0x45,0x46,0x47,0x45,0x44,
+0x49,0x4c,0x50,0x55,0x5f,0x6d,0x79,0x80,0x88,0x8c,0x92,0x98,0x9d,0x9e,0x98,0x90,
+0x6b,0x4b,0x3d,0x49,0x50,0x53,0x60,0x6e,0x71,0x7c,0x7c,0x75,0x6f,0x64,0x55,0x4e,
+0x5d,0x5b,0x57,0x53,0x53,0x57,0x5a,0x5a,0x51,0x55,0x5b,0x68,0x74,0x71,0x76,0x8c,
+0x96,0x84,0x4d,0x50,0x5b,0x65,0x5b,0x50,0x50,0x42,0x3d,0x46,0x52,0x5f,0x66,0x62,
+0x74,0x81,0x86,0x82,0x85,0x92,0x94,0x8b,0x80,0x76,0x6d,0x6d,0x6f,0x69,0x56,0x45,
+0x43,0x42,0x49,0x55,0x57,0x4a,0x3e,0x3a,0x40,0x49,0x47,0x3e,0x37,0x31,0x34,0x3f,
+0x48,0x37,0x34,0x3e,0x38,0x22,0x1c,0x29,0x29,0x2f,0x34,0x32,0x28,0x2d,0x4b,0x6c,
+0x76,0x69,0x69,0x73,0x78,0x77,0x74,0x6f,0x6b,0x6c,0x68,0x62,0x64,0x6c,0x6e,0x69,
+0x57,0x49,0x40,0x40,0x3e,0x36,0x37,0x3d,0x33,0x36,0x3a,0x3f,0x49,0x54,0x5c,0x5f,
+0x6a,0x67,0x62,0x5e,0x5a,0x54,0x4c,0x45,0x34,0x35,0x46,0x5d,0x6d,0x76,0x78,0x72,
+0x79,0x75,0x72,0x73,0x76,0x79,0x78,0x76,0x78,0x76,0x74,0x74,0x74,0x74,0x73,0x72,
+0x70,0x70,0x72,0x72,0x70,0x6e,0x71,0x76,0x7e,0x88,0x94,0x9b,0x9a,0x90,0x7c,0x6b,
+0x5e,0x62,0x68,0x6a,0x61,0x56,0x53,0x57,0x53,0x5c,0x67,0x6d,0x66,0x51,0x48,0x50,
+0x55,0x53,0x4a,0x46,0x43,0x39,0x35,0x3f,0x44,0x4c,0x4c,0x44,0x47,0x53,0x54,0x4a,
+0x47,0x43,0x3d,0x3a,0x3a,0x38,0x35,0x32,0x2d,0x2b,0x2a,0x28,0x2c,0x3c,0x48,0x46,
+0x3c,0x2d,0x2c,0x35,0x35,0x2f,0x2c,0x2a,0x2c,0x2b,0x2f,0x35,0x38,0x37,0x38,0x3d,
+0x3a,0x3b,0x3c,0x3b,0x3b,0x3b,0x3b,0x3b,0x3d,0x3f,0x40,0x3f,0x40,0x43,0x49,0x4d,
+0x4e,0x4e,0x4e,0x4c,0x49,0x47,0x47,0x48,0x42,0x42,0x44,0x4a,0x4e,0x4c,0x45,0x3e,
+0x41,0x3e,0x3c,0x3c,0x3e,0x42,0x4a,0x51,0x4b,0x4d,0x50,0x51,0x51,0x54,0x5b,0x61,
+0x65,0x63,0x61,0x62,0x66,0x69,0x66,0x60,0x51,0x50,0x4e,0x50,0x55,0x5e,0x67,0x6d,
+0x6e,0x6f,0x71,0x74,0x75,0x74,0x71,0x6e,0x6f,0x6d,0x6b,0x68,0x61,0x54,0x44,0x39,
+0x31,0x39,0x44,0x4d,0x54,0x58,0x55,0x51,0x5d,0x5b,0x58,0x55,0x58,0x60,0x6c,0x74,
+0x70,0x73,0x74,0x70,0x69,0x63,0x60,0x5f,0x5d,0x5a,0x51,0x47,0x44,0x4a,0x53,0x59,
+0x59,0x5a,0x5a,0x58,0x50,0x44,0x3c,0x3a,0x3f,0x3e,0x3d,0x3e,0x3f,0x3e,0x3c,0x39,
+0x3a,0x38,0x36,0x37,0x3e,0x48,0x4b,0x4a,0x43,0x3e,0x3a,0x3a,0x3e,0x41,0x42,0x42,
+0x43,0x46,0x4b,0x50,0x50,0x4c,0x45,0x40,0x40,0x3c,0x37,0x36,0x38,0x3b,0x3d,0x3e,
+0x3a,0x3e,0x41,0x3b,0x2e,0x24,0x24,0x2a,0x2e,0x32,0x37,0x3a,0x3a,0x3a,0x3c,0x3d,
+0x42,0x3c,0x37,0x38,0x3f,0x4c,0x5c,0x6a,0x7a,0x7e,0x82,0x84,0x88,0x8c,0x8b,0x87,
+0x8f,0x8e,0x8e,0x8e,0x8e,0x8c,0x89,0x86,0x82,0x84,0x87,0x88,0x89,0x8a,0x8c,0x8d,
+0x8d,0x8b,0x8b,0x90,0x97,0x9b,0x99,0x96,0x9e,0x9e,0x9f,0x9d,0x9b,0x99,0x99,0x99,
+0x9d,0xa0,0xa1,0x9e,0x9b,0x9c,0x9d,0x9b,0x9e,0x9c,0x9c,0x9c,0x99,0x96,0x97,0x9b,
+0x9f,0xa5,0xa5,0xa1,0x9f,0x98,0x94,0x97,0x9f,0x99,0x94,0x93,0x94,0x93,0x92,0x94,
+0x8b,0x90,0x90,0x8e,0x93,0x97,0x95,0x91,0x91,0x90,0x90,0x8e,0x8c,0x8c,0x8c,0x8d,
+0x8a,0x8b,0x89,0x84,0x80,0x82,0x85,0x86,0x82,0x81,0x7d,0x76,0x73,0x75,0x77,0x77,
+0x77,0x74,0x71,0x6f,0x6e,0x6b,0x67,0x64,0x66,0x65,0x65,0x67,0x6a,0x69,0x65,0x60,
+0x60,0x64,0x65,0x62,0x5e,0x5c,0x5b,0x59,0x5b,0x56,0x50,0x4c,0x4b,0x4b,0x48,0x46,
+0x4a,0x4b,0x4e,0x56,0x5d,0x64,0x7d,0xa0,0xb6,0xb8,0xb9,0xb9,0xba,0xbd,0xbe,0xbd,
+0xb7,0xb7,0xb4,0xb0,0xae,0xb0,0xb2,0xb3,0xb4,0xb2,0xae,0xa4,0x97,0x8e,0x7b,0x63,
+0x53,0x49,0x50,0x61,0x6a,0x70,0x74,0x6f,0x70,0x6b,0x69,0x6c,0x6f,0x71,0x72,0x74,
+0x75,0x70,0x6d,0x70,0x72,0x6f,0x6a,0x65,0x57,0x51,0x48,0x43,0x42,0x43,0x45,0x47,
+0x4b,0x4e,0x51,0x54,0x5a,0x67,0x77,0x82,0x83,0x86,0x87,0x87,0x88,0x89,0x88,0x86,
+0x71,0x52,0x45,0x51,0x57,0x52,0x58,0x68,0x76,0x7b,0x75,0x6c,0x6a,0x67,0x60,0x5e,
+0x4c,0x58,0x69,0x75,0x77,0x6f,0x61,0x56,0x5a,0x59,0x54,0x5f,0x75,0x7e,0x97,0xc3,
+0xd6,0xac,0x56,0x66,0x72,0x69,0x50,0x47,0x49,0x42,0x47,0x55,0x5c,0x63,0x6b,0x6d,
+0x5a,0x5d,0x56,0x4b,0x50,0x62,0x6e,0x6e,0x6f,0x66,0x63,0x6a,0x6b,0x59,0x3c,0x28,
+0x34,0x34,0x3c,0x47,0x48,0x3f,0x39,0x3a,0x41,0x49,0x48,0x3f,0x37,0x30,0x30,0x39,
+0x3b,0x38,0x37,0x38,0x31,0x25,0x1e,0x1e,0x27,0x27,0x2a,0x2c,0x2c,0x3a,0x62,0x8a,
+0x86,0x75,0x7a,0x8c,0x8c,0x7e,0x69,0x53,0x4a,0x56,0x61,0x65,0x67,0x66,0x5c,0x4e,
+0x59,0x52,0x4d,0x4d,0x49,0x42,0x40,0x44,0x3f,0x4a,0x56,0x58,0x4f,0x43,0x3a,0x35,
+0x57,0x52,0x4d,0x4b,0x4b,0x48,0x43,0x3f,0x34,0x35,0x44,0x57,0x62,0x69,0x6b,0x67,
+0x66,0x67,0x68,0x67,0x66,0x65,0x65,0x66,0x66,0x65,0x65,0x65,0x64,0x64,0x62,0x61,
+0x69,0x67,0x67,0x6b,0x6d,0x6d,0x6d,0x6f,0x73,0x75,0x77,0x79,0x79,0x78,0x75,0x70,
+0x6c,0x6d,0x6c,0x6b,0x6d,0x6c,0x64,0x59,0x50,0x4f,0x59,0x79,0x95,0x8d,0x6b,0x54,
+0x46,0x49,0x47,0x42,0x40,0x40,0x44,0x4b,0x76,0x83,0x79,0x57,0x45,0x4a,0x47,0x38,
+0x3d,0x39,0x34,0x31,0x32,0x35,0x38,0x3a,0x31,0x2f,0x29,0x26,0x39,0x5f,0x70,0x64,
+0x51,0x37,0x2b,0x2f,0x31,0x31,0x33,0x34,0x2b,0x2f,0x35,0x38,0x35,0x31,0x31,0x33,
+0x35,0x35,0x33,0x32,0x37,0x3f,0x40,0x3d,0x3e,0x3a,0x34,0x30,0x31,0x37,0x41,0x49,
+0x4f,0x4f,0x4e,0x4e,0x4d,0x4a,0x45,0x42,0x39,0x38,0x3c,0x45,0x51,0x54,0x4d,0x43,
+0x3e,0x3b,0x3b,0x3f,0x44,0x48,0x4d,0x51,0x52,0x52,0x50,0x4c,0x4a,0x4d,0x53,0x58,
+0x68,0x66,0x62,0x61,0x64,0x68,0x67,0x64,0x5d,0x59,0x57,0x58,0x5f,0x67,0x6e,0x71,
+0x74,0x77,0x7b,0x7d,0x7b,0x78,0x74,0x72,0x79,0x78,0x79,0x79,0x76,0x6e,0x63,0x5b,
+0x51,0x54,0x58,0x5c,0x61,0x61,0x59,0x51,0x51,0x52,0x55,0x5b,0x62,0x6a,0x72,0x77,
+0x7c,0x7c,0x7a,0x73,0x68,0x60,0x5d,0x5d,0x5f,0x5e,0x59,0x52,0x4f,0x52,0x58,0x5b,
+0x5c,0x5d,0x5e,0x5c,0x53,0x48,0x41,0x3f,0x3e,0x3c,0x3b,0x3c,0x3d,0x3c,0x3a,0x37,
+0x3f,0x3a,0x37,0x3b,0x47,0x51,0x53,0x51,0x46,0x42,0x3e,0x3d,0x3e,0x3e,0x3c,0x3a,
+0x41,0x44,0x48,0x4b,0x4d,0x4c,0x48,0x44,0x45,0x41,0x3b,0x38,0x39,0x3c,0x3d,0x3d,
+0x43,0x3d,0x37,0x32,0x2c,0x27,0x27,0x2c,0x30,0x34,0x39,0x3c,0x3d,0x3d,0x3e,0x3f,
+0x3c,0x38,0x33,0x37,0x4a,0x62,0x73,0x79,0x7d,0x82,0x88,0x8b,0x8d,0x8e,0x8f,0x8e,
+0x90,0x90,0x91,0x91,0x90,0x8e,0x8a,0x87,0x8b,0x8c,0x8d,0x8d,0x8c,0x8b,0x8b,0x8b,
+0x8e,0x8f,0x91,0x94,0x98,0x9b,0x9b,0x9b,0x9b,0x9c,0x9d,0x9e,0x9e,0x9e,0xa0,0xa1,
+0xa1,0xa3,0xa3,0xa0,0x9c,0x9d,0x9e,0x9f,0xa0,0x9d,0x9b,0x9c,0x9d,0x9c,0x9b,0x9b,
+0x9f,0xa5,0xa4,0xa1,0x9f,0x98,0x94,0x97,0x9b,0x96,0x91,0x90,0x90,0x90,0x90,0x92,
+0x90,0x92,0x94,0x91,0x90,0x94,0x94,0x8f,0x95,0x94,0x91,0x8d,0x8a,0x8a,0x8d,0x90,
+0x8f,0x90,0x8e,0x89,0x86,0x87,0x88,0x88,0x7c,0x80,0x81,0x7c,0x77,0x75,0x75,0x75,
+0x73,0x75,0x77,0x76,0x72,0x6e,0x6b,0x6b,0x6a,0x68,0x66,0x68,0x6b,0x6d,0x6b,0x68,
+0x66,0x68,0x68,0x64,0x61,0x61,0x61,0x61,0x62,0x5c,0x55,0x51,0x50,0x4f,0x4c,0x4a,
+0x4b,0x48,0x46,0x4c,0x55,0x61,0x82,0xa9,0xbe,0xbf,0xbe,0xbc,0xbd,0xbf,0xc1,0xc0,
+0xb7,0xb7,0xb5,0xb3,0xb4,0xb5,0xb1,0xaa,0xa8,0x9c,0x8c,0x7b,0x6e,0x6d,0x67,0x59,
+0x4f,0x4a,0x50,0x5c,0x64,0x69,0x6b,0x6b,0x71,0x6e,0x6e,0x72,0x75,0x75,0x74,0x74,
+0x75,0x6f,0x6c,0x6d,0x6d,0x68,0x63,0x60,0x53,0x54,0x51,0x4a,0x43,0x41,0x44,0x48,
+0x4b,0x4d,0x4f,0x50,0x53,0x60,0x73,0x83,0x84,0x85,0x82,0x7c,0x79,0x7b,0x7e,0x7f,
+0x75,0x5b,0x44,0x41,0x44,0x44,0x4d,0x5f,0x6e,0x71,0x70,0x6f,0x6d,0x5f,0x53,0x53,
+0x51,0x54,0x58,0x5a,0x5b,0x5b,0x5e,0x61,0x5f,0x62,0x5c,0x60,0x70,0x75,0x83,0xa4,
+0xaa,0x8d,0x45,0x59,0x60,0x58,0x48,0x4a,0x47,0x43,0x4a,0x56,0x5b,0x65,0x74,0x7d,
+0x87,0x78,0x5e,0x42,0x31,0x30,0x3e,0x4c,0x55,0x59,0x5f,0x5f,0x51,0x3c,0x33,0x34,
+0x3b,0x3e,0x49,0x56,0x56,0x4a,0x41,0x41,0x3f,0x44,0x42,0x3b,0x36,0x30,0x2e,0x34,
+0x39,0x3c,0x3a,0x30,0x25,0x1d,0x15,0x0e,0x1a,0x21,0x1c,0x16,0x2f,0x61,0x83,0x89,
+0x7c,0x70,0x74,0x7b,0x6f,0x5d,0x4c,0x3a,0x35,0x3a,0x3f,0x42,0x47,0x4c,0x4b,0x47,
+0x2d,0x31,0x33,0x2f,0x2c,0x30,0x38,0x3f,0x59,0x51,0x44,0x39,0x37,0x42,0x55,0x65,
+0x41,0x3b,0x37,0x3b,0x41,0x42,0x3f,0x3d,0x35,0x33,0x3c,0x49,0x4f,0x55,0x58,0x56,
+0x55,0x58,0x5a,0x59,0x55,0x54,0x56,0x59,0x56,0x57,0x59,0x5b,0x5b,0x5b,0x5b,0x5a,
+0x5b,0x57,0x57,0x5a,0x5d,0x5d,0x5b,0x5b,0x5c,0x5d,0x5c,0x5b,0x5a,0x5b,0x5e,0x60,
+0x5f,0x62,0x60,0x59,0x55,0x52,0x49,0x3d,0x34,0x3a,0x47,0x62,0x7f,0x80,0x68,0x54,
+0x50,0x48,0x46,0x4a,0x47,0x46,0x55,0x69,0x99,0x9e,0x8a,0x5f,0x46,0x47,0x44,0x38,
+0x32,0x30,0x2c,0x29,0x28,0x2c,0x32,0x37,0x31,0x2f,0x28,0x2b,0x4e,0x85,0x97,0x84,
+0x51,0x3a,0x2f,0x34,0x36,0x35,0x37,0x36,0x33,0x3a,0x3d,0x38,0x33,0x34,0x37,0x37,
+0x34,0x33,0x2f,0x31,0x3d,0x4c,0x4d,0x46,0x3f,0x39,0x34,0x33,0x36,0x3d,0x47,0x50,
+0x49,0x49,0x49,0x4a,0x49,0x46,0x40,0x3c,0x34,0x35,0x38,0x41,0x4d,0x54,0x4f,0x46,
+0x41,0x41,0x44,0x4b,0x4e,0x4d,0x4b,0x4a,0x54,0x55,0x55,0x53,0x54,0x58,0x5c,0x5d,
+0x6c,0x6a,0x65,0x5f,0x5d,0x5d,0x5b,0x59,0x5a,0x5a,0x5c,0x62,0x69,0x6f,0x71,0x71,
+0x73,0x73,0x74,0x75,0x75,0x75,0x76,0x76,0x75,0x77,0x7c,0x80,0x82,0x81,0x7e,0x7b,
+0x77,0x70,0x67,0x61,0x5f,0x5a,0x4d,0x40,0x39,0x3f,0x4b,0x58,0x63,0x68,0x6d,0x70,
+0x79,0x78,0x76,0x71,0x68,0x60,0x5e,0x60,0x62,0x60,0x59,0x50,0x4c,0x50,0x57,0x5b,
+0x5d,0x5f,0x60,0x5e,0x56,0x4c,0x48,0x48,0x45,0x43,0x42,0x41,0x40,0x3f,0x3d,0x3c,
+0x3e,0x39,0x35,0x39,0x43,0x4b,0x4b,0x48,0x44,0x42,0x3f,0x3c,0x3b,0x38,0x34,0x30,
+0x36,0x3b,0x41,0x46,0x4b,0x51,0x53,0x53,0x54,0x4e,0x43,0x3a,0x38,0x3c,0x3e,0x3e,
+0x45,0x3e,0x36,0x30,0x2c,0x2a,0x2a,0x2c,0x32,0x36,0x3b,0x3d,0x3e,0x3d,0x3e,0x40,
+0x3a,0x36,0x36,0x41,0x59,0x70,0x7b,0x7c,0x80,0x85,0x8b,0x8d,0x8d,0x8d,0x8f,0x91,
+0x90,0x91,0x91,0x91,0x90,0x8f,0x8d,0x8d,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,0x8d,0x8e,
+0x90,0x93,0x96,0x97,0x98,0x99,0x9b,0x9d,0x9e,0x9e,0x9f,0xa0,0xa2,0xa4,0xa5,0xa6,
+0xa7,0xa6,0xa4,0xa0,0x9c,0x9b,0x9d,0x9f,0x9d,0x9d,0x9e,0xa0,0xa2,0xa0,0x9b,0x96,
+0x9d,0xa3,0xa4,0xa1,0x9f,0x98,0x93,0x97,0x98,0x96,0x94,0x91,0x91,0x91,0x93,0x95,
+0x98,0x98,0x99,0x95,0x8e,0x90,0x92,0x8b,0x94,0x93,0x91,0x8d,0x8a,0x8a,0x8e,0x92,
+0x93,0x93,0x8f,0x8a,0x87,0x87,0x87,0x85,0x7e,0x82,0x85,0x81,0x7c,0x78,0x75,0x73,
+0x71,0x76,0x7a,0x7b,0x77,0x73,0x73,0x74,0x6d,0x6b,0x68,0x69,0x6b,0x6d,0x6e,0x6e,
+0x6c,0x6d,0x6b,0x66,0x64,0x65,0x66,0x65,0x61,0x5c,0x57,0x54,0x52,0x52,0x50,0x4f,
+0x4e,0x4b,0x47,0x4a,0x51,0x5f,0x84,0xae,0xc3,0xc5,0xc4,0xc1,0xc1,0xc2,0xc2,0xc0,
+0xc0,0xc2,0xc1,0xbe,0xbb,0xb3,0xa4,0x94,0x84,0x79,0x6c,0x61,0x5c,0x61,0x63,0x59,
+0x45,0x47,0x50,0x5d,0x68,0x6a,0x68,0x66,0x6b,0x6a,0x6d,0x72,0x76,0x77,0x77,0x78,
+0x7b,0x76,0x72,0x71,0x6b,0x62,0x5e,0x5f,0x5d,0x63,0x64,0x5a,0x4e,0x48,0x49,0x4c,
+0x4e,0x4e,0x4e,0x4e,0x51,0x5d,0x74,0x87,0x90,0x90,0x8b,0x82,0x7b,0x7a,0x7c,0x7d,
+0x76,0x64,0x47,0x35,0x35,0x39,0x45,0x56,0x64,0x6a,0x74,0x7d,0x76,0x59,0x40,0x3b,
+0x43,0x43,0x43,0x40,0x3a,0x39,0x41,0x49,0x57,0x5f,0x5f,0x60,0x68,0x67,0x67,0x73,
+0x74,0x68,0x37,0x3e,0x49,0x55,0x4f,0x48,0x44,0x40,0x46,0x51,0x58,0x5f,0x64,0x61,
+0x5d,0x51,0x4b,0x50,0x51,0x49,0x45,0x47,0x59,0x58,0x54,0x4a,0x3b,0x31,0x36,0x40,
+0x34,0x34,0x3c,0x49,0x4c,0x44,0x3f,0x40,0x41,0x45,0x40,0x37,0x32,0x2c,0x29,0x2f,
+0x3a,0x3a,0x38,0x30,0x22,0x15,0x0f,0x0f,0x0c,0x16,0x21,0x34,0x5e,0x89,0x92,0x83,
+0x69,0x56,0x45,0x3a,0x32,0x2e,0x2b,0x25,0x28,0x26,0x26,0x29,0x2a,0x25,0x1f,0x1c,
+0x2e,0x2c,0x2a,0x30,0x42,0x56,0x5e,0x5c,0x3c,0x49,0x60,0x77,0x83,0x80,0x75,0x6e,
+0x3c,0x34,0x32,0x3a,0x44,0x47,0x43,0x40,0x37,0x33,0x39,0x43,0x47,0x4e,0x54,0x54,
+0x52,0x53,0x52,0x4f,0x4c,0x4c,0x4f,0x52,0x51,0x54,0x57,0x5a,0x5b,0x5b,0x5a,0x5a,
+0x5e,0x5c,0x5b,0x5d,0x5d,0x5a,0x58,0x58,0x56,0x57,0x59,0x5a,0x59,0x57,0x56,0x56,
+0x50,0x54,0x56,0x50,0x48,0x44,0x44,0x45,0x48,0x52,0x52,0x4b,0x4c,0x4f,0x50,0x52,
+0x57,0x4b,0x4d,0x56,0x52,0x53,0x6e,0x8e,0x8f,0x82,0x67,0x4b,0x3e,0x40,0x41,0x3e,
+0x34,0x31,0x2c,0x27,0x26,0x27,0x29,0x2a,0x2e,0x28,0x23,0x2a,0x4d,0x78,0x7b,0x5e,
+0x3e,0x34,0x35,0x3d,0x3d,0x3c,0x3c,0x39,0x48,0x4f,0x4d,0x41,0x3d,0x44,0x47,0x42,
+0x33,0x30,0x2a,0x2e,0x43,0x5b,0x60,0x58,0x3b,0x34,0x30,0x34,0x3a,0x41,0x48,0x4e,
+0x49,0x4c,0x4d,0x4b,0x46,0x42,0x40,0x40,0x3a,0x3c,0x3d,0x3e,0x43,0x48,0x47,0x43,
+0x47,0x4a,0x50,0x57,0x58,0x56,0x54,0x55,0x54,0x55,0x54,0x53,0x58,0x60,0x64,0x64,
+0x65,0x69,0x6a,0x68,0x65,0x65,0x64,0x63,0x57,0x5b,0x60,0x66,0x6b,0x6e,0x70,0x71,
+0x6f,0x6b,0x68,0x6a,0x70,0x75,0x77,0x76,0x6f,0x73,0x79,0x7d,0x7e,0x7d,0x7c,0x7c,
+0x78,0x6b,0x5a,0x51,0x53,0x52,0x48,0x3c,0x42,0x49,0x55,0x61,0x67,0x69,0x6d,0x73,
+0x72,0x70,0x70,0x70,0x6a,0x63,0x60,0x61,0x60,0x5d,0x56,0x4c,0x48,0x4c,0x53,0x58,
+0x59,0x5b,0x5e,0x5d,0x56,0x4f,0x4d,0x4f,0x52,0x50,0x4e,0x4a,0x47,0x44,0x44,0x44,
+0x41,0x3e,0x3b,0x3d,0x41,0x43,0x43,0x43,0x44,0x43,0x41,0x3e,0x3a,0x35,0x31,0x2e,
+0x38,0x3f,0x47,0x4b,0x50,0x57,0x5d,0x5e,0x62,0x5b,0x4e,0x41,0x3d,0x40,0x42,0x41,
+0x3c,0x3f,0x3e,0x36,0x2d,0x28,0x29,0x2b,0x32,0x36,0x3b,0x3d,0x3d,0x3d,0x3e,0x3f,
+0x3f,0x38,0x3f,0x57,0x6e,0x77,0x79,0x7c,0x83,0x85,0x88,0x8a,0x8b,0x8b,0x8e,0x91,
+0x92,0x92,0x90,0x8d,0x8a,0x8a,0x8d,0x90,0x89,0x8a,0x8b,0x8c,0x8d,0x8f,0x93,0x96,
+0x96,0x98,0x99,0x9a,0x99,0x9a,0x9c,0x9e,0xa3,0xa3,0xa2,0xa3,0xa4,0xa6,0xa7,0xa7,
+0xa8,0xa7,0xa5,0xa2,0xa0,0x9e,0x9e,0x9f,0x9d,0xa0,0xa3,0xa4,0xa3,0xa0,0x9b,0x96,
+0x9d,0xa4,0xa5,0xa3,0xa1,0x99,0x94,0x97,0x9a,0x9b,0x9b,0x98,0x96,0x98,0x9b,0x9e,
+0x9d,0x9b,0x9d,0x98,0x8d,0x90,0x94,0x8c,0x8e,0x8f,0x90,0x8e,0x8d,0x8d,0x90,0x94,
+0x99,0x95,0x8d,0x87,0x85,0x86,0x85,0x82,0x83,0x84,0x82,0x80,0x7f,0x7e,0x79,0x74,
+0x76,0x78,0x7b,0x7b,0x79,0x77,0x77,0x78,0x71,0x6f,0x6e,0x6d,0x6d,0x6e,0x70,0x71,
+0x70,0x70,0x6e,0x6a,0x69,0x6a,0x69,0x66,0x60,0x5e,0x5a,0x57,0x54,0x53,0x52,0x52,
+0x53,0x51,0x4e,0x4d,0x4e,0x56,0x78,0xa2,0xc2,0xc5,0xc6,0xc5,0xc4,0xc3,0xc0,0xbc,
+0xbe,0xc1,0xbf,0xb7,0xac,0x9f,0x8a,0x78,0x72,0x69,0x62,0x5c,0x57,0x58,0x54,0x48,
+0x42,0x47,0x4e,0x5a,0x66,0x67,0x63,0x62,0x64,0x64,0x67,0x6d,0x72,0x74,0x77,0x79,
+0x80,0x7d,0x7a,0x76,0x6a,0x5e,0x5d,0x63,0x60,0x67,0x68,0x5d,0x4f,0x47,0x46,0x47,
+0x4d,0x4c,0x4b,0x4c,0x50,0x5e,0x77,0x8d,0x97,0x98,0x94,0x8b,0x83,0x7f,0x7e,0x7d,
+0x76,0x6b,0x50,0x3b,0x39,0x3c,0x46,0x58,0x61,0x6b,0x77,0x80,0x77,0x57,0x3c,0x36,
+0x3a,0x39,0x37,0x30,0x29,0x2a,0x38,0x48,0x57,0x5c,0x60,0x62,0x63,0x64,0x67,0x6b,
+0x71,0x69,0x54,0x4e,0x54,0x5d,0x4e,0x3a,0x3d,0x3c,0x45,0x50,0x58,0x5e,0x59,0x4c,
+0x48,0x3d,0x36,0x36,0x34,0x32,0x3e,0x4f,0x56,0x4c,0x40,0x38,0x35,0x35,0x37,0x38,
+0x2c,0x25,0x25,0x2e,0x36,0x37,0x39,0x3d,0x3c,0x43,0x41,0x38,0x2f,0x25,0x20,0x25,
+0x2e,0x30,0x32,0x2c,0x1f,0x14,0x12,0x16,0x12,0x1d,0x3b,0x68,0x88,0x84,0x62,0x43,
+0x40,0x3b,0x2f,0x27,0x2b,0x2c,0x25,0x1f,0x2e,0x21,0x1c,0x24,0x2d,0x32,0x3a,0x43,
+0x32,0x30,0x38,0x4e,0x68,0x75,0x72,0x6a,0x82,0x7e,0x7a,0x76,0x71,0x6f,0x74,0x7b,
+0x40,0x38,0x36,0x3f,0x4b,0x4c,0x46,0x41,0x3d,0x38,0x3d,0x44,0x47,0x4e,0x56,0x57,
+0x5b,0x57,0x52,0x4d,0x4b,0x4c,0x4f,0x51,0x53,0x56,0x59,0x5b,0x5c,0x5b,0x5a,0x59,
+0x59,0x5a,0x5b,0x5d,0x5b,0x58,0x58,0x5a,0x5a,0x57,0x56,0x55,0x54,0x54,0x55,0x57,
+0x58,0x4f,0x48,0x4a,0x4c,0x4a,0x4b,0x4f,0x5b,0x6a,0x6c,0x62,0x61,0x62,0x5d,0x58,
+0x61,0x66,0x65,0x55,0x4e,0x67,0x8c,0xa0,0x8b,0x6e,0x4d,0x3f,0x3d,0x3f,0x41,0x45,
+0x3c,0x37,0x30,0x2b,0x29,0x26,0x23,0x20,0x2e,0x29,0x2c,0x3e,0x61,0x7e,0x74,0x53,
+0x37,0x33,0x38,0x3e,0x3d,0x40,0x48,0x4a,0x5d,0x66,0x61,0x51,0x4e,0x57,0x56,0x4b,
+0x39,0x32,0x28,0x2b,0x45,0x64,0x6e,0x66,0x4e,0x46,0x40,0x42,0x47,0x4b,0x4f,0x52,
+0x54,0x58,0x59,0x54,0x4a,0x44,0x45,0x49,0x44,0x47,0x45,0x3e,0x3a,0x3b,0x3d,0x3c,
+0x36,0x3b,0x44,0x4b,0x4f,0x52,0x59,0x60,0x6e,0x6a,0x62,0x5c,0x5e,0x65,0x69,0x68,
+0x61,0x67,0x6b,0x68,0x62,0x5c,0x58,0x55,0x60,0x64,0x68,0x6b,0x6b,0x6d,0x71,0x75,
+0x75,0x6d,0x67,0x69,0x72,0x77,0x75,0x70,0x6e,0x73,0x79,0x7b,0x7a,0x77,0x75,0x75,
+0x78,0x69,0x58,0x55,0x5f,0x69,0x66,0x5d,0x55,0x5e,0x6c,0x75,0x73,0x6d,0x6f,0x74,
+0x74,0x72,0x72,0x72,0x6b,0x61,0x5a,0x5a,0x57,0x5b,0x5b,0x58,0x55,0x54,0x54,0x53,
+0x54,0x56,0x59,0x5a,0x55,0x4f,0x4f,0x52,0x59,0x58,0x55,0x4f,0x49,0x46,0x46,0x47,
+0x4b,0x4b,0x4b,0x4b,0x49,0x48,0x49,0x4b,0x47,0x47,0x45,0x41,0x3c,0x37,0x34,0x32,
+0x3b,0x42,0x47,0x46,0x46,0x4a,0x4c,0x4c,0x56,0x51,0x47,0x3d,0x3a,0x3d,0x3d,0x3a,
+0x40,0x40,0x39,0x2f,0x28,0x29,0x2a,0x29,0x32,0x36,0x3b,0x3d,0x3d,0x3c,0x3d,0x3e,
+0x3f,0x36,0x45,0x6b,0x81,0x7e,0x7c,0x85,0x87,0x86,0x86,0x89,0x8b,0x8e,0x92,0x95,
+0x94,0x93,0x8e,0x88,0x83,0x84,0x89,0x8f,0x93,0x92,0x92,0x91,0x91,0x93,0x96,0x99,
+0x9c,0x9c,0x9b,0x9b,0x9b,0x9c,0x9d,0x9e,0xa2,0xa1,0xa1,0xa3,0xa5,0xa8,0xa9,0xaa,
+0xaa,0xa8,0xa7,0xa7,0xa6,0xa5,0xa4,0xa5,0xa2,0xa5,0xa7,0xa5,0xa1,0x9e,0x9c,0x9b,
+0x9f,0xa7,0xa8,0xa6,0xa3,0x9c,0x95,0x98,0x9b,0x9e,0x9f,0x9d,0x9a,0x9b,0xa0,0xa3,
+0x9e,0x9b,0x9e,0x99,0x8d,0x91,0x98,0x90,0x88,0x8b,0x8f,0x90,0x90,0x90,0x92,0x95,
+0x9f,0x99,0x8e,0x87,0x85,0x88,0x87,0x83,0x86,0x82,0x7d,0x7c,0x80,0x83,0x7e,0x77,
+0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x74,0x73,0x72,0x70,0x70,0x71,0x72,
+0x72,0x72,0x70,0x6d,0x6d,0x6d,0x6a,0x65,0x62,0x61,0x5e,0x5a,0x56,0x53,0x52,0x52,
+0x53,0x54,0x51,0x4d,0x47,0x49,0x66,0x8f,0xbd,0xc2,0xc6,0xc6,0xc5,0xc2,0xbd,0xb7,
+0xad,0xb0,0xae,0xa2,0x96,0x89,0x79,0x6a,0x66,0x5d,0x57,0x52,0x50,0x55,0x55,0x4b,
+0x48,0x4d,0x50,0x57,0x62,0x63,0x60,0x62,0x61,0x60,0x62,0x67,0x6c,0x70,0x74,0x78,
+0x7f,0x7d,0x7b,0x76,0x68,0x5b,0x5c,0x65,0x62,0x67,0x67,0x5c,0x50,0x49,0x47,0x46,
+0x44,0x42,0x42,0x45,0x4b,0x5c,0x77,0x8e,0x90,0x93,0x93,0x8e,0x88,0x84,0x81,0x7f,
+0x76,0x6d,0x52,0x3d,0x3c,0x3f,0x4c,0x62,0x61,0x6b,0x73,0x75,0x6d,0x56,0x43,0x40,
+0x33,0x34,0x34,0x31,0x2b,0x30,0x43,0x57,0x62,0x62,0x68,0x6a,0x65,0x65,0x6b,0x6e,
+0x7f,0x6d,0x61,0x49,0x3b,0x3a,0x3b,0x3c,0x37,0x3a,0x43,0x4e,0x5a,0x69,0x6e,0x65,
+0x58,0x47,0x38,0x34,0x32,0x30,0x33,0x39,0x37,0x36,0x35,0x33,0x33,0x35,0x35,0x34,
+0x21,0x18,0x16,0x1f,0x27,0x27,0x27,0x2a,0x2c,0x39,0x3e,0x38,0x2e,0x21,0x1a,0x1f,
+0x1b,0x28,0x2c,0x20,0x14,0x11,0x11,0x10,0x17,0x43,0x6c,0x72,0x61,0x4f,0x45,0x3f,
+0x38,0x46,0x3f,0x2c,0x25,0x20,0x1e,0x24,0x20,0x1c,0x26,0x3c,0x44,0x38,0x2d,0x2c,
+0x27,0x39,0x5a,0x78,0x7f,0x74,0x6d,0x6f,0x6b,0x72,0x77,0x70,0x5f,0x57,0x61,0x71,
+0x3c,0x39,0x38,0x3b,0x3f,0x40,0x40,0x40,0x3a,0x3d,0x42,0x48,0x4d,0x51,0x53,0x54,
+0x55,0x53,0x4e,0x4a,0x49,0x4a,0x4c,0x4e,0x4e,0x51,0x55,0x58,0x59,0x58,0x58,0x58,
+0x57,0x56,0x54,0x55,0x57,0x57,0x56,0x54,0x57,0x55,0x52,0x52,0x53,0x55,0x57,0x58,
+0x53,0x52,0x52,0x52,0x51,0x53,0x59,0x61,0x5e,0x63,0x65,0x64,0x64,0x68,0x6f,0x74,
+0x78,0x77,0x73,0x63,0x56,0x63,0x83,0x98,0x84,0x6e,0x56,0x49,0x3f,0x37,0x38,0x40,
+0x48,0x49,0x40,0x31,0x2a,0x2c,0x2b,0x26,0x2e,0x2b,0x2b,0x32,0x3d,0x44,0x41,0x3a,
+0x3a,0x3b,0x3e,0x43,0x4a,0x54,0x62,0x6d,0x82,0x76,0x6c,0x67,0x5f,0x4d,0x3c,0x32,
+0x35,0x3c,0x3b,0x32,0x3d,0x64,0x80,0x7f,0x5d,0x5b,0x71,0x8a,0x84,0x69,0x56,0x51,
+0x4e,0x54,0x58,0x55,0x51,0x51,0x52,0x52,0x52,0x4d,0x48,0x44,0x3f,0x39,0x37,0x37,
+0x36,0x3b,0x3c,0x3b,0x40,0x4b,0x51,0x50,0x50,0x52,0x59,0x63,0x6c,0x6d,0x6b,0x68,
+0x61,0x61,0x64,0x64,0x5e,0x58,0x59,0x5e,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x72,
+0x6c,0x6a,0x64,0x62,0x6d,0x7b,0x79,0x6e,0x67,0x68,0x6f,0x78,0x7c,0x79,0x78,0x7a,
+0x85,0x77,0x64,0x5e,0x6c,0x7c,0x75,0x64,0x57,0x5c,0x64,0x6c,0x71,0x73,0x74,0x74,
+0x77,0x7b,0x7b,0x76,0x71,0x6c,0x65,0x5e,0x5e,0x5e,0x62,0x67,0x69,0x65,0x60,0x5d,
+0x55,0x55,0x58,0x5a,0x55,0x4d,0x4c,0x52,0x53,0x52,0x50,0x4b,0x44,0x3f,0x3d,0x3c,
+0x40,0x41,0x41,0x41,0x43,0x48,0x4c,0x4c,0x49,0x4a,0x48,0x42,0x39,0x33,0x30,0x31,
+0x3b,0x3a,0x39,0x37,0x35,0x34,0x3a,0x40,0x43,0x48,0x4b,0x48,0x42,0x41,0x42,0x43,
+0x43,0x42,0x3e,0x38,0x31,0x2d,0x2d,0x2e,0x30,0x36,0x3b,0x3d,0x40,0x41,0x3e,0x39,
+0x3e,0x51,0x66,0x71,0x79,0x7f,0x80,0x7c,0x85,0x87,0x8a,0x8b,0x8c,0x8d,0x91,0x93,
+0x92,0x8e,0x8b,0x8b,0x8b,0x8a,0x8b,0x8d,0x92,0x91,0x90,0x91,0x94,0x97,0x99,0x9a,
+0x9d,0x9c,0x9a,0x99,0x9b,0x9e,0xa2,0xa5,0xa0,0xa1,0xa4,0xa7,0xa9,0xaa,0xaa,0xa9,
+0xab,0xab,0xab,0xa9,0xa7,0xa5,0xa6,0xa6,0xa4,0xa9,0xaa,0xa6,0xa0,0x9e,0x9e,0x9d,
+0xa1,0xa5,0xa8,0xa6,0xa0,0x9a,0x97,0x96,0x9d,0xa0,0xa4,0xa6,0xa5,0xa4,0xa5,0xa5,
+0x9a,0x99,0x9e,0xa2,0x9e,0x93,0x8e,0x91,0x84,0x8c,0x92,0x92,0x90,0x90,0x93,0x94,
+0x9a,0x96,0x8e,0x87,0x86,0x89,0x8a,0x88,0x87,0x7a,0x74,0x7e,0x87,0x84,0x7e,0x7b,
+0x7b,0x7c,0x7d,0x7c,0x79,0x78,0x78,0x79,0x79,0x78,0x76,0x75,0x75,0x76,0x77,0x77,
+0x70,0x71,0x71,0x71,0x70,0x6f,0x6d,0x6c,0x68,0x65,0x60,0x5d,0x5c,0x5b,0x5a,0x5a,
+0x53,0x4f,0x4d,0x4d,0x4b,0x4a,0x54,0x61,0x94,0xc1,0xd0,0xc4,0xc5,0xc4,0xb5,0xac,
+0xa0,0x8c,0x86,0x7f,0x76,0x70,0x5f,0x56,0x54,0x54,0x54,0x55,0x54,0x4f,0x47,0x42,
+0x43,0x49,0x54,0x5d,0x5f,0x5c,0x5a,0x59,0x56,0x56,0x58,0x5c,0x5e,0x61,0x68,0x6f,
+0x72,0x73,0x71,0x67,0x5a,0x57,0x62,0x6e,0x69,0x66,0x5f,0x57,0x4f,0x4a,0x47,0x47,
+0x45,0x44,0x43,0x43,0x4a,0x58,0x6b,0x78,0x7f,0x8d,0x96,0x92,0x8b,0x87,0x81,0x7a,
+0x78,0x6e,0x5d,0x4b,0x42,0x48,0x57,0x64,0x60,0x65,0x67,0x69,0x70,0x71,0x64,0x51,
+0x42,0x42,0x40,0x3b,0x37,0x3e,0x52,0x65,0x6e,0x77,0x7b,0x69,0x5a,0x6e,0x88,0x8a,
+0x8a,0x83,0x6e,0x5d,0x52,0x3e,0x34,0x3d,0x32,0x3a,0x40,0x43,0x50,0x61,0x63,0x5a,
+0x5a,0x4d,0x3e,0x36,0x32,0x2f,0x30,0x33,0x37,0x3c,0x38,0x2e,0x30,0x3b,0x38,0x2b,
+0x1e,0x19,0x13,0x12,0x19,0x1e,0x1c,0x17,0x1d,0x22,0x24,0x22,0x1d,0x17,0x12,0x0f,
+0x18,0x17,0x19,0x1a,0x14,0x0f,0x15,0x1f,0x3b,0x59,0x6e,0x64,0x4f,0x40,0x34,0x29,
+0x2e,0x40,0x47,0x38,0x28,0x25,0x29,0x29,0x3b,0x49,0x59,0x58,0x42,0x2b,0x2b,0x37,
+0x57,0x6e,0x82,0x85,0x81,0x7b,0x6f,0x62,0x5a,0x50,0x46,0x42,0x45,0x46,0x42,0x3c,
+0x35,0x33,0x33,0x35,0x35,0x33,0x34,0x37,0x36,0x39,0x3e,0x43,0x49,0x4f,0x53,0x55,
+0x55,0x53,0x50,0x4d,0x4b,0x4c,0x4e,0x4f,0x4f,0x52,0x55,0x57,0x58,0x58,0x58,0x59,
+0x53,0x50,0x4e,0x4f,0x52,0x54,0x53,0x52,0x53,0x52,0x51,0x51,0x52,0x53,0x54,0x54,
+0x54,0x53,0x54,0x55,0x53,0x53,0x58,0x5d,0x5f,0x65,0x6d,0x72,0x71,0x6f,0x71,0x76,
+0x82,0x7a,0x72,0x69,0x63,0x6e,0x7e,0x83,0x72,0x68,0x60,0x5a,0x4e,0x3c,0x33,0x34,
+0x38,0x3b,0x38,0x30,0x2c,0x2d,0x2f,0x2d,0x2a,0x2d,0x2f,0x2e,0x2e,0x31,0x35,0x38,
+0x30,0x3c,0x4c,0x58,0x5b,0x5b,0x5c,0x5e,0x60,0x63,0x69,0x69,0x5e,0x4d,0x45,0x45,
+0x54,0x61,0x63,0x4c,0x3c,0x4f,0x6e,0x7a,0x71,0x74,0x87,0x9d,0x9e,0x8e,0x75,0x61,
+0x5b,0x5a,0x54,0x4a,0x43,0x47,0x55,0x62,0x5f,0x54,0x46,0x3c,0x36,0x35,0x3a,0x3f,
+0x43,0x46,0x47,0x45,0x48,0x4f,0x51,0x4e,0x4d,0x50,0x57,0x61,0x67,0x66,0x61,0x5d,
+0x5b,0x5f,0x64,0x65,0x5f,0x5a,0x5d,0x64,0x6e,0x6c,0x6b,0x6a,0x6b,0x6d,0x70,0x71,
+0x63,0x63,0x61,0x64,0x73,0x83,0x84,0x7b,0x62,0x63,0x66,0x6a,0x6e,0x72,0x7a,0x82,
+0x80,0x82,0x7d,0x72,0x6d,0x6c,0x65,0x5a,0x57,0x59,0x5b,0x5d,0x60,0x66,0x6c,0x71,
+0x76,0x78,0x76,0x6f,0x6a,0x6e,0x74,0x78,0x6a,0x68,0x67,0x69,0x68,0x63,0x5f,0x5d,
+0x57,0x5a,0x5b,0x57,0x52,0x4e,0x4c,0x4b,0x55,0x54,0x50,0x4b,0x44,0x3f,0x3e,0x3e,
+0x3c,0x3e,0x3d,0x3c,0x3e,0x42,0x45,0x45,0x41,0x42,0x41,0x3f,0x3c,0x3a,0x3b,0x3c,
+0x3c,0x3c,0x3c,0x3b,0x37,0x33,0x33,0x35,0x3b,0x41,0x45,0x44,0x43,0x46,0x4a,0x4c,
+0x4b,0x4a,0x47,0x42,0x3e,0x3c,0x3d,0x3f,0x3d,0x40,0x45,0x48,0x48,0x48,0x48,0x49,
+0x53,0x62,0x71,0x77,0x7c,0x81,0x82,0x7f,0x83,0x85,0x88,0x8b,0x8e,0x91,0x94,0x96,
+0x90,0x8d,0x8b,0x8b,0x8a,0x89,0x8b,0x8f,0x91,0x90,0x90,0x92,0x96,0x9a,0x9d,0x9e,
+0x9b,0x9d,0x9f,0xa0,0xa0,0x9f,0x9f,0x9f,0xa1,0xa3,0xa6,0xa9,0xab,0xaa,0xa9,0xa8,
+0xaa,0xaa,0xa9,0xa7,0xa6,0xa5,0xa6,0xa7,0xa4,0xa8,0xa9,0xa5,0xa2,0xa2,0xa2,0xa1,
+0xa6,0xa8,0xa9,0xa6,0xa1,0x9e,0x9d,0x9e,0xa1,0xa3,0xa6,0xa8,0xa9,0xa9,0xaa,0xaa,
+0x9e,0x9c,0x9f,0xa4,0xa2,0x99,0x93,0x92,0x8d,0x94,0x9a,0x99,0x96,0x95,0x96,0x96,
+0x97,0x95,0x90,0x8c,0x8b,0x8d,0x8c,0x88,0x80,0x79,0x78,0x81,0x8a,0x89,0x84,0x80,
+0x7c,0x7d,0x7d,0x7c,0x7a,0x79,0x7a,0x7c,0x78,0x77,0x76,0x75,0x75,0x75,0x76,0x77,
+0x73,0x73,0x73,0x73,0x72,0x71,0x6f,0x6e,0x6b,0x69,0x66,0x64,0x61,0x5f,0x5c,0x5a,
+0x58,0x54,0x51,0x50,0x4c,0x4a,0x52,0x5d,0x7e,0xa7,0xc1,0xc1,0xc1,0xbf,0xb5,0xad,
+0x91,0x79,0x72,0x6d,0x69,0x68,0x60,0x5f,0x54,0x54,0x51,0x4a,0x41,0x3c,0x3c,0x3f,
+0x43,0x47,0x4d,0x52,0x55,0x57,0x59,0x5b,0x5e,0x5b,0x58,0x56,0x56,0x58,0x60,0x68,
+0x6b,0x6d,0x6d,0x64,0x59,0x57,0x61,0x6c,0x6b,0x69,0x66,0x61,0x5c,0x59,0x58,0x58,
+0x50,0x4f,0x4d,0x4a,0x4b,0x4f,0x57,0x5d,0x65,0x70,0x79,0x7b,0x7d,0x80,0x7d,0x75,
+0x6f,0x6f,0x6c,0x64,0x5c,0x58,0x5a,0x5d,0x65,0x66,0x65,0x67,0x6f,0x76,0x74,0x6d,
+0x6e,0x6f,0x6f,0x6b,0x63,0x5f,0x65,0x6d,0x83,0x81,0x7b,0x6c,0x6b,0x87,0x99,0x90,
+0x64,0x67,0x76,0x80,0x66,0x34,0x20,0x30,0x3b,0x3d,0x3a,0x36,0x3a,0x48,0x51,0x52,
+0x55,0x4b,0x40,0x39,0x34,0x30,0x2f,0x30,0x2b,0x34,0x3a,0x38,0x35,0x33,0x2e,0x28,
+0x2b,0x1f,0x12,0x0c,0x0a,0x09,0x0a,0x0c,0x0f,0x13,0x16,0x16,0x14,0x11,0x0f,0x0f,
+0x13,0x16,0x19,0x17,0x17,0x24,0x40,0x58,0x78,0x74,0x67,0x54,0x44,0x3b,0x32,0x2b,
+0x2e,0x2d,0x38,0x49,0x4a,0x3f,0x40,0x4d,0x4b,0x49,0x43,0x3a,0x32,0x36,0x48,0x5c,
+0x6e,0x71,0x6d,0x5f,0x51,0x48,0x3e,0x35,0x2d,0x2b,0x2a,0x2c,0x2e,0x2f,0x2d,0x2b,
+0x37,0x37,0x37,0x37,0x33,0x30,0x31,0x35,0x37,0x39,0x3d,0x42,0x47,0x4c,0x51,0x53,
+0x54,0x52,0x50,0x4e,0x4d,0x4d,0x4e,0x4f,0x4f,0x51,0x53,0x54,0x54,0x55,0x56,0x57,
+0x53,0x4e,0x4a,0x4b,0x4f,0x52,0x51,0x4f,0x4e,0x4d,0x4d,0x4f,0x51,0x52,0x52,0x51,
+0x50,0x51,0x52,0x54,0x53,0x51,0x54,0x58,0x63,0x68,0x72,0x7b,0x7e,0x7d,0x7d,0x7e,
+0x7b,0x75,0x71,0x6e,0x6c,0x71,0x74,0x6f,0x6f,0x6c,0x6a,0x63,0x51,0x39,0x2d,0x2d,
+0x2f,0x30,0x31,0x2f,0x2b,0x28,0x28,0x29,0x29,0x2c,0x2f,0x2e,0x2e,0x33,0x3e,0x47,
+0x49,0x58,0x6b,0x73,0x6f,0x65,0x5c,0x57,0x54,0x5b,0x64,0x67,0x5d,0x51,0x4f,0x55,
+0x5c,0x5c,0x55,0x3f,0x30,0x3b,0x4f,0x55,0x67,0x72,0x86,0x96,0x9e,0xa1,0x92,0x7a,
+0x73,0x6b,0x5f,0x50,0x42,0x41,0x50,0x63,0x62,0x57,0x4a,0x40,0x3a,0x38,0x3b,0x3f,
+0x3e,0x42,0x46,0x4a,0x54,0x62,0x69,0x69,0x62,0x5d,0x57,0x54,0x57,0x5c,0x60,0x62,
+0x57,0x5a,0x5e,0x5e,0x5d,0x5f,0x6a,0x76,0x74,0x70,0x6a,0x65,0x63,0x65,0x68,0x6a,
+0x59,0x5b,0x5c,0x61,0x71,0x81,0x83,0x7c,0x6b,0x6c,0x6f,0x71,0x71,0x72,0x77,0x7e,
+0x81,0x85,0x7f,0x70,0x68,0x6f,0x7a,0x7f,0x78,0x75,0x6e,0x68,0x65,0x6b,0x75,0x7e,
+0x7a,0x78,0x71,0x69,0x68,0x6e,0x77,0x7c,0x6c,0x68,0x64,0x63,0x61,0x5c,0x5a,0x5a,
+0x59,0x60,0x61,0x5c,0x5b,0x5f,0x5c,0x56,0x55,0x54,0x50,0x49,0x42,0x3e,0x3d,0x3e,
+0x3c,0x3d,0x3c,0x3b,0x3c,0x3f,0x41,0x41,0x40,0x3f,0x3e,0x3c,0x3b,0x3b,0x3b,0x3c,
+0x3e,0x41,0x47,0x4d,0x4e,0x48,0x43,0x41,0x40,0x43,0x43,0x40,0x3e,0x41,0x44,0x45,
+0x48,0x47,0x45,0x40,0x3c,0x3c,0x3f,0x42,0x43,0x44,0x48,0x4b,0x49,0x47,0x4c,0x55,
+0x65,0x6f,0x78,0x7a,0x7b,0x80,0x82,0x81,0x84,0x85,0x87,0x8b,0x8f,0x93,0x94,0x95,
+0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,0x8d,0x93,0x92,0x92,0x92,0x94,0x98,0x9c,0x9f,0xa0,
+0x9d,0xa0,0xa3,0xa4,0xa3,0xa1,0xa0,0xa0,0xa4,0xa5,0xa6,0xa8,0xa9,0xa9,0xaa,0xaa,
+0xac,0xab,0xaa,0xa9,0xa8,0xa8,0xab,0xad,0xaa,0xac,0xac,0xaa,0xa9,0xab,0xac,0xaa,
+0xac,0xac,0xaa,0xa6,0xa3,0xa3,0xa5,0xa8,0xa8,0xa8,0xa9,0xac,0xae,0xb0,0xb0,0xaf,
+0xa0,0x9d,0x9e,0xa4,0xa5,0x9d,0x96,0x93,0x93,0x99,0x9e,0x9c,0x98,0x96,0x95,0x93,
+0x90,0x90,0x8e,0x8d,0x8d,0x8d,0x8a,0x85,0x7b,0x7c,0x80,0x86,0x8b,0x8c,0x88,0x84,
+0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7e,0x80,0x7a,0x79,0x78,0x77,0x77,0x77,0x77,0x78,
+0x76,0x76,0x76,0x75,0x74,0x73,0x72,0x71,0x6c,0x6b,0x6a,0x69,0x68,0x65,0x61,0x5e,
+0x5e,0x5a,0x57,0x55,0x50,0x4c,0x50,0x57,0x5e,0x82,0xad,0xc2,0xc2,0xbc,0xb2,0xa5,
+0x82,0x6a,0x64,0x63,0x62,0x63,0x60,0x65,0x60,0x5c,0x52,0x45,0x39,0x35,0x39,0x3e,
+0x41,0x44,0x48,0x4c,0x4f,0x53,0x56,0x58,0x62,0x5f,0x5b,0x58,0x56,0x56,0x5c,0x62,
+0x61,0x64,0x63,0x5a,0x4f,0x4c,0x54,0x5d,0x60,0x61,0x63,0x65,0x66,0x67,0x6a,0x6b,
+0x66,0x67,0x67,0x68,0x68,0x68,0x68,0x68,0x6d,0x6f,0x70,0x71,0x77,0x7d,0x7c,0x76,
+0x76,0x76,0x73,0x6e,0x67,0x62,0x60,0x60,0x61,0x5d,0x5a,0x5a,0x5f,0x66,0x6d,0x71,
+0x6e,0x72,0x79,0x7d,0x7b,0x78,0x79,0x7c,0x77,0x84,0x8b,0x83,0x80,0x8a,0x86,0x70,
+0x67,0x6f,0x73,0x62,0x47,0x38,0x34,0x2f,0x2c,0x34,0x38,0x33,0x2b,0x2b,0x38,0x45,
+0x45,0x41,0x3d,0x3a,0x35,0x2f,0x2b,0x2b,0x33,0x2f,0x2d,0x2d,0x2c,0x2b,0x2b,0x2d,
+0x1e,0x13,0x0d,0x0f,0x13,0x12,0x12,0x14,0x10,0x12,0x15,0x16,0x15,0x15,0x17,0x19,
+0x18,0x17,0x18,0x23,0x39,0x55,0x69,0x72,0x76,0x67,0x50,0x38,0x27,0x23,0x2e,0x3b,
+0x4a,0x4d,0x45,0x36,0x35,0x43,0x4c,0x4a,0x4d,0x45,0x38,0x2e,0x30,0x40,0x53,0x5e,
+0x52,0x52,0x53,0x54,0x52,0x4b,0x41,0x3a,0x37,0x3b,0x3b,0x34,0x2c,0x2f,0x3d,0x4a,
+0x40,0x3e,0x3e,0x3d,0x3a,0x37,0x37,0x39,0x38,0x3a,0x3d,0x42,0x46,0x49,0x4b,0x4d,
+0x4f,0x4e,0x4d,0x4c,0x4c,0x4c,0x4d,0x4d,0x50,0x51,0x52,0x51,0x51,0x51,0x52,0x53,
+0x54,0x4f,0x49,0x49,0x4d,0x50,0x50,0x4e,0x4b,0x4b,0x4b,0x4c,0x4f,0x51,0x51,0x51,
+0x4f,0x4f,0x50,0x52,0x51,0x50,0x52,0x55,0x61,0x65,0x68,0x6e,0x79,0x83,0x81,0x79,
+0x74,0x76,0x7d,0x7c,0x75,0x74,0x74,0x6e,0x76,0x77,0x77,0x6f,0x59,0x40,0x34,0x35,
+0x37,0x35,0x36,0x37,0x34,0x2f,0x2c,0x2d,0x31,0x2d,0x2c,0x32,0x3d,0x47,0x51,0x57,
+0x5c,0x66,0x71,0x76,0x78,0x76,0x73,0x71,0x65,0x5f,0x5b,0x5a,0x56,0x51,0x51,0x54,
+0x54,0x48,0x3c,0x34,0x35,0x44,0x4d,0x49,0x4e,0x5d,0x6f,0x78,0x7e,0x8a,0x8a,0x7d,
+0x76,0x6f,0x67,0x5f,0x51,0x46,0x49,0x55,0x5b,0x51,0x45,0x3e,0x3b,0x3b,0x3d,0x40,
+0x45,0x44,0x42,0x42,0x48,0x52,0x58,0x58,0x5e,0x60,0x62,0x63,0x65,0x66,0x62,0x5e,
+0x56,0x5b,0x60,0x64,0x66,0x69,0x6f,0x74,0x70,0x6b,0x65,0x5f,0x5d,0x5e,0x61,0x63,
+0x61,0x62,0x63,0x66,0x71,0x7b,0x7b,0x74,0x6d,0x74,0x7e,0x86,0x87,0x81,0x7b,0x77,
+0x74,0x77,0x76,0x72,0x75,0x80,0x88,0x89,0x89,0x86,0x7e,0x74,0x6e,0x6f,0x76,0x7d,
+0x77,0x72,0x6d,0x6b,0x6d,0x6f,0x6c,0x67,0x64,0x60,0x5e,0x5d,0x5c,0x59,0x59,0x5b,
+0x57,0x5b,0x5e,0x5f,0x62,0x64,0x60,0x59,0x56,0x55,0x52,0x4b,0x43,0x3f,0x40,0x41,
+0x3f,0x40,0x40,0x3f,0x40,0x43,0x45,0x44,0x44,0x42,0x40,0x3d,0x3b,0x39,0x36,0x34,
+0x37,0x38,0x3c,0x44,0x4a,0x4d,0x50,0x52,0x4c,0x4b,0x46,0x3f,0x3c,0x3d,0x3d,0x3c,
+0x41,0x3f,0x3c,0x36,0x32,0x32,0x35,0x39,0x42,0x40,0x43,0x46,0x43,0x40,0x4b,0x5b,
+0x6c,0x73,0x78,0x79,0x7b,0x80,0x83,0x84,0x89,0x88,0x89,0x8c,0x90,0x92,0x91,0x8f,
+0x8d,0x8d,0x8d,0x8d,0x8b,0x8b,0x90,0x97,0x95,0x95,0x95,0x96,0x9a,0x9d,0x9e,0x9f,
+0xa2,0xa3,0xa3,0xa1,0x9f,0xa0,0xa4,0xa7,0xa4,0xa3,0xa3,0xa3,0xa5,0xa8,0xac,0xae,
+0xac,0xac,0xab,0xaa,0xa9,0xab,0xae,0xb1,0xb0,0xb0,0xaf,0xad,0xaf,0xb2,0xb3,0xb0,
+0xae,0xad,0xab,0xa8,0xa7,0xa8,0xab,0xae,0xad,0xad,0xae,0xb1,0xb4,0xb5,0xb3,0xb0,
+0xa3,0xa2,0xa3,0xa7,0xa7,0xa1,0x9b,0x98,0x97,0x9c,0x9f,0x9d,0x99,0x96,0x93,0x90,
+0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x88,0x82,0x7c,0x82,0x88,0x89,0x89,0x8a,0x88,0x85,
+0x82,0x81,0x7f,0x7d,0x7d,0x7f,0x81,0x83,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x73,0x6c,0x6b,0x6b,0x6b,0x6b,0x6a,0x68,0x66,
+0x64,0x60,0x5d,0x5a,0x55,0x50,0x50,0x54,0x54,0x66,0x90,0xaf,0xaf,0xac,0xa4,0x92,
+0x79,0x62,0x60,0x62,0x60,0x5d,0x59,0x5e,0x59,0x53,0x48,0x3e,0x38,0x36,0x37,0x39,
+0x3d,0x43,0x49,0x4e,0x51,0x53,0x53,0x51,0x58,0x59,0x5b,0x5e,0x5c,0x5a,0x5c,0x5f,
+0x62,0x65,0x63,0x59,0x50,0x4f,0x56,0x5d,0x68,0x69,0x68,0x66,0x62,0x5e,0x5c,0x5b,
+0x63,0x65,0x68,0x6d,0x70,0x72,0x71,0x70,0x6a,0x67,0x65,0x68,0x72,0x7c,0x82,0x82,
+0x80,0x7a,0x73,0x6f,0x6e,0x6e,0x6d,0x6b,0x6b,0x66,0x62,0x60,0x5c,0x5a,0x5d,0x62,
+0x64,0x68,0x6f,0x73,0x71,0x6f,0x72,0x77,0x78,0x82,0x81,0x75,0x74,0x81,0x7f,0x6f,
+0x67,0x5c,0x6b,0x85,0x83,0x6e,0x55,0x3f,0x46,0x38,0x2e,0x2d,0x2d,0x28,0x24,0x24,
+0x2e,0x30,0x32,0x33,0x2f,0x2a,0x25,0x22,0x25,0x25,0x27,0x28,0x25,0x1d,0x17,0x15,
+0x11,0x12,0x13,0x11,0x0f,0x10,0x14,0x17,0x17,0x1a,0x1f,0x23,0x22,0x1e,0x1d,0x1e,
+0x25,0x33,0x41,0x47,0x4e,0x5c,0x6a,0x71,0x5d,0x49,0x33,0x2f,0x3a,0x48,0x4e,0x4f,
+0x4d,0x51,0x5a,0x60,0x5a,0x4d,0x42,0x3e,0x39,0x3d,0x3e,0x3e,0x48,0x59,0x63,0x62,
+0x5d,0x52,0x49,0x47,0x44,0x3d,0x36,0x33,0x2e,0x30,0x31,0x33,0x3a,0x4a,0x5e,0x6c,
+0x40,0x3c,0x3a,0x3a,0x3b,0x38,0x37,0x37,0x33,0x36,0x3b,0x40,0x45,0x48,0x49,0x4a,
+0x4b,0x4b,0x4a,0x4a,0x4b,0x4b,0x4c,0x4d,0x53,0x53,0x53,0x52,0x50,0x50,0x51,0x52,
+0x51,0x4c,0x48,0x48,0x4c,0x50,0x51,0x50,0x4d,0x4c,0x4b,0x4b,0x4d,0x4e,0x4f,0x4e,
+0x52,0x50,0x4f,0x50,0x4f,0x4e,0x4f,0x52,0x57,0x5c,0x5c,0x5f,0x73,0x89,0x85,0x72,
+0x6c,0x70,0x79,0x7a,0x74,0x73,0x74,0x6e,0x6d,0x71,0x76,0x71,0x5d,0x45,0x37,0x33,
+0x35,0x34,0x35,0x38,0x38,0x34,0x32,0x32,0x37,0x31,0x2f,0x38,0x45,0x4f,0x56,0x5a,
+0x65,0x67,0x69,0x6b,0x71,0x77,0x78,0x74,0x6a,0x5d,0x50,0x4c,0x4b,0x4a,0x4b,0x4f,
+0x4b,0x46,0x42,0x3e,0x3e,0x48,0x51,0x50,0x47,0x4e,0x5c,0x67,0x6c,0x74,0x73,0x68,
+0x63,0x5d,0x5b,0x5e,0x5a,0x51,0x4d,0x51,0x52,0x46,0x39,0x33,0x33,0x38,0x40,0x46,
+0x50,0x4e,0x4a,0x47,0x47,0x48,0x47,0x45,0x4a,0x52,0x5b,0x61,0x64,0x63,0x5c,0x54,
+0x56,0x5c,0x66,0x6e,0x72,0x6f,0x67,0x5f,0x61,0x5e,0x5b,0x59,0x58,0x5a,0x5c,0x5e,
+0x5d,0x5d,0x5b,0x5b,0x60,0x65,0x62,0x5b,0x58,0x61,0x71,0x82,0x8d,0x8e,0x86,0x7d,
+0x7b,0x78,0x73,0x70,0x74,0x7a,0x79,0x74,0x82,0x84,0x86,0x82,0x7b,0x72,0x6d,0x6b,
+0x6b,0x6d,0x72,0x74,0x72,0x6b,0x64,0x5f,0x5e,0x5c,0x5c,0x5d,0x5c,0x5b,0x5b,0x5e,
+0x5e,0x5c,0x5f,0x65,0x66,0x60,0x58,0x55,0x55,0x56,0x55,0x4f,0x48,0x43,0x44,0x46,
+0x41,0x43,0x44,0x43,0x44,0x48,0x4a,0x49,0x44,0x45,0x46,0x47,0x48,0x48,0x45,0x44,
+0x3b,0x35,0x31,0x31,0x36,0x3d,0x47,0x4e,0x51,0x4e,0x48,0x42,0x41,0x43,0x42,0x3f,
+0x41,0x3f,0x3a,0x34,0x30,0x31,0x35,0x39,0x42,0x40,0x41,0x44,0x42,0x42,0x51,0x63,
+0x70,0x75,0x7a,0x7c,0x7e,0x82,0x86,0x87,0x8c,0x8b,0x8c,0x8e,0x90,0x90,0x8e,0x8b,
+0x8d,0x8d,0x8e,0x8f,0x8e,0x8e,0x93,0x99,0x98,0x97,0x97,0x99,0x9c,0x9f,0xa0,0xa1,
+0xa3,0xa2,0xa0,0x9d,0x9b,0x9d,0xa2,0xa6,0x9f,0x9f,0xa1,0xa3,0xa6,0xaa,0xad,0xae,
+0xaa,0xaa,0xa9,0xa9,0xa9,0xab,0xaf,0xb2,0xb3,0xb2,0xb0,0xae,0xb1,0xb4,0xb4,0xb1,
+0xb0,0xb0,0xaf,0xae,0xad,0xae,0xb0,0xb2,0xb0,0xb1,0xb3,0xb6,0xb9,0xb7,0xb3,0xaf,
+0xa9,0xaa,0xad,0xae,0xab,0xa6,0xa3,0xa3,0x9e,0xa1,0xa2,0xa0,0x9d,0x9b,0x97,0x92,
+0x90,0x91,0x90,0x8e,0x8f,0x8f,0x8b,0x86,0x81,0x87,0x8a,0x89,0x87,0x87,0x87,0x86,
+0x85,0x83,0x82,0x81,0x81,0x82,0x83,0x84,0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,
+0x7b,0x7a,0x78,0x76,0x75,0x74,0x74,0x74,0x70,0x6e,0x6c,0x6b,0x6c,0x6d,0x6d,0x6d,
+0x67,0x64,0x61,0x5e,0x5a,0x56,0x54,0x54,0x5b,0x5a,0x73,0x8c,0x92,0x9b,0x9a,0x84,
+0x70,0x5c,0x5b,0x5b,0x56,0x52,0x4d,0x51,0x4c,0x4e,0x4d,0x49,0x41,0x3c,0x3b,0x3d,
+0x3d,0x43,0x4a,0x4d,0x51,0x53,0x50,0x4c,0x4c,0x4f,0x55,0x5a,0x5b,0x59,0x59,0x5c,
+0x5e,0x61,0x5e,0x55,0x4e,0x50,0x58,0x5d,0x64,0x65,0x64,0x61,0x5c,0x57,0x53,0x52,
+0x57,0x58,0x59,0x5b,0x5e,0x60,0x5f,0x5f,0x5c,0x5a,0x5a,0x5e,0x63,0x68,0x6b,0x6d,
+0x71,0x6c,0x69,0x6e,0x77,0x7c,0x78,0x72,0x75,0x73,0x71,0x6d,0x63,0x56,0x4f,0x4e,
+0x4d,0x53,0x5b,0x5f,0x5d,0x5d,0x64,0x6c,0x7b,0x78,0x6b,0x64,0x75,0x8c,0x8e,0x84,
+0x77,0x6a,0x78,0x98,0xa8,0xa4,0x93,0x7d,0x66,0x50,0x3b,0x2e,0x23,0x19,0x18,0x1f,
+0x1f,0x23,0x26,0x27,0x25,0x22,0x1d,0x1a,0x16,0x1c,0x20,0x1f,0x1d,0x1e,0x1f,0x20,
+0x1b,0x16,0x10,0x13,0x25,0x39,0x40,0x3b,0x30,0x29,0x20,0x1b,0x1b,0x21,0x2e,0x3a,
+0x55,0x4e,0x47,0x4b,0x59,0x62,0x59,0x48,0x38,0x47,0x52,0x50,0x4e,0x57,0x65,0x6d,
+0x71,0x69,0x5b,0x4d,0x44,0x41,0x3c,0x38,0x43,0x4c,0x4e,0x46,0x43,0x45,0x44,0x3e,
+0x44,0x3a,0x34,0x37,0x39,0x34,0x30,0x30,0x2b,0x25,0x23,0x2f,0x40,0x49,0x43,0x3a,
+0x39,0x35,0x32,0x34,0x36,0x35,0x33,0x32,0x2f,0x32,0x37,0x3d,0x42,0x45,0x47,0x48,
+0x47,0x47,0x47,0x47,0x48,0x49,0x4b,0x4c,0x4e,0x4e,0x4e,0x4d,0x4b,0x4a,0x4b,0x4c,
+0x48,0x46,0x44,0x45,0x49,0x4d,0x50,0x51,0x4d,0x4c,0x4b,0x4b,0x4b,0x4b,0x4a,0x49,
+0x4f,0x4d,0x4b,0x4b,0x4b,0x49,0x4a,0x4d,0x53,0x5e,0x65,0x6b,0x82,0x9a,0x98,0x85,
+0x6a,0x67,0x69,0x6d,0x71,0x7a,0x7e,0x77,0x76,0x75,0x72,0x6a,0x5a,0x47,0x3a,0x35,
+0x39,0x3d,0x40,0x3e,0x39,0x34,0x32,0x31,0x34,0x33,0x38,0x40,0x47,0x4d,0x57,0x62,
+0x6c,0x6c,0x6a,0x6a,0x6f,0x72,0x6b,0x61,0x59,0x52,0x4c,0x4a,0x48,0x47,0x4d,0x54,
+0x4e,0x4c,0x4a,0x43,0x3d,0x43,0x47,0x42,0x43,0x42,0x4d,0x62,0x74,0x7d,0x76,0x64,
+0x5a,0x51,0x4c,0x4f,0x54,0x55,0x55,0x56,0x46,0x3e,0x36,0x35,0x39,0x3d,0x41,0x45,
+0x46,0x49,0x4f,0x53,0x56,0x56,0x55,0x53,0x53,0x5a,0x5f,0x60,0x60,0x60,0x5b,0x54,
+0x53,0x56,0x5b,0x62,0x69,0x6b,0x65,0x5d,0x5d,0x5b,0x5a,0x58,0x57,0x57,0x57,0x57,
+0x50,0x4f,0x4c,0x4b,0x4c,0x4e,0x4a,0x45,0x46,0x4c,0x58,0x68,0x7b,0x87,0x87,0x82,
+0x82,0x81,0x7b,0x73,0x70,0x71,0x72,0x70,0x7f,0x86,0x8f,0x92,0x8c,0x7d,0x6e,0x63,
+0x6f,0x79,0x83,0x81,0x73,0x65,0x62,0x66,0x5e,0x5d,0x5d,0x5d,0x5c,0x59,0x5a,0x5d,
+0x62,0x5e,0x5f,0x65,0x63,0x59,0x51,0x50,0x4e,0x51,0x52,0x4f,0x48,0x43,0x43,0x45,
+0x41,0x43,0x44,0x44,0x46,0x4a,0x4c,0x4b,0x45,0x48,0x4e,0x54,0x5a,0x5e,0x60,0x61,
+0x55,0x53,0x54,0x55,0x53,0x4f,0x4d,0x4e,0x53,0x4f,0x49,0x45,0x47,0x48,0x45,0x40,
+0x40,0x3e,0x39,0x34,0x31,0x33,0x39,0x3e,0x44,0x41,0x41,0x43,0x45,0x4b,0x5a,0x6a,
+0x73,0x76,0x7a,0x7d,0x7f,0x82,0x85,0x87,0x8b,0x8b,0x8d,0x8f,0x90,0x8f,0x8c,0x8a,
+0x8c,0x8c,0x8e,0x90,0x91,0x91,0x94,0x99,0x98,0x98,0x99,0x9c,0x9f,0xa2,0xa4,0xa4,
+0x9f,0x9e,0x9c,0x9b,0x9b,0x9c,0x9d,0x9d,0x9a,0x9e,0xa3,0xa9,0xac,0xac,0xab,0xaa,
+0xab,0xab,0xac,0xac,0xac,0xaf,0xb2,0xb5,0xb6,0xb6,0xb4,0xb3,0xb4,0xb7,0xb6,0xb3,
+0xb3,0xb3,0xb3,0xb3,0xb4,0xb4,0xb5,0xb5,0xb2,0xb3,0xb6,0xb9,0xb9,0xb7,0xb3,0xb0,
+0xad,0xb0,0xb1,0xaf,0xab,0xa7,0xa7,0xa7,0xa3,0xa5,0xa4,0xa2,0xa0,0x9e,0x9a,0x95,
+0x93,0x93,0x90,0x8f,0x8f,0x90,0x8e,0x8a,0x86,0x88,0x89,0x89,0x88,0x88,0x89,0x8a,
+0x87,0x86,0x85,0x85,0x85,0x85,0x84,0x83,0x80,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,
+0x7c,0x7a,0x78,0x76,0x74,0x74,0x74,0x74,0x77,0x73,0x6f,0x6c,0x6c,0x6d,0x6f,0x70,
+0x69,0x67,0x64,0x61,0x5f,0x5c,0x59,0x57,0x58,0x53,0x65,0x7d,0x8f,0xa4,0xa2,0x84,
+0x66,0x55,0x53,0x4f,0x49,0x4b,0x49,0x4c,0x4c,0x58,0x60,0x5b,0x4a,0x3d,0x3b,0x3f,
+0x40,0x45,0x47,0x48,0x4c,0x51,0x51,0x4d,0x4a,0x4b,0x4e,0x50,0x50,0x50,0x53,0x57,
+0x5b,0x5d,0x59,0x4e,0x46,0x48,0x4c,0x4f,0x4e,0x51,0x54,0x56,0x56,0x56,0x56,0x56,
+0x58,0x58,0x57,0x57,0x57,0x57,0x58,0x59,0x5a,0x5a,0x5e,0x64,0x63,0x5b,0x54,0x53,
+0x54,0x50,0x50,0x59,0x68,0x73,0x75,0x73,0x73,0x73,0x72,0x6d,0x65,0x5a,0x50,0x4a,
+0x3b,0x44,0x50,0x58,0x5a,0x5b,0x62,0x6b,0x6e,0x75,0x74,0x74,0x7f,0x85,0x82,0x7f,
+0x7b,0x8a,0x99,0x9d,0x9e,0xa0,0x90,0x76,0x5d,0x50,0x44,0x3d,0x33,0x28,0x29,0x31,
+0x28,0x27,0x23,0x1e,0x1a,0x19,0x18,0x16,0x17,0x15,0x18,0x26,0x3f,0x53,0x57,0x52,
+0x46,0x4f,0x53,0x4e,0x49,0x4c,0x51,0x53,0x4a,0x43,0x3e,0x3d,0x3d,0x40,0x4c,0x57,
+0x45,0x4c,0x51,0x4f,0x4b,0x47,0x44,0x41,0x46,0x4e,0x54,0x55,0x59,0x5d,0x59,0x50,
+0x43,0x4c,0x47,0x39,0x3e,0x4b,0x40,0x26,0x26,0x33,0x3e,0x3d,0x3a,0x3b,0x3b,0x37,
+0x33,0x31,0x32,0x34,0x31,0x28,0x21,0x20,0x23,0x26,0x2e,0x3b,0x45,0x47,0x41,0x39,
+0x34,0x31,0x30,0x32,0x32,0x31,0x31,0x32,0x31,0x31,0x31,0x33,0x34,0x36,0x37,0x38,
+0x36,0x36,0x35,0x35,0x37,0x39,0x3b,0x3d,0x3a,0x3b,0x3c,0x3b,0x3b,0x3a,0x3b,0x3c,
+0x39,0x39,0x39,0x39,0x3b,0x3e,0x42,0x44,0x45,0x46,0x48,0x4a,0x4c,0x4b,0x49,0x46,
+0x46,0x45,0x46,0x49,0x4b,0x4b,0x4b,0x4d,0x5e,0x6a,0x76,0x7e,0x89,0x94,0x96,0x91,
+0x7e,0x73,0x6c,0x6b,0x70,0x7e,0x88,0x85,0x82,0x7c,0x73,0x6c,0x62,0x54,0x46,0x3e,
+0x4a,0x57,0x5f,0x56,0x46,0x3d,0x3a,0x39,0x37,0x38,0x3e,0x46,0x4a,0x4e,0x5a,0x68,
+0x65,0x68,0x69,0x6a,0x6f,0x72,0x6b,0x5f,0x4d,0x49,0x48,0x4b,0x4c,0x4c,0x51,0x57,
+0x5a,0x57,0x53,0x4b,0x4a,0x52,0x53,0x47,0x47,0x42,0x47,0x59,0x71,0x85,0x83,0x71,
+0x5e,0x53,0x48,0x46,0x4b,0x51,0x54,0x53,0x3f,0x3a,0x37,0x3b,0x3f,0x40,0x3f,0x3e,
+0x40,0x44,0x4b,0x50,0x50,0x4e,0x4d,0x4e,0x5a,0x66,0x71,0x75,0x74,0x6f,0x63,0x57,
+0x54,0x54,0x54,0x58,0x60,0x69,0x6a,0x67,0x62,0x62,0x61,0x60,0x60,0x5f,0x5f,0x5f,
+0x5d,0x5a,0x56,0x53,0x52,0x51,0x4d,0x49,0x4b,0x4f,0x55,0x5f,0x6f,0x7c,0x80,0x7d,
+0x72,0x78,0x7e,0x7f,0x7c,0x78,0x73,0x6f,0x74,0x79,0x81,0x88,0x8a,0x84,0x7a,0x73,
+0x85,0x8b,0x90,0x8a,0x78,0x68,0x67,0x6e,0x6b,0x69,0x67,0x66,0x63,0x60,0x61,0x65,
+0x65,0x63,0x60,0x5d,0x57,0x4f,0x48,0x45,0x45,0x4a,0x4f,0x4e,0x48,0x42,0x41,0x42,
+0x42,0x44,0x46,0x45,0x47,0x4b,0x4d,0x4c,0x48,0x4b,0x4f,0x51,0x52,0x55,0x58,0x5b,
+0x5a,0x5f,0x68,0x6f,0x6d,0x65,0x5e,0x5c,0x5a,0x56,0x4f,0x4c,0x4d,0x4d,0x47,0x3f,
+0x3f,0x3c,0x37,0x32,0x2f,0x32,0x39,0x3f,0x44,0x42,0x41,0x42,0x48,0x54,0x63,0x6d,
+0x75,0x76,0x78,0x7c,0x7f,0x81,0x85,0x87,0x8a,0x8c,0x8f,0x90,0x8f,0x8c,0x8a,0x89,
+0x8b,0x8a,0x8c,0x90,0x92,0x92,0x94,0x96,0x99,0x98,0x99,0x9c,0x9f,0xa1,0xa2,0xa3,
+0x9c,0x99,0x98,0x99,0x9d,0x9f,0x9f,0x9d,0xa1,0xa4,0xa8,0xab,0xad,0xad,0xab,0xaa,
+0xae,0xaf,0xb0,0xb0,0xb1,0xb3,0xb6,0xb8,0xb8,0xb9,0xb9,0xb7,0xb8,0xb9,0xb8,0xb6,
+0xb6,0xb5,0xb5,0xb5,0xb6,0xb6,0xb6,0xb6,0xb3,0xb5,0xb7,0xb8,0xb7,0xb6,0xb5,0xb5,
+0xb2,0xb2,0xb0,0xad,0xaa,0xa9,0xa8,0xa7,0xa8,0xa8,0xa6,0xa3,0xa1,0xa0,0x9c,0x97,
+0x93,0x93,0x92,0x90,0x92,0x94,0x92,0x8e,0x8e,0x8a,0x8a,0x8d,0x8e,0x8a,0x89,0x8b,
+0x89,0x89,0x89,0x89,0x8a,0x88,0x84,0x81,0x82,0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7d,
+0x7d,0x7b,0x78,0x76,0x74,0x74,0x74,0x75,0x77,0x73,0x6f,0x6c,0x6c,0x6d,0x6f,0x70,
+0x6c,0x69,0x66,0x63,0x62,0x60,0x5c,0x59,0x53,0x53,0x5e,0x6f,0x89,0xa7,0xa1,0x7f,
+0x5a,0x4f,0x4f,0x47,0x43,0x4a,0x4b,0x4d,0x49,0x52,0x5a,0x57,0x4b,0x3f,0x3b,0x3b,
+0x41,0x45,0x46,0x46,0x4b,0x53,0x54,0x50,0x49,0x48,0x47,0x46,0x45,0x44,0x48,0x4d,
+0x5a,0x5e,0x5b,0x50,0x48,0x49,0x4a,0x48,0x4c,0x4e,0x50,0x50,0x4f,0x4d,0x4d,0x4c,
+0x52,0x54,0x56,0x56,0x55,0x55,0x57,0x58,0x53,0x54,0x5d,0x69,0x6b,0x61,0x57,0x54,
+0x47,0x43,0x41,0x46,0x51,0x5f,0x69,0x6e,0x72,0x71,0x6c,0x67,0x66,0x6a,0x68,0x63,
+0x5a,0x5f,0x66,0x6a,0x67,0x62,0x62,0x65,0x72,0x7d,0x7d,0x77,0x72,0x6a,0x6d,0x7d,
+0x93,0x8a,0x84,0x87,0x83,0x71,0x66,0x6c,0x5c,0x50,0x4f,0x61,0x71,0x6d,0x5a,0x4b,
+0x46,0x3d,0x2b,0x1a,0x13,0x14,0x16,0x15,0x13,0x1a,0x33,0x5a,0x76,0x75,0x60,0x4d,
+0x3d,0x2d,0x29,0x3c,0x50,0x4d,0x37,0x24,0x30,0x36,0x45,0x51,0x4e,0x40,0x34,0x31,
+0x3e,0x3e,0x42,0x48,0x4a,0x45,0x3e,0x39,0x4f,0x58,0x5f,0x5b,0x4f,0x47,0x47,0x4b,
+0x4c,0x3f,0x3f,0x4b,0x46,0x2e,0x20,0x23,0x2f,0x38,0x41,0x42,0x3f,0x3b,0x35,0x2f,
+0x2e,0x30,0x31,0x30,0x2d,0x2d,0x35,0x3d,0x41,0x44,0x46,0x43,0x3a,0x32,0x2e,0x2d,
+0x31,0x31,0x32,0x32,0x30,0x2e,0x30,0x33,0x32,0x2f,0x2a,0x25,0x21,0x20,0x20,0x20,
+0x1f,0x1e,0x1d,0x1e,0x1f,0x22,0x25,0x26,0x25,0x26,0x28,0x29,0x29,0x29,0x2a,0x2b,
+0x2a,0x2b,0x2b,0x2a,0x29,0x2a,0x2d,0x30,0x3a,0x3d,0x43,0x4a,0x4d,0x4d,0x4a,0x47,
+0x40,0x41,0x45,0x4d,0x52,0x53,0x54,0x55,0x69,0x72,0x7d,0x7f,0x78,0x72,0x77,0x7f,
+0x8d,0x80,0x72,0x66,0x60,0x6a,0x78,0x7a,0x69,0x67,0x67,0x69,0x67,0x59,0x45,0x36,
+0x4a,0x5f,0x6b,0x5f,0x49,0x3d,0x3b,0x3b,0x42,0x3e,0x3f,0x46,0x4c,0x50,0x59,0x63,
+0x6c,0x6e,0x6b,0x66,0x65,0x66,0x5f,0x55,0x4e,0x46,0x42,0x47,0x4e,0x50,0x51,0x52,
+0x58,0x5c,0x5e,0x57,0x55,0x63,0x6b,0x63,0x59,0x53,0x4f,0x50,0x5f,0x79,0x83,0x78,
+0x5b,0x53,0x48,0x43,0x46,0x4d,0x4e,0x4b,0x43,0x3a,0x32,0x32,0x35,0x39,0x3c,0x3e,
+0x45,0x47,0x4a,0x4b,0x48,0x46,0x49,0x4d,0x51,0x59,0x5e,0x5e,0x60,0x66,0x66,0x61,
+0x56,0x5c,0x61,0x65,0x6a,0x6e,0x6a,0x64,0x64,0x65,0x66,0x68,0x6c,0x6f,0x72,0x73,
+0x6b,0x68,0x62,0x5d,0x59,0x56,0x51,0x4d,0x57,0x5c,0x62,0x69,0x73,0x7c,0x7e,0x7a,
+0x78,0x75,0x6f,0x6c,0x6d,0x71,0x74,0x75,0x65,0x67,0x6b,0x75,0x82,0x8d,0x93,0x95,
+0x95,0x93,0x90,0x8b,0x81,0x76,0x71,0x73,0x7f,0x7c,0x79,0x76,0x73,0x70,0x72,0x76,
+0x7d,0x7d,0x74,0x65,0x59,0x54,0x4c,0x44,0x43,0x4a,0x51,0x51,0x4c,0x46,0x44,0x44,
+0x45,0x47,0x48,0x48,0x49,0x4d,0x4e,0x4d,0x4b,0x4a,0x47,0x41,0x3a,0x36,0x37,0x39,
+0x3f,0x43,0x4a,0x51,0x55,0x58,0x5e,0x64,0x61,0x5d,0x57,0x54,0x56,0x56,0x4f,0x45,
+0x42,0x3f,0x3a,0x33,0x31,0x33,0x3a,0x40,0x44,0x43,0x41,0x42,0x4b,0x5b,0x69,0x6f,
+0x77,0x77,0x78,0x7c,0x80,0x84,0x88,0x8c,0x8b,0x8e,0x91,0x91,0x8d,0x89,0x87,0x86,
+0x8a,0x89,0x8b,0x90,0x93,0x93,0x93,0x94,0x99,0x99,0x99,0x9a,0x9c,0x9e,0x9e,0x9d,
+0x9a,0x97,0x94,0x97,0x9e,0xa3,0xa6,0xa5,0xab,0xab,0xaa,0xaa,0xaa,0xab,0xac,0xad,
+0xad,0xae,0xb0,0xb1,0xb2,0xb3,0xb6,0xb7,0xb5,0xb8,0xb9,0xb7,0xb7,0xb8,0xb8,0xb5,
+0xb7,0xb6,0xb5,0xb5,0xb5,0xb6,0xb6,0xb6,0xb4,0xb6,0xb7,0xb7,0xb5,0xb5,0xb7,0xb9,
+0xb8,0xb5,0xb0,0xad,0xac,0xad,0xab,0xa8,0xae,0xad,0xa9,0xa5,0xa4,0xa3,0x9f,0x99,
+0x96,0x96,0x96,0x95,0x98,0x9a,0x97,0x93,0x94,0x8d,0x8b,0x91,0x92,0x8b,0x88,0x8a,
+0x8a,0x8a,0x8b,0x8c,0x8c,0x89,0x83,0x7f,0x84,0x84,0x83,0x83,0x82,0x81,0x7f,0x7f,
+0x7e,0x7c,0x79,0x76,0x74,0x74,0x75,0x76,0x72,0x6f,0x6c,0x6a,0x6b,0x6d,0x6f,0x70,
+0x6d,0x6b,0x67,0x64,0x63,0x62,0x5e,0x5a,0x5c,0x59,0x54,0x54,0x6e,0x92,0x91,0x70,
+0x4f,0x49,0x4c,0x45,0x41,0x4b,0x4b,0x4a,0x47,0x48,0x4c,0x51,0x55,0x54,0x4e,0x49,
+0x3f,0x44,0x47,0x48,0x4e,0x56,0x56,0x51,0x42,0x41,0x40,0x3f,0x3c,0x39,0x3b,0x40,
+0x49,0x50,0x51,0x4a,0x46,0x48,0x49,0x46,0x47,0x4a,0x4d,0x4e,0x4f,0x4f,0x50,0x51,
+0x4d,0x52,0x57,0x58,0x56,0x55,0x55,0x57,0x57,0x54,0x58,0x63,0x63,0x57,0x4b,0x47,
+0x49,0x4a,0x4b,0x4d,0x51,0x58,0x60,0x66,0x6a,0x67,0x5e,0x57,0x5e,0x6f,0x78,0x76,
+0x70,0x6f,0x71,0x71,0x6c,0x65,0x61,0x61,0x73,0x78,0x76,0x75,0x76,0x6c,0x6a,0x7b,
+0x82,0x80,0x6d,0x63,0x72,0x7b,0x71,0x69,0x62,0x72,0x8b,0x9b,0x98,0x89,0x81,0x81,
+0x61,0x51,0x35,0x1a,0x0f,0x11,0x16,0x16,0x1d,0x32,0x59,0x7a,0x73,0x4f,0x32,0x2a,
+0x32,0x3b,0x4f,0x58,0x44,0x28,0x2b,0x41,0x56,0x51,0x4f,0x4e,0x48,0x3f,0x3e,0x43,
+0x45,0x48,0x4d,0x4b,0x40,0x36,0x3b,0x47,0x56,0x4f,0x4c,0x50,0x4e,0x46,0x43,0x47,
+0x43,0x42,0x44,0x40,0x30,0x20,0x22,0x2f,0x37,0x39,0x3b,0x3d,0x3e,0x3d,0x39,0x34,
+0x34,0x42,0x50,0x53,0x4d,0x49,0x4a,0x4d,0x4b,0x43,0x3c,0x3a,0x3a,0x33,0x26,0x1a,
+0x39,0x38,0x35,0x32,0x30,0x2f,0x30,0x32,0x33,0x2d,0x27,0x24,0x20,0x1c,0x1a,0x1b,
+0x1a,0x1a,0x1a,0x1c,0x1e,0x20,0x20,0x20,0x22,0x25,0x28,0x2a,0x2b,0x2b,0x2c,0x2c,
+0x29,0x2b,0x28,0x27,0x2a,0x28,0x2a,0x33,0x45,0x5c,0x5d,0x56,0x4f,0x4a,0x4e,0x4d,
+0x43,0x49,0x52,0x5c,0x67,0x6e,0x6c,0x66,0x67,0x6f,0x74,0x75,0x73,0x6b,0x6a,0x74,
+0x82,0x7d,0x71,0x62,0x5b,0x61,0x69,0x6e,0x64,0x61,0x60,0x63,0x66,0x61,0x52,0x44,
+0x46,0x56,0x67,0x65,0x55,0x4b,0x43,0x38,0x37,0x3c,0x40,0x43,0x46,0x4f,0x5c,0x67,
+0x6b,0x6c,0x68,0x62,0x64,0x69,0x64,0x5a,0x4f,0x42,0x3b,0x42,0x50,0x55,0x51,0x4c,
+0x47,0x58,0x62,0x60,0x63,0x6e,0x73,0x6f,0x66,0x70,0x78,0x78,0x73,0x6c,0x61,0x57,
+0x54,0x54,0x56,0x52,0x48,0x45,0x44,0x3e,0x3e,0x3a,0x37,0x36,0x35,0x37,0x3c,0x42,
+0x47,0x49,0x4b,0x4c,0x4c,0x4b,0x48,0x46,0x49,0x4f,0x55,0x54,0x4e,0x4c,0x54,0x5e,
+0x62,0x5f,0x5d,0x61,0x6c,0x76,0x75,0x6e,0x64,0x65,0x66,0x6d,0x78,0x81,0x7f,0x78,
+0x6b,0x63,0x5d,0x5e,0x62,0x63,0x62,0x61,0x64,0x6a,0x75,0x80,0x84,0x81,0x7b,0x79,
+0x76,0x6f,0x6a,0x62,0x5c,0x63,0x6d,0x6e,0x68,0x60,0x5c,0x65,0x79,0x8c,0x98,0x9d,
+0xa1,0x99,0x94,0x91,0x87,0x77,0x72,0x76,0x7d,0x80,0x84,0x90,0x9d,0x9c,0x95,0x97,
+0x94,0x8d,0x88,0x85,0x7b,0x69,0x5a,0x55,0x62,0x70,0x75,0x67,0x53,0x49,0x49,0x4a,
+0x4a,0x4c,0x4d,0x4d,0x4d,0x4d,0x4f,0x51,0x4b,0x4e,0x4d,0x45,0x38,0x30,0x30,0x34,
+0x36,0x35,0x37,0x3b,0x3f,0x44,0x4d,0x55,0x5d,0x62,0x67,0x66,0x64,0x60,0x5c,0x58,
+0x4a,0x40,0x33,0x2c,0x2e,0x34,0x3a,0x3d,0x3f,0x42,0x44,0x47,0x4f,0x5e,0x6c,0x73,
+0x79,0x75,0x75,0x7a,0x7f,0x83,0x88,0x8f,0x8c,0x8f,0x91,0x90,0x8d,0x89,0x86,0x85,
+0x87,0x89,0x8c,0x90,0x93,0x96,0x98,0x99,0x96,0x96,0x98,0x9b,0x9e,0x9e,0x9d,0x9c,
+0x9b,0x99,0x99,0x9e,0xa2,0xa5,0xa9,0xac,0xaa,0xaa,0xab,0xab,0xac,0xac,0xac,0xac,
+0xad,0xae,0xaf,0xb2,0xb4,0xb5,0xb4,0xb2,0xb5,0xb5,0xb6,0xb6,0xb6,0xb6,0xb6,0xb5,
+0xb2,0xb3,0xb3,0xb4,0xb4,0xb5,0xb5,0xb6,0xb9,0xb7,0xb5,0xb3,0xb2,0xb4,0xb6,0xb8,
+0xb8,0xb5,0xb2,0xb0,0xaf,0xae,0xad,0xac,0xab,0xa8,0xa5,0xa3,0xa2,0xa1,0x9f,0x9e,
+0xa0,0x9d,0x9c,0x9e,0x9d,0x9a,0x96,0x95,0x90,0x90,0x91,0x90,0x8f,0x8d,0x8b,0x8a,
+0x8e,0x8c,0x8b,0x8b,0x8a,0x88,0x87,0x88,0x80,0x82,0x85,0x86,0x85,0x83,0x81,0x81,
+0x7e,0x7c,0x78,0x76,0x76,0x76,0x76,0x75,0x74,0x71,0x6f,0x70,0x70,0x6f,0x6e,0x70,
+0x6d,0x6a,0x67,0x64,0x62,0x60,0x5e,0x5d,0x53,0x54,0x52,0x52,0x62,0x74,0x73,0x64,
+0x4e,0x48,0x47,0x4d,0x4e,0x48,0x45,0x48,0x45,0x45,0x49,0x50,0x53,0x50,0x4b,0x49,
+0x3b,0x45,0x4d,0x4e,0x51,0x55,0x53,0x4d,0x3d,0x36,0x32,0x35,0x39,0x38,0x36,0x36,
+0x3e,0x48,0x4d,0x48,0x45,0x47,0x49,0x48,0x4c,0x4d,0x4e,0x4f,0x4e,0x4e,0x4e,0x4f,
+0x53,0x52,0x52,0x53,0x54,0x53,0x53,0x54,0x57,0x53,0x50,0x4f,0x51,0x53,0x54,0x54,
+0x57,0x57,0x57,0x5a,0x60,0x65,0x65,0x62,0x67,0x62,0x59,0x50,0x4e,0x53,0x57,0x59,
+0x5e,0x5f,0x64,0x6c,0x70,0x72,0x74,0x78,0x64,0x6b,0x76,0x7f,0x7d,0x75,0x74,0x79,
+0x7f,0x73,0x64,0x62,0x74,0x87,0x89,0x80,0x86,0x8f,0x83,0x64,0x5e,0x7e,0x94,0x8d,
+0x77,0x6b,0x47,0x23,0x21,0x2d,0x2d,0x24,0x37,0x5e,0x7e,0x74,0x52,0x3a,0x38,0x3f,
+0x50,0x53,0x50,0x48,0x4f,0x5e,0x51,0x2d,0x29,0x52,0x64,0x71,0x6c,0x51,0x41,0x36,
+0x36,0x4c,0x4b,0x43,0x3e,0x3e,0x45,0x45,0x3e,0x4d,0x53,0x4b,0x45,0x49,0x4b,0x49,
+0x3f,0x3d,0x38,0x33,0x2f,0x30,0x34,0x38,0x37,0x29,0x23,0x2f,0x41,0x4e,0x59,0x63,
+0x68,0x68,0x5c,0x49,0x42,0x42,0x39,0x2a,0x2f,0x34,0x38,0x36,0x2f,0x27,0x24,0x24,
+0x48,0x43,0x3d,0x35,0x31,0x2f,0x30,0x31,0x2d,0x28,0x22,0x1f,0x1d,0x19,0x18,0x19,
+0x19,0x19,0x1a,0x1c,0x1e,0x20,0x21,0x21,0x24,0x26,0x2a,0x2c,0x2c,0x2d,0x2d,0x2e,
+0x2f,0x31,0x2e,0x2c,0x2f,0x2d,0x2f,0x38,0x64,0x7e,0x7c,0x6d,0x63,0x5e,0x5e,0x56,
+0x49,0x44,0x44,0x53,0x69,0x75,0x73,0x6b,0x73,0x77,0x77,0x74,0x71,0x6d,0x71,0x7e,
+0x8c,0x86,0x7a,0x6b,0x64,0x67,0x6c,0x6e,0x6b,0x68,0x61,0x5c,0x5b,0x59,0x50,0x45,
+0x43,0x4e,0x5c,0x5b,0x4d,0x46,0x45,0x40,0x31,0x32,0x38,0x43,0x51,0x5d,0x63,0x64,
+0x5b,0x5c,0x5a,0x57,0x5d,0x68,0x6b,0x66,0x4f,0x44,0x3e,0x44,0x4f,0x52,0x4f,0x4b,
+0x43,0x50,0x61,0x6e,0x75,0x77,0x76,0x74,0x79,0x7a,0x78,0x72,0x6a,0x5d,0x4b,0x3d,
+0x3a,0x3a,0x43,0x4f,0x55,0x58,0x4f,0x3f,0x39,0x37,0x35,0x36,0x37,0x3a,0x40,0x46,
+0x4e,0x4c,0x4c,0x51,0x58,0x5d,0x5d,0x5b,0x56,0x56,0x57,0x5b,0x5e,0x5d,0x5c,0x5a,
+0x53,0x4a,0x44,0x4c,0x63,0x75,0x77,0x6f,0x65,0x68,0x6d,0x72,0x79,0x7b,0x74,0x6a,
+0x5b,0x56,0x54,0x57,0x5b,0x5d,0x5e,0x60,0x6b,0x69,0x6a,0x6d,0x6f,0x6e,0x6f,0x71,
+0x70,0x6e,0x6d,0x68,0x60,0x65,0x6f,0x70,0x66,0x54,0x47,0x51,0x6d,0x8b,0x9c,0xa2,
+0x9c,0x8f,0x85,0x81,0x7b,0x71,0x6b,0x6c,0x7d,0x82,0x87,0x91,0x9a,0x95,0x8c,0x8b,
+0x93,0x92,0x96,0x9b,0x97,0x88,0x7c,0x77,0x7c,0x80,0x7b,0x6b,0x5f,0x5e,0x62,0x64,
+0x5a,0x56,0x52,0x51,0x53,0x53,0x50,0x4e,0x61,0x5c,0x52,0x43,0x36,0x31,0x35,0x3a,
+0x42,0x43,0x46,0x4c,0x4f,0x50,0x53,0x57,0x62,0x65,0x64,0x60,0x5c,0x5a,0x59,0x58,
+0x5a,0x50,0x42,0x36,0x31,0x34,0x3a,0x3f,0x42,0x43,0x45,0x4a,0x56,0x66,0x72,0x77,
+0x77,0x75,0x77,0x7d,0x82,0x84,0x88,0x8d,0x8d,0x8e,0x8f,0x8d,0x89,0x85,0x83,0x83,
+0x8a,0x8c,0x8f,0x92,0x94,0x95,0x96,0x96,0x96,0x97,0x9a,0x9c,0x9d,0x9d,0x9c,0x9c,
+0x9e,0x9d,0x9e,0xa3,0xa7,0xaa,0xad,0xb0,0xab,0xab,0xac,0xad,0xad,0xad,0xad,0xad,
+0xae,0xae,0xaf,0xb1,0xb3,0xb4,0xb3,0xb1,0xb2,0xb3,0xb3,0xb4,0xb4,0xb4,0xb4,0xb4,
+0xb1,0xb1,0xb2,0xb4,0xb6,0xb7,0xb9,0xb9,0xb6,0xb5,0xb3,0xb3,0xb3,0xb4,0xb6,0xb8,
+0xb8,0xb6,0xb3,0xb1,0xb1,0xb0,0xaf,0xae,0xab,0xaa,0xa7,0xa6,0xa5,0xa4,0xa2,0xa1,
+0xa4,0xa1,0x9f,0xa0,0x9f,0x9a,0x97,0x96,0x92,0x92,0x93,0x94,0x93,0x91,0x8f,0x8e,
+0x8f,0x8c,0x8c,0x8d,0x8c,0x89,0x89,0x8b,0x84,0x86,0x88,0x88,0x86,0x84,0x83,0x83,
+0x80,0x7e,0x7a,0x78,0x77,0x76,0x75,0x74,0x75,0x73,0x72,0x72,0x71,0x6e,0x6e,0x70,
+0x6e,0x6c,0x69,0x66,0x65,0x63,0x61,0x60,0x5a,0x5a,0x55,0x53,0x5c,0x69,0x68,0x5e,
+0x52,0x4b,0x49,0x4d,0x4e,0x46,0x3f,0x3e,0x37,0x38,0x3d,0x44,0x48,0x45,0x3f,0x3c,
+0x40,0x48,0x4d,0x4c,0x4c,0x4d,0x4a,0x45,0x39,0x31,0x2c,0x30,0x36,0x38,0x37,0x37,
+0x38,0x41,0x47,0x45,0x44,0x48,0x4b,0x49,0x4a,0x4b,0x4d,0x4d,0x4c,0x4c,0x4d,0x4e,
+0x49,0x4d,0x53,0x56,0x55,0x52,0x50,0x4f,0x54,0x54,0x54,0x56,0x56,0x54,0x51,0x4e,
+0x4d,0x47,0x45,0x4d,0x5c,0x6c,0x77,0x7c,0x78,0x6c,0x57,0x42,0x37,0x39,0x3f,0x44,
+0x4a,0x52,0x5a,0x5d,0x5b,0x58,0x57,0x58,0x6b,0x6b,0x71,0x7d,0x83,0x7c,0x6e,0x64,
+0x46,0x47,0x5a,0x7a,0x8a,0x85,0x80,0x83,0x79,0x80,0x7a,0x69,0x65,0x74,0x88,0x93,
+0x94,0x81,0x5c,0x3c,0x37,0x3f,0x48,0x50,0x6f,0x7b,0x78,0x5c,0x40,0x3c,0x4c,0x5b,
+0x58,0x62,0x7f,0x8a,0x68,0x3e,0x37,0x45,0x55,0x64,0x5b,0x4f,0x41,0x3b,0x4e,0x5a,
+0x54,0x4a,0x39,0x3f,0x3e,0x32,0x3e,0x52,0x41,0x47,0x48,0x43,0x43,0x47,0x43,0x3a,
+0x37,0x31,0x29,0x21,0x1e,0x20,0x26,0x2b,0x26,0x24,0x2a,0x38,0x44,0x48,0x4c,0x52,
+0x42,0x3c,0x2f,0x24,0x2a,0x3c,0x48,0x49,0x35,0x33,0x2f,0x29,0x25,0x23,0x23,0x24,
+0x4a,0x46,0x3f,0x39,0x33,0x2f,0x2e,0x2d,0x28,0x23,0x1e,0x1c,0x1a,0x17,0x17,0x18,
+0x18,0x18,0x19,0x1b,0x1f,0x21,0x22,0x22,0x26,0x29,0x2c,0x2e,0x2e,0x2f,0x2f,0x30,
+0x30,0x32,0x2f,0x2d,0x2f,0x2e,0x2f,0x38,0x55,0x74,0x75,0x67,0x60,0x62,0x67,0x5f,
+0x65,0x62,0x66,0x71,0x7a,0x7b,0x79,0x79,0x76,0x77,0x72,0x6d,0x6e,0x6e,0x74,0x81,
+0x88,0x83,0x7a,0x70,0x6c,0x6e,0x70,0x70,0x6d,0x6c,0x65,0x5c,0x5b,0x5c,0x56,0x4b,
+0x47,0x51,0x63,0x68,0x58,0x46,0x3b,0x35,0x2e,0x30,0x37,0x46,0x58,0x64,0x66,0x65,
+0x5f,0x5c,0x54,0x4b,0x4a,0x4f,0x53,0x51,0x50,0x4d,0x4a,0x47,0x45,0x46,0x4b,0x52,
+0x4b,0x51,0x64,0x7b,0x83,0x7c,0x77,0x7a,0x7e,0x76,0x6a,0x61,0x5e,0x58,0x4b,0x3f,
+0x3d,0x39,0x3f,0x4a,0x54,0x5c,0x58,0x4a,0x3a,0x37,0x34,0x34,0x36,0x3a,0x42,0x4a,
+0x40,0x3e,0x3f,0x46,0x51,0x57,0x55,0x50,0x55,0x55,0x56,0x5b,0x62,0x65,0x62,0x5e,
+0x59,0x54,0x4f,0x4d,0x53,0x5b,0x5e,0x5c,0x5e,0x62,0x66,0x69,0x6b,0x69,0x61,0x5a,
+0x4f,0x4b,0x49,0x4c,0x51,0x56,0x5c,0x60,0x60,0x64,0x6d,0x75,0x77,0x74,0x71,0x70,
+0x6b,0x6d,0x72,0x70,0x6a,0x6d,0x75,0x75,0x66,0x54,0x47,0x4f,0x66,0x7e,0x8d,0x94,
+0x95,0x8c,0x82,0x7b,0x74,0x6e,0x6e,0x72,0x7b,0x82,0x86,0x8c,0x8f,0x87,0x7d,0x7d,
+0x7c,0x7d,0x83,0x8a,0x8a,0x83,0x7f,0x80,0x8d,0x8e,0x89,0x80,0x7a,0x77,0x73,0x6d,
+0x60,0x5f,0x5e,0x5f,0x61,0x62,0x63,0x63,0x62,0x5e,0x54,0x47,0x3a,0x32,0x31,0x32,
+0x3f,0x40,0x46,0x50,0x58,0x5e,0x62,0x66,0x6a,0x69,0x62,0x58,0x50,0x4f,0x50,0x51,
+0x50,0x49,0x3d,0x32,0x2d,0x31,0x3a,0x41,0x3c,0x3d,0x41,0x4a,0x59,0x69,0x71,0x72,
+0x75,0x76,0x7a,0x81,0x85,0x87,0x89,0x8b,0x8e,0x8d,0x8c,0x89,0x86,0x83,0x82,0x83,
+0x8b,0x8d,0x90,0x93,0x94,0x95,0x94,0x94,0x96,0x99,0x9b,0x9c,0x9c,0x9c,0x9d,0x9e,
+0xa3,0xa1,0xa3,0xa8,0xab,0xac,0xad,0xae,0xac,0xad,0xae,0xae,0xaf,0xaf,0xaf,0xaf,
+0xaf,0xaf,0xaf,0xb1,0xb2,0xb2,0xb1,0xb0,0xb0,0xb0,0xb1,0xb2,0xb2,0xb3,0xb3,0xb2,
+0xb2,0xb3,0xb3,0xb4,0xb6,0xb8,0xb9,0xba,0xb3,0xb3,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,
+0xb6,0xb5,0xb3,0xb2,0xb2,0xb2,0xb0,0xaf,0xae,0xac,0xaa,0xa9,0xa9,0xa9,0xa8,0xa7,
+0xa7,0xa4,0xa1,0xa0,0x9e,0x9a,0x98,0x97,0x94,0x95,0x97,0x98,0x98,0x96,0x94,0x92,
+0x90,0x8e,0x8d,0x8f,0x8e,0x8d,0x8d,0x8f,0x8a,0x8b,0x8b,0x8a,0x88,0x86,0x85,0x86,
+0x82,0x80,0x7d,0x7b,0x79,0x77,0x75,0x73,0x75,0x75,0x75,0x75,0x72,0x6e,0x6e,0x70,
+0x6f,0x6d,0x6a,0x68,0x67,0x65,0x63,0x62,0x5f,0x5c,0x57,0x54,0x57,0x5d,0x60,0x5f,
+0x5d,0x55,0x4f,0x51,0x51,0x4a,0x41,0x3c,0x36,0x37,0x3c,0x44,0x48,0x46,0x40,0x3e,
+0x3f,0x44,0x46,0x42,0x3f,0x3f,0x3c,0x37,0x36,0x30,0x2d,0x31,0x36,0x38,0x36,0x35,
+0x35,0x3c,0x41,0x42,0x44,0x49,0x4a,0x47,0x4a,0x4b,0x4d,0x4d,0x4d,0x4d,0x4d,0x4e,
+0x4f,0x52,0x54,0x53,0x50,0x4e,0x50,0x52,0x50,0x52,0x56,0x59,0x5a,0x58,0x55,0x53,
+0x4f,0x46,0x42,0x4b,0x58,0x60,0x65,0x69,0x69,0x64,0x59,0x49,0x3d,0x39,0x39,0x3a,
+0x43,0x53,0x60,0x60,0x59,0x57,0x57,0x57,0x5f,0x67,0x74,0x7f,0x87,0x87,0x7d,0x73,
+0x62,0x60,0x62,0x69,0x70,0x70,0x67,0x5f,0x58,0x68,0x6a,0x63,0x63,0x69,0x79,0x8f,
+0x9e,0x8d,0x73,0x60,0x55,0x4d,0x53,0x64,0x66,0x75,0x7a,0x65,0x4d,0x4e,0x6c,0x89,
+0x8f,0x8f,0x7b,0x4d,0x2c,0x31,0x44,0x49,0x51,0x51,0x4e,0x56,0x5a,0x5c,0x5e,0x52,
+0x4b,0x4e,0x3d,0x37,0x3f,0x44,0x46,0x3f,0x4e,0x4f,0x4b,0x45,0x45,0x47,0x3f,0x33,
+0x32,0x2c,0x23,0x1c,0x1a,0x1c,0x20,0x22,0x29,0x2e,0x38,0x3e,0x3a,0x2f,0x2b,0x2c,
+0x2b,0x2e,0x32,0x36,0x39,0x38,0x31,0x29,0x31,0x2a,0x21,0x1b,0x19,0x1a,0x1b,0x1b,
+0x3e,0x3d,0x3c,0x3b,0x38,0x35,0x30,0x2e,0x27,0x22,0x1e,0x1c,0x1a,0x18,0x17,0x19,
+0x18,0x18,0x19,0x1c,0x1f,0x22,0x23,0x23,0x27,0x2a,0x2d,0x2f,0x30,0x30,0x31,0x31,
+0x31,0x33,0x2f,0x2d,0x2f,0x2d,0x2f,0x37,0x51,0x6c,0x6e,0x63,0x5c,0x5c,0x66,0x67,
+0x67,0x63,0x63,0x66,0x61,0x5a,0x5c,0x65,0x72,0x71,0x6a,0x66,0x6c,0x6f,0x72,0x7a,
+0x74,0x71,0x6c,0x68,0x67,0x66,0x64,0x61,0x60,0x64,0x64,0x62,0x66,0x6a,0x62,0x54,
+0x4c,0x52,0x63,0x6b,0x59,0x3f,0x2e,0x27,0x2c,0x32,0x3b,0x47,0x51,0x58,0x5c,0x5e,
+0x53,0x4f,0x47,0x3f,0x3b,0x3e,0x43,0x46,0x50,0x58,0x5b,0x4f,0x3d,0x38,0x45,0x56,
+0x5d,0x60,0x6d,0x7e,0x82,0x7b,0x79,0x7f,0x7a,0x6f,0x62,0x5b,0x5a,0x59,0x53,0x4c,
+0x45,0x44,0x47,0x48,0x46,0x4a,0x4c,0x46,0x3d,0x38,0x34,0x33,0x34,0x38,0x40,0x48,
+0x4e,0x50,0x56,0x60,0x68,0x68,0x60,0x58,0x54,0x59,0x5d,0x5d,0x5b,0x5c,0x5f,0x61,
+0x56,0x57,0x57,0x55,0x52,0x54,0x57,0x5a,0x56,0x57,0x56,0x56,0x55,0x55,0x54,0x54,
+0x47,0x40,0x3b,0x3c,0x41,0x49,0x50,0x56,0x57,0x5b,0x60,0x62,0x60,0x5e,0x62,0x69,
+0x66,0x68,0x6e,0x70,0x6e,0x73,0x79,0x77,0x6c,0x68,0x69,0x6f,0x76,0x79,0x7d,0x81,
+0x80,0x83,0x81,0x75,0x67,0x61,0x68,0x71,0x77,0x7d,0x7d,0x7c,0x7c,0x75,0x6e,0x70,
+0x73,0x72,0x75,0x7a,0x7c,0x7f,0x85,0x8c,0x85,0x86,0x87,0x86,0x85,0x82,0x79,0x6f,
+0x73,0x77,0x7a,0x76,0x6f,0x6a,0x6a,0x6d,0x6d,0x6d,0x68,0x5c,0x4e,0x43,0x40,0x40,
+0x44,0x40,0x40,0x46,0x4e,0x54,0x5a,0x5f,0x6e,0x6c,0x64,0x57,0x4c,0x49,0x4a,0x4b,
+0x49,0x43,0x3a,0x34,0x32,0x37,0x3f,0x44,0x39,0x3f,0x4a,0x57,0x66,0x73,0x77,0x76,
+0x76,0x79,0x7e,0x83,0x86,0x88,0x8a,0x8b,0x8d,0x8c,0x89,0x87,0x85,0x84,0x85,0x86,
+0x8a,0x8c,0x8f,0x93,0x95,0x95,0x95,0x94,0x96,0x9a,0x9d,0x9e,0x9c,0x9c,0x9f,0xa2,
+0xa5,0xa3,0xa5,0xa9,0xab,0xaa,0xa8,0xa8,0xad,0xad,0xae,0xae,0xaf,0xaf,0xaf,0xaf,
+0xb0,0xaf,0xaf,0xb0,0xb1,0xb2,0xb1,0xb0,0xb0,0xb0,0xb1,0xb2,0xb3,0xb3,0xb4,0xb4,
+0xb6,0xb6,0xb5,0xb4,0xb4,0xb5,0xb5,0xb6,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb8,0xb8,
+0xb3,0xb3,0xb2,0xb2,0xb2,0xb2,0xb0,0xaf,0xb1,0xae,0xab,0xa9,0xaa,0xab,0xac,0xac,
+0xa7,0xa4,0xa1,0xa0,0x9e,0x9a,0x98,0x99,0x97,0x98,0x9a,0x9b,0x9a,0x98,0x96,0x94,
+0x92,0x90,0x8f,0x91,0x91,0x8f,0x90,0x92,0x8e,0x8e,0x8d,0x8b,0x88,0x86,0x86,0x86,
+0x83,0x81,0x80,0x7e,0x7c,0x7a,0x77,0x74,0x75,0x76,0x77,0x78,0x73,0x6f,0x6f,0x72,
+0x70,0x6e,0x6c,0x69,0x68,0x66,0x63,0x61,0x5f,0x5c,0x58,0x56,0x55,0x58,0x5f,0x66,
+0x5d,0x51,0x46,0x42,0x42,0x41,0x3b,0x37,0x36,0x35,0x38,0x3f,0x44,0x43,0x41,0x40,
+0x41,0x42,0x40,0x3a,0x36,0x36,0x35,0x33,0x36,0x35,0x36,0x37,0x38,0x36,0x34,0x32,
+0x38,0x3d,0x40,0x42,0x45,0x49,0x48,0x45,0x49,0x4b,0x4c,0x4c,0x4c,0x4c,0x4c,0x4d,
+0x4f,0x50,0x50,0x4d,0x4c,0x4e,0x50,0x52,0x4d,0x4e,0x4e,0x4f,0x50,0x51,0x52,0x53,
+0x4e,0x4a,0x4d,0x59,0x60,0x5c,0x56,0x54,0x65,0x6c,0x72,0x70,0x6a,0x64,0x5e,0x59,
+0x4d,0x60,0x6c,0x64,0x59,0x58,0x5d,0x5f,0x68,0x71,0x7a,0x7f,0x84,0x85,0x7e,0x74,
+0x4e,0x4e,0x4d,0x4e,0x56,0x5e,0x5a,0x51,0x56,0x6f,0x6c,0x5a,0x5e,0x6b,0x7e,0x98,
+0x9e,0x94,0x81,0x6f,0x5f,0x50,0x54,0x66,0x7b,0x7e,0x6c,0x5c,0x79,0xab,0xac,0x8a,
+0x76,0x58,0x39,0x27,0x27,0x3a,0x52,0x5c,0x37,0x44,0x5d,0x6c,0x61,0x55,0x4f,0x40,
+0x34,0x3b,0x3c,0x49,0x4d,0x40,0x41,0x46,0x50,0x4e,0x48,0x3f,0x3b,0x38,0x31,0x29,
+0x26,0x24,0x20,0x1f,0x1f,0x1f,0x1e,0x1c,0x15,0x20,0x2e,0x36,0x36,0x34,0x38,0x3d,
+0x3d,0x34,0x2b,0x27,0x27,0x26,0x27,0x29,0x23,0x1f,0x1b,0x18,0x17,0x16,0x13,0x12,
+0x36,0x36,0x37,0x39,0x3a,0x3a,0x37,0x35,0x29,0x24,0x1f,0x1d,0x1b,0x19,0x18,0x19,
+0x18,0x18,0x1a,0x1c,0x20,0x23,0x24,0x24,0x28,0x2a,0x2e,0x30,0x30,0x31,0x31,0x32,
+0x34,0x36,0x32,0x31,0x32,0x30,0x32,0x3b,0x51,0x65,0x68,0x66,0x5f,0x5a,0x69,0x76,
+0x7b,0x6d,0x63,0x64,0x65,0x65,0x6c,0x75,0x77,0x72,0x66,0x62,0x6a,0x6f,0x70,0x72,
+0x71,0x6f,0x6d,0x6c,0x6a,0x65,0x5e,0x5a,0x53,0x59,0x5e,0x63,0x6d,0x73,0x6a,0x5b,
+0x4a,0x45,0x49,0x4d,0x3f,0x2f,0x2a,0x2a,0x28,0x2e,0x37,0x40,0x47,0x4a,0x48,0x46,
+0x40,0x3d,0x38,0x35,0x33,0x35,0x3a,0x3f,0x4a,0x59,0x64,0x5d,0x4a,0x3e,0x40,0x47,
+0x5f,0x67,0x72,0x77,0x75,0x74,0x77,0x7c,0x74,0x6a,0x5b,0x50,0x48,0x43,0x3f,0x3d,
+0x42,0x44,0x4c,0x4d,0x45,0x40,0x3b,0x31,0x35,0x33,0x33,0x34,0x35,0x36,0x3a,0x3f,
+0x4b,0x51,0x5c,0x65,0x6a,0x68,0x62,0x5d,0x65,0x6d,0x71,0x6c,0x64,0x60,0x60,0x60,
+0x57,0x50,0x4b,0x4d,0x52,0x56,0x56,0x54,0x53,0x51,0x50,0x4e,0x4c,0x4d,0x51,0x55,
+0x5b,0x54,0x4e,0x50,0x56,0x5b,0x5e,0x61,0x5c,0x61,0x66,0x63,0x57,0x4f,0x51,0x58,
+0x60,0x5e,0x62,0x66,0x6a,0x73,0x78,0x73,0x67,0x69,0x70,0x78,0x77,0x6d,0x67,0x66,
+0x6e,0x78,0x7c,0x72,0x68,0x66,0x6c,0x71,0x73,0x75,0x6f,0x67,0x64,0x60,0x5d,0x62,
+0x5c,0x5f,0x64,0x6a,0x6e,0x71,0x76,0x7b,0x72,0x72,0x72,0x73,0x78,0x7c,0x7d,0x7b,
+0x78,0x7b,0x7e,0x7e,0x7a,0x76,0x73,0x71,0x71,0x71,0x6b,0x5b,0x48,0x3d,0x3e,0x43,
+0x57,0x53,0x51,0x56,0x5d,0x64,0x6b,0x70,0x6a,0x6c,0x69,0x60,0x58,0x55,0x55,0x55,
+0x54,0x4d,0x44,0x3e,0x3c,0x3c,0x3b,0x3a,0x33,0x40,0x50,0x60,0x6d,0x76,0x79,0x78,
+0x78,0x7c,0x80,0x83,0x85,0x87,0x8a,0x8b,0x89,0x88,0x86,0x85,0x85,0x87,0x89,0x8a,
+0x8d,0x8f,0x91,0x94,0x96,0x96,0x95,0x95,0x97,0x9a,0x9e,0x9e,0x9d,0x9f,0xa2,0xa6,
+0xa3,0xa2,0xa4,0xa8,0xaa,0xa9,0xa7,0xa6,0xac,0xac,0xad,0xad,0xae,0xae,0xae,0xae,
+0xb0,0xaf,0xaf,0xaf,0xb0,0xb1,0xb1,0xb1,0xb2,0xb2,0xb3,0xb4,0xb5,0xb6,0xb6,0xb6,
+0xb7,0xb6,0xb4,0xb3,0xb2,0xb2,0xb3,0xb3,0xb4,0xb5,0xb6,0xb8,0xb8,0xb8,0xb7,0xb6,
+0xb3,0xb3,0xb2,0xb2,0xb3,0xb3,0xb2,0xb0,0xb1,0xad,0xa9,0xa6,0xa7,0xa9,0xab,0xac,
+0xa6,0xa3,0xa2,0xa1,0x9f,0x9c,0x9b,0x9d,0x99,0x9a,0x9b,0x9c,0x9b,0x98,0x96,0x94,
+0x95,0x93,0x91,0x92,0x92,0x91,0x92,0x94,0x90,0x8f,0x8e,0x8b,0x88,0x86,0x86,0x86,
+0x83,0x82,0x81,0x80,0x7f,0x7d,0x7a,0x78,0x74,0x75,0x78,0x78,0x75,0x71,0x71,0x75,
+0x73,0x71,0x6e,0x6c,0x6a,0x67,0x64,0x62,0x60,0x5d,0x5b,0x58,0x54,0x53,0x5b,0x64,
+0x5e,0x52,0x42,0x37,0x36,0x39,0x3a,0x39,0x37,0x34,0x34,0x39,0x3d,0x3f,0x40,0x41,
+0x47,0x46,0x41,0x3a,0x35,0x35,0x36,0x36,0x37,0x39,0x3a,0x36,0x32,0x31,0x33,0x35,
+0x3d,0x3f,0x41,0x44,0x47,0x4a,0x4a,0x47,0x49,0x4b,0x4c,0x4c,0x4b,0x4b,0x4b,0x4c,
+0x4c,0x4f,0x51,0x51,0x54,0x57,0x56,0x52,0x56,0x54,0x51,0x50,0x50,0x50,0x51,0x52,
+0x56,0x54,0x56,0x5d,0x5f,0x59,0x54,0x52,0x65,0x6c,0x72,0x71,0x6b,0x65,0x60,0x5c,
+0x60,0x6d,0x71,0x63,0x55,0x55,0x5d,0x62,0x73,0x74,0x74,0x79,0x82,0x84,0x77,0x65,
+0x51,0x48,0x47,0x4c,0x46,0x3b,0x43,0x56,0x78,0x82,0x6d,0x4f,0x4a,0x4f,0x5d,0x75,
+0x8e,0x8c,0x7f,0x6d,0x5f,0x54,0x55,0x60,0x72,0x67,0x73,0x8d,0x89,0x68,0x54,0x59,
+0x49,0x46,0x58,0x6b,0x5c,0x41,0x40,0x4e,0x5e,0x63,0x75,0x70,0x53,0x3c,0x30,0x26,
+0x2e,0x38,0x38,0x43,0x4f,0x4f,0x4f,0x4a,0x4d,0x45,0x3a,0x34,0x33,0x30,0x28,0x20,
+0x1f,0x1f,0x21,0x25,0x28,0x2a,0x28,0x26,0x32,0x38,0x3c,0x38,0x31,0x2e,0x2f,0x31,
+0x2f,0x2d,0x30,0x34,0x31,0x26,0x1b,0x16,0x18,0x1b,0x1d,0x1d,0x19,0x16,0x14,0x13,
+0x3a,0x37,0x33,0x32,0x34,0x36,0x37,0x37,0x29,0x24,0x1f,0x1d,0x1b,0x18,0x18,0x19,
+0x1a,0x1a,0x1b,0x1e,0x21,0x24,0x25,0x25,0x29,0x2b,0x2e,0x30,0x31,0x31,0x32,0x32,
+0x35,0x37,0x34,0x32,0x34,0x32,0x34,0x3d,0x47,0x58,0x5d,0x63,0x5f,0x56,0x63,0x71,
+0x6d,0x69,0x68,0x6b,0x6d,0x6f,0x75,0x7d,0x7c,0x76,0x67,0x5f,0x65,0x6b,0x6b,0x6c,
+0x6e,0x6d,0x6d,0x6e,0x6c,0x66,0x61,0x5f,0x55,0x57,0x5b,0x62,0x6c,0x71,0x6c,0x64,
+0x4a,0x3e,0x3a,0x39,0x31,0x2a,0x2c,0x2d,0x28,0x28,0x2e,0x3a,0x45,0x47,0x3d,0x33,
+0x38,0x33,0x30,0x30,0x2e,0x2b,0x2d,0x31,0x40,0x4d,0x5c,0x62,0x5e,0x52,0x44,0x3a,
+0x52,0x60,0x6b,0x6b,0x68,0x6a,0x6f,0x72,0x7b,0x6d,0x5a,0x47,0x3b,0x39,0x40,0x4a,
+0x54,0x4e,0x4e,0x4f,0x4d,0x49,0x3d,0x2b,0x28,0x2a,0x2f,0x35,0x36,0x35,0x35,0x37,
+0x42,0x4a,0x53,0x5b,0x5f,0x62,0x65,0x68,0x71,0x76,0x79,0x78,0x76,0x75,0x6e,0x66,
+0x60,0x57,0x4d,0x46,0x41,0x3f,0x41,0x45,0x50,0x50,0x52,0x53,0x52,0x4f,0x4f,0x52,
+0x56,0x53,0x54,0x58,0x5d,0x5e,0x5d,0x5d,0x5a,0x63,0x6c,0x6c,0x61,0x56,0x55,0x59,
+0x60,0x5b,0x5c,0x60,0x65,0x70,0x75,0x70,0x69,0x62,0x62,0x68,0x67,0x5b,0x4f,0x4b,
+0x5b,0x67,0x6e,0x6f,0x75,0x7e,0x7e,0x77,0x6b,0x6b,0x61,0x54,0x51,0x4f,0x50,0x55,
+0x5c,0x64,0x6e,0x76,0x77,0x72,0x6b,0x67,0x65,0x66,0x69,0x6d,0x71,0x75,0x77,0x77,
+0x6c,0x6a,0x6c,0x73,0x7c,0x7e,0x78,0x71,0x75,0x79,0x77,0x67,0x51,0x40,0x3c,0x3f,
+0x3f,0x3e,0x42,0x4a,0x52,0x57,0x5d,0x61,0x65,0x6b,0x6f,0x6d,0x69,0x69,0x6b,0x6c,
+0x67,0x61,0x58,0x53,0x4f,0x4a,0x44,0x3e,0x3a,0x46,0x55,0x61,0x6b,0x72,0x76,0x76,
+0x78,0x7d,0x80,0x81,0x81,0x84,0x87,0x88,0x83,0x83,0x82,0x83,0x86,0x89,0x8b,0x8c,
+0x93,0x94,0x95,0x96,0x96,0x96,0x96,0x95,0x99,0x9b,0x9d,0x9e,0x9e,0xa0,0xa3,0xa6,
+0xa2,0xa1,0xa4,0xa9,0xac,0xab,0xa9,0xa9,0xaa,0xab,0xab,0xac,0xad,0xad,0xac,0xac,
+0xaf,0xad,0xad,0xad,0xaf,0xb1,0xb2,0xb2,0xb3,0xb4,0xb4,0xb5,0xb6,0xb6,0xb6,0xb6,
+0xb3,0xb2,0xb1,0xb1,0xb1,0xb3,0xb4,0xb5,0xb5,0xb6,0xb7,0xb8,0xb8,0xb7,0xb6,0xb5,
+0xb5,0xb4,0xb3,0xb4,0xb4,0xb5,0xb4,0xb3,0xae,0xab,0xa7,0xa5,0xa5,0xa6,0xa7,0xa7,
+0xa5,0xa3,0xa3,0xa4,0xa2,0x9e,0x9e,0xa0,0x9c,0x9c,0x9c,0x9c,0x9b,0x99,0x96,0x95,
+0x98,0x95,0x93,0x93,0x93,0x91,0x92,0x94,0x91,0x91,0x8f,0x8c,0x89,0x86,0x86,0x86,
+0x84,0x83,0x82,0x82,0x81,0x80,0x7e,0x7c,0x76,0x76,0x77,0x78,0x76,0x72,0x73,0x76,
+0x74,0x73,0x70,0x6e,0x6c,0x6a,0x67,0x64,0x64,0x62,0x5f,0x5a,0x54,0x50,0x53,0x59,
+0x61,0x5a,0x4b,0x3c,0x38,0x3d,0x41,0x41,0x3a,0x35,0x32,0x34,0x38,0x3a,0x3d,0x3f,
+0x45,0x43,0x3e,0x38,0x34,0x32,0x33,0x35,0x38,0x3a,0x37,0x30,0x2b,0x2f,0x37,0x3c,
+0x3e,0x3f,0x42,0x45,0x49,0x4c,0x4e,0x4e,0x4f,0x50,0x51,0x51,0x50,0x4f,0x4f,0x4f,
+0x50,0x53,0x53,0x51,0x52,0x57,0x58,0x55,0x5a,0x58,0x56,0x57,0x58,0x58,0x55,0x52,
+0x56,0x50,0x4a,0x49,0x4d,0x53,0x57,0x59,0x66,0x6b,0x6d,0x68,0x61,0x59,0x52,0x4c,
+0x58,0x60,0x63,0x5b,0x53,0x58,0x62,0x69,0x6d,0x73,0x7a,0x7e,0x80,0x7c,0x72,0x69,
+0x5e,0x4f,0x42,0x3e,0x3d,0x43,0x58,0x6f,0x75,0x74,0x6b,0x69,0x6f,0x6b,0x6c,0x7a,
+0x81,0x74,0x54,0x39,0x36,0x44,0x5b,0x6f,0x5f,0x66,0x6a,0x67,0x65,0x63,0x59,0x4c,
+0x23,0x4a,0x78,0x8a,0x82,0x7b,0x78,0x71,0x77,0x68,0x60,0x4c,0x35,0x28,0x1c,0x1a,
+0x27,0x51,0x5a,0x4b,0x46,0x50,0x5a,0x52,0x45,0x37,0x2a,0x2a,0x30,0x2e,0x24,0x1a,
+0x1a,0x1a,0x1c,0x1f,0x23,0x28,0x2b,0x2d,0x2c,0x33,0x36,0x32,0x2f,0x31,0x32,0x30,
+0x36,0x30,0x29,0x23,0x1e,0x18,0x14,0x13,0x13,0x18,0x1c,0x1b,0x16,0x14,0x16,0x19,
+0x42,0x3c,0x35,0x31,0x31,0x32,0x33,0x33,0x29,0x24,0x1f,0x1d,0x1b,0x19,0x18,0x1a,
+0x1b,0x1b,0x1c,0x1f,0x22,0x25,0x26,0x26,0x2a,0x2c,0x2f,0x31,0x32,0x32,0x33,0x33,
+0x34,0x36,0x33,0x32,0x34,0x33,0x35,0x3d,0x51,0x63,0x68,0x6e,0x6c,0x5f,0x5e,0x5f,
+0x59,0x5d,0x62,0x65,0x67,0x69,0x6d,0x71,0x76,0x77,0x6d,0x63,0x65,0x67,0x67,0x6a,
+0x63,0x60,0x60,0x61,0x5e,0x59,0x58,0x5a,0x5b,0x5a,0x5d,0x63,0x66,0x66,0x66,0x67,
+0x50,0x43,0x3d,0x3b,0x34,0x30,0x2e,0x29,0x2a,0x29,0x2b,0x34,0x3e,0x41,0x3b,0x34,
+0x34,0x2f,0x2e,0x33,0x33,0x30,0x31,0x36,0x38,0x42,0x4e,0x57,0x5d,0x5d,0x55,0x4c,
+0x54,0x60,0x69,0x69,0x66,0x67,0x6a,0x6c,0x82,0x79,0x6b,0x5e,0x53,0x51,0x5b,0x66,
+0x60,0x51,0x47,0x45,0x46,0x49,0x40,0x2f,0x27,0x28,0x2c,0x31,0x33,0x34,0x36,0x39,
+0x39,0x3e,0x44,0x48,0x4b,0x50,0x57,0x5d,0x64,0x68,0x69,0x6a,0x6f,0x74,0x71,0x69,
+0x5c,0x58,0x52,0x48,0x3d,0x39,0x3f,0x49,0x4e,0x50,0x56,0x5c,0x5b,0x55,0x51,0x51,
+0x55,0x57,0x5d,0x63,0x65,0x65,0x68,0x6d,0x68,0x63,0x5d,0x56,0x51,0x52,0x5b,0x65,
+0x63,0x5d,0x5d,0x5f,0x63,0x6c,0x72,0x6d,0x75,0x6d,0x6a,0x6b,0x64,0x54,0x48,0x46,
+0x4e,0x5c,0x66,0x6b,0x76,0x82,0x7e,0x71,0x5d,0x5e,0x54,0x49,0x48,0x49,0x4a,0x4e,
+0x56,0x5d,0x66,0x6d,0x6e,0x68,0x5e,0x55,0x5a,0x5e,0x67,0x70,0x73,0x70,0x69,0x64,
+0x69,0x67,0x67,0x6a,0x6e,0x6d,0x68,0x63,0x66,0x6c,0x6e,0x63,0x4f,0x3d,0x34,0x33,
+0x42,0x43,0x46,0x4a,0x4c,0x4c,0x4d,0x50,0x66,0x6d,0x74,0x73,0x72,0x73,0x77,0x79,
+0x7a,0x78,0x74,0x71,0x6e,0x6b,0x66,0x63,0x60,0x63,0x66,0x69,0x6f,0x75,0x79,0x79,
+0x76,0x7c,0x80,0x7f,0x7e,0x81,0x83,0x82,0x80,0x80,0x81,0x85,0x89,0x8c,0x8d,0x8d,
+0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x9c,0x9c,0x9c,0x9c,0x9d,0x9f,0xa2,0xa4,
+0xa5,0xa4,0xa6,0xab,0xad,0xac,0xaa,0xaa,0xaa,0xaa,0xab,0xab,0xac,0xac,0xac,0xac,
+0xac,0xab,0xaa,0xab,0xad,0xb0,0xb2,0xb3,0xb2,0xb2,0xb3,0xb3,0xb4,0xb4,0xb3,0xb3,
+0xb0,0xb0,0xaf,0xb0,0xb1,0xb4,0xb6,0xb8,0xb8,0xb8,0xb9,0xba,0xba,0xba,0xb9,0xb8,
+0xb7,0xb5,0xb4,0xb3,0xb4,0xb4,0xb4,0xb4,0xad,0xac,0xaa,0xa9,0xa9,0xa7,0xa5,0xa3,
+0xa3,0xa3,0xa4,0xa5,0xa3,0x9f,0x9e,0xa0,0x9e,0x9d,0x9d,0x9c,0x9b,0x9a,0x9a,0x99,
+0x9a,0x97,0x94,0x94,0x92,0x90,0x91,0x93,0x92,0x92,0x91,0x8f,0x8b,0x89,0x87,0x87,
+0x86,0x85,0x83,0x83,0x82,0x81,0x7f,0x7e,0x79,0x77,0x76,0x77,0x75,0x73,0x73,0x75,
+0x73,0x71,0x70,0x6f,0x6e,0x6c,0x69,0x67,0x64,0x64,0x62,0x5c,0x56,0x53,0x52,0x52,
+0x58,0x5a,0x55,0x48,0x41,0x44,0x47,0x46,0x3d,0x37,0x33,0x33,0x35,0x36,0x37,0x39,
+0x41,0x40,0x3f,0x3d,0x3a,0x38,0x37,0x38,0x3b,0x3b,0x37,0x30,0x2f,0x35,0x3c,0x3e,
+0x40,0x40,0x42,0x45,0x48,0x4c,0x4f,0x52,0x55,0x56,0x57,0x56,0x54,0x53,0x52,0x53,
+0x51,0x5e,0x69,0x6c,0x6d,0x71,0x72,0x70,0x6e,0x6a,0x67,0x67,0x68,0x66,0x5f,0x59,
+0x4c,0x4a,0x45,0x46,0x53,0x62,0x67,0x62,0x51,0x53,0x54,0x50,0x4a,0x45,0x3d,0x37,
+0x45,0x4a,0x4e,0x4f,0x4f,0x52,0x58,0x5d,0x63,0x6f,0x7b,0x7c,0x71,0x66,0x66,0x6c,
+0x67,0x5e,0x4f,0x43,0x44,0x4e,0x57,0x5b,0x72,0x6c,0x6a,0x72,0x78,0x6e,0x5c,0x4f,
+0x42,0x40,0x3a,0x3a,0x45,0x4d,0x4e,0x52,0x65,0x67,0x68,0x66,0x60,0x51,0x3a,0x27,
+0x2c,0x3c,0x5d,0x78,0x7b,0x76,0x71,0x6c,0x6a,0x5f,0x53,0x38,0x2a,0x30,0x3d,0x5b,
+0x64,0x55,0x40,0x4d,0x60,0x59,0x49,0x3a,0x30,0x28,0x24,0x26,0x27,0x21,0x19,0x14,
+0x13,0x12,0x11,0x10,0x11,0x15,0x19,0x1d,0x20,0x28,0x2c,0x26,0x23,0x25,0x24,0x21,
+0x1b,0x18,0x13,0x0e,0x0e,0x11,0x13,0x14,0x12,0x16,0x1a,0x18,0x14,0x13,0x16,0x1a,
+0x48,0x43,0x3c,0x38,0x36,0x35,0x32,0x2f,0x28,0x23,0x1f,0x1e,0x1c,0x1a,0x1a,0x1b,
+0x1c,0x1c,0x1d,0x20,0x23,0x25,0x26,0x26,0x2b,0x2d,0x30,0x32,0x33,0x33,0x34,0x34,
+0x35,0x37,0x35,0x33,0x36,0x35,0x37,0x40,0x4d,0x64,0x6e,0x78,0x7e,0x77,0x6f,0x64,
+0x62,0x58,0x4d,0x4e,0x5c,0x6c,0x6f,0x6b,0x6e,0x76,0x74,0x6d,0x6b,0x69,0x68,0x6b,
+0x6b,0x67,0x63,0x60,0x5a,0x54,0x55,0x59,0x5a,0x59,0x5c,0x62,0x5f,0x5a,0x5c,0x63,
+0x56,0x48,0x3d,0x37,0x32,0x32,0x31,0x2b,0x29,0x2b,0x2d,0x2e,0x30,0x34,0x3a,0x3e,
+0x46,0x3e,0x3a,0x3e,0x3c,0x35,0x33,0x37,0x35,0x3d,0x44,0x47,0x4d,0x59,0x65,0x6b,
+0x68,0x6c,0x70,0x71,0x6e,0x6c,0x6e,0x71,0x70,0x73,0x77,0x77,0x6d,0x5e,0x55,0x55,
+0x4a,0x3e,0x36,0x35,0x36,0x3a,0x36,0x28,0x2f,0x2c,0x2b,0x2c,0x2e,0x32,0x39,0x3f,
+0x42,0x44,0x46,0x47,0x48,0x4b,0x50,0x54,0x52,0x56,0x56,0x52,0x54,0x5e,0x63,0x63,
+0x63,0x59,0x51,0x4d,0x4c,0x48,0x47,0x48,0x4f,0x52,0x59,0x61,0x61,0x5b,0x56,0x55,
+0x51,0x56,0x5d,0x62,0x62,0x65,0x70,0x7b,0x8a,0x80,0x74,0x6b,0x65,0x63,0x64,0x67,
+0x62,0x5e,0x5f,0x5f,0x5f,0x67,0x6d,0x6a,0x6e,0x6e,0x72,0x71,0x61,0x4b,0x42,0x46,
+0x5a,0x6d,0x78,0x76,0x77,0x7d,0x77,0x6a,0x50,0x53,0x4c,0x45,0x47,0x4a,0x4b,0x4d,
+0x4a,0x4d,0x52,0x58,0x5d,0x5f,0x5b,0x57,0x50,0x54,0x5d,0x68,0x6d,0x69,0x61,0x5b,
+0x5a,0x60,0x65,0x65,0x62,0x61,0x65,0x6a,0x6c,0x6d,0x6a,0x5f,0x50,0x46,0x43,0x45,
+0x45,0x46,0x4b,0x50,0x52,0x54,0x58,0x5d,0x6b,0x72,0x76,0x74,0x71,0x72,0x76,0x79,
+0x7d,0x7e,0x7f,0x7e,0x7b,0x7a,0x79,0x79,0x7b,0x76,0x6d,0x68,0x6a,0x70,0x73,0x72,
+0x73,0x7a,0x7f,0x7e,0x7d,0x7e,0x7f,0x7e,0x80,0x81,0x83,0x87,0x8c,0x8f,0x90,0x8f,
+0x91,0x91,0x91,0x92,0x93,0x95,0x97,0x98,0x9e,0x9d,0x9b,0x9b,0x9c,0x9f,0xa0,0xa1,
+0xaa,0xa9,0xa9,0xac,0xad,0xaa,0xa8,0xa8,0xa9,0xaa,0xab,0xab,0xac,0xac,0xac,0xab,
+0xa9,0xa8,0xa8,0xa9,0xac,0xaf,0xb2,0xb3,0xb0,0xb0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,
+0xb1,0xb0,0xb0,0xb0,0xb1,0xb4,0xb6,0xb8,0xba,0xbb,0xbc,0xbd,0xbd,0xbd,0xbd,0xbd,
+0xb7,0xb5,0xb2,0xb2,0xb2,0xb3,0xb3,0xb3,0xae,0xae,0xaf,0xaf,0xae,0xaa,0xa5,0xa2,
+0xa2,0xa2,0xa4,0xa5,0xa2,0x9d,0x9c,0x9e,0x9f,0x9e,0x9e,0x9d,0x9d,0x9c,0x9d,0x9d,
+0x9b,0x98,0x95,0x94,0x92,0x8f,0x90,0x92,0x93,0x94,0x93,0x91,0x8e,0x8b,0x89,0x89,
+0x88,0x86,0x84,0x83,0x83,0x82,0x80,0x7f,0x7c,0x78,0x76,0x76,0x75,0x73,0x72,0x73,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6c,0x69,0x67,0x61,0x64,0x63,0x5e,0x5a,0x5a,0x57,0x53,
+0x56,0x60,0x64,0x5b,0x54,0x55,0x55,0x52,0x4c,0x46,0x42,0x41,0x41,0x40,0x40,0x40,
+0x43,0x44,0x48,0x4a,0x49,0x47,0x45,0x45,0x3e,0x3e,0x3b,0x38,0x39,0x3e,0x3f,0x3b,
+0x41,0x41,0x43,0x45,0x47,0x49,0x4e,0x52,0x55,0x56,0x56,0x55,0x53,0x51,0x51,0x51,
+0x5a,0x79,0x9c,0xb0,0xb5,0xb4,0xae,0xa6,0xa2,0x9a,0x91,0x8b,0x89,0x83,0x79,0x71,
+0x62,0x63,0x62,0x64,0x6f,0x76,0x6a,0x56,0x53,0x51,0x4b,0x44,0x42,0x43,0x43,0x42,
+0x51,0x51,0x53,0x56,0x53,0x4d,0x48,0x47,0x4c,0x51,0x5b,0x63,0x63,0x62,0x68,0x72,
+0x75,0x65,0x5c,0x5a,0x52,0x4b,0x59,0x71,0x62,0x5e,0x5c,0x60,0x6f,0x7c,0x6e,0x51,
+0x3f,0x34,0x28,0x2e,0x43,0x52,0x5b,0x65,0x55,0x5f,0x65,0x5e,0x4f,0x40,0x31,0x27,
+0x2e,0x39,0x48,0x49,0x3b,0x35,0x37,0x38,0x39,0x2c,0x24,0x1f,0x31,0x42,0x41,0x56,
+0x60,0x6d,0x5f,0x4c,0x3c,0x32,0x39,0x3e,0x29,0x2d,0x33,0x33,0x27,0x1a,0x18,0x1e,
+0x1c,0x1b,0x19,0x15,0x11,0x10,0x12,0x14,0x1d,0x25,0x26,0x1d,0x16,0x16,0x16,0x11,
+0x0d,0x10,0x10,0x0f,0x12,0x18,0x1a,0x18,0x14,0x18,0x1b,0x1b,0x18,0x16,0x18,0x1b,
+0x40,0x3e,0x3d,0x3d,0x3e,0x3c,0x37,0x34,0x28,0x21,0x1f,0x1d,0x18,0x19,0x1e,0x1d,
+0x1a,0x1a,0x1c,0x20,0x24,0x27,0x27,0x26,0x29,0x2d,0x31,0x32,0x31,0x31,0x33,0x35,
+0x36,0x36,0x33,0x32,0x34,0x33,0x38,0x45,0x4e,0x63,0x70,0x75,0x7f,0x81,0x76,0x6c,
+0x75,0x72,0x72,0x76,0x78,0x73,0x6d,0x6a,0x6b,0x6e,0x75,0x7e,0x82,0x7d,0x71,0x66,
+0x64,0x64,0x67,0x6a,0x69,0x65,0x61,0x60,0x61,0x5c,0x54,0x4e,0x4d,0x52,0x5a,0x5f,
+0x57,0x46,0x38,0x36,0x36,0x33,0x30,0x31,0x2e,0x2c,0x30,0x37,0x39,0x35,0x36,0x3b,
+0x49,0x47,0x43,0x3e,0x3e,0x40,0x3f,0x3a,0x3f,0x40,0x44,0x47,0x47,0x48,0x51,0x5a,
+0x6f,0x6f,0x6e,0x6c,0x6b,0x6c,0x71,0x75,0x75,0x72,0x6c,0x68,0x6a,0x6b,0x62,0x57,
+0x4b,0x3b,0x36,0x3b,0x3b,0x36,0x30,0x27,0x2d,0x2c,0x2f,0x35,0x3b,0x3e,0x40,0x42,
+0x44,0x49,0x4c,0x4a,0x4c,0x53,0x5a,0x5e,0x66,0x60,0x5d,0x5e,0x5d,0x5b,0x61,0x69,
+0x5e,0x56,0x4d,0x4b,0x50,0x56,0x59,0x5a,0x5b,0x54,0x50,0x56,0x5d,0x5f,0x5c,0x59,
+0x5b,0x61,0x61,0x5d,0x60,0x6e,0x7c,0x83,0x85,0x7d,0x75,0x72,0x71,0x6d,0x67,0x62,
+0x66,0x63,0x5d,0x65,0x5c,0x69,0x6a,0x6c,0x63,0x66,0x6a,0x6b,0x64,0x57,0x4d,0x48,
+0x4d,0x5a,0x63,0x65,0x6c,0x7a,0x80,0x7e,0x68,0x62,0x57,0x4c,0x48,0x48,0x48,0x47,
+0x43,0x50,0x58,0x54,0x4f,0x51,0x59,0x5e,0x54,0x4e,0x52,0x5c,0x61,0x66,0x65,0x5e,
+0x5d,0x5c,0x59,0x53,0x50,0x53,0x59,0x5e,0x62,0x66,0x65,0x5e,0x54,0x4f,0x4d,0x4e,
+0x48,0x4a,0x51,0x5a,0x5f,0x5d,0x59,0x58,0x6a,0x71,0x70,0x66,0x64,0x6b,0x6c,0x65,
+0x6a,0x73,0x79,0x76,0x76,0x7b,0x7e,0x7d,0x79,0x75,0x6c,0x64,0x65,0x6d,0x71,0x71,
+0x71,0x75,0x7a,0x7a,0x79,0x79,0x7c,0x80,0x7f,0x81,0x82,0x84,0x88,0x8f,0x92,0x91,
+0x95,0x94,0x93,0x95,0x97,0x9a,0x9b,0x9c,0x9c,0x9b,0x9a,0x9b,0x9e,0xa1,0xa5,0xa6,
+0xab,0xaa,0xaa,0xaa,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa8,0xa8,0xaa,0xaa,0xaa,0xa9,
+0xa9,0xa9,0xaa,0xad,0xb0,0xb2,0xb1,0xb0,0xac,0xad,0xae,0xb0,0xb2,0xb3,0xb4,0xb5,
+0xb4,0xb3,0xb3,0xb3,0xb5,0xb7,0xba,0xbc,0xba,0xba,0xbb,0xbb,0xbb,0xbb,0xba,0xb9,
+0xb7,0xb7,0xb6,0xb6,0xb5,0xb4,0xb3,0xb3,0xb0,0xb1,0xb2,0xb3,0xb1,0xad,0xa6,0xa2,
+0xa2,0xa3,0xa5,0xa4,0xa2,0xa0,0xa1,0xa2,0xa3,0xa2,0xa1,0xa0,0x9e,0x9c,0x9a,0x99,
+0x97,0x96,0x96,0x97,0x97,0x96,0x94,0x92,0x93,0x94,0x95,0x93,0x8f,0x8c,0x8a,0x8a,
+0x87,0x86,0x85,0x85,0x85,0x84,0x82,0x7f,0x7d,0x7c,0x7a,0x79,0x78,0x78,0x76,0x74,
+0x72,0x71,0x70,0x6f,0x6d,0x6c,0x6a,0x69,0x64,0x64,0x63,0x62,0x60,0x5c,0x57,0x53,
+0x59,0x5d,0x5d,0x59,0x58,0x59,0x59,0x57,0x58,0x58,0x5a,0x5a,0x55,0x4b,0x43,0x40,
+0x46,0x4d,0x56,0x5d,0x5c,0x58,0x57,0x59,0x54,0x58,0x55,0x51,0x54,0x5b,0x58,0x50,
+0x4d,0x4d,0x46,0x41,0x43,0x43,0x45,0x4c,0x4d,0x4e,0x55,0x55,0x4a,0x44,0x41,0x3c,
+0x4d,0x78,0xa9,0xc3,0xc8,0xca,0xcc,0xcd,0xcc,0xd1,0xd5,0xd1,0xc1,0xa6,0x9a,0xa1,
+0x8a,0x79,0x6b,0x65,0x61,0x5c,0x5e,0x65,0x5a,0x52,0x52,0x5d,0x64,0x63,0x62,0x63,
+0x6f,0x6f,0x6f,0x69,0x5b,0x4f,0x4d,0x52,0x56,0x53,0x54,0x57,0x52,0x4d,0x54,0x61,
+0x65,0x70,0x75,0x6d,0x62,0x5a,0x52,0x49,0x4f,0x4f,0x4d,0x4b,0x4a,0x47,0x3a,0x2e,
+0x28,0x28,0x2d,0x35,0x3b,0x42,0x4c,0x56,0x62,0x59,0x4e,0x44,0x3b,0x32,0x2e,0x2e,
+0x2e,0x3f,0x4a,0x4d,0x4c,0x41,0x31,0x29,0x30,0x32,0x25,0x20,0x28,0x29,0x30,0x46,
+0x5a,0x49,0x37,0x2f,0x2e,0x31,0x38,0x3f,0x29,0x37,0x3a,0x2a,0x1a,0x18,0x1d,0x1e,
+0x1e,0x1a,0x17,0x15,0x12,0x11,0x15,0x1a,0x22,0x2d,0x2a,0x1f,0x1e,0x1e,0x18,0x12,
+0x10,0x11,0x0f,0x0d,0x10,0x17,0x1b,0x1a,0x18,0x1b,0x1e,0x1e,0x1b,0x1b,0x1f,0x22,
+0x32,0x33,0x36,0x3b,0x3e,0x3e,0x3b,0x37,0x2a,0x1f,0x1b,0x1b,0x19,0x1b,0x1e,0x1b,
+0x1a,0x1a,0x1b,0x1f,0x23,0x26,0x27,0x27,0x29,0x2d,0x31,0x33,0x33,0x33,0x35,0x37,
+0x39,0x39,0x36,0x36,0x38,0x36,0x3b,0x48,0x58,0x6c,0x76,0x74,0x75,0x71,0x65,0x5c,
+0x4e,0x5d,0x71,0x7e,0x7f,0x78,0x6e,0x68,0x66,0x64,0x65,0x6a,0x6e,0x6a,0x5f,0x54,
+0x58,0x5b,0x62,0x68,0x67,0x60,0x58,0x55,0x57,0x57,0x56,0x53,0x52,0x56,0x5d,0x62,
+0x52,0x45,0x3a,0x3a,0x3a,0x36,0x31,0x2f,0x2d,0x31,0x3e,0x4e,0x53,0x4e,0x49,0x48,
+0x4f,0x49,0x3f,0x39,0x3c,0x41,0x41,0x3c,0x3e,0x3e,0x41,0x46,0x48,0x48,0x49,0x4d,
+0x51,0x55,0x5a,0x5f,0x65,0x6c,0x73,0x78,0x7e,0x7a,0x71,0x68,0x66,0x68,0x65,0x5e,
+0x48,0x3e,0x42,0x52,0x5c,0x59,0x47,0x31,0x31,0x30,0x32,0x37,0x3c,0x3f,0x42,0x46,
+0x46,0x47,0x45,0x41,0x41,0x47,0x4c,0x4e,0x59,0x5d,0x62,0x66,0x65,0x62,0x62,0x64,
+0x67,0x5a,0x4d,0x4c,0x56,0x60,0x65,0x64,0x65,0x58,0x4c,0x4a,0x52,0x5c,0x66,0x6d,
+0x65,0x68,0x67,0x64,0x6a,0x7a,0x88,0x8d,0x74,0x6a,0x65,0x6c,0x73,0x72,0x6d,0x69,
+0x7a,0x7b,0x79,0x72,0x5d,0x5b,0x60,0x66,0x6b,0x66,0x63,0x64,0x65,0x63,0x5f,0x5e,
+0x58,0x62,0x68,0x66,0x67,0x6e,0x6f,0x6b,0x6f,0x69,0x5f,0x54,0x4a,0x44,0x44,0x47,
+0x47,0x4a,0x53,0x5f,0x61,0x59,0x51,0x4f,0x5d,0x53,0x50,0x53,0x56,0x5d,0x62,0x5e,
+0x56,0x56,0x50,0x49,0x49,0x50,0x55,0x56,0x4d,0x54,0x54,0x4a,0x44,0x47,0x49,0x47,
+0x54,0x54,0x57,0x5c,0x5f,0x60,0x62,0x66,0x63,0x67,0x66,0x61,0x62,0x67,0x65,0x5e,
+0x63,0x67,0x68,0x67,0x6c,0x74,0x76,0x72,0x6d,0x6c,0x68,0x63,0x64,0x6a,0x6d,0x6d,
+0x71,0x73,0x75,0x75,0x76,0x78,0x7c,0x80,0x80,0x83,0x86,0x87,0x8b,0x90,0x93,0x93,
+0x93,0x93,0x94,0x96,0x99,0x9a,0x9b,0x9a,0x9c,0x9b,0x9b,0x9c,0x9e,0xa1,0xa3,0xa4,
+0xa7,0xa7,0xa8,0xa9,0xa9,0xa9,0xa9,0xa9,0xab,0xaa,0xa8,0xa8,0xa9,0xaa,0xaa,0xaa,
+0xaa,0xaa,0xab,0xae,0xb2,0xb4,0xb3,0xb2,0xb0,0xb1,0xb2,0xb2,0xb4,0xb4,0xb5,0xb6,
+0xb6,0xb6,0xb7,0xb8,0xb9,0xb9,0xba,0xba,0xb8,0xb9,0xb9,0xba,0xba,0xba,0xb9,0xb9,
+0xb8,0xb7,0xb7,0xb7,0xb6,0xb6,0xb5,0xb5,0xb2,0xb1,0xb1,0xb1,0xb0,0xac,0xa8,0xa4,
+0xa2,0xa4,0xa5,0xa4,0xa2,0xa1,0xa2,0xa3,0xa1,0xa2,0xa2,0xa1,0xa1,0xa0,0x9f,0x9e,
+0x9d,0x9c,0x9b,0x9a,0x99,0x97,0x94,0x92,0x92,0x94,0x95,0x93,0x90,0x8d,0x8c,0x8c,
+0x87,0x86,0x85,0x85,0x86,0x85,0x82,0x80,0x80,0x7f,0x7d,0x7c,0x7b,0x7b,0x79,0x77,
+0x73,0x73,0x72,0x71,0x6f,0x6d,0x6b,0x69,0x65,0x63,0x62,0x62,0x60,0x5d,0x57,0x53,
+0x54,0x57,0x57,0x53,0x4f,0x50,0x52,0x51,0x57,0x57,0x58,0x58,0x53,0x49,0x42,0x3f,
+0x48,0x4f,0x59,0x5f,0x5e,0x5b,0x5d,0x61,0x69,0x6c,0x6d,0x6b,0x6d,0x71,0x71,0x6e,
+0x6f,0x67,0x54,0x45,0x43,0x41,0x41,0x45,0x4c,0x46,0x44,0x44,0x42,0x42,0x43,0x42,
+0x3a,0x4e,0x63,0x6a,0x6d,0x74,0x7d,0x82,0x8e,0x90,0x94,0x9e,0xa0,0x8e,0x7b,0x79,
+0x6a,0x68,0x63,0x5e,0x5d,0x61,0x64,0x65,0x5c,0x57,0x5b,0x69,0x72,0x72,0x75,0x7d,
+0x8e,0x82,0x71,0x61,0x54,0x50,0x58,0x63,0x6d,0x6a,0x65,0x5c,0x50,0x48,0x4c,0x56,
+0x66,0x74,0x8b,0xa8,0xbd,0xb4,0x83,0x51,0x47,0x42,0x38,0x2e,0x2a,0x2c,0x2d,0x2a,
+0x2b,0x28,0x29,0x32,0x3f,0x4c,0x56,0x5b,0x55,0x48,0x39,0x33,0x31,0x2e,0x29,0x26,
+0x2f,0x3c,0x45,0x47,0x46,0x3d,0x33,0x32,0x1f,0x1d,0x22,0x27,0x24,0x27,0x3a,0x4d,
+0x57,0x59,0x54,0x47,0x3f,0x3e,0x3d,0x39,0x2c,0x39,0x3d,0x30,0x1f,0x1b,0x21,0x27,
+0x1c,0x19,0x17,0x15,0x11,0x10,0x14,0x1a,0x28,0x32,0x2e,0x22,0x20,0x21,0x1b,0x16,
+0x10,0x11,0x10,0x0f,0x12,0x19,0x1d,0x1c,0x1a,0x1f,0x23,0x21,0x1d,0x1c,0x1f,0x24,
+0x2f,0x2f,0x32,0x37,0x3b,0x3d,0x3b,0x39,0x2b,0x1d,0x17,0x19,0x19,0x1c,0x1d,0x19,
+0x1b,0x1b,0x1b,0x1d,0x21,0x25,0x28,0x29,0x2b,0x2e,0x32,0x34,0x35,0x35,0x38,0x3a,
+0x3a,0x3a,0x37,0x37,0x39,0x37,0x3b,0x48,0x65,0x78,0x7f,0x78,0x73,0x6c,0x60,0x58,
+0x4c,0x5e,0x6f,0x71,0x6b,0x66,0x62,0x5f,0x64,0x61,0x5f,0x62,0x65,0x60,0x54,0x49,
+0x48,0x4d,0x57,0x5f,0x5f,0x57,0x50,0x4c,0x4d,0x49,0x47,0x47,0x4b,0x4d,0x4d,0x4c,
+0x4c,0x40,0x36,0x35,0x35,0x32,0x2f,0x2f,0x2e,0x33,0x41,0x54,0x5f,0x60,0x5d,0x5d,
+0x5e,0x5b,0x53,0x4b,0x46,0x45,0x43,0x41,0x47,0x44,0x43,0x46,0x48,0x46,0x43,0x42,
+0x48,0x4c,0x52,0x56,0x5a,0x5d,0x62,0x65,0x6e,0x6e,0x68,0x62,0x62,0x67,0x69,0x66,
+0x54,0x4a,0x4b,0x5b,0x6b,0x71,0x61,0x47,0x32,0x30,0x30,0x33,0x35,0x38,0x3d,0x43,
+0x4d,0x4d,0x49,0x44,0x41,0x43,0x44,0x44,0x4b,0x52,0x59,0x5c,0x5f,0x64,0x69,0x6b,
+0x61,0x5a,0x56,0x5c,0x66,0x6b,0x65,0x5d,0x5a,0x53,0x4f,0x51,0x57,0x5b,0x5e,0x60,
+0x63,0x64,0x62,0x62,0x6a,0x75,0x7a,0x79,0x62,0x56,0x51,0x5c,0x6d,0x75,0x75,0x73,
+0x6f,0x6e,0x73,0x67,0x5a,0x55,0x63,0x69,0x6e,0x6b,0x6a,0x6b,0x6b,0x68,0x66,0x66,
+0x73,0x78,0x76,0x6e,0x6c,0x71,0x74,0x72,0x6c,0x69,0x69,0x67,0x5c,0x49,0x38,0x30,
+0x3f,0x3e,0x51,0x73,0x82,0x74,0x60,0x58,0x59,0x53,0x53,0x55,0x56,0x5e,0x65,0x63,
+0x5e,0x5a,0x50,0x46,0x44,0x4a,0x4d,0x4c,0x51,0x52,0x50,0x4c,0x49,0x4a,0x4d,0x4e,
+0x57,0x57,0x5a,0x5d,0x5c,0x58,0x56,0x56,0x65,0x66,0x67,0x67,0x6a,0x6c,0x69,0x64,
+0x59,0x57,0x52,0x52,0x5d,0x6a,0x6f,0x6b,0x60,0x62,0x64,0x63,0x64,0x67,0x6a,0x6a,
+0x70,0x70,0x6f,0x70,0x73,0x77,0x7c,0x7f,0x80,0x85,0x8a,0x8b,0x8d,0x91,0x94,0x95,
+0x92,0x92,0x94,0x97,0x9a,0x9b,0x9a,0x98,0x9a,0x9b,0x9c,0x9e,0x9f,0xa0,0xa1,0xa1,
+0xa3,0xa4,0xa6,0xa7,0xa9,0xa9,0xa9,0xa9,0xaa,0xa8,0xa7,0xa7,0xa8,0xa9,0xa9,0xa9,
+0xab,0xab,0xad,0xb0,0xb3,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb5,0xb5,0xb5,0xb5,
+0xb7,0xb8,0xb9,0xba,0xbb,0xba,0xb9,0xb8,0xb7,0xb7,0xb8,0xb8,0xb8,0xb8,0xb8,0xb7,
+0xb7,0xb7,0xb7,0xb7,0xb7,0xb6,0xb6,0xb5,0xb4,0xb2,0xb1,0xaf,0xae,0xac,0xa9,0xa6,
+0xa3,0xa4,0xa4,0xa4,0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa2,0xa2,
+0x9f,0x9d,0x9a,0x98,0x97,0x95,0x94,0x92,0x92,0x93,0x94,0x93,0x91,0x8f,0x8e,0x8e,
+0x88,0x87,0x86,0x86,0x86,0x85,0x83,0x81,0x82,0x81,0x7f,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x75,0x75,0x75,0x74,0x72,0x6f,0x6c,0x6a,0x66,0x64,0x62,0x61,0x61,0x5e,0x59,0x54,
+0x4f,0x52,0x51,0x4b,0x45,0x45,0x48,0x4b,0x4e,0x4d,0x4d,0x4e,0x4b,0x44,0x3f,0x3d,
+0x49,0x4e,0x54,0x57,0x53,0x4f,0x51,0x56,0x63,0x62,0x64,0x66,0x65,0x64,0x67,0x6b,
+0x6e,0x6b,0x61,0x5b,0x5f,0x5f,0x5a,0x59,0x52,0x4f,0x4e,0x50,0x4d,0x47,0x44,0x45,
+0x46,0x4a,0x4a,0x46,0x46,0x4a,0x4c,0x4a,0x48,0x4f,0x5a,0x67,0x6c,0x61,0x59,0x5d,
+0x5f,0x68,0x69,0x61,0x62,0x69,0x68,0x5f,0x56,0x50,0x55,0x63,0x6a,0x68,0x6e,0x79,
+0x79,0x75,0x6c,0x5f,0x53,0x52,0x5f,0x6d,0x75,0x74,0x6d,0x60,0x51,0x48,0x49,0x4d,
+0x62,0x72,0x8b,0xa9,0xc0,0xb6,0x7f,0x46,0x3f,0x3d,0x37,0x2f,0x29,0x27,0x27,0x25,
+0x28,0x26,0x27,0x31,0x43,0x51,0x53,0x4f,0x40,0x36,0x2e,0x2f,0x32,0x2f,0x25,0x1e,
+0x14,0x1e,0x33,0x4b,0x4d,0x34,0x24,0x2b,0x33,0x28,0x2a,0x26,0x19,0x27,0x3e,0x3f,
+0x46,0x53,0x4f,0x38,0x2d,0x37,0x3f,0x3d,0x3a,0x32,0x27,0x20,0x1f,0x21,0x25,0x27,
+0x19,0x19,0x18,0x15,0x11,0x0f,0x14,0x1b,0x2c,0x35,0x31,0x26,0x26,0x28,0x22,0x1d,
+0x10,0x11,0x11,0x11,0x15,0x1b,0x1e,0x1e,0x1c,0x21,0x26,0x25,0x20,0x1d,0x1f,0x21,
+0x3a,0x38,0x36,0x37,0x39,0x3a,0x38,0x37,0x2a,0x1c,0x16,0x18,0x18,0x1a,0x1c,0x1a,
+0x1d,0x1c,0x1c,0x1e,0x21,0x26,0x2a,0x2d,0x2e,0x30,0x33,0x35,0x36,0x37,0x38,0x3a,
+0x3a,0x3b,0x38,0x38,0x3a,0x37,0x3b,0x48,0x60,0x72,0x78,0x73,0x71,0x6f,0x67,0x61,
+0x51,0x5c,0x60,0x5a,0x55,0x5a,0x5e,0x5d,0x58,0x54,0x51,0x50,0x50,0x4d,0x47,0x42,
+0x42,0x46,0x4d,0x53,0x54,0x52,0x52,0x55,0x5c,0x5a,0x56,0x51,0x4d,0x4b,0x4c,0x4e,
+0x5a,0x4b,0x3a,0x31,0x2d,0x2b,0x2c,0x2e,0x2f,0x34,0x41,0x55,0x64,0x69,0x69,0x68,
+0x6a,0x70,0x72,0x6a,0x5a,0x4c,0x46,0x45,0x49,0x46,0x43,0x44,0x46,0x48,0x48,0x49,
+0x4e,0x53,0x57,0x56,0x52,0x50,0x53,0x57,0x59,0x5d,0x5f,0x61,0x66,0x6c,0x6b,0x65,
+0x5c,0x52,0x4f,0x56,0x62,0x6c,0x62,0x4c,0x33,0x30,0x2d,0x2d,0x2d,0x2f,0x35,0x3c,
+0x45,0x48,0x4c,0x4e,0x50,0x55,0x5b,0x5e,0x5d,0x60,0x5e,0x59,0x59,0x5d,0x5d,0x59,
+0x5b,0x5c,0x61,0x69,0x6e,0x6c,0x63,0x5b,0x5d,0x57,0x52,0x52,0x54,0x56,0x59,0x5b,
+0x5f,0x60,0x63,0x6a,0x73,0x77,0x70,0x66,0x61,0x59,0x4f,0x52,0x64,0x78,0x81,0x80,
+0x71,0x69,0x6c,0x60,0x60,0x59,0x64,0x60,0x64,0x65,0x67,0x65,0x5f,0x5a,0x5c,0x62,
+0x65,0x68,0x66,0x62,0x68,0x7a,0x8a,0x92,0x7a,0x6f,0x68,0x6b,0x6d,0x68,0x60,0x5d,
+0x4d,0x4b,0x59,0x73,0x7d,0x6e,0x5b,0x54,0x4e,0x55,0x62,0x67,0x62,0x60,0x5f,0x5a,
+0x5e,0x58,0x53,0x51,0x50,0x50,0x53,0x59,0x5b,0x4f,0x47,0x48,0x47,0x41,0x43,0x4a,
+0x4f,0x50,0x55,0x5f,0x67,0x6b,0x6e,0x6f,0x66,0x65,0x64,0x63,0x61,0x5e,0x5c,0x5b,
+0x55,0x50,0x49,0x47,0x4e,0x58,0x5e,0x5e,0x5a,0x5e,0x62,0x64,0x65,0x67,0x69,0x6a,
+0x6f,0x6d,0x6d,0x6f,0x74,0x79,0x7c,0x7d,0x7f,0x86,0x8c,0x8d,0x8e,0x90,0x93,0x94,
+0x92,0x92,0x93,0x96,0x98,0x9a,0x99,0x99,0x99,0x9b,0x9d,0x9f,0x9f,0x9e,0x9e,0x9e,
+0xa1,0xa2,0xa4,0xa6,0xa8,0xa8,0xa8,0xa8,0xa6,0xa5,0xa5,0xa7,0xa8,0xa9,0xa8,0xa7,
+0xac,0xad,0xae,0xb0,0xb2,0xb3,0xb3,0xb3,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,
+0xb6,0xb7,0xb8,0xb9,0xb9,0xb8,0xb7,0xb7,0xb7,0xb7,0xb7,0xb6,0xb6,0xb6,0xb5,0xb5,
+0xb4,0xb5,0xb6,0xb6,0xb6,0xb5,0xb5,0xb4,0xb5,0xb3,0xb1,0xb0,0xae,0xac,0xa8,0xa6,
+0xa3,0xa3,0xa3,0xa3,0xa2,0xa2,0xa2,0xa2,0xa5,0xa5,0xa5,0xa4,0xa4,0xa2,0xa2,0xa1,
+0x9e,0x9c,0x99,0x97,0x96,0x96,0x95,0x94,0x93,0x94,0x93,0x93,0x91,0x8f,0x8e,0x8e,
+0x88,0x88,0x88,0x88,0x87,0x86,0x84,0x82,0x83,0x81,0x80,0x7f,0x7e,0x7d,0x7b,0x7a,
+0x78,0x78,0x79,0x78,0x75,0x72,0x6e,0x6c,0x69,0x66,0x63,0x62,0x63,0x61,0x5b,0x57,
+0x4f,0x51,0x4f,0x48,0x40,0x3d,0x41,0x45,0x40,0x3d,0x3c,0x3d,0x3d,0x3c,0x3c,0x3d,
+0x48,0x48,0x4a,0x4c,0x4b,0x4a,0x4c,0x4f,0x5c,0x53,0x50,0x54,0x53,0x4d,0x50,0x58,
+0x63,0x66,0x65,0x67,0x6e,0x6f,0x6b,0x6b,0x6a,0x72,0x78,0x78,0x6c,0x56,0x47,0x45,
+0x44,0x45,0x45,0x46,0x4a,0x4f,0x4d,0x48,0x48,0x4d,0x50,0x52,0x51,0x4b,0x4d,0x5a,
+0x5f,0x65,0x67,0x65,0x6b,0x72,0x6b,0x5c,0x4a,0x42,0x44,0x4e,0x51,0x4c,0x4f,0x59,
+0x54,0x60,0x68,0x60,0x4f,0x49,0x56,0x67,0x69,0x6b,0x68,0x60,0x58,0x54,0x52,0x4f,
+0x55,0x5d,0x62,0x68,0x75,0x7e,0x70,0x59,0x4d,0x44,0x35,0x28,0x23,0x26,0x2d,0x32,
+0x29,0x2c,0x33,0x40,0x4f,0x56,0x4c,0x3e,0x2d,0x2e,0x33,0x38,0x35,0x29,0x1d,0x15,
+0x17,0x1d,0x20,0x25,0x2b,0x2a,0x2e,0x38,0x1b,0x19,0x19,0x18,0x27,0x49,0x58,0x49,
+0x58,0x5f,0x52,0x32,0x22,0x2e,0x3c,0x3f,0x31,0x20,0x12,0x13,0x1a,0x1d,0x1c,0x1a,
+0x19,0x19,0x1a,0x17,0x12,0x0f,0x14,0x1c,0x2b,0x35,0x33,0x2a,0x2d,0x30,0x28,0x21,
+0x12,0x12,0x11,0x13,0x16,0x1a,0x1c,0x1c,0x1c,0x21,0x26,0x28,0x25,0x20,0x1d,0x1b,
+0x41,0x3f,0x3e,0x3d,0x3e,0x3c,0x38,0x34,0x28,0x1b,0x16,0x19,0x17,0x17,0x1b,0x1c,
+0x1f,0x1f,0x1f,0x20,0x23,0x28,0x2d,0x31,0x31,0x33,0x34,0x35,0x36,0x37,0x38,0x39,
+0x3d,0x3e,0x3b,0x3b,0x3d,0x3a,0x3e,0x4a,0x58,0x68,0x6d,0x6b,0x72,0x77,0x72,0x6d,
+0x54,0x59,0x5a,0x56,0x56,0x59,0x54,0x4a,0x4e,0x4d,0x4c,0x49,0x46,0x45,0x47,0x49,
+0x47,0x47,0x48,0x49,0x4b,0x50,0x5c,0x66,0x6d,0x6f,0x6d,0x60,0x52,0x4e,0x56,0x61,
+0x69,0x5a,0x46,0x36,0x2e,0x2b,0x2d,0x2f,0x2f,0x37,0x48,0x5c,0x6a,0x6d,0x68,0x63,
+0x63,0x69,0x6f,0x6c,0x61,0x53,0x49,0x45,0x3f,0x42,0x45,0x47,0x49,0x4e,0x53,0x57,
+0x6c,0x70,0x6f,0x66,0x59,0x51,0x52,0x56,0x51,0x54,0x55,0x58,0x60,0x64,0x5d,0x53,
+0x52,0x50,0x52,0x54,0x56,0x59,0x50,0x3e,0x35,0x30,0x2d,0x2c,0x2e,0x30,0x37,0x3d,
+0x40,0x42,0x46,0x47,0x49,0x4e,0x58,0x61,0x71,0x73,0x71,0x6e,0x6d,0x6d,0x64,0x5a,
+0x5c,0x60,0x64,0x65,0x64,0x65,0x6a,0x6e,0x66,0x62,0x5f,0x60,0x60,0x5c,0x58,0x56,
+0x54,0x56,0x5b,0x66,0x72,0x74,0x6a,0x5e,0x65,0x65,0x5c,0x54,0x5f,0x78,0x84,0x80,
+0x6c,0x65,0x6e,0x6a,0x6f,0x65,0x67,0x5b,0x5c,0x57,0x52,0x4e,0x4c,0x4e,0x57,0x5f,
+0x5c,0x5e,0x5b,0x5a,0x62,0x75,0x89,0x93,0x9e,0x90,0x81,0x78,0x71,0x6a,0x68,0x6b,
+0x74,0x75,0x77,0x77,0x71,0x66,0x5f,0x5c,0x62,0x73,0x88,0x8b,0x7a,0x6b,0x61,0x57,
+0x4e,0x4d,0x58,0x68,0x6b,0x64,0x67,0x74,0x81,0x73,0x5e,0x4b,0x40,0x3b,0x3c,0x3e,
+0x49,0x42,0x3f,0x45,0x52,0x5e,0x68,0x6e,0x77,0x77,0x74,0x6c,0x61,0x5a,0x5a,0x5d,
+0x59,0x57,0x53,0x4f,0x4c,0x4d,0x4c,0x4b,0x5a,0x5d,0x61,0x64,0x66,0x66,0x69,0x6c,
+0x6d,0x6c,0x6e,0x72,0x78,0x7c,0x7d,0x7c,0x7f,0x86,0x8b,0x8d,0x8d,0x8f,0x91,0x92,
+0x93,0x92,0x92,0x93,0x96,0x98,0x9a,0x9a,0x98,0x9b,0x9d,0x9e,0x9e,0x9d,0x9d,0x9d,
+0xa1,0xa2,0xa3,0xa5,0xa6,0xa6,0xa6,0xa6,0xa2,0xa4,0xa6,0xa9,0xac,0xac,0xaa,0xa8,
+0xac,0xad,0xae,0xb0,0xb0,0xb0,0xb0,0xb0,0xb3,0xb3,0xb3,0xb4,0xb4,0xb4,0xb5,0xb5,
+0xb5,0xb5,0xb5,0xb6,0xb7,0xb7,0xb8,0xb9,0xb8,0xb8,0xb7,0xb6,0xb5,0xb4,0xb3,0xb3,
+0xb4,0xb5,0xb6,0xb6,0xb6,0xb6,0xb5,0xb4,0xb4,0xb4,0xb2,0xb1,0xaf,0xac,0xa8,0xa4,
+0xa5,0xa4,0xa2,0xa2,0xa1,0xa1,0xa1,0xa1,0xa4,0xa4,0xa4,0xa3,0xa3,0xa2,0xa1,0xa0,
+0xa1,0x9e,0x9b,0x99,0x98,0x98,0x97,0x97,0x95,0x94,0x93,0x92,0x90,0x8f,0x8d,0x8c,
+0x89,0x89,0x8a,0x89,0x88,0x86,0x85,0x84,0x84,0x82,0x80,0x7f,0x7f,0x7e,0x7c,0x7b,
+0x7a,0x7b,0x7b,0x7a,0x78,0x74,0x70,0x6e,0x6c,0x69,0x66,0x65,0x65,0x63,0x5f,0x5b,
+0x52,0x52,0x4f,0x48,0x3e,0x38,0x3b,0x3f,0x38,0x33,0x30,0x31,0x34,0x38,0x3c,0x40,
+0x46,0x44,0x45,0x4a,0x51,0x56,0x5a,0x5d,0x5f,0x50,0x47,0x4a,0x49,0x41,0x42,0x4b,
+0x57,0x68,0x7f,0x93,0x9c,0x93,0x87,0x87,0x8b,0x90,0x8c,0x82,0x77,0x60,0x4b,0x47,
+0x47,0x45,0x43,0x42,0x44,0x47,0x47,0x45,0x4b,0x47,0x3f,0x40,0x48,0x4b,0x51,0x5b,
+0x5c,0x57,0x57,0x60,0x6d,0x71,0x67,0x5c,0x41,0x39,0x39,0x42,0x47,0x44,0x46,0x4c,
+0x65,0x6e,0x71,0x63,0x4f,0x48,0x52,0x5f,0x62,0x62,0x60,0x5d,0x5d,0x5d,0x59,0x53,
+0x53,0x4f,0x46,0x42,0x4d,0x5f,0x63,0x5b,0x4d,0x4e,0x4f,0x50,0x4c,0x42,0x35,0x2d,
+0x20,0x26,0x30,0x3e,0x49,0x49,0x3d,0x30,0x2d,0x34,0x3b,0x38,0x28,0x18,0x12,0x14,
+0x1c,0x46,0x5d,0x59,0x5c,0x5d,0x45,0x25,0x1e,0x22,0x1c,0x1f,0x36,0x3e,0x2f,0x20,
+0x37,0x3b,0x34,0x20,0x13,0x16,0x1d,0x1f,0x16,0x12,0x13,0x18,0x17,0x11,0x10,0x14,
+0x1a,0x1b,0x1c,0x1a,0x14,0x11,0x16,0x1d,0x29,0x34,0x33,0x2e,0x32,0x34,0x29,0x1f,
+0x15,0x13,0x12,0x13,0x15,0x17,0x19,0x1a,0x1d,0x20,0x25,0x2a,0x2b,0x26,0x1e,0x18,
+0x3c,0x3d,0x40,0x43,0x45,0x41,0x3b,0x35,0x28,0x1a,0x16,0x19,0x17,0x16,0x1b,0x1d,
+0x21,0x21,0x21,0x22,0x25,0x2a,0x30,0x34,0x34,0x35,0x35,0x36,0x37,0x38,0x39,0x39,
+0x3d,0x3e,0x3b,0x3b,0x3d,0x3a,0x3d,0x49,0x51,0x5e,0x61,0x5e,0x66,0x6e,0x6b,0x67,
+0x59,0x5a,0x59,0x59,0x5c,0x5b,0x4f,0x41,0x47,0x51,0x5d,0x61,0x5d,0x56,0x50,0x4e,
+0x4a,0x48,0x45,0x43,0x43,0x4a,0x5a,0x69,0x6d,0x66,0x5d,0x57,0x55,0x56,0x57,0x57,
+0x58,0x4e,0x41,0x35,0x2e,0x2e,0x2f,0x31,0x35,0x3a,0x44,0x51,0x5a,0x5d,0x5b,0x58,
+0x4e,0x4b,0x4b,0x50,0x53,0x50,0x4a,0x45,0x4d,0x55,0x5c,0x5d,0x5c,0x5d,0x61,0x63,
+0x69,0x6b,0x6b,0x64,0x5a,0x54,0x54,0x57,0x58,0x57,0x53,0x53,0x5b,0x62,0x5e,0x55,
+0x50,0x4e,0x4f,0x4f,0x4a,0x49,0x46,0x3c,0x36,0x31,0x2e,0x2f,0x33,0x37,0x3d,0x42,
+0x4a,0x49,0x47,0x46,0x46,0x4b,0x55,0x5f,0x5b,0x5a,0x57,0x57,0x5c,0x5e,0x5b,0x55,
+0x55,0x5c,0x62,0x63,0x61,0x64,0x6d,0x76,0x70,0x6d,0x6d,0x6e,0x6a,0x5e,0x50,0x48,
+0x4c,0x4a,0x4b,0x53,0x5c,0x5f,0x58,0x51,0x5a,0x62,0x5f,0x56,0x5b,0x6c,0x72,0x6b,
+0x5f,0x66,0x79,0x7f,0x7e,0x75,0x72,0x69,0x63,0x59,0x51,0x52,0x57,0x59,0x58,0x56,
+0x61,0x64,0x64,0x63,0x67,0x71,0x7b,0x80,0x88,0x8a,0x88,0x7f,0x74,0x71,0x79,0x83,
+0x8f,0x98,0x9b,0x93,0x85,0x7b,0x72,0x6b,0x6b,0x7d,0x91,0x91,0x7d,0x70,0x68,0x60,
+0x5e,0x62,0x74,0x89,0x8a,0x7d,0x7b,0x86,0x92,0x94,0x83,0x64,0x59,0x67,0x75,0x74,
+0x6e,0x65,0x5c,0x5b,0x60,0x64,0x66,0x68,0x6d,0x71,0x70,0x66,0x5d,0x5c,0x62,0x67,
+0x66,0x66,0x65,0x64,0x61,0x5b,0x54,0x4f,0x5b,0x5c,0x5f,0x63,0x65,0x66,0x68,0x6c,
+0x6c,0x6e,0x71,0x76,0x7b,0x7e,0x7e,0x7c,0x80,0x86,0x8a,0x8b,0x8c,0x8f,0x90,0x90,
+0x93,0x92,0x91,0x92,0x95,0x98,0x99,0x9a,0x99,0x9b,0x9d,0x9d,0x9b,0x9b,0x9c,0x9e,
+0xa0,0xa1,0xa1,0xa2,0xa2,0xa3,0xa4,0xa4,0xa4,0xa5,0xa8,0xab,0xae,0xae,0xac,0xaa,
+0xaa,0xac,0xae,0xae,0xae,0xae,0xae,0xaf,0xb2,0xb2,0xb3,0xb3,0xb4,0xb5,0xb5,0xb5,
+0xb4,0xb5,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xb9,0xb8,0xb7,0xb5,0xb4,0xb3,0xb3,0xb3,
+0xb6,0xb6,0xb7,0xb8,0xb8,0xb7,0xb5,0xb4,0xb3,0xb3,0xb2,0xb1,0xb0,0xad,0xa9,0xa6,
+0xa7,0xa5,0xa3,0xa1,0xa1,0xa1,0xa1,0xa0,0xa0,0xa1,0xa1,0xa2,0xa2,0xa2,0xa2,0xa1,
+0xa2,0x9f,0x9b,0x98,0x96,0x95,0x94,0x92,0x96,0x94,0x92,0x91,0x90,0x8f,0x8d,0x8c,
+0x89,0x8a,0x8b,0x8a,0x88,0x87,0x86,0x86,0x86,0x84,0x82,0x82,0x81,0x80,0x7e,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x79,0x76,0x73,0x71,0x6d,0x6b,0x69,0x67,0x65,0x63,0x61,0x5f,
+0x54,0x53,0x50,0x49,0x3e,0x36,0x35,0x38,0x38,0x32,0x2e,0x30,0x35,0x3a,0x40,0x45,
+0x49,0x45,0x44,0x49,0x50,0x56,0x5b,0x5f,0x5b,0x4a,0x41,0x43,0x43,0x3d,0x3c,0x44,
+0x48,0x5e,0x7f,0xa0,0xac,0x9f,0x96,0x9f,0xbb,0xb4,0x98,0x80,0x7f,0x79,0x6b,0x68,
+0x65,0x65,0x65,0x64,0x62,0x60,0x5e,0x5d,0x58,0x59,0x55,0x52,0x55,0x55,0x59,0x64,
+0x66,0x5c,0x58,0x62,0x68,0x62,0x58,0x52,0x5d,0x5b,0x5e,0x66,0x6f,0x74,0x78,0x7a,
+0x7e,0x83,0x82,0x77,0x69,0x62,0x62,0x64,0x63,0x60,0x5c,0x5c,0x5c,0x5a,0x55,0x51,
+0x52,0x56,0x5a,0x5c,0x5c,0x59,0x4e,0x45,0x48,0x43,0x3e,0x3b,0x37,0x30,0x28,0x24,
+0x18,0x1a,0x22,0x2e,0x36,0x37,0x33,0x30,0x40,0x41,0x3d,0x2e,0x1a,0x0e,0x13,0x1e,
+0x34,0x51,0x64,0x62,0x5a,0x49,0x2f,0x1b,0x1f,0x1e,0x18,0x22,0x33,0x24,0x13,0x1c,
+0x19,0x1d,0x1e,0x19,0x14,0x13,0x16,0x17,0x18,0x13,0x10,0x13,0x14,0x13,0x15,0x1a,
+0x1d,0x1d,0x1e,0x1c,0x17,0x14,0x17,0x1c,0x28,0x32,0x33,0x2f,0x34,0x35,0x28,0x1b,
+0x19,0x16,0x13,0x14,0x16,0x16,0x17,0x19,0x1f,0x22,0x27,0x2c,0x2e,0x2b,0x23,0x1d,
+0x39,0x3a,0x3d,0x41,0x43,0x41,0x3c,0x38,0x2b,0x1a,0x13,0x18,0x19,0x18,0x1b,0x1d,
+0x21,0x22,0x23,0x24,0x26,0x2b,0x31,0x35,0x36,0x36,0x36,0x37,0x39,0x3a,0x3b,0x3b,
+0x3c,0x3d,0x3b,0x3b,0x3d,0x39,0x3c,0x48,0x51,0x5d,0x5d,0x54,0x56,0x5a,0x57,0x54,
+0x53,0x51,0x52,0x56,0x5c,0x5d,0x58,0x52,0x42,0x4e,0x5d,0x64,0x61,0x57,0x4d,0x48,
+0x4a,0x4a,0x48,0x45,0x41,0x44,0x4f,0x5c,0x68,0x5e,0x55,0x57,0x5f,0x60,0x55,0x4a,
+0x44,0x3f,0x37,0x2f,0x2c,0x2e,0x32,0x34,0x39,0x3b,0x3e,0x41,0x45,0x48,0x4a,0x4a,
+0x3f,0x39,0x36,0x3b,0x41,0x44,0x45,0x47,0x42,0x4a,0x4f,0x4d,0x48,0x47,0x49,0x49,
+0x46,0x48,0x4c,0x51,0x56,0x5a,0x5c,0x5c,0x61,0x5f,0x5a,0x58,0x60,0x6b,0x6f,0x6c,
+0x5c,0x51,0x4b,0x4a,0x47,0x47,0x49,0x46,0x3c,0x36,0x32,0x35,0x3b,0x3f,0x42,0x44,
+0x4c,0x4b,0x4d,0x54,0x5c,0x61,0x68,0x6d,0x63,0x5e,0x5a,0x59,0x59,0x59,0x5b,0x5d,
+0x54,0x5c,0x67,0x6e,0x6f,0x6d,0x6b,0x6a,0x78,0x6e,0x64,0x60,0x5f,0x5b,0x56,0x52,
+0x50,0x4b,0x49,0x4c,0x52,0x55,0x54,0x52,0x54,0x58,0x5b,0x5a,0x5e,0x63,0x62,0x5e,
+0x6d,0x75,0x81,0x89,0x7c,0x76,0x6f,0x69,0x6d,0x69,0x66,0x67,0x67,0x61,0x59,0x54,
+0x59,0x5f,0x67,0x6c,0x71,0x76,0x7b,0x7d,0x90,0x92,0x8b,0x7a,0x6e,0x74,0x83,0x8e,
+0x8f,0x95,0x98,0x95,0x91,0x8a,0x80,0x76,0x86,0x93,0xa1,0xa2,0x9a,0x9b,0x9f,0x9c,
+0x94,0x98,0xa2,0xab,0xa9,0xa3,0xa2,0xa6,0xc2,0xc7,0xb7,0x8e,0x6a,0x5f,0x64,0x68,
+0x69,0x67,0x67,0x6a,0x6c,0x6c,0x6d,0x6f,0x74,0x7d,0x80,0x7a,0x79,0x83,0x8d,0x91,
+0x82,0x79,0x72,0x72,0x76,0x74,0x6a,0x61,0x5b,0x5a,0x5d,0x63,0x67,0x67,0x69,0x6b,
+0x6e,0x70,0x74,0x79,0x7d,0x7f,0x7f,0x7f,0x83,0x87,0x8a,0x8b,0x8d,0x91,0x91,0x90,
+0x92,0x91,0x91,0x93,0x96,0x98,0x99,0x98,0x99,0x9b,0x9c,0x9b,0x99,0x99,0x9c,0x9f,
+0x9e,0x9e,0x9e,0x9e,0x9f,0xa0,0xa2,0xa3,0xa7,0xa7,0xa8,0xaa,0xac,0xac,0xab,0xaa,
+0xa7,0xaa,0xac,0xad,0xad,0xad,0xae,0xaf,0xb0,0xb1,0xb1,0xb2,0xb2,0xb3,0xb3,0xb3,
+0xb3,0xb4,0xb5,0xb7,0xb8,0xb9,0xb9,0xb8,0xb8,0xb8,0xb6,0xb5,0xb5,0xb4,0xb5,0xb5,
+0xb6,0xb7,0xb8,0xb8,0xb8,0xb6,0xb4,0xb3,0xb2,0xb1,0xb0,0xaf,0xaf,0xae,0xac,0xab,
+0xaa,0xa7,0xa4,0xa3,0xa2,0xa2,0xa1,0xa0,0xa0,0xa0,0xa0,0xa1,0xa1,0xa0,0xa0,0xa0,
+0x9e,0x9c,0x98,0x96,0x94,0x93,0x91,0x90,0x96,0x94,0x92,0x91,0x91,0x91,0x8f,0x8d,
+0x8a,0x8b,0x8c,0x8b,0x89,0x87,0x86,0x87,0x87,0x85,0x84,0x83,0x82,0x81,0x80,0x7e,
+0x7e,0x7d,0x7d,0x7c,0x7a,0x77,0x75,0x74,0x6d,0x6c,0x6b,0x68,0x65,0x62,0x62,0x62,
+0x58,0x55,0x51,0x4b,0x41,0x36,0x31,0x32,0x35,0x30,0x2e,0x32,0x3a,0x40,0x45,0x49,
+0x4c,0x48,0x46,0x45,0x45,0x45,0x4a,0x4f,0x50,0x46,0x41,0x45,0x46,0x41,0x42,0x49,
+0x4b,0x4f,0x5d,0x73,0x7a,0x6f,0x75,0x8e,0xa6,0xa2,0x7f,0x5d,0x5d,0x61,0x5b,0x5b,
+0x61,0x65,0x6d,0x74,0x77,0x78,0x7a,0x7c,0x7e,0x84,0x81,0x78,0x6d,0x61,0x5c,0x63,
+0x66,0x62,0x62,0x64,0x5e,0x52,0x4c,0x4d,0x5d,0x63,0x68,0x6b,0x71,0x7a,0x7e,0x7d,
+0x7a,0x89,0x96,0x92,0x83,0x74,0x69,0x63,0x5d,0x5c,0x5f,0x65,0x65,0x5d,0x57,0x56,
+0x52,0x5c,0x6a,0x73,0x6b,0x5a,0x4c,0x48,0x3b,0x3a,0x3c,0x3d,0x36,0x28,0x1c,0x17,
+0x24,0x1d,0x1d,0x27,0x2e,0x2f,0x33,0x3a,0x43,0x3b,0x2d,0x20,0x15,0x12,0x17,0x1f,
+0x41,0x4c,0x52,0x4d,0x3c,0x25,0x1d,0x27,0x26,0x1d,0x19,0x1d,0x1e,0x15,0x13,0x1c,
+0x19,0x1c,0x1b,0x13,0x0d,0x0d,0x10,0x10,0x20,0x17,0x0e,0x0f,0x16,0x1c,0x1f,0x1e,
+0x1f,0x1f,0x1e,0x1d,0x19,0x15,0x16,0x1a,0x24,0x2e,0x2e,0x2c,0x34,0x36,0x29,0x1c,
+0x1e,0x19,0x16,0x17,0x17,0x17,0x19,0x1c,0x21,0x24,0x29,0x2c,0x2c,0x2b,0x29,0x28,
+0x3d,0x3b,0x39,0x39,0x3b,0x3c,0x3b,0x3a,0x2d,0x19,0x11,0x17,0x1a,0x1b,0x1c,0x1b,
+0x21,0x22,0x23,0x25,0x27,0x2b,0x31,0x36,0x36,0x36,0x37,0x38,0x3a,0x3d,0x3e,0x3e,
+0x3f,0x40,0x3e,0x3e,0x3f,0x3c,0x3f,0x4a,0x68,0x74,0x71,0x63,0x5d,0x5d,0x5a,0x58,
+0x58,0x56,0x58,0x5a,0x59,0x53,0x4e,0x4d,0x4f,0x50,0x51,0x50,0x4e,0x4c,0x4d,0x4e,
+0x4c,0x4e,0x51,0x4e,0x47,0x43,0x48,0x50,0x59,0x5e,0x64,0x65,0x5e,0x56,0x4f,0x4c,
+0x48,0x43,0x3a,0x31,0x2c,0x2e,0x33,0x35,0x36,0x3c,0x43,0x46,0x46,0x44,0x3f,0x3b,
+0x3c,0x3c,0x3c,0x3b,0x37,0x37,0x40,0x4b,0x51,0x56,0x58,0x54,0x51,0x54,0x57,0x58,
+0x5a,0x58,0x58,0x5e,0x65,0x67,0x62,0x5c,0x57,0x56,0x52,0x4f,0x56,0x63,0x6b,0x6c,
+0x62,0x52,0x4c,0x50,0x50,0x4f,0x4d,0x49,0x45,0x3e,0x39,0x3c,0x42,0x45,0x45,0x45,
+0x49,0x46,0x4a,0x55,0x5c,0x5a,0x54,0x50,0x51,0x52,0x59,0x61,0x61,0x5d,0x5d,0x62,
+0x65,0x68,0x6f,0x77,0x7a,0x76,0x6b,0x62,0x5e,0x5a,0x5a,0x62,0x68,0x66,0x5e,0x58,
+0x4c,0x49,0x48,0x4c,0x52,0x56,0x58,0x59,0x5c,0x59,0x5d,0x65,0x6a,0x67,0x64,0x65,
+0x67,0x69,0x68,0x71,0x63,0x67,0x5f,0x5c,0x6e,0x6f,0x6f,0x6a,0x60,0x59,0x5a,0x5f,
+0x6d,0x72,0x79,0x7c,0x7c,0x7c,0x7b,0x7b,0x77,0x7e,0x7e,0x78,0x78,0x81,0x83,0x7e,
+0x7d,0x78,0x75,0x7e,0x8e,0x9e,0xa3,0xa3,0x8c,0x93,0x9e,0xa1,0xa3,0xb0,0xbd,0xbd,
+0xbb,0xc0,0xc1,0xbf,0xc2,0xcb,0xd3,0xd5,0xd1,0xd0,0xc8,0xa9,0x75,0x4a,0x45,0x56,
+0x53,0x54,0x56,0x58,0x5a,0x5e,0x67,0x70,0x7f,0x8a,0x8e,0x8a,0x8d,0x9d,0xa7,0xa7,
+0xa0,0x8b,0x76,0x73,0x7b,0x7d,0x74,0x69,0x5b,0x59,0x5c,0x64,0x6a,0x6a,0x6a,0x6b,
+0x6f,0x71,0x75,0x79,0x7d,0x7f,0x80,0x81,0x86,0x89,0x8a,0x8c,0x8f,0x92,0x93,0x91,
+0x90,0x90,0x92,0x94,0x97,0x98,0x98,0x97,0x9a,0x9b,0x9b,0x99,0x97,0x98,0x9d,0xa1,
+0x9c,0x9c,0x9b,0x9b,0x9c,0x9e,0xa1,0xa3,0xa9,0xa8,0xa6,0xa6,0xa8,0xa9,0xa9,0xa9,
+0xa5,0xa8,0xab,0xad,0xad,0xae,0xaf,0xb1,0xaf,0xaf,0xaf,0xaf,0xaf,0xb0,0xb0,0xb0,
+0xb1,0xb3,0xb6,0xb8,0xb9,0xb8,0xb6,0xb5,0xb7,0xb7,0xb6,0xb5,0xb5,0xb6,0xb7,0xb7,
+0xb5,0xb6,0xb7,0xb7,0xb7,0xb5,0xb3,0xb1,0xb2,0xb0,0xae,0xad,0xae,0xaf,0xaf,0xaf,
+0xac,0xa9,0xa6,0xa4,0xa3,0xa3,0xa2,0xa0,0xa2,0xa2,0xa1,0xa1,0xa0,0x9e,0x9d,0x9d,
+0x9c,0x9a,0x98,0x97,0x97,0x96,0x94,0x93,0x95,0x93,0x91,0x91,0x92,0x92,0x91,0x90,
+0x8a,0x8c,0x8d,0x8c,0x89,0x87,0x87,0x87,0x87,0x85,0x83,0x82,0x82,0x81,0x7f,0x7e,
+0x7e,0x7e,0x7d,0x7c,0x7a,0x78,0x77,0x76,0x6c,0x6d,0x6c,0x68,0x64,0x61,0x62,0x64,
+0x5b,0x57,0x53,0x4e,0x44,0x37,0x2f,0x2e,0x2f,0x2c,0x2d,0x34,0x3d,0x44,0x49,0x4c,
+0x4c,0x4b,0x49,0x44,0x3d,0x3a,0x3f,0x46,0x41,0x3d,0x3e,0x44,0x44,0x41,0x43,0x4b,
+0x48,0x4b,0x5e,0x7c,0x81,0x6b,0x68,0x7e,0x83,0x8e,0x75,0x50,0x48,0x48,0x44,0x48,
+0x47,0x47,0x49,0x4b,0x4e,0x52,0x59,0x5f,0x65,0x64,0x60,0x60,0x64,0x5d,0x50,0x4b,
+0x4d,0x55,0x5d,0x5d,0x53,0x4a,0x4d,0x55,0x5e,0x68,0x6d,0x69,0x68,0x6f,0x72,0x6e,
+0x74,0x8f,0xa5,0x9e,0x83,0x69,0x5c,0x58,0x51,0x57,0x66,0x75,0x75,0x69,0x62,0x63,
+0x65,0x5e,0x5c,0x5e,0x58,0x49,0x40,0x40,0x3e,0x3a,0x35,0x2f,0x25,0x1b,0x19,0x1d,
+0x27,0x1a,0x14,0x1c,0x22,0x22,0x28,0x34,0x32,0x24,0x16,0x12,0x14,0x15,0x13,0x12,
+0x2e,0x4a,0x4a,0x2b,0x18,0x1c,0x24,0x29,0x1a,0x15,0x19,0x18,0x13,0x1e,0x23,0x13,
+0x12,0x1a,0x1c,0x14,0x10,0x16,0x1a,0x19,0x11,0x16,0x1b,0x1c,0x1c,0x1c,0x1c,0x1c,
+0x21,0x1f,0x1e,0x1d,0x1a,0x16,0x16,0x18,0x1f,0x29,0x2a,0x29,0x33,0x38,0x2d,0x21,
+0x21,0x1b,0x17,0x18,0x19,0x19,0x1b,0x1f,0x20,0x25,0x2a,0x2b,0x29,0x28,0x2c,0x30,
+0x47,0x3d,0x33,0x32,0x36,0x39,0x39,0x39,0x2f,0x1f,0x15,0x19,0x1c,0x19,0x1b,0x21,
+0x22,0x23,0x23,0x25,0x29,0x2d,0x31,0x33,0x35,0x36,0x38,0x3a,0x3c,0x3d,0x3f,0x3f,
+0x42,0x41,0x3f,0x3f,0x3f,0x41,0x44,0x46,0x53,0x5e,0x65,0x61,0x5e,0x60,0x5c,0x55,
+0x59,0x57,0x51,0x4b,0x49,0x4c,0x4f,0x4f,0x54,0x52,0x52,0x54,0x50,0x48,0x47,0x4b,
+0x4f,0x51,0x52,0x4f,0x4b,0x4a,0x4e,0x52,0x54,0x54,0x53,0x4f,0x4e,0x4f,0x4e,0x4b,
+0x47,0x3f,0x34,0x2d,0x2c,0x2f,0x33,0x35,0x38,0x3e,0x48,0x4f,0x51,0x4f,0x4b,0x48,
+0x3f,0x3a,0x3a,0x3f,0x3f,0x3f,0x4b,0x5c,0x5f,0x60,0x63,0x65,0x63,0x5c,0x53,0x4c,
+0x46,0x48,0x4e,0x58,0x65,0x6c,0x6a,0x66,0x56,0x4c,0x3f,0x3e,0x4e,0x60,0x64,0x5d,
+0x5d,0x5a,0x58,0x5e,0x67,0x64,0x50,0x3a,0x33,0x33,0x36,0x3a,0x40,0x44,0x45,0x45,
+0x46,0x46,0x49,0x4f,0x59,0x60,0x5f,0x59,0x5a,0x53,0x51,0x57,0x5c,0x5a,0x58,0x59,
+0x64,0x6d,0x77,0x7c,0x7f,0x7e,0x76,0x6d,0x6c,0x63,0x5c,0x62,0x6f,0x76,0x6f,0x63,
+0x55,0x5b,0x5c,0x5b,0x59,0x52,0x4e,0x53,0x60,0x62,0x5f,0x61,0x69,0x6a,0x64,0x62,
+0x61,0x65,0x69,0x68,0x65,0x63,0x63,0x63,0x6c,0x6f,0x6e,0x67,0x63,0x64,0x65,0x65,
+0x6d,0x71,0x77,0x79,0x76,0x75,0x7a,0x82,0x7e,0x83,0x7d,0x78,0x8f,0xb0,0xb5,0xa2,
+0x7d,0x63,0x5b,0x67,0x74,0x85,0x93,0x93,0x8f,0x8f,0x91,0x8e,0x86,0x87,0x9a,0xb0,
+0xbe,0xbf,0xc0,0xc2,0xc5,0xc7,0xc8,0xc9,0xc9,0xca,0xc8,0xad,0x7c,0x58,0x50,0x53,
+0x54,0x53,0x51,0x50,0x52,0x58,0x5f,0x65,0x7d,0x87,0x92,0x96,0x97,0x94,0x8b,0x82,
+0x7f,0x81,0x73,0x73,0x7a,0x77,0x74,0x6d,0x5b,0x5f,0x5f,0x62,0x69,0x6a,0x69,0x6c,
+0x72,0x74,0x76,0x77,0x7b,0x7f,0x80,0x80,0x85,0x88,0x8b,0x8f,0x91,0x92,0x91,0x90,
+0x8e,0x90,0x94,0x96,0x97,0x98,0x9a,0x9b,0x9e,0x9a,0x96,0x96,0x99,0x9d,0x9e,0x9d,
+0x99,0x9d,0x9f,0x9f,0x9d,0x9c,0x9e,0xa1,0xa3,0xa5,0xa7,0xa9,0xa9,0xa8,0xa8,0xa7,
+0xa8,0xab,0xaf,0xb1,0xb2,0xb1,0xb1,0xb1,0xac,0xad,0xad,0xad,0xad,0xad,0xaf,0xb0,
+0xb0,0xb2,0xb4,0xb5,0xb4,0xb4,0xb4,0xb4,0xb8,0xb6,0xb4,0xb3,0xb4,0xb5,0xb6,0xb6,
+0xb4,0xb5,0xb6,0xb5,0xb4,0xb4,0xb4,0xb5,0xb4,0xb4,0xb2,0xb1,0xb0,0xb0,0xb0,0xb0,
+0xaa,0xa9,0xa7,0xa6,0xa5,0xa5,0xa4,0xa3,0xa2,0xa2,0xa1,0xa0,0x9f,0x9d,0x9d,0x9c,
+0x9d,0x9c,0x99,0x97,0x96,0x96,0x96,0x97,0x97,0x94,0x91,0x90,0x91,0x91,0x8f,0x8d,
+0x8b,0x8d,0x8e,0x8d,0x8b,0x88,0x87,0x88,0x86,0x86,0x85,0x83,0x82,0x80,0x7f,0x7f,
+0x7d,0x7d,0x7e,0x7e,0x7d,0x79,0x75,0x71,0x71,0x6f,0x6c,0x69,0x67,0x64,0x63,0x61,
+0x5f,0x58,0x52,0x4f,0x49,0x3c,0x30,0x2a,0x25,0x2b,0x36,0x44,0x4e,0x51,0x52,0x53,
+0x55,0x54,0x4e,0x42,0x38,0x36,0x3d,0x44,0x42,0x44,0x45,0x43,0x3d,0x3b,0x43,0x4c,
+0x4d,0x4f,0x5f,0x74,0x76,0x6a,0x6a,0x77,0x94,0x88,0x6b,0x4b,0x3f,0x45,0x46,0x3e,
+0x3c,0x37,0x36,0x39,0x3c,0x3c,0x3a,0x3a,0x3f,0x44,0x47,0x49,0x4d,0x52,0x53,0x4f,
+0x59,0x64,0x70,0x6f,0x5d,0x4e,0x52,0x60,0x55,0x56,0x53,0x53,0x5d,0x67,0x63,0x58,
+0x76,0x9a,0xab,0x90,0x6d,0x5f,0x59,0x51,0x44,0x50,0x66,0x73,0x71,0x70,0x73,0x71,
+0x70,0x68,0x5b,0x4f,0x49,0x45,0x41,0x3e,0x33,0x3b,0x39,0x30,0x27,0x1d,0x1a,0x20,
+0x29,0x20,0x18,0x16,0x19,0x1d,0x21,0x25,0x21,0x18,0x10,0x0f,0x11,0x13,0x15,0x17,
+0x32,0x2e,0x27,0x1d,0x17,0x18,0x1f,0x25,0x22,0x1c,0x16,0x16,0x19,0x1b,0x19,0x16,
+0x17,0x21,0x22,0x17,0x13,0x1a,0x20,0x1e,0x17,0x16,0x16,0x19,0x1d,0x20,0x1f,0x1b,
+0x1c,0x1d,0x22,0x24,0x1d,0x15,0x18,0x21,0x29,0x2b,0x2b,0x2c,0x35,0x3d,0x34,0x24,
+0x23,0x1e,0x1d,0x1a,0x16,0x19,0x1e,0x1c,0x21,0x27,0x2d,0x2f,0x30,0x31,0x31,0x30,
+0x48,0x42,0x3c,0x39,0x38,0x36,0x36,0x38,0x2d,0x1e,0x14,0x18,0x1c,0x1a,0x1c,0x21,
+0x22,0x23,0x24,0x27,0x2b,0x2f,0x34,0x36,0x36,0x37,0x39,0x3b,0x3d,0x3f,0x40,0x40,
+0x42,0x41,0x3f,0x3e,0x3f,0x41,0x43,0x45,0x60,0x5c,0x58,0x57,0x58,0x5a,0x58,0x55,
+0x54,0x4e,0x47,0x45,0x4b,0x54,0x56,0x54,0x5a,0x5a,0x5b,0x59,0x53,0x4b,0x47,0x47,
+0x4e,0x52,0x57,0x59,0x57,0x54,0x52,0x50,0x57,0x5a,0x5a,0x55,0x51,0x51,0x53,0x53,
+0x50,0x46,0x3a,0x31,0x2e,0x30,0x33,0x34,0x39,0x41,0x4d,0x55,0x57,0x53,0x4e,0x4b,
+0x3b,0x39,0x3d,0x45,0x4a,0x4c,0x51,0x59,0x5d,0x60,0x66,0x6b,0x68,0x5d,0x4c,0x40,
+0x46,0x44,0x40,0x3e,0x43,0x4b,0x50,0x4f,0x4a,0x45,0x40,0x42,0x4b,0x56,0x59,0x58,
+0x5a,0x68,0x73,0x6f,0x61,0x56,0x4f,0x4d,0x3b,0x36,0x2f,0x2a,0x2d,0x37,0x45,0x4f,
+0x49,0x47,0x46,0x4a,0x55,0x5f,0x62,0x5f,0x68,0x65,0x63,0x63,0x62,0x60,0x61,0x63,
+0x5f,0x64,0x6b,0x71,0x77,0x7b,0x78,0x71,0x71,0x67,0x5c,0x5c,0x64,0x6c,0x6c,0x68,
+0x6e,0x71,0x6b,0x61,0x59,0x54,0x5a,0x69,0x62,0x66,0x61,0x5b,0x5c,0x5d,0x5d,0x60,
+0x6a,0x67,0x65,0x62,0x5f,0x5e,0x65,0x6f,0x71,0x6f,0x6b,0x6a,0x6f,0x75,0x74,0x6f,
+0x6a,0x6c,0x71,0x75,0x76,0x76,0x7a,0x80,0x87,0x87,0x81,0x7d,0x89,0x9e,0xa8,0xa4,
+0x8e,0x78,0x66,0x61,0x65,0x7a,0x9b,0xb2,0xa8,0x9a,0x92,0x93,0x8f,0x85,0x85,0x8f,
+0xa7,0xaf,0xb9,0xc1,0xc7,0xcc,0xd1,0xd5,0xd7,0xd3,0xcb,0xae,0x7f,0x5d,0x56,0x57,
+0x52,0x56,0x5b,0x60,0x62,0x62,0x63,0x63,0x81,0x8f,0x9c,0x9a,0x90,0x87,0x83,0x81,
+0x7a,0x77,0x67,0x68,0x73,0x78,0x7b,0x73,0x54,0x5d,0x62,0x64,0x68,0x67,0x66,0x6c,
+0x72,0x72,0x74,0x79,0x7d,0x80,0x81,0x81,0x86,0x87,0x89,0x8c,0x8d,0x8e,0x8e,0x8e,
+0x8e,0x90,0x93,0x95,0x97,0x98,0x99,0x9a,0x9d,0x9a,0x97,0x97,0x9a,0x9d,0x9d,0x9c,
+0x9b,0x9c,0x9e,0x9d,0x9c,0x9b,0x9d,0x9e,0xa0,0xa4,0xa8,0xa8,0xa6,0xa5,0xa6,0xa8,
+0xa8,0xaa,0xad,0xae,0xae,0xae,0xae,0xae,0xae,0xaf,0xaf,0xaf,0xae,0xaf,0xb0,0xb2,
+0xb0,0xb2,0xb4,0xb5,0xb4,0xb4,0xb4,0xb4,0xb9,0xb7,0xb5,0xb4,0xb4,0xb4,0xb4,0xb4,
+0xb4,0xb5,0xb5,0xb5,0xb4,0xb3,0xb4,0xb5,0xb4,0xb3,0xb2,0xb1,0xb0,0xb0,0xb0,0xb0,
+0xac,0xaa,0xa8,0xa6,0xa5,0xa4,0xa2,0xa1,0xa2,0xa2,0xa1,0xa0,0x9f,0x9d,0x9d,0x9c,
+0x9e,0x9d,0x9d,0x9c,0x9b,0x9a,0x99,0x98,0x95,0x94,0x93,0x91,0x8f,0x8e,0x8e,0x8e,
+0x8d,0x8f,0x90,0x8f,0x8c,0x8a,0x89,0x89,0x86,0x86,0x86,0x86,0x84,0x82,0x7f,0x7e,
+0x80,0x80,0x7f,0x7f,0x7d,0x7a,0x76,0x73,0x72,0x70,0x6d,0x6a,0x68,0x65,0x62,0x60,
+0x5e,0x58,0x52,0x4f,0x48,0x3c,0x2f,0x29,0x2a,0x32,0x43,0x53,0x5d,0x5e,0x5d,0x5d,
+0x5f,0x5e,0x59,0x4d,0x40,0x38,0x3a,0x3e,0x3e,0x40,0x43,0x44,0x41,0x40,0x46,0x4d,
+0x4b,0x46,0x4b,0x57,0x58,0x51,0x54,0x5e,0x68,0x63,0x54,0x44,0x41,0x46,0x46,0x3e,
+0x33,0x33,0x36,0x39,0x3a,0x38,0x38,0x3a,0x33,0x35,0x36,0x3a,0x45,0x54,0x5d,0x60,
+0x4f,0x59,0x67,0x6d,0x64,0x54,0x46,0x40,0x3a,0x39,0x3c,0x42,0x47,0x49,0x49,0x4b,
+0x5b,0x73,0x7d,0x6d,0x5e,0x5c,0x54,0x45,0x48,0x53,0x68,0x78,0x79,0x79,0x78,0x73,
+0x71,0x6c,0x61,0x54,0x48,0x41,0x3e,0x3c,0x36,0x3d,0x3b,0x30,0x25,0x1b,0x18,0x1e,
+0x22,0x1c,0x18,0x17,0x18,0x19,0x1a,0x1c,0x13,0x0f,0x0d,0x11,0x15,0x17,0x18,0x18,
+0x20,0x1d,0x18,0x13,0x10,0x13,0x1a,0x20,0x21,0x1c,0x17,0x18,0x1c,0x1e,0x1c,0x19,
+0x19,0x20,0x20,0x16,0x10,0x13,0x16,0x15,0x16,0x18,0x1b,0x1c,0x1d,0x1e,0x1e,0x1d,
+0x22,0x21,0x23,0x25,0x20,0x19,0x1c,0x23,0x2a,0x2d,0x2f,0x35,0x43,0x4c,0x43,0x32,
+0x1e,0x1b,0x1e,0x20,0x1b,0x1b,0x1d,0x1a,0x23,0x29,0x2e,0x30,0x30,0x32,0x32,0x30,
+0x47,0x46,0x45,0x42,0x3c,0x37,0x39,0x3e,0x33,0x23,0x18,0x18,0x1c,0x1b,0x1c,0x20,
+0x22,0x22,0x24,0x27,0x2b,0x31,0x36,0x38,0x38,0x38,0x3a,0x3c,0x3e,0x40,0x41,0x42,
+0x42,0x40,0x3f,0x3e,0x3e,0x40,0x42,0x44,0x4d,0x4d,0x51,0x5b,0x5e,0x5a,0x56,0x56,
+0x4f,0x4e,0x50,0x5a,0x69,0x6e,0x66,0x59,0x57,0x5b,0x5d,0x5a,0x56,0x52,0x4d,0x4a,
+0x4d,0x53,0x5b,0x61,0x64,0x62,0x5e,0x5b,0x61,0x65,0x65,0x5e,0x55,0x51,0x53,0x54,
+0x58,0x4d,0x3f,0x33,0x2f,0x2f,0x2f,0x30,0x34,0x3f,0x4c,0x55,0x56,0x52,0x4d,0x4a,
+0x3e,0x3b,0x39,0x3d,0x46,0x4f,0x56,0x58,0x5c,0x5b,0x59,0x58,0x57,0x53,0x4c,0x46,
+0x45,0x49,0x47,0x40,0x3d,0x40,0x3f,0x3a,0x3b,0x3e,0x44,0x4c,0x50,0x53,0x58,0x5d,
+0x5a,0x65,0x6e,0x6a,0x5d,0x4f,0x45,0x40,0x48,0x46,0x42,0x3d,0x39,0x3b,0x42,0x47,
+0x46,0x43,0x3f,0x40,0x47,0x52,0x59,0x5b,0x5f,0x5f,0x5f,0x61,0x66,0x6b,0x6b,0x68,
+0x5e,0x5e,0x5e,0x61,0x68,0x70,0x72,0x71,0x67,0x5f,0x57,0x56,0x5c,0x67,0x70,0x75,
+0x78,0x76,0x6c,0x61,0x5c,0x59,0x60,0x6d,0x68,0x70,0x6c,0x5e,0x55,0x50,0x52,0x59,
+0x55,0x59,0x61,0x68,0x65,0x5f,0x61,0x67,0x68,0x63,0x5c,0x5a,0x60,0x67,0x69,0x67,
+0x6f,0x6d,0x6e,0x72,0x75,0x76,0x77,0x79,0x79,0x7c,0x83,0x8a,0x8c,0x8b,0x8d,0x91,
+0x87,0x78,0x64,0x5e,0x68,0x77,0x8b,0x9e,0x94,0x8c,0x91,0xa0,0x9d,0x8b,0x83,0x8b,
+0x91,0x9b,0xa6,0xae,0xb3,0xb9,0xc2,0xca,0xcc,0xc6,0xbb,0x9e,0x74,0x5a,0x56,0x58,
+0x60,0x61,0x60,0x5f,0x5d,0x5c,0x5c,0x5c,0x74,0x88,0x99,0x9a,0x8f,0x8a,0x8f,0x96,
+0xa6,0xa9,0x9a,0x8b,0x7e,0x76,0x79,0x73,0x4d,0x5b,0x64,0x66,0x66,0x63,0x64,0x6d,
+0x72,0x70,0x73,0x7b,0x81,0x81,0x81,0x83,0x87,0x88,0x88,0x89,0x8b,0x8c,0x8d,0x8d,
+0x8e,0x90,0x93,0x95,0x96,0x97,0x98,0x9a,0x9a,0x98,0x96,0x97,0x9a,0x9c,0x9c,0x9b,
+0x9c,0x9b,0x9b,0x9a,0x9a,0x9a,0x9b,0x9c,0x9d,0xa1,0xa6,0xa6,0xa2,0xa1,0xa3,0xa7,
+0xa7,0xa9,0xaa,0xab,0xaa,0xaa,0xab,0xab,0xaf,0xaf,0xb0,0xaf,0xaf,0xaf,0xb0,0xb1,
+0xaf,0xb1,0xb3,0xb3,0xb3,0xb3,0xb3,0xb4,0xb8,0xb7,0xb6,0xb5,0xb5,0xb4,0xb3,0xb1,
+0xb2,0xb3,0xb4,0xb4,0xb3,0xb3,0xb4,0xb5,0xb3,0xb3,0xb2,0xb1,0xb0,0xb0,0xaf,0xaf,
+0xae,0xac,0xa9,0xa7,0xa5,0xa3,0xa1,0xa0,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,0x9c,
+0x9d,0x9e,0x9f,0x9f,0x9e,0x9d,0x9b,0x9a,0x95,0x96,0x96,0x93,0x8f,0x8d,0x8e,0x8f,
+0x8f,0x90,0x90,0x8f,0x8c,0x8a,0x89,0x88,0x85,0x86,0x87,0x87,0x85,0x82,0x7e,0x7c,
+0x80,0x7f,0x7e,0x7d,0x7d,0x7b,0x79,0x76,0x73,0x71,0x6e,0x6c,0x69,0x66,0x62,0x5f,
+0x5f,0x5a,0x55,0x51,0x4b,0x3f,0x32,0x2a,0x2b,0x33,0x42,0x4f,0x55,0x55,0x54,0x54,
+0x59,0x5b,0x5a,0x53,0x47,0x3f,0x3c,0x3e,0x41,0x42,0x44,0x46,0x45,0x44,0x46,0x4a,
+0x4b,0x46,0x43,0x45,0x46,0x45,0x47,0x4c,0x49,0x47,0x42,0x3f,0x3f,0x41,0x3e,0x3a,
+0x3a,0x3c,0x42,0x4b,0x50,0x4e,0x4a,0x48,0x47,0x45,0x42,0x44,0x4e,0x5b,0x63,0x66,
+0x62,0x63,0x60,0x59,0x54,0x51,0x4e,0x4c,0x46,0x3e,0x3b,0x3c,0x38,0x34,0x41,0x55,
+0x75,0x80,0x7a,0x60,0x4f,0x52,0x55,0x4f,0x4b,0x55,0x6b,0x7c,0x7f,0x80,0x7d,0x76,
+0x75,0x70,0x66,0x57,0x47,0x3d,0x3b,0x3c,0x3c,0x42,0x3e,0x32,0x25,0x1a,0x18,0x1f,
+0x1d,0x1a,0x19,0x1a,0x19,0x15,0x13,0x14,0x13,0x11,0x13,0x18,0x1b,0x19,0x16,0x15,
+0x16,0x14,0x11,0x0f,0x11,0x15,0x1b,0x1f,0x23,0x1e,0x1a,0x1b,0x20,0x22,0x1f,0x1b,
+0x1f,0x22,0x22,0x1c,0x14,0x12,0x13,0x14,0x17,0x1b,0x1f,0x20,0x1e,0x1d,0x1d,0x1f,
+0x24,0x23,0x24,0x24,0x1f,0x19,0x1b,0x21,0x2e,0x30,0x32,0x37,0x40,0x43,0x35,0x22,
+0x1b,0x19,0x21,0x28,0x25,0x20,0x1f,0x1b,0x23,0x29,0x2f,0x31,0x33,0x35,0x34,0x32,
+0x42,0x43,0x43,0x41,0x3c,0x38,0x3d,0x44,0x3e,0x2e,0x1f,0x1a,0x1b,0x1c,0x1d,0x1f,
+0x21,0x22,0x23,0x26,0x2b,0x30,0x35,0x38,0x39,0x39,0x3b,0x3c,0x3e,0x40,0x42,0x43,
+0x42,0x41,0x3f,0x3e,0x3e,0x40,0x42,0x43,0x44,0x51,0x61,0x69,0x66,0x5f,0x5c,0x5d,
+0x55,0x57,0x5d,0x68,0x75,0x77,0x6a,0x5b,0x52,0x57,0x59,0x57,0x58,0x5c,0x5c,0x58,
+0x56,0x5a,0x60,0x64,0x66,0x65,0x65,0x64,0x67,0x6a,0x6a,0x63,0x5b,0x57,0x57,0x57,
+0x5b,0x50,0x42,0x35,0x2f,0x2d,0x2d,0x2d,0x2e,0x37,0x43,0x49,0x4a,0x47,0x45,0x45,
+0x49,0x49,0x45,0x42,0x48,0x52,0x57,0x56,0x46,0x4b,0x51,0x55,0x56,0x52,0x4d,0x4a,
+0x53,0x5e,0x61,0x5a,0x54,0x53,0x4e,0x46,0x4e,0x50,0x56,0x59,0x52,0x48,0x46,0x4b,
+0x56,0x56,0x57,0x5a,0x59,0x4f,0x3d,0x2f,0x3a,0x41,0x4b,0x53,0x56,0x54,0x50,0x4d,
+0x4b,0x4b,0x49,0x46,0x48,0x4f,0x58,0x5c,0x58,0x58,0x58,0x5c,0x68,0x70,0x6a,0x5e,
+0x5f,0x5c,0x58,0x57,0x5c,0x65,0x6e,0x73,0x65,0x5f,0x59,0x57,0x5b,0x63,0x6c,0x74,
+0x73,0x69,0x59,0x52,0x58,0x5c,0x60,0x69,0x6d,0x77,0x74,0x64,0x55,0x49,0x46,0x4c,
+0x4d,0x61,0x78,0x84,0x82,0x78,0x6d,0x65,0x63,0x62,0x5e,0x59,0x57,0x5c,0x65,0x6b,
+0x6b,0x65,0x60,0x62,0x65,0x66,0x66,0x66,0x65,0x6c,0x79,0x86,0x86,0x7d,0x78,0x79,
+0x72,0x73,0x6b,0x6a,0x74,0x74,0x71,0x78,0x7f,0x7e,0x87,0x96,0x99,0x90,0x8c,0x91,
+0x94,0x97,0x9b,0x9c,0x9f,0xa6,0xb2,0xbb,0xb2,0xaf,0xa9,0x92,0x6f,0x5d,0x5f,0x64,
+0x63,0x61,0x5e,0x5a,0x59,0x5b,0x5f,0x62,0x63,0x73,0x83,0x89,0x87,0x88,0x8f,0x97,
+0x9a,0xa2,0x9b,0x8f,0x7e,0x75,0x75,0x67,0x4d,0x5b,0x64,0x66,0x65,0x62,0x65,0x6e,
+0x73,0x70,0x74,0x7e,0x82,0x80,0x7f,0x82,0x87,0x88,0x89,0x8a,0x8c,0x8c,0x8d,0x8d,
+0x8d,0x8f,0x92,0x94,0x95,0x96,0x97,0x98,0x97,0x96,0x95,0x96,0x98,0x9a,0x99,0x98,
+0x9a,0x99,0x97,0x97,0x98,0x99,0x9a,0x9a,0x9c,0x9f,0xa2,0xa2,0xa0,0xa0,0xa2,0xa5,
+0xa6,0xa7,0xa8,0xa8,0xa8,0xa9,0xaa,0xac,0xae,0xae,0xaf,0xae,0xad,0xae,0xaf,0xb0,
+0xae,0xb0,0xb1,0xb2,0xb1,0xb1,0xb2,0xb3,0xb7,0xb6,0xb5,0xb5,0xb6,0xb5,0xb3,0xb1,
+0xb1,0xb2,0xb3,0xb3,0xb2,0xb2,0xb3,0xb4,0xb3,0xb2,0xb1,0xb1,0xb0,0xaf,0xaf,0xae,
+0xae,0xac,0xa9,0xa7,0xa5,0xa4,0xa2,0xa0,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,0x9d,
+0x9c,0x9d,0x9d,0x9e,0x9d,0x9c,0x9b,0x9a,0x98,0x98,0x98,0x95,0x92,0x8f,0x8f,0x90,
+0x8f,0x8f,0x8f,0x8d,0x8b,0x89,0x87,0x86,0x85,0x85,0x85,0x84,0x82,0x80,0x7d,0x7b,
+0x7d,0x7c,0x7b,0x7b,0x7c,0x7c,0x7b,0x79,0x75,0x72,0x70,0x6e,0x6b,0x67,0x62,0x5e,
+0x5f,0x5c,0x58,0x55,0x50,0x45,0x39,0x30,0x2f,0x32,0x38,0x3d,0x3e,0x3c,0x3e,0x41,
+0x42,0x47,0x4c,0x4b,0x46,0x42,0x42,0x43,0x49,0x47,0x46,0x47,0x47,0x44,0x44,0x45,
+0x45,0x46,0x46,0x45,0x45,0x46,0x46,0x45,0x46,0x41,0x3d,0x3d,0x3c,0x3b,0x3a,0x3b,
+0x42,0x44,0x4f,0x61,0x6f,0x6e,0x63,0x59,0x64,0x62,0x5f,0x5e,0x5e,0x5c,0x56,0x51,
+0x48,0x54,0x5d,0x59,0x55,0x57,0x5c,0x5e,0x54,0x4b,0x43,0x3d,0x34,0x31,0x43,0x5b,
+0x92,0x94,0x82,0x60,0x4c,0x4f,0x57,0x57,0x4e,0x58,0x6d,0x7c,0x7f,0x7f,0x7f,0x7a,
+0x7b,0x72,0x64,0x54,0x45,0x3b,0x39,0x3b,0x40,0x45,0x41,0x34,0x28,0x1d,0x1b,0x23,
+0x1e,0x1c,0x1c,0x1c,0x19,0x14,0x13,0x14,0x17,0x16,0x17,0x1a,0x1a,0x17,0x14,0x14,
+0x18,0x16,0x13,0x13,0x16,0x1b,0x1f,0x22,0x25,0x20,0x1c,0x1e,0x23,0x25,0x21,0x1b,
+0x22,0x24,0x25,0x22,0x1c,0x17,0x16,0x18,0x1b,0x1c,0x1f,0x21,0x1f,0x1d,0x1e,0x21,
+0x26,0x27,0x2a,0x28,0x21,0x1b,0x1c,0x21,0x2c,0x32,0x38,0x3d,0x42,0x42,0x36,0x27,
+0x19,0x16,0x20,0x2c,0x2a,0x25,0x22,0x1f,0x22,0x29,0x30,0x35,0x38,0x39,0x37,0x34,
+0x41,0x3f,0x3d,0x3b,0x38,0x37,0x3d,0x44,0x46,0x37,0x26,0x1b,0x19,0x1c,0x1f,0x21,
+0x24,0x24,0x25,0x28,0x2b,0x30,0x34,0x37,0x39,0x3a,0x3b,0x3c,0x3e,0x41,0x43,0x44,
+0x44,0x43,0x40,0x3f,0x3f,0x40,0x42,0x43,0x4c,0x58,0x60,0x5c,0x57,0x59,0x5b,0x5b,
+0x5d,0x5a,0x57,0x56,0x5c,0x63,0x65,0x63,0x5d,0x5e,0x5c,0x5b,0x60,0x69,0x6b,0x67,
+0x62,0x66,0x69,0x6a,0x68,0x66,0x67,0x69,0x6b,0x6c,0x6c,0x69,0x69,0x6a,0x69,0x67,
+0x5d,0x55,0x48,0x3c,0x33,0x2f,0x30,0x31,0x30,0x35,0x3b,0x3e,0x3e,0x3d,0x3e,0x3f,
+0x44,0x4d,0x53,0x4f,0x4b,0x4a,0x47,0x42,0x44,0x48,0x4b,0x4b,0x4a,0x4d,0x53,0x58,
+0x66,0x6c,0x6b,0x62,0x5d,0x61,0x64,0x62,0x60,0x5f,0x61,0x61,0x59,0x4b,0x43,0x44,
+0x4a,0x4b,0x4d,0x4f,0x4f,0x49,0x42,0x3d,0x38,0x3c,0x43,0x4c,0x54,0x55,0x50,0x4b,
+0x46,0x4d,0x50,0x4d,0x49,0x4d,0x54,0x5a,0x73,0x74,0x71,0x6f,0x72,0x76,0x71,0x68,
+0x61,0x5d,0x58,0x54,0x54,0x5c,0x68,0x72,0x72,0x6a,0x61,0x5c,0x5a,0x5b,0x62,0x69,
+0x71,0x68,0x58,0x52,0x5a,0x60,0x65,0x6e,0x6d,0x74,0x72,0x67,0x58,0x48,0x42,0x49,
+0x5e,0x78,0x90,0x98,0x96,0x90,0x82,0x73,0x64,0x64,0x64,0x63,0x62,0x65,0x6b,0x71,
+0x67,0x5f,0x59,0x5a,0x5f,0x62,0x63,0x65,0x69,0x6a,0x6d,0x71,0x74,0x75,0x75,0x74,
+0x77,0x84,0x83,0x7a,0x77,0x70,0x6f,0x7a,0x78,0x73,0x71,0x7b,0x8e,0x9d,0xa1,0x9d,
+0x95,0x92,0x8e,0x8d,0x91,0x99,0xa1,0xa6,0xaa,0xab,0xa8,0x8e,0x66,0x50,0x50,0x54,
+0x4a,0x4c,0x50,0x54,0x59,0x5f,0x65,0x69,0x70,0x74,0x7a,0x81,0x84,0x84,0x83,0x83,
+0x7c,0x7c,0x77,0x7c,0x82,0x87,0x80,0x60,0x51,0x5c,0x63,0x64,0x66,0x65,0x67,0x6f,
+0x74,0x73,0x77,0x7f,0x81,0x7e,0x7d,0x7f,0x83,0x85,0x88,0x8b,0x8d,0x8d,0x8c,0x8b,
+0x8d,0x8f,0x92,0x94,0x94,0x95,0x96,0x97,0x94,0x94,0x94,0x95,0x96,0x97,0x97,0x96,
+0x97,0x96,0x95,0x95,0x97,0x99,0x9b,0x9b,0x9d,0x9d,0x9d,0x9e,0xa0,0xa1,0xa2,0xa2,
+0xa5,0xa6,0xa7,0xa8,0xa8,0xa9,0xab,0xad,0xad,0xae,0xae,0xae,0xad,0xae,0xaf,0xb0,
+0xaf,0xb0,0xb2,0xb2,0xb2,0xb2,0xb3,0xb4,0xb5,0xb4,0xb4,0xb5,0xb6,0xb5,0xb3,0xb1,
+0xb1,0xb1,0xb2,0xb2,0xb1,0xb1,0xb1,0xb2,0xb2,0xb2,0xb1,0xb0,0xb0,0xaf,0xae,0xae,
+0xac,0xaa,0xa8,0xa7,0xa6,0xa5,0xa4,0xa2,0xa3,0xa3,0xa2,0xa1,0x9f,0x9e,0x9d,0x9d,
+0x9d,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9b,0x99,0x96,0x94,0x93,0x92,0x90,0x8f,
+0x90,0x8f,0x8e,0x8c,0x8b,0x89,0x87,0x86,0x87,0x86,0x84,0x82,0x81,0x7f,0x7f,0x7e,
+0x7f,0x7e,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x77,0x74,0x70,0x6e,0x6d,0x69,0x63,0x5e,
+0x5e,0x5d,0x5a,0x57,0x53,0x4c,0x41,0x38,0x36,0x35,0x36,0x37,0x36,0x34,0x36,0x3a,
+0x36,0x3b,0x40,0x41,0x3e,0x3c,0x3d,0x40,0x44,0x41,0x3e,0x40,0x41,0x40,0x40,0x40,
+0x3a,0x41,0x44,0x41,0x3f,0x40,0x40,0x3d,0x43,0x3e,0x3b,0x3c,0x3c,0x3b,0x3d,0x41,
+0x3b,0x44,0x58,0x6e,0x7b,0x78,0x6e,0x66,0x6e,0x6d,0x6d,0x6c,0x66,0x59,0x4a,0x40,
+0x41,0x51,0x5c,0x59,0x51,0x4e,0x4e,0x4e,0x50,0x51,0x4f,0x49,0x43,0x44,0x4f,0x59,
+0x73,0x6f,0x60,0x4f,0x4f,0x5a,0x5c,0x55,0x54,0x5e,0x71,0x7c,0x7b,0x7b,0x7f,0x7f,
+0x82,0x71,0x5c,0x4c,0x3f,0x38,0x35,0x37,0x3f,0x44,0x3f,0x33,0x2a,0x21,0x1f,0x27,
+0x22,0x1f,0x1d,0x1c,0x19,0x16,0x17,0x1a,0x13,0x11,0x11,0x12,0x13,0x13,0x15,0x19,
+0x1a,0x17,0x15,0x14,0x17,0x1c,0x20,0x22,0x24,0x1f,0x1b,0x1f,0x26,0x29,0x24,0x1e,
+0x23,0x25,0x26,0x24,0x1e,0x19,0x18,0x19,0x1c,0x1a,0x1b,0x1f,0x20,0x1e,0x1e,0x21,
+0x26,0x2c,0x31,0x2e,0x25,0x1d,0x1e,0x23,0x2e,0x38,0x40,0x41,0x3e,0x39,0x30,0x28,
+0x1b,0x14,0x1b,0x29,0x2b,0x26,0x25,0x24,0x26,0x2d,0x35,0x3a,0x3d,0x3c,0x38,0x32,
+0x4a,0x45,0x41,0x3c,0x39,0x38,0x3d,0x44,0x46,0x3c,0x2c,0x1d,0x19,0x1c,0x21,0x23,
+0x27,0x27,0x28,0x2a,0x2d,0x31,0x35,0x37,0x3a,0x3b,0x3b,0x3d,0x3f,0x41,0x43,0x45,
+0x46,0x45,0x42,0x41,0x40,0x41,0x43,0x44,0x46,0x4e,0x51,0x50,0x57,0x63,0x65,0x5e,
+0x5b,0x5a,0x56,0x51,0x52,0x5c,0x69,0x72,0x6d,0x68,0x63,0x64,0x6c,0x74,0x73,0x6e,
+0x66,0x6a,0x6f,0x73,0x74,0x74,0x74,0x75,0x78,0x75,0x70,0x6f,0x72,0x77,0x77,0x73,
+0x61,0x5d,0x53,0x46,0x3a,0x34,0x35,0x38,0x37,0x39,0x3c,0x3e,0x3f,0x3f,0x3f,0x40,
+0x48,0x55,0x5d,0x57,0x4b,0x43,0x40,0x3e,0x4e,0x4b,0x44,0x3c,0x3a,0x42,0x51,0x5d,
+0x5f,0x5e,0x5b,0x57,0x57,0x5d,0x62,0x64,0x67,0x66,0x68,0x6a,0x68,0x60,0x57,0x53,
+0x44,0x42,0x42,0x43,0x43,0x43,0x44,0x47,0x40,0x3e,0x3f,0x43,0x49,0x4b,0x47,0x42,
+0x3f,0x47,0x4d,0x4c,0x49,0x4b,0x51,0x56,0x62,0x67,0x68,0x63,0x5e,0x61,0x69,0x6f,
+0x67,0x60,0x58,0x51,0x4c,0x4d,0x55,0x5d,0x6a,0x64,0x5f,0x5c,0x59,0x5b,0x65,0x71,
+0x6e,0x75,0x76,0x74,0x71,0x69,0x67,0x6f,0x6e,0x6f,0x6e,0x6d,0x64,0x53,0x4e,0x59,
+0x69,0x80,0x97,0x9f,0xa0,0x9b,0x8c,0x7c,0x67,0x63,0x61,0x66,0x6a,0x69,0x65,0x61,
+0x60,0x5b,0x58,0x5b,0x61,0x67,0x6b,0x6f,0x73,0x71,0x6e,0x6c,0x70,0x76,0x77,0x75,
+0x8a,0x90,0x8c,0x81,0x7c,0x7a,0x79,0x7b,0x6c,0x72,0x78,0x7e,0x8c,0x9d,0xa3,0x9f,
+0x90,0x8b,0x86,0x86,0x8a,0x8d,0x8d,0x8b,0x98,0x9e,0x9f,0x89,0x63,0x4d,0x4b,0x4c,
+0x4f,0x50,0x50,0x52,0x56,0x5d,0x66,0x6c,0x76,0x74,0x77,0x7e,0x82,0x81,0x7c,0x78,
+0x82,0x80,0x7d,0x81,0x85,0x8c,0x85,0x5f,0x54,0x5e,0x63,0x65,0x68,0x67,0x68,0x6f,
+0x72,0x77,0x7c,0x7e,0x7d,0x7c,0x7c,0x7d,0x7f,0x82,0x86,0x89,0x8b,0x8a,0x89,0x88,
+0x8c,0x8e,0x91,0x93,0x93,0x94,0x95,0x96,0x93,0x93,0x93,0x94,0x94,0x95,0x96,0x96,
+0x95,0x95,0x95,0x96,0x97,0x99,0x9b,0x9c,0x9f,0x9c,0x9b,0x9c,0xa0,0xa2,0xa2,0xa1,
+0xa4,0xa5,0xa7,0xa7,0xa8,0xa9,0xab,0xad,0xad,0xae,0xae,0xae,0xae,0xaf,0xb0,0xb2,
+0xb1,0xb3,0xb4,0xb4,0xb3,0xb4,0xb5,0xb6,0xb4,0xb4,0xb4,0xb5,0xb5,0xb5,0xb4,0xb2,
+0xb0,0xb1,0xb2,0xb1,0xb0,0xaf,0xb0,0xb0,0xb1,0xb1,0xb1,0xb0,0xaf,0xae,0xad,0xad,
+0xab,0xaa,0xa8,0xa7,0xa7,0xa6,0xa5,0xa4,0xa3,0xa3,0xa2,0xa1,0xa0,0x9e,0x9e,0x9d,
+0x9e,0x9d,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9a,0x97,0x93,0x92,0x93,0x93,0x90,0x8d,
+0x90,0x8f,0x8d,0x8c,0x8b,0x8a,0x89,0x87,0x89,0x87,0x85,0x83,0x82,0x81,0x82,0x82,
+0x83,0x82,0x80,0x7e,0x7d,0x7c,0x79,0x78,0x78,0x75,0x71,0x6e,0x6d,0x6a,0x64,0x60,
+0x5c,0x5b,0x59,0x56,0x54,0x4f,0x46,0x3e,0x36,0x35,0x37,0x3a,0x3c,0x3a,0x3a,0x3c,
+0x3e,0x40,0x41,0x3e,0x39,0x35,0x35,0x36,0x35,0x32,0x31,0x34,0x38,0x39,0x3a,0x3b,
+0x3a,0x3e,0x3e,0x39,0x35,0x36,0x37,0x36,0x38,0x37,0x38,0x39,0x39,0x38,0x3a,0x3d,
+0x36,0x48,0x61,0x73,0x76,0x70,0x6e,0x70,0x75,0x75,0x76,0x75,0x6e,0x60,0x52,0x4a,
+0x66,0x62,0x5a,0x50,0x48,0x46,0x44,0x42,0x52,0x57,0x55,0x4d,0x4b,0x53,0x5a,0x5b,
+0x52,0x52,0x4c,0x47,0x50,0x62,0x6c,0x6c,0x5e,0x66,0x76,0x7d,0x79,0x79,0x7f,0x80,
+0x80,0x6a,0x50,0x41,0x39,0x33,0x31,0x32,0x3b,0x3e,0x39,0x30,0x2b,0x24,0x22,0x28,
+0x24,0x20,0x1d,0x1d,0x1c,0x1b,0x1d,0x1f,0x17,0x14,0x12,0x11,0x10,0x10,0x16,0x1d,
+0x1c,0x1a,0x17,0x15,0x17,0x1b,0x21,0x25,0x22,0x1d,0x1a,0x1f,0x28,0x2c,0x29,0x23,
+0x28,0x2b,0x2b,0x26,0x20,0x1d,0x1b,0x18,0x18,0x17,0x19,0x20,0x23,0x20,0x20,0x22,
+0x20,0x26,0x2c,0x2a,0x22,0x1c,0x1d,0x21,0x31,0x3a,0x41,0x3d,0x35,0x2e,0x29,0x27,
+0x27,0x18,0x1a,0x29,0x2d,0x2b,0x2b,0x2d,0x30,0x35,0x3b,0x3e,0x40,0x3f,0x39,0x33,
+0x51,0x4e,0x49,0x42,0x3b,0x38,0x3d,0x44,0x47,0x41,0x34,0x24,0x1c,0x1d,0x21,0x22,
+0x28,0x28,0x29,0x2a,0x2e,0x32,0x36,0x38,0x3c,0x3c,0x3c,0x3e,0x40,0x42,0x45,0x46,
+0x49,0x47,0x44,0x42,0x42,0x42,0x44,0x45,0x46,0x4c,0x54,0x5c,0x67,0x6f,0x6d,0x67,
+0x62,0x67,0x68,0x60,0x59,0x5b,0x65,0x6d,0x68,0x61,0x5f,0x69,0x77,0x7c,0x77,0x71,
+0x66,0x67,0x6a,0x71,0x79,0x7e,0x7d,0x7b,0x77,0x70,0x67,0x61,0x65,0x6c,0x6f,0x6e,
+0x64,0x63,0x5c,0x4e,0x3e,0x34,0x35,0x39,0x37,0x3a,0x3f,0x46,0x4b,0x4c,0x4b,0x49,
+0x5a,0x66,0x6f,0x6a,0x5c,0x50,0x4e,0x51,0x47,0x4b,0x50,0x53,0x53,0x50,0x4d,0x4c,
+0x4a,0x46,0x45,0x4a,0x50,0x54,0x56,0x59,0x6e,0x6f,0x6e,0x6c,0x6a,0x64,0x58,0x4d,
+0x45,0x41,0x3e,0x40,0x40,0x3d,0x3b,0x3c,0x35,0x36,0x3a,0x42,0x4a,0x50,0x50,0x4e,
+0x4a,0x4e,0x50,0x50,0x50,0x54,0x58,0x59,0x59,0x5d,0x63,0x65,0x64,0x68,0x74,0x80,
+0x6c,0x62,0x58,0x51,0x4b,0x47,0x47,0x49,0x51,0x53,0x58,0x5b,0x58,0x58,0x65,0x75,
+0x73,0x81,0x8b,0x8b,0x81,0x6e,0x63,0x65,0x6f,0x6e,0x74,0x7e,0x79,0x64,0x5e,0x6e,
+0x78,0x83,0x92,0x9d,0x9b,0x8e,0x7e,0x74,0x6b,0x64,0x60,0x62,0x65,0x62,0x5d,0x5a,
+0x57,0x56,0x58,0x5c,0x61,0x64,0x68,0x6d,0x72,0x74,0x75,0x75,0x74,0x74,0x75,0x77,
+0x8c,0x8a,0x88,0x85,0x83,0x85,0x7e,0x6f,0x71,0x7e,0x89,0x89,0x84,0x83,0x85,0x87,
+0x8c,0x89,0x86,0x87,0x89,0x89,0x84,0x7f,0x7f,0x89,0x91,0x84,0x69,0x5c,0x5c,0x5b,
+0x5f,0x5d,0x5b,0x59,0x5a,0x60,0x67,0x6c,0x65,0x68,0x70,0x77,0x77,0x73,0x72,0x74,
+0x79,0x80,0x84,0x83,0x7b,0x7f,0x7b,0x57,0x53,0x5f,0x65,0x67,0x69,0x67,0x67,0x6e,
+0x6f,0x79,0x7f,0x7c,0x79,0x7b,0x7d,0x7c,0x80,0x81,0x83,0x86,0x87,0x87,0x86,0x86,
+0x8c,0x8e,0x91,0x92,0x93,0x93,0x94,0x95,0x93,0x93,0x93,0x94,0x94,0x95,0x96,0x97,
+0x94,0x96,0x98,0x98,0x97,0x98,0x9a,0x9c,0x9e,0x9d,0x9c,0x9d,0x9f,0xa2,0xa3,0xa4,
+0xa3,0xa4,0xa6,0xa6,0xa6,0xa7,0xa8,0xaa,0xab,0xac,0xad,0xad,0xae,0xae,0xb0,0xb2,
+0xb2,0xb3,0xb4,0xb4,0xb3,0xb4,0xb5,0xb6,0xb6,0xb5,0xb4,0xb4,0xb4,0xb4,0xb3,0xb1,
+0xb1,0xb1,0xb1,0xb0,0xaf,0xae,0xae,0xaf,0xb0,0xb0,0xb0,0xb0,0xaf,0xae,0xad,0xac,
+0xab,0xaa,0xa8,0xa7,0xa7,0xa6,0xa5,0xa4,0xa4,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,
+0x9c,0x9d,0x9d,0x9d,0x9d,0x9c,0x9b,0x9a,0x98,0x96,0x95,0x93,0x92,0x91,0x90,0x8f,
+0x90,0x8e,0x8c,0x8b,0x8b,0x8a,0x89,0x87,0x88,0x87,0x86,0x84,0x84,0x83,0x83,0x83,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7a,0x78,0x7a,0x75,0x70,0x6e,0x6d,0x6b,0x66,0x61,
+0x5c,0x5b,0x58,0x55,0x53,0x51,0x4a,0x41,0x38,0x36,0x37,0x3c,0x3f,0x3e,0x3c,0x3b,
+0x44,0x45,0x45,0x42,0x3c,0x39,0x38,0x39,0x37,0x35,0x36,0x39,0x3b,0x3b,0x3a,0x3b,
+0x3f,0x3d,0x38,0x32,0x2f,0x2f,0x30,0x2f,0x2c,0x30,0x33,0x33,0x32,0x32,0x33,0x33,
+0x39,0x46,0x57,0x62,0x61,0x5e,0x61,0x67,0x6d,0x6e,0x70,0x71,0x6b,0x60,0x59,0x57,
+0x61,0x5b,0x55,0x53,0x4f,0x48,0x41,0x3d,0x41,0x45,0x43,0x3d,0x40,0x4b,0x52,0x52,
+0x4e,0x50,0x4f,0x4e,0x59,0x6c,0x7b,0x81,0x67,0x6c,0x79,0x7f,0x7a,0x7a,0x7e,0x7d,
+0x70,0x5b,0x43,0x37,0x33,0x30,0x30,0x33,0x38,0x3a,0x35,0x2f,0x2d,0x28,0x25,0x29,
+0x23,0x1f,0x1f,0x21,0x24,0x23,0x23,0x23,0x21,0x1e,0x1c,0x18,0x14,0x12,0x17,0x1d,
+0x24,0x22,0x1d,0x19,0x18,0x1c,0x23,0x29,0x26,0x20,0x1c,0x20,0x29,0x2e,0x2a,0x24,
+0x2b,0x31,0x30,0x27,0x22,0x23,0x20,0x1a,0x14,0x16,0x1f,0x29,0x2a,0x25,0x24,0x27,
+0x22,0x25,0x27,0x26,0x24,0x24,0x25,0x26,0x2c,0x35,0x3d,0x3f,0x3d,0x3e,0x42,0x46,
+0x33,0x1e,0x1a,0x28,0x2f,0x2d,0x2e,0x30,0x38,0x3b,0x3e,0x40,0x42,0x43,0x3f,0x3a,
+0x51,0x4f,0x4c,0x44,0x3a,0x35,0x3a,0x42,0x49,0x47,0x3c,0x2a,0x1f,0x1e,0x20,0x1f,
+0x27,0x27,0x27,0x29,0x2d,0x31,0x35,0x38,0x3d,0x3d,0x3e,0x3f,0x41,0x43,0x46,0x48,
+0x4a,0x48,0x46,0x43,0x43,0x43,0x45,0x46,0x4d,0x50,0x56,0x5c,0x5c,0x57,0x57,0x5a,
+0x76,0x7a,0x77,0x67,0x54,0x4c,0x4f,0x55,0x56,0x4e,0x52,0x67,0x7b,0x80,0x7a,0x73,
+0x69,0x64,0x60,0x66,0x71,0x77,0x76,0x71,0x63,0x5b,0x50,0x49,0x4d,0x58,0x60,0x63,
+0x65,0x65,0x60,0x50,0x3d,0x32,0x32,0x37,0x31,0x36,0x40,0x4c,0x56,0x59,0x55,0x51,
+0x55,0x65,0x76,0x79,0x6a,0x59,0x51,0x51,0x52,0x57,0x5f,0x67,0x6b,0x66,0x5c,0x55,
+0x44,0x39,0x36,0x3f,0x49,0x4f,0x55,0x5b,0x5b,0x5f,0x60,0x60,0x60,0x5f,0x54,0x47,
+0x46,0x49,0x4e,0x4e,0x43,0x36,0x32,0x34,0x38,0x38,0x3a,0x3e,0x45,0x4b,0x50,0x53,
+0x50,0x4f,0x4c,0x4a,0x4e,0x54,0x56,0x54,0x58,0x55,0x58,0x61,0x67,0x67,0x69,0x6d,
+0x6c,0x60,0x56,0x54,0x54,0x50,0x4c,0x4b,0x46,0x4f,0x5a,0x5e,0x55,0x4d,0x55,0x64,
+0x83,0x87,0x86,0x81,0x79,0x6a,0x5f,0x61,0x6d,0x6e,0x7a,0x8d,0x89,0x6e,0x65,0x76,
+0x89,0x81,0x81,0x85,0x7c,0x67,0x59,0x59,0x5e,0x5a,0x57,0x55,0x52,0x50,0x56,0x5e,
+0x60,0x61,0x65,0x69,0x6a,0x69,0x6c,0x6f,0x72,0x72,0x76,0x77,0x72,0x6d,0x73,0x7e,
+0x81,0x85,0x8e,0x8b,0x80,0x81,0x80,0x71,0x75,0x74,0x75,0x77,0x77,0x76,0x79,0x7f,
+0x7b,0x79,0x79,0x7b,0x7e,0x80,0x7d,0x7a,0x86,0x8c,0x8f,0x7d,0x5e,0x4b,0x43,0x3c,
+0x42,0x47,0x4f,0x55,0x59,0x5c,0x5d,0x5d,0x67,0x70,0x7c,0x7f,0x76,0x6c,0x6e,0x75,
+0x80,0x84,0x88,0x8a,0x84,0x87,0x7d,0x4f,0x51,0x5f,0x68,0x6a,0x6a,0x66,0x66,0x6d,
+0x6d,0x7a,0x81,0x7b,0x76,0x7a,0x7e,0x7d,0x82,0x82,0x83,0x84,0x84,0x85,0x85,0x85,
+0x8c,0x8e,0x90,0x92,0x92,0x93,0x94,0x95,0x94,0x94,0x94,0x94,0x94,0x95,0x97,0x98,
+0x94,0x97,0x9a,0x9a,0x98,0x97,0x99,0x9b,0x9d,0x9e,0x9f,0x9e,0x9e,0xa0,0xa4,0xa7,
+0xa2,0xa3,0xa5,0xa5,0xa5,0xa5,0xa5,0xa6,0xa9,0xaa,0xab,0xac,0xac,0xad,0xaf,0xb1,
+0xb0,0xb1,0xb2,0xb2,0xb1,0xb2,0xb3,0xb5,0xb7,0xb6,0xb4,0xb4,0xb4,0xb3,0xb2,0xb1,
+0xb1,0xb1,0xb1,0xb0,0xae,0xad,0xad,0xae,0xb0,0xb0,0xb0,0xb0,0xaf,0xae,0xad,0xac,
+0xac,0xaa,0xa8,0xa7,0xa7,0xa6,0xa5,0xa4,0xa4,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,
+0x9a,0x9b,0x9d,0x9e,0x9d,0x9b,0x98,0x97,0x96,0x97,0x98,0x95,0x92,0x90,0x91,0x93,
+0x8e,0x8b,0x89,0x89,0x89,0x89,0x87,0x86,0x85,0x85,0x85,0x85,0x84,0x83,0x82,0x81,
+0x7e,0x7e,0x7d,0x7e,0x7e,0x7e,0x7c,0x7a,0x7b,0x76,0x70,0x6e,0x6e,0x6c,0x67,0x63,
+0x5d,0x5d,0x59,0x55,0x54,0x52,0x4c,0x44,0x41,0x3c,0x3a,0x3d,0x40,0x40,0x3e,0x3c,
+0x40,0x43,0x45,0x45,0x43,0x42,0x43,0x46,0x48,0x47,0x48,0x4b,0x4a,0x45,0x42,0x41,
+0x3e,0x38,0x31,0x2d,0x2b,0x2a,0x28,0x26,0x24,0x2a,0x2d,0x2b,0x2c,0x30,0x33,0x33,
+0x38,0x38,0x3d,0x43,0x48,0x49,0x4a,0x4c,0x50,0x52,0x58,0x5c,0x59,0x52,0x50,0x52,
+0x5f,0x57,0x50,0x4a,0x40,0x32,0x2b,0x2b,0x24,0x2b,0x33,0x39,0x40,0x48,0x4c,0x4b,
+0x48,0x45,0x44,0x50,0x69,0x7c,0x7e,0x75,0x6c,0x6f,0x79,0x7f,0x7c,0x7b,0x7c,0x78,
+0x60,0x4d,0x39,0x32,0x30,0x2f,0x32,0x37,0x38,0x3a,0x34,0x2f,0x30,0x2c,0x28,0x2a,
+0x21,0x1f,0x21,0x27,0x2b,0x2a,0x27,0x25,0x21,0x20,0x20,0x1e,0x19,0x16,0x19,0x1f,
+0x2b,0x28,0x23,0x1b,0x18,0x1b,0x23,0x2a,0x2b,0x24,0x1e,0x21,0x29,0x2d,0x28,0x22,
+0x29,0x31,0x30,0x26,0x22,0x25,0x23,0x1c,0x12,0x18,0x26,0x32,0x31,0x2a,0x28,0x2d,
+0x30,0x2f,0x2d,0x2d,0x30,0x35,0x36,0x35,0x31,0x37,0x3d,0x3e,0x3f,0x43,0x4a,0x4f,
+0x37,0x1d,0x16,0x24,0x2b,0x2a,0x2a,0x2c,0x3c,0x3e,0x3e,0x40,0x43,0x47,0x46,0x43,
+0x54,0x4d,0x44,0x3c,0x34,0x33,0x3b,0x46,0x48,0x48,0x3f,0x2d,0x20,0x1d,0x21,0x23,
+0x25,0x2a,0x2e,0x2c,0x2d,0x33,0x39,0x3b,0x3f,0x3c,0x3d,0x41,0x43,0x42,0x44,0x48,
+0x4a,0x47,0x45,0x45,0x42,0x3f,0x41,0x46,0x4c,0x49,0x4a,0x4e,0x4a,0x42,0x42,0x49,
+0x58,0x63,0x67,0x5e,0x51,0x4d,0x4e,0x50,0x55,0x59,0x5b,0x5b,0x5f,0x67,0x6b,0x6c,
+0x65,0x5e,0x55,0x51,0x58,0x63,0x67,0x66,0x5c,0x58,0x53,0x4e,0x4a,0x4c,0x53,0x5b,
+0x68,0x69,0x63,0x53,0x40,0x34,0x31,0x32,0x34,0x39,0x43,0x50,0x5c,0x60,0x5f,0x5c,
+0x63,0x68,0x70,0x75,0x71,0x66,0x5d,0x5a,0x61,0x6a,0x75,0x7a,0x79,0x71,0x63,0x58,
+0x43,0x38,0x36,0x3f,0x4e,0x5c,0x5e,0x54,0x42,0x3b,0x39,0x41,0x4a,0x4c,0x49,0x47,
+0x44,0x47,0x48,0x44,0x3c,0x35,0x32,0x33,0x2d,0x2f,0x35,0x3f,0x44,0x44,0x44,0x46,
+0x4e,0x54,0x5c,0x61,0x63,0x64,0x65,0x67,0x63,0x65,0x6d,0x77,0x7a,0x76,0x73,0x72,
+0x70,0x67,0x5e,0x5e,0x62,0x63,0x60,0x5c,0x53,0x50,0x55,0x5b,0x51,0x42,0x45,0x55,
+0x72,0x7a,0x7d,0x77,0x75,0x7b,0x80,0x81,0x81,0x78,0x72,0x70,0x6f,0x6d,0x70,0x76,
+0x6c,0x6f,0x77,0x7f,0x80,0x77,0x6b,0x64,0x63,0x5d,0x5a,0x56,0x50,0x57,0x65,0x6a,
+0x6f,0x70,0x6d,0x69,0x6c,0x71,0x6f,0x68,0x6f,0x71,0x78,0x7f,0x7c,0x75,0x77,0x80,
+0x8e,0x95,0x96,0x90,0x89,0x86,0x7f,0x77,0x6e,0x73,0x77,0x78,0x76,0x74,0x74,0x75,
+0x72,0x6f,0x6c,0x6c,0x70,0x73,0x74,0x73,0x71,0x7e,0x87,0x7d,0x63,0x49,0x39,0x33,
+0x39,0x43,0x4d,0x54,0x5a,0x5f,0x5e,0x59,0x55,0x60,0x6c,0x6d,0x60,0x57,0x61,0x72,
+0x83,0x89,0x92,0x8d,0x99,0xa7,0x82,0x4e,0x56,0x5e,0x68,0x6e,0x6b,0x67,0x6b,0x73,
+0x75,0x77,0x79,0x7a,0x7b,0x7b,0x7d,0x7e,0x83,0x84,0x84,0x82,0x81,0x82,0x86,0x89,
+0x8c,0x8f,0x91,0x93,0x93,0x92,0x92,0x92,0x95,0x94,0x92,0x91,0x91,0x92,0x94,0x95,
+0x96,0x95,0x94,0x94,0x94,0x95,0x97,0x98,0x98,0x99,0x99,0x9a,0x9e,0xa3,0xa5,0xa4,
+0xa3,0xa3,0xa3,0xa4,0xa6,0xa8,0xaa,0xab,0xaa,0xab,0xac,0xad,0xad,0xae,0xb0,0xb2,
+0xae,0xae,0xb0,0xb1,0xb2,0xb2,0xb2,0xb1,0xb1,0xb3,0xb4,0xb5,0xb3,0xb2,0xb1,0xb1,
+0xb0,0xb1,0xb1,0xb0,0xae,0xad,0xae,0xb0,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xae,0xad,
+0xa9,0xa8,0xa6,0xa5,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa3,0xa1,0xa0,0x9f,0x9f,0x9e,
+0x9e,0x9e,0x9e,0x9e,0x9d,0x9b,0x99,0x98,0x98,0x96,0x92,0x90,0x90,0x91,0x91,0x92,
+0x8f,0x8d,0x8b,0x89,0x88,0x88,0x89,0x8a,0x88,0x86,0x84,0x83,0x83,0x82,0x81,0x80,
+0x80,0x7f,0x7e,0x7e,0x7f,0x7e,0x7b,0x79,0x78,0x76,0x73,0x70,0x6e,0x6c,0x69,0x67,
+0x5f,0x5b,0x5a,0x5a,0x55,0x4e,0x50,0x56,0x54,0x4f,0x42,0x3b,0x3f,0x3e,0x3b,0x3d,
+0x41,0x45,0x4b,0x4e,0x4e,0x4e,0x51,0x54,0x52,0x51,0x50,0x51,0x52,0x52,0x51,0x51,
+0x51,0x3d,0x31,0x2f,0x2b,0x26,0x25,0x21,0x25,0x26,0x2b,0x2a,0x23,0x27,0x2f,0x2f,
+0x2f,0x2c,0x32,0x2f,0x30,0x34,0x2d,0x2c,0x30,0x36,0x36,0x35,0x3e,0x4b,0x59,0x65,
+0x5b,0x4a,0x4e,0x56,0x44,0x2f,0x28,0x27,0x28,0x28,0x2c,0x32,0x39,0x48,0x4e,0x48,
+0x3d,0x40,0x47,0x53,0x60,0x6a,0x70,0x72,0x70,0x76,0x7a,0x7a,0x7a,0x79,0x70,0x64,
+0x4c,0x3b,0x30,0x31,0x2f,0x29,0x2e,0x3b,0x3e,0x3a,0x35,0x31,0x2e,0x2b,0x2a,0x29,
+0x24,0x22,0x26,0x2b,0x2b,0x2c,0x2b,0x25,0x21,0x22,0x25,0x23,0x1b,0x14,0x19,0x24,
+0x2f,0x2e,0x27,0x1d,0x1a,0x21,0x2a,0x2f,0x2e,0x27,0x20,0x22,0x2c,0x34,0x31,0x2a,
+0x28,0x2f,0x31,0x2b,0x25,0x23,0x21,0x1e,0x15,0x1b,0x2c,0x37,0x36,0x35,0x36,0x32,
+0x32,0x30,0x32,0x37,0x3b,0x3b,0x39,0x37,0x30,0x28,0x29,0x32,0x3a,0x42,0x42,0x39,
+0x2a,0x1d,0x1a,0x27,0x30,0x2f,0x2f,0x34,0x35,0x3a,0x3e,0x42,0x46,0x4a,0x4a,0x47,
+0x4f,0x4b,0x46,0x3f,0x38,0x35,0x3d,0x46,0x43,0x43,0x3f,0x33,0x26,0x1f,0x1e,0x21,
+0x29,0x2c,0x2c,0x2b,0x2e,0x35,0x3b,0x3d,0x3f,0x3e,0x3e,0x41,0x43,0x44,0x46,0x49,
+0x4a,0x47,0x45,0x44,0x42,0x41,0x44,0x49,0x51,0x55,0x5f,0x68,0x66,0x5a,0x51,0x4e,
+0x50,0x55,0x57,0x53,0x4f,0x4e,0x50,0x51,0x5e,0x5f,0x5c,0x58,0x58,0x5d,0x61,0x61,
+0x60,0x55,0x4a,0x47,0x4d,0x53,0x56,0x55,0x5a,0x58,0x57,0x55,0x53,0x52,0x52,0x54,
+0x53,0x56,0x56,0x4c,0x3e,0x35,0x32,0x33,0x34,0x3c,0x4c,0x5d,0x63,0x5e,0x58,0x56,
+0x5b,0x60,0x68,0x6e,0x6c,0x65,0x60,0x5e,0x69,0x6d,0x70,0x70,0x6e,0x6a,0x63,0x5c,
+0x51,0x40,0x35,0x3a,0x47,0x55,0x59,0x4f,0x41,0x39,0x35,0x39,0x3f,0x40,0x3f,0x3f,
+0x3e,0x43,0x47,0x43,0x3b,0x34,0x34,0x37,0x31,0x32,0x37,0x3e,0x41,0x40,0x41,0x43,
+0x46,0x4a,0x51,0x58,0x5d,0x61,0x64,0x66,0x6a,0x6c,0x71,0x77,0x78,0x74,0x71,0x71,
+0x73,0x70,0x6d,0x6c,0x6c,0x6a,0x67,0x65,0x69,0x67,0x64,0x61,0x5b,0x56,0x56,0x59,
+0x55,0x58,0x5b,0x5d,0x67,0x78,0x89,0x92,0x90,0x80,0x71,0x6b,0x6c,0x6f,0x74,0x7a,
+0x72,0x76,0x7d,0x82,0x81,0x7d,0x7c,0x7d,0x82,0x77,0x71,0x70,0x71,0x78,0x7f,0x7c,
+0x81,0x7d,0x73,0x67,0x65,0x6a,0x6c,0x68,0x6b,0x6e,0x74,0x78,0x76,0x73,0x76,0x7b,
+0x82,0x86,0x84,0x7d,0x7b,0x7c,0x7a,0x75,0x74,0x7a,0x81,0x84,0x80,0x79,0x74,0x71,
+0x74,0x74,0x74,0x74,0x74,0x74,0x72,0x71,0x7c,0x7e,0x7f,0x7e,0x79,0x6f,0x61,0x56,
+0x5d,0x61,0x64,0x66,0x66,0x62,0x58,0x4d,0x46,0x4d,0x5c,0x68,0x65,0x60,0x6c,0x7e,
+0x98,0x90,0x8b,0x7f,0x81,0x86,0x6a,0x4b,0x5d,0x64,0x6b,0x6c,0x69,0x68,0x6b,0x6e,
+0x73,0x76,0x79,0x7b,0x7b,0x7c,0x7d,0x7d,0x81,0x82,0x82,0x81,0x80,0x82,0x86,0x89,
+0x8c,0x8e,0x91,0x92,0x92,0x91,0x90,0x91,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,
+0x91,0x91,0x90,0x91,0x92,0x94,0x96,0x97,0x99,0x9b,0x9b,0x9b,0x9e,0xa2,0xa3,0xa1,
+0xa1,0xa2,0xa3,0xa5,0xa6,0xa6,0xa7,0xa7,0xa7,0xa9,0xab,0xad,0xad,0xad,0xad,0xae,
+0xae,0xaf,0xb0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,0xb1,0xb3,0xb3,0xb3,0xb2,0xb2,0xb3,
+0xb1,0xb1,0xb2,0xb1,0xaf,0xae,0xaf,0xb1,0xae,0xae,0xae,0xad,0xad,0xad,0xac,0xac,
+0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa4,0xa4,0xa5,0xa5,0xa4,0xa2,0xa1,0xa0,0xa0,0x9f,
+0x9e,0x9e,0x9f,0x9f,0x9e,0x9c,0x9a,0x99,0x98,0x97,0x95,0x94,0x94,0x93,0x92,0x91,
+0x8f,0x8d,0x8b,0x89,0x88,0x89,0x8a,0x8a,0x88,0x86,0x84,0x83,0x83,0x83,0x83,0x82,
+0x80,0x7f,0x7e,0x7e,0x7f,0x7e,0x7b,0x79,0x78,0x76,0x72,0x70,0x6e,0x6b,0x69,0x67,
+0x60,0x5b,0x58,0x58,0x56,0x53,0x56,0x5d,0x62,0x5a,0x49,0x3e,0x3f,0x3e,0x3c,0x3f,
+0x3f,0x44,0x4c,0x54,0x5b,0x60,0x64,0x65,0x66,0x65,0x63,0x61,0x61,0x64,0x6a,0x6f,
+0x63,0x4b,0x3a,0x35,0x30,0x2b,0x28,0x22,0x24,0x25,0x29,0x2b,0x2e,0x39,0x3f,0x3a,
+0x35,0x26,0x28,0x26,0x24,0x2d,0x30,0x35,0x33,0x35,0x35,0x38,0x47,0x5c,0x64,0x60,
+0x4b,0x4a,0x56,0x60,0x58,0x4f,0x49,0x40,0x31,0x2e,0x34,0x3e,0x49,0x51,0x49,0x36,
+0x35,0x36,0x3a,0x45,0x54,0x63,0x6e,0x73,0x73,0x74,0x73,0x72,0x76,0x77,0x6c,0x5e,
+0x45,0x35,0x2b,0x2d,0x30,0x30,0x3b,0x4a,0x4d,0x4a,0x41,0x35,0x2d,0x2c,0x2b,0x2b,
+0x2a,0x25,0x27,0x2c,0x2e,0x32,0x32,0x2c,0x26,0x27,0x28,0x24,0x19,0x13,0x1a,0x26,
+0x36,0x33,0x2a,0x21,0x1e,0x26,0x2f,0x34,0x35,0x29,0x1f,0x23,0x2f,0x35,0x30,0x29,
+0x2b,0x34,0x37,0x2f,0x25,0x23,0x24,0x24,0x1a,0x1f,0x2d,0x39,0x39,0x39,0x3b,0x38,
+0x38,0x36,0x34,0x34,0x38,0x3c,0x3e,0x3d,0x31,0x2a,0x2c,0x34,0x3b,0x41,0x3f,0x36,
+0x23,0x18,0x16,0x22,0x2b,0x2a,0x2a,0x2f,0x37,0x3b,0x40,0x42,0x46,0x4b,0x4e,0x4f,
+0x4c,0x4c,0x4b,0x45,0x3b,0x36,0x39,0x40,0x40,0x3e,0x3c,0x37,0x2c,0x21,0x1f,0x24,
+0x28,0x2a,0x2d,0x2f,0x33,0x38,0x3a,0x3a,0x3b,0x3d,0x3f,0x3f,0x42,0x45,0x46,0x45,
+0x49,0x46,0x44,0x43,0x42,0x42,0x46,0x4a,0x49,0x50,0x59,0x5e,0x5b,0x52,0x48,0x42,
+0x4c,0x48,0x46,0x48,0x4d,0x50,0x52,0x54,0x5d,0x5e,0x5c,0x59,0x57,0x59,0x5b,0x5b,
+0x58,0x4c,0x43,0x46,0x4c,0x4d,0x4b,0x4a,0x51,0x53,0x56,0x58,0x59,0x57,0x54,0x51,
+0x4e,0x52,0x52,0x4b,0x3e,0x34,0x32,0x34,0x36,0x40,0x54,0x69,0x6e,0x66,0x62,0x64,
+0x62,0x61,0x62,0x64,0x61,0x5c,0x59,0x58,0x5f,0x64,0x68,0x6a,0x6a,0x69,0x66,0x61,
+0x4f,0x45,0x40,0x3f,0x3e,0x42,0x45,0x40,0x3e,0x39,0x36,0x36,0x37,0x36,0x35,0x35,
+0x36,0x3c,0x41,0x3f,0x37,0x32,0x34,0x38,0x32,0x34,0x38,0x3d,0x3f,0x3f,0x41,0x45,
+0x40,0x41,0x43,0x46,0x49,0x4c,0x4e,0x4f,0x5b,0x5d,0x61,0x66,0x67,0x66,0x68,0x6b,
+0x68,0x6c,0x6f,0x6e,0x6a,0x69,0x6c,0x6f,0x6b,0x6c,0x69,0x69,0x72,0x81,0x86,0x82,
+0x63,0x5b,0x55,0x57,0x5f,0x6a,0x77,0x81,0x66,0x61,0x60,0x68,0x72,0x75,0x70,0x6b,
+0x72,0x76,0x7e,0x84,0x85,0x86,0x8b,0x92,0x90,0x81,0x79,0x79,0x7e,0x84,0x82,0x78,
+0x7c,0x78,0x6c,0x60,0x5d,0x64,0x6a,0x6c,0x71,0x75,0x77,0x73,0x6f,0x6e,0x6e,0x6d,
+0x72,0x73,0x72,0x6f,0x73,0x7a,0x7c,0x79,0x6d,0x75,0x7f,0x85,0x84,0x7e,0x78,0x75,
+0x6f,0x71,0x75,0x77,0x77,0x75,0x73,0x72,0x75,0x6e,0x67,0x69,0x70,0x76,0x75,0x72,
+0x6c,0x65,0x5d,0x58,0x5a,0x5e,0x5e,0x5a,0x5c,0x58,0x5b,0x64,0x69,0x6e,0x81,0x96,
+0x97,0x89,0x83,0x79,0x74,0x6e,0x5a,0x51,0x61,0x66,0x69,0x66,0x65,0x69,0x6c,0x6a,
+0x71,0x74,0x78,0x7b,0x7c,0x7c,0x7c,0x7d,0x7f,0x80,0x81,0x80,0x80,0x81,0x85,0x89,
+0x8b,0x8d,0x8f,0x90,0x90,0x8f,0x8e,0x8e,0x8f,0x90,0x91,0x92,0x92,0x92,0x91,0x91,
+0x8f,0x8f,0x8f,0x90,0x91,0x93,0x95,0x96,0x9b,0x9c,0x9c,0x9c,0x9e,0xa0,0x9f,0x9d,
+0x9f,0xa0,0xa3,0xa4,0xa5,0xa5,0xa4,0xa3,0xa4,0xa6,0xaa,0xab,0xab,0xab,0xab,0xab,
+0xad,0xad,0xae,0xae,0xaf,0xaf,0xae,0xae,0xaf,0xb0,0xb1,0xb2,0xb1,0xb2,0xb3,0xb4,
+0xb1,0xb2,0xb2,0xb1,0xaf,0xaf,0xb0,0xb1,0xae,0xad,0xac,0xab,0xaa,0xaa,0xab,0xab,
+0xa8,0xa8,0xa8,0xa7,0xa6,0xa5,0xa4,0xa4,0xa5,0xa4,0xa4,0xa3,0xa2,0xa1,0xa0,0xa0,
+0x9e,0x9e,0x9f,0x9f,0x9e,0x9d,0x9c,0x9b,0x98,0x98,0x98,0x98,0x98,0x96,0x93,0x90,
+0x8e,0x8d,0x8b,0x8a,0x89,0x89,0x8a,0x8b,0x88,0x86,0x84,0x83,0x83,0x84,0x84,0x84,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7b,0x7a,0x78,0x75,0x72,0x6f,0x6d,0x6b,0x69,0x67,
+0x64,0x5c,0x55,0x55,0x55,0x54,0x58,0x5e,0x69,0x60,0x4c,0x3d,0x3c,0x3b,0x3b,0x3f,
+0x41,0x48,0x55,0x64,0x71,0x78,0x79,0x78,0x7e,0x7d,0x7b,0x75,0x70,0x6f,0x74,0x79,
+0x64,0x4c,0x3a,0x35,0x31,0x2f,0x2c,0x25,0x26,0x2e,0x39,0x3c,0x41,0x52,0x5b,0x55,
+0x43,0x26,0x26,0x27,0x1d,0x21,0x29,0x2f,0x31,0x3a,0x4e,0x5a,0x61,0x6a,0x61,0x46,
+0x40,0x4c,0x5f,0x68,0x68,0x6a,0x65,0x57,0x4d,0x45,0x46,0x50,0x5e,0x63,0x52,0x36,
+0x2f,0x2f,0x34,0x3f,0x4f,0x5f,0x6c,0x72,0x6f,0x6b,0x67,0x69,0x72,0x77,0x6e,0x60,
+0x47,0x37,0x2b,0x2a,0x2d,0x32,0x40,0x4f,0x54,0x54,0x4a,0x38,0x2d,0x2e,0x31,0x30,
+0x2f,0x27,0x26,0x2b,0x31,0x38,0x3a,0x34,0x2e,0x2e,0x2c,0x26,0x1a,0x15,0x1f,0x2d,
+0x3b,0x35,0x2b,0x21,0x20,0x27,0x30,0x35,0x3a,0x2a,0x1f,0x25,0x31,0x34,0x2e,0x28,
+0x2c,0x37,0x3b,0x32,0x25,0x22,0x25,0x28,0x1d,0x1f,0x2c,0x38,0x3a,0x3b,0x3c,0x3a,
+0x39,0x3a,0x35,0x2f,0x32,0x3d,0x43,0x40,0x33,0x2d,0x2f,0x37,0x3d,0x42,0x40,0x37,
+0x29,0x1d,0x1b,0x25,0x2d,0x2d,0x2e,0x33,0x37,0x3c,0x40,0x41,0x43,0x49,0x4f,0x53,
+0x46,0x4a,0x4c,0x47,0x3e,0x37,0x39,0x3e,0x3f,0x39,0x38,0x38,0x30,0x23,0x21,0x29,
+0x26,0x29,0x2c,0x2d,0x2f,0x33,0x39,0x3c,0x3a,0x3e,0x3f,0x3f,0x41,0x45,0x46,0x44,
+0x47,0x45,0x44,0x43,0x42,0x43,0x45,0x47,0x51,0x57,0x5a,0x55,0x50,0x4f,0x51,0x52,
+0x4b,0x41,0x3d,0x42,0x49,0x4d,0x51,0x56,0x52,0x55,0x59,0x59,0x57,0x55,0x53,0x52,
+0x4c,0x42,0x3f,0x49,0x50,0x4d,0x47,0x46,0x44,0x49,0x4e,0x50,0x51,0x53,0x54,0x54,
+0x59,0x5a,0x59,0x4f,0x41,0x35,0x33,0x36,0x39,0x3e,0x4f,0x63,0x6c,0x6a,0x6c,0x72,
+0x6e,0x67,0x60,0x5d,0x5a,0x56,0x52,0x50,0x4e,0x58,0x63,0x69,0x6a,0x67,0x5f,0x58,
+0x49,0x41,0x3e,0x3e,0x39,0x39,0x3b,0x38,0x3b,0x3b,0x3b,0x3b,0x39,0x36,0x34,0x33,
+0x36,0x39,0x3b,0x3a,0x36,0x33,0x34,0x36,0x33,0x36,0x3b,0x3e,0x3f,0x3f,0x41,0x44,
+0x4a,0x4b,0x4b,0x49,0x46,0x46,0x49,0x4c,0x4d,0x50,0x53,0x56,0x58,0x5b,0x60,0x64,
+0x71,0x79,0x7e,0x7a,0x73,0x73,0x7b,0x83,0x81,0x7c,0x72,0x6c,0x72,0x7c,0x7b,0x72,
+0x6f,0x62,0x5b,0x5f,0x66,0x6a,0x70,0x77,0x7f,0x74,0x69,0x66,0x6c,0x73,0x74,0x71,
+0x6a,0x6f,0x7a,0x87,0x8e,0x90,0x90,0x92,0x84,0x77,0x71,0x73,0x77,0x7d,0x7e,0x76,
+0x73,0x73,0x6e,0x67,0x65,0x6b,0x72,0x75,0x76,0x7b,0x79,0x70,0x6b,0x6c,0x6a,0x65,
+0x6c,0x6b,0x6a,0x6a,0x70,0x77,0x77,0x72,0x6c,0x72,0x79,0x7d,0x7c,0x77,0x73,0x70,
+0x6d,0x6e,0x6f,0x71,0x71,0x71,0x70,0x6f,0x6d,0x65,0x5b,0x55,0x56,0x60,0x70,0x7e,
+0x76,0x6c,0x5e,0x56,0x58,0x61,0x69,0x6c,0x69,0x6a,0x6f,0x76,0x7a,0x7a,0x79,0x79,
+0x7c,0x78,0x7d,0x7b,0x76,0x67,0x54,0x55,0x5f,0x63,0x63,0x5f,0x62,0x6b,0x6e,0x69,
+0x6f,0x73,0x78,0x7b,0x7d,0x7c,0x7c,0x7c,0x7e,0x7f,0x80,0x80,0x80,0x82,0x86,0x89,
+0x8c,0x8d,0x8f,0x8f,0x8e,0x8d,0x8d,0x8d,0x8d,0x8e,0x8f,0x90,0x90,0x91,0x91,0x91,
+0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x94,0x9a,0x9c,0x9c,0x9c,0x9d,0x9f,0x9e,0x9a,
+0x9e,0x9f,0xa1,0xa2,0xa3,0xa4,0xa3,0xa3,0xa4,0xa6,0xa8,0xa9,0xa9,0xa9,0xa9,0xaa,
+0xab,0xab,0xab,0xac,0xac,0xac,0xab,0xab,0xae,0xaf,0xb0,0xb0,0xb0,0xb0,0xb2,0xb3,
+0xb1,0xb1,0xb0,0xaf,0xaf,0xae,0xaf,0xaf,0xad,0xac,0xab,0xa9,0xa8,0xa9,0xaa,0xaa,
+0xa7,0xa8,0xa8,0xa8,0xa7,0xa6,0xa5,0xa4,0xa4,0xa4,0xa3,0xa3,0xa2,0xa1,0xa0,0x9f,
+0x9d,0x9e,0x9e,0x9e,0x9e,0x9e,0x9d,0x9d,0x9a,0x99,0x99,0x99,0x99,0x97,0x94,0x91,
+0x8e,0x8d,0x8b,0x8a,0x8a,0x8a,0x8a,0x8b,0x89,0x86,0x84,0x82,0x82,0x83,0x83,0x83,
+0x7d,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,0x78,0x75,0x71,0x6e,0x6c,0x6a,0x68,0x67,
+0x66,0x5d,0x55,0x52,0x53,0x53,0x54,0x57,0x67,0x5f,0x4d,0x3f,0x3e,0x3e,0x3e,0x44,
+0x41,0x4b,0x5b,0x6c,0x77,0x7c,0x7b,0x79,0x6f,0x70,0x6f,0x6a,0x62,0x5b,0x58,0x58,
+0x5c,0x49,0x3b,0x36,0x32,0x32,0x30,0x2b,0x34,0x48,0x5b,0x5c,0x59,0x67,0x73,0x6f,
+0x55,0x26,0x1c,0x1c,0x16,0x2a,0x4a,0x5e,0x6b,0x6e,0x7f,0x82,0x6f,0x65,0x5b,0x44,
+0x3f,0x4e,0x5d,0x62,0x65,0x6a,0x66,0x5b,0x60,0x58,0x58,0x62,0x6e,0x70,0x5a,0x3a,
+0x32,0x37,0x3f,0x49,0x54,0x5f,0x69,0x6e,0x64,0x5d,0x57,0x59,0x65,0x6f,0x6d,0x65,
+0x4f,0x40,0x31,0x2b,0x2c,0x31,0x3d,0x4a,0x55,0x59,0x51,0x3c,0x2f,0x32,0x35,0x32,
+0x30,0x26,0x23,0x2a,0x33,0x3d,0x3f,0x37,0x33,0x31,0x2f,0x28,0x1e,0x1c,0x28,0x38,
+0x40,0x38,0x2d,0x23,0x21,0x27,0x2f,0x34,0x3b,0x2b,0x22,0x28,0x32,0x31,0x2b,0x26,
+0x2d,0x38,0x3d,0x35,0x2a,0x26,0x27,0x28,0x1f,0x1e,0x2a,0x38,0x3c,0x3c,0x3c,0x39,
+0x37,0x3c,0x39,0x30,0x34,0x43,0x48,0x42,0x31,0x2a,0x2d,0x35,0x3d,0x44,0x43,0x3b,
+0x2d,0x21,0x1a,0x20,0x26,0x27,0x29,0x2f,0x3b,0x41,0x46,0x46,0x44,0x48,0x4e,0x52,
+0x3e,0x44,0x48,0x45,0x3e,0x3a,0x3c,0x3f,0x3d,0x36,0x35,0x3a,0x34,0x26,0x21,0x26,
+0x2a,0x2f,0x33,0x32,0x30,0x32,0x3a,0x43,0x3f,0x3f,0x3e,0x3c,0x3d,0x42,0x46,0x48,
+0x45,0x45,0x44,0x43,0x43,0x43,0x43,0x43,0x41,0x4a,0x4f,0x4a,0x42,0x42,0x47,0x4c,
+0x46,0x3d,0x38,0x3b,0x40,0x43,0x49,0x51,0x49,0x4c,0x4f,0x50,0x4c,0x48,0x47,0x47,
+0x49,0x3f,0x3c,0x44,0x49,0x46,0x42,0x43,0x3e,0x46,0x4a,0x47,0x45,0x4b,0x55,0x5b,
+0x5f,0x60,0x60,0x58,0x49,0x39,0x33,0x35,0x3a,0x39,0x42,0x54,0x61,0x65,0x69,0x6e,
+0x62,0x5b,0x56,0x55,0x54,0x4f,0x47,0x42,0x4f,0x57,0x60,0x62,0x5f,0x58,0x4f,0x47,
+0x4b,0x41,0x3d,0x40,0x3e,0x3f,0x40,0x3c,0x3c,0x3d,0x3e,0x3c,0x3a,0x39,0x3a,0x3a,
+0x3c,0x3a,0x37,0x36,0x36,0x36,0x35,0x34,0x36,0x3a,0x3f,0x43,0x44,0x45,0x47,0x47,
+0x4a,0x4e,0x51,0x50,0x4c,0x4d,0x54,0x5b,0x5c,0x5e,0x5e,0x5e,0x5d,0x60,0x63,0x65,
+0x67,0x70,0x75,0x6e,0x65,0x64,0x6a,0x6f,0x71,0x6a,0x65,0x6a,0x74,0x7d,0x80,0x80,
+0x6d,0x60,0x59,0x60,0x67,0x67,0x69,0x6f,0x7e,0x7e,0x7b,0x77,0x75,0x72,0x69,0x60,
+0x65,0x69,0x76,0x8a,0x97,0x96,0x8b,0x81,0x68,0x63,0x64,0x65,0x66,0x6f,0x7a,0x7c,
+0x70,0x70,0x6b,0x65,0x61,0x64,0x69,0x6d,0x6d,0x73,0x73,0x6b,0x69,0x6e,0x6f,0x69,
+0x6e,0x6a,0x64,0x62,0x66,0x69,0x68,0x64,0x69,0x70,0x7a,0x83,0x88,0x88,0x86,0x85,
+0x72,0x6f,0x6b,0x6a,0x6b,0x6d,0x6d,0x6d,0x6b,0x65,0x5b,0x50,0x47,0x4b,0x5c,0x6d,
+0x77,0x72,0x6c,0x67,0x63,0x60,0x5f,0x5f,0x70,0x75,0x76,0x75,0x76,0x76,0x6a,0x5b,
+0x68,0x6e,0x78,0x77,0x72,0x62,0x4c,0x50,0x5e,0x61,0x5f,0x5c,0x61,0x6c,0x6e,0x69,
+0x6e,0x72,0x77,0x7b,0x7d,0x7c,0x7b,0x7b,0x7d,0x7f,0x80,0x81,0x81,0x82,0x86,0x89,
+0x8c,0x8d,0x8e,0x8e,0x8d,0x8c,0x8c,0x8c,0x8d,0x8d,0x8c,0x8d,0x8e,0x8f,0x91,0x92,
+0x92,0x92,0x92,0x92,0x93,0x93,0x94,0x94,0x98,0x9a,0x9a,0x9a,0x9c,0x9e,0x9d,0x9a,
+0x9d,0x9e,0x9e,0xa0,0xa1,0xa3,0xa4,0xa5,0xa5,0xa6,0xa6,0xa6,0xa6,0xa7,0xa9,0xab,
+0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xae,0xaf,0xaf,0xaf,0xae,0xae,0xaf,0xb0,
+0xaf,0xae,0xad,0xad,0xad,0xad,0xac,0xac,0xac,0xab,0xa9,0xa8,0xa8,0xa8,0xa9,0xaa,
+0xa7,0xa7,0xa8,0xa8,0xa8,0xa6,0xa5,0xa4,0xa4,0xa4,0xa4,0xa4,0xa3,0xa2,0xa1,0xa0,
+0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9b,0x9a,0x98,0x97,0x97,0x96,0x94,0x92,
+0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,0x8a,0x8a,0x88,0x86,0x83,0x81,0x81,0x80,0x80,0x7f,
+0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x77,0x74,0x71,0x6e,0x6c,0x6a,0x68,0x66,
+0x65,0x5e,0x56,0x53,0x53,0x52,0x51,0x51,0x5d,0x58,0x4b,0x42,0x42,0x41,0x3f,0x43,
+0x46,0x4f,0x5b,0x66,0x6c,0x70,0x73,0x75,0x7a,0x7a,0x7a,0x78,0x75,0x6f,0x69,0x64,
+0x58,0x4c,0x44,0x40,0x39,0x38,0x38,0x33,0x45,0x59,0x6d,0x6f,0x6b,0x75,0x7b,0x73,
+0x5f,0x2c,0x1d,0x1c,0x1d,0x3f,0x6c,0x88,0x87,0x7e,0x8b,0x91,0x78,0x62,0x5a,0x4f,
+0x44,0x4c,0x52,0x57,0x5b,0x5e,0x5d,0x5d,0x5d,0x5a,0x5f,0x69,0x70,0x6e,0x59,0x3c,
+0x41,0x46,0x4d,0x53,0x58,0x5d,0x64,0x69,0x62,0x59,0x4d,0x48,0x4d,0x58,0x60,0x62,
+0x59,0x4c,0x3d,0x34,0x31,0x33,0x3b,0x43,0x4e,0x56,0x53,0x42,0x36,0x36,0x37,0x33,
+0x31,0x26,0x24,0x2c,0x36,0x40,0x41,0x38,0x32,0x2f,0x2d,0x29,0x22,0x22,0x2f,0x3e,
+0x45,0x3e,0x33,0x2a,0x27,0x2a,0x31,0x37,0x3b,0x30,0x2a,0x2e,0x33,0x31,0x2c,0x29,
+0x31,0x3a,0x3f,0x3b,0x34,0x31,0x2d,0x29,0x22,0x1f,0x29,0x3a,0x3f,0x3e,0x3c,0x38,
+0x38,0x3f,0x3f,0x38,0x3e,0x4c,0x4d,0x43,0x2e,0x26,0x28,0x32,0x3d,0x47,0x49,0x41,
+0x35,0x28,0x1f,0x20,0x24,0x26,0x2a,0x31,0x43,0x4b,0x51,0x50,0x4c,0x4b,0x4e,0x50,
+0x42,0x46,0x47,0x41,0x3b,0x38,0x39,0x3a,0x3c,0x34,0x34,0x3b,0x3a,0x2e,0x26,0x25,
+0x2c,0x39,0x48,0x4e,0x47,0x3e,0x3d,0x41,0x42,0x3e,0x3a,0x3a,0x3b,0x3e,0x43,0x48,
+0x43,0x44,0x44,0x43,0x44,0x47,0x48,0x46,0x42,0x4d,0x59,0x58,0x4e,0x43,0x40,0x42,
+0x42,0x3e,0x39,0x37,0x36,0x39,0x40,0x47,0x43,0x43,0x44,0x44,0x41,0x40,0x44,0x4a,
+0x52,0x48,0x41,0x40,0x41,0x40,0x40,0x43,0x44,0x4c,0x4f,0x47,0x42,0x49,0x57,0x60,
+0x61,0x63,0x66,0x61,0x4f,0x3b,0x30,0x30,0x36,0x35,0x3c,0x4d,0x5e,0x68,0x6a,0x6a,
+0x6b,0x6b,0x6c,0x6e,0x68,0x5d,0x51,0x4b,0x56,0x59,0x58,0x53,0x4e,0x4b,0x4a,0x48,
+0x47,0x4d,0x5b,0x5d,0x4b,0x3c,0x3c,0x3f,0x3f,0x40,0x3f,0x3b,0x3a,0x3d,0x41,0x43,
+0x3d,0x37,0x30,0x2f,0x32,0x35,0x33,0x31,0x36,0x3b,0x41,0x47,0x4e,0x55,0x59,0x59,
+0x44,0x49,0x4d,0x4d,0x4b,0x4d,0x55,0x5c,0x64,0x66,0x67,0x66,0x68,0x6b,0x6c,0x6b,
+0x69,0x72,0x78,0x76,0x73,0x75,0x77,0x76,0x70,0x64,0x5f,0x65,0x6c,0x6d,0x6f,0x73,
+0x6f,0x63,0x5b,0x5c,0x5d,0x5b,0x5c,0x60,0x75,0x7b,0x7c,0x76,0x74,0x75,0x70,0x68,
+0x62,0x64,0x6f,0x81,0x8d,0x89,0x79,0x6c,0x5d,0x5d,0x60,0x5f,0x5b,0x64,0x76,0x80,
+0x6e,0x69,0x60,0x56,0x52,0x55,0x5d,0x64,0x67,0x6e,0x6f,0x6a,0x67,0x6b,0x6d,0x6a,
+0x6c,0x64,0x5b,0x57,0x5a,0x60,0x63,0x63,0x5e,0x66,0x74,0x81,0x8a,0x8c,0x8a,0x87,
+0x72,0x70,0x6e,0x6d,0x6f,0x74,0x78,0x7b,0x77,0x6e,0x63,0x5a,0x50,0x49,0x4b,0x51,
+0x5b,0x5b,0x5d,0x61,0x62,0x60,0x61,0x63,0x7e,0x7e,0x78,0x71,0x75,0x7b,0x75,0x68,
+0x66,0x6d,0x73,0x6e,0x6c,0x5f,0x4d,0x56,0x61,0x61,0x5f,0x5e,0x64,0x6b,0x6c,0x68,
+0x6e,0x72,0x77,0x7b,0x7c,0x7b,0x7a,0x7a,0x7d,0x7f,0x81,0x81,0x81,0x82,0x86,0x89,
+0x8b,0x8c,0x8d,0x8d,0x8c,0x8b,0x8b,0x8c,0x8d,0x8c,0x8b,0x8b,0x8c,0x8f,0x91,0x93,
+0x8f,0x8f,0x90,0x92,0x93,0x94,0x95,0x95,0x96,0x97,0x98,0x98,0x9a,0x9d,0x9d,0x9a,
+0x9c,0x9c,0x9d,0x9d,0x9f,0xa1,0xa4,0xa5,0xa6,0xa6,0xa5,0xa4,0xa4,0xa5,0xa8,0xaa,
+0xab,0xab,0xab,0xab,0xab,0xac,0xac,0xad,0xad,0xae,0xae,0xae,0xac,0xab,0xab,0xac,
+0xad,0xab,0xaa,0xaa,0xaa,0xab,0xaa,0xa9,0xa9,0xa9,0xa8,0xa7,0xa7,0xa8,0xa8,0xa9,
+0xa7,0xa7,0xa7,0xa7,0xa7,0xa6,0xa5,0xa5,0xa5,0xa5,0xa6,0xa6,0xa5,0xa4,0xa3,0xa2,
+0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9a,0x98,0x96,0x95,0x95,0x94,0x93,
+0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x89,0x89,0x87,0x85,0x83,0x81,0x80,0x7f,0x7d,0x7c,
+0x7d,0x7e,0x7e,0x7d,0x7b,0x79,0x79,0x78,0x76,0x73,0x71,0x6e,0x6c,0x6a,0x67,0x64,
+0x63,0x5d,0x57,0x54,0x54,0x54,0x53,0x51,0x63,0x63,0x5c,0x58,0x59,0x56,0x52,0x54,
+0x5b,0x5f,0x63,0x66,0x69,0x6e,0x76,0x7d,0x80,0x7e,0x7c,0x7b,0x7a,0x78,0x74,0x72,
+0x76,0x70,0x6f,0x6e,0x69,0x69,0x6b,0x67,0x6b,0x76,0x84,0x8d,0x95,0xa0,0x9e,0x8f,
+0x68,0x3b,0x25,0x1a,0x1f,0x49,0x77,0x94,0x86,0x75,0x79,0x86,0x78,0x5f,0x50,0x47,
+0x4a,0x4e,0x4e,0x52,0x59,0x59,0x5a,0x62,0x5e,0x5c,0x5e,0x60,0x63,0x68,0x64,0x56,
+0x52,0x52,0x52,0x52,0x54,0x59,0x5f,0x64,0x69,0x60,0x51,0x45,0x42,0x49,0x54,0x5d,
+0x66,0x5d,0x4f,0x43,0x3b,0x37,0x35,0x36,0x37,0x42,0x47,0x41,0x3c,0x3c,0x3c,0x39,
+0x34,0x29,0x27,0x30,0x3a,0x44,0x43,0x39,0x30,0x2c,0x2a,0x28,0x24,0x24,0x2f,0x3c,
+0x45,0x3f,0x37,0x30,0x2b,0x2b,0x31,0x39,0x3f,0x38,0x32,0x31,0x35,0x36,0x33,0x2e,
+0x30,0x37,0x3c,0x3b,0x39,0x37,0x30,0x28,0x22,0x1b,0x24,0x36,0x3d,0x3d,0x3b,0x36,
+0x39,0x3f,0x40,0x3d,0x45,0x51,0x4d,0x40,0x31,0x28,0x29,0x36,0x44,0x50,0x50,0x47,
+0x39,0x2d,0x23,0x23,0x27,0x2b,0x32,0x3a,0x47,0x50,0x57,0x56,0x51,0x4d,0x4b,0x4a,
+0x48,0x49,0x45,0x3d,0x37,0x37,0x38,0x38,0x3d,0x34,0x31,0x38,0x3e,0x3c,0x37,0x35,
+0x36,0x42,0x51,0x58,0x50,0x43,0x3c,0x3d,0x42,0x3e,0x41,0x49,0x4a,0x43,0x41,0x45,
+0x43,0x44,0x43,0x42,0x47,0x4e,0x51,0x50,0x44,0x49,0x51,0x54,0x4d,0x42,0x3e,0x41,
+0x4c,0x4a,0x44,0x3b,0x36,0x37,0x3b,0x3d,0x3f,0x3e,0x3e,0x3e,0x3c,0x3b,0x42,0x4a,
+0x4f,0x4a,0x43,0x3e,0x3c,0x3d,0x40,0x42,0x43,0x4c,0x4e,0x46,0x41,0x47,0x52,0x58,
+0x5a,0x5b,0x5d,0x5a,0x4a,0x37,0x2e,0x30,0x34,0x36,0x3d,0x49,0x5a,0x67,0x68,0x63,
+0x5f,0x65,0x6b,0x68,0x5a,0x4b,0x43,0x44,0x57,0x58,0x55,0x4e,0x4a,0x4c,0x50,0x52,
+0x47,0x54,0x69,0x6b,0x52,0x3c,0x3b,0x40,0x42,0x45,0x45,0x42,0x42,0x45,0x47,0x46,
+0x3a,0x34,0x2d,0x2b,0x2f,0x33,0x35,0x34,0x37,0x3a,0x3d,0x42,0x4c,0x58,0x5d,0x5d,
+0x4b,0x4d,0x4e,0x4e,0x4e,0x4f,0x52,0x54,0x57,0x5a,0x5d,0x61,0x67,0x6d,0x6d,0x69,
+0x68,0x6c,0x6e,0x6f,0x77,0x82,0x85,0x82,0x63,0x57,0x4f,0x53,0x59,0x5a,0x5b,0x5e,
+0x61,0x5d,0x5a,0x5c,0x5e,0x5e,0x61,0x65,0x70,0x82,0x92,0x95,0x91,0x88,0x72,0x5d,
+0x5a,0x5a,0x5e,0x65,0x68,0x63,0x5c,0x58,0x5d,0x5d,0x60,0x5f,0x5b,0x65,0x78,0x82,
+0x75,0x6b,0x5d,0x53,0x50,0x56,0x62,0x6c,0x6d,0x72,0x74,0x6f,0x69,0x68,0x69,0x68,
+0x66,0x5f,0x57,0x54,0x57,0x5c,0x60,0x63,0x5e,0x63,0x6a,0x71,0x73,0x70,0x6b,0x67,
+0x73,0x77,0x7a,0x7b,0x7a,0x7d,0x83,0x89,0x8a,0x7e,0x71,0x6a,0x5f,0x50,0x46,0x42,
+0x40,0x3e,0x40,0x4b,0x57,0x63,0x6e,0x76,0x74,0x74,0x77,0x7e,0x84,0x82,0x78,0x6e,
+0x6a,0x6c,0x6e,0x6c,0x6f,0x60,0x4e,0x5e,0x61,0x5e,0x5d,0x60,0x66,0x69,0x69,0x67,
+0x6f,0x73,0x77,0x7a,0x7a,0x7a,0x7a,0x7a,0x7c,0x7e,0x80,0x80,0x80,0x81,0x84,0x87,
+0x89,0x8a,0x8b,0x8b,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,0x8b,0x8c,0x8d,0x8f,0x91,0x92,
+0x8e,0x8f,0x90,0x92,0x93,0x94,0x95,0x95,0x95,0x96,0x96,0x95,0x97,0x9b,0x9c,0x9a,
+0x9a,0x9b,0x9c,0x9d,0x9f,0xa0,0xa0,0xa1,0xa4,0xa4,0xa5,0xa4,0xa4,0xa4,0xa6,0xa8,
+0xaa,0xaa,0xa9,0xa9,0xaa,0xab,0xac,0xad,0xab,0xac,0xad,0xad,0xab,0xaa,0xa9,0xa9,
+0xab,0xaa,0xa8,0xa8,0xa9,0xa9,0xa8,0xa7,0xa6,0xa6,0xa6,0xa6,0xa7,0xa7,0xa7,0xa7,
+0xa7,0xa7,0xa6,0xa6,0xa5,0xa5,0xa5,0xa6,0xa3,0xa4,0xa5,0xa5,0xa4,0xa3,0xa2,0xa1,
+0x9f,0x9e,0x9e,0x9e,0x9d,0x9d,0x9d,0x9d,0x9c,0x9a,0x98,0x96,0x95,0x94,0x93,0x92,
+0x90,0x8f,0x8e,0x8c,0x8b,0x8a,0x89,0x88,0x85,0x83,0x82,0x81,0x81,0x7f,0x7d,0x7b,
+0x7d,0x7e,0x7f,0x7d,0x7b,0x78,0x77,0x77,0x74,0x73,0x71,0x6f,0x6d,0x6a,0x66,0x63,
+0x62,0x5e,0x58,0x54,0x53,0x54,0x54,0x53,0x74,0x78,0x77,0x77,0x7b,0x78,0x72,0x73,
+0x6f,0x70,0x71,0x71,0x72,0x77,0x7c,0x81,0x7d,0x7d,0x7c,0x7a,0x79,0x78,0x79,0x79,
+0x7a,0x76,0x77,0x79,0x77,0x7c,0x7e,0x7a,0x74,0x76,0x7f,0x89,0x92,0x9a,0x95,0x85,
+0x72,0x51,0x35,0x21,0x2b,0x59,0x82,0x9b,0x94,0x7b,0x69,0x67,0x5f,0x4f,0x45,0x45,
+0x4a,0x51,0x50,0x4f,0x55,0x52,0x4e,0x54,0x54,0x54,0x58,0x5a,0x5d,0x6b,0x75,0x73,
+0x5c,0x54,0x4d,0x4d,0x53,0x5b,0x5e,0x5f,0x61,0x5f,0x5b,0x55,0x4f,0x4f,0x55,0x5b,
+0x6b,0x66,0x5d,0x51,0x46,0x3c,0x33,0x2c,0x26,0x31,0x3d,0x42,0x42,0x42,0x41,0x3f,
+0x38,0x2d,0x2b,0x32,0x3b,0x45,0x45,0x3c,0x32,0x2d,0x2a,0x29,0x26,0x24,0x2a,0x33,
+0x3f,0x3c,0x38,0x33,0x2d,0x2a,0x30,0x39,0x45,0x3f,0x34,0x2e,0x34,0x3c,0x3b,0x33,
+0x2e,0x35,0x39,0x39,0x39,0x38,0x32,0x2a,0x21,0x17,0x1e,0x30,0x39,0x3b,0x3b,0x38,
+0x3e,0x3f,0x3d,0x3d,0x46,0x4f,0x4a,0x3c,0x35,0x2b,0x2c,0x39,0x49,0x53,0x4f,0x42,
+0x2b,0x22,0x1b,0x1d,0x24,0x2b,0x34,0x3c,0x47,0x50,0x58,0x58,0x53,0x4e,0x4a,0x47,
+0x44,0x44,0x3f,0x39,0x37,0x3b,0x3f,0x3f,0x41,0x35,0x2d,0x33,0x3f,0x48,0x4b,0x4b,
+0x47,0x47,0x46,0x43,0x3c,0x36,0x3a,0x42,0x42,0x42,0x4f,0x60,0x60,0x4f,0x43,0x43,
+0x43,0x44,0x42,0x41,0x48,0x53,0x59,0x5a,0x45,0x3f,0x3e,0x44,0x45,0x44,0x4b,0x57,
+0x5b,0x5a,0x51,0x43,0x3b,0x3b,0x3b,0x38,0x3e,0x3d,0x3e,0x3d,0x38,0x33,0x36,0x3c,
+0x3c,0x3e,0x3c,0x38,0x36,0x39,0x3b,0x3b,0x38,0x41,0x45,0x3f,0x3c,0x41,0x48,0x49,
+0x49,0x49,0x4a,0x48,0x3e,0x32,0x32,0x39,0x35,0x39,0x3c,0x40,0x4c,0x59,0x5a,0x53,
+0x5d,0x66,0x6d,0x65,0x52,0x44,0x46,0x4f,0x56,0x59,0x59,0x55,0x51,0x51,0x53,0x54,
+0x57,0x4e,0x50,0x55,0x50,0x4a,0x48,0x46,0x42,0x48,0x4d,0x4e,0x4d,0x4d,0x4a,0x45,
+0x3b,0x36,0x30,0x2d,0x30,0x35,0x3a,0x3d,0x3e,0x3c,0x39,0x39,0x40,0x49,0x4d,0x4b,
+0x4b,0x49,0x48,0x49,0x4b,0x4c,0x4a,0x48,0x4d,0x50,0x54,0x59,0x62,0x69,0x67,0x61,
+0x65,0x62,0x5c,0x5b,0x68,0x7a,0x81,0x7e,0x68,0x5c,0x51,0x4f,0x54,0x58,0x58,0x57,
+0x58,0x5a,0x5d,0x61,0x63,0x64,0x66,0x68,0x6c,0x77,0x7d,0x7b,0x7a,0x79,0x6e,0x5e,
+0x50,0x4e,0x4c,0x48,0x42,0x3f,0x42,0x48,0x4b,0x49,0x4e,0x51,0x52,0x5f,0x73,0x7c,
+0x76,0x6a,0x5b,0x50,0x4d,0x54,0x60,0x6a,0x72,0x76,0x79,0x75,0x6e,0x6a,0x6b,0x6d,
+0x65,0x5f,0x59,0x56,0x56,0x56,0x57,0x58,0x62,0x65,0x69,0x6f,0x73,0x75,0x75,0x74,
+0x7b,0x84,0x8b,0x89,0x81,0x7e,0x83,0x8a,0x8a,0x7e,0x71,0x66,0x57,0x44,0x37,0x34,
+0x33,0x2d,0x2d,0x39,0x48,0x54,0x5e,0x65,0x6d,0x62,0x61,0x6e,0x75,0x70,0x6d,0x6f,
+0x6e,0x6c,0x6d,0x70,0x75,0x5e,0x47,0x59,0x5d,0x5a,0x5a,0x60,0x66,0x68,0x67,0x68,
+0x70,0x73,0x77,0x79,0x7a,0x79,0x79,0x79,0x7b,0x7d,0x7f,0x80,0x7f,0x80,0x83,0x86,
+0x88,0x89,0x8a,0x8a,0x89,0x88,0x89,0x8a,0x89,0x8a,0x8c,0x8e,0x8f,0x90,0x91,0x91,
+0x91,0x92,0x92,0x93,0x93,0x93,0x93,0x93,0x95,0x95,0x95,0x94,0x96,0x9a,0x9b,0x99,
+0x98,0x9a,0x9c,0x9e,0x9f,0x9e,0x9d,0x9d,0xa2,0xa3,0xa4,0xa5,0xa4,0xa4,0xa4,0xa5,
+0xa7,0xa7,0xa7,0xa7,0xa8,0xa9,0xaa,0xab,0xa9,0xaa,0xac,0xac,0xab,0xa9,0xa8,0xa8,
+0xab,0xa9,0xa7,0xa7,0xa8,0xa9,0xa8,0xa6,0xa3,0xa4,0xa5,0xa5,0xa6,0xa6,0xa6,0xa6,
+0xa7,0xa6,0xa5,0xa5,0xa4,0xa5,0xa5,0xa6,0xa1,0xa2,0xa2,0xa3,0xa2,0xa1,0xa0,0x9f,
+0xa0,0xa0,0x9f,0x9e,0x9e,0x9e,0x9e,0x9e,0x9c,0x9a,0x98,0x97,0x96,0x95,0x93,0x91,
+0x90,0x90,0x8e,0x8d,0x8b,0x89,0x88,0x88,0x83,0x82,0x82,0x82,0x82,0x80,0x7d,0x7b,
+0x7d,0x7f,0x7f,0x7e,0x7a,0x77,0x76,0x77,0x73,0x72,0x71,0x6f,0x6d,0x6a,0x65,0x62,
+0x63,0x5f,0x59,0x53,0x51,0x52,0x52,0x52,0x6c,0x72,0x74,0x78,0x7e,0x7c,0x77,0x78,
+0x74,0x74,0x75,0x77,0x79,0x79,0x78,0x76,0x73,0x77,0x7b,0x7c,0x7b,0x7b,0x7e,0x81,
+0x85,0x7f,0x7d,0x7e,0x7e,0x82,0x83,0x7d,0x82,0x81,0x86,0x89,0x87,0x85,0x80,0x75,
+0x75,0x6e,0x67,0x58,0x5d,0x71,0x74,0x73,0x65,0x5b,0x51,0x51,0x53,0x49,0x41,0x44,
+0x45,0x51,0x4f,0x48,0x4b,0x45,0x3a,0x39,0x37,0x41,0x52,0x5d,0x64,0x71,0x7a,0x77,
+0x5e,0x53,0x49,0x4c,0x57,0x60,0x5f,0x5a,0x4c,0x54,0x5e,0x63,0x61,0x5c,0x59,0x59,
+0x63,0x63,0x5f,0x57,0x4d,0x43,0x37,0x2e,0x2b,0x34,0x40,0x48,0x49,0x44,0x41,0x3f,
+0x3b,0x30,0x2c,0x32,0x3a,0x44,0x45,0x3e,0x36,0x30,0x2c,0x2b,0x28,0x24,0x26,0x2b,
+0x3b,0x3a,0x39,0x36,0x2f,0x2c,0x32,0x3c,0x4a,0x42,0x33,0x2a,0x31,0x3f,0x3f,0x34,
+0x2f,0x36,0x3b,0x3a,0x39,0x39,0x36,0x30,0x24,0x18,0x1c,0x2e,0x39,0x3d,0x3f,0x3e,
+0x46,0x42,0x3d,0x3d,0x47,0x50,0x4a,0x3d,0x33,0x28,0x29,0x37,0x47,0x4f,0x47,0x36,
+0x25,0x1e,0x1b,0x20,0x29,0x32,0x3c,0x44,0x49,0x51,0x59,0x5a,0x56,0x52,0x4d,0x49,
+0x44,0x44,0x43,0x41,0x3e,0x42,0x4f,0x5b,0x55,0x3b,0x27,0x2b,0x3d,0x4b,0x4c,0x49,
+0x45,0x3e,0x38,0x37,0x38,0x38,0x3a,0x3b,0x3d,0x40,0x4f,0x5f,0x5c,0x48,0x3c,0x3e,
+0x3e,0x3d,0x3e,0x3d,0x40,0x4f,0x5b,0x5a,0x4c,0x42,0x3e,0x46,0x50,0x54,0x56,0x5a,
+0x5e,0x54,0x49,0x40,0x39,0x34,0x35,0x39,0x41,0x3e,0x40,0x44,0x42,0x3b,0x38,0x3a,
+0x3a,0x39,0x38,0x37,0x34,0x33,0x37,0x3c,0x40,0x40,0x41,0x41,0x3c,0x39,0x40,0x4b,
+0x52,0x4a,0x44,0x42,0x3d,0x36,0x34,0x36,0x34,0x35,0x38,0x3d,0x46,0x50,0x5a,0x60,
+0x60,0x60,0x58,0x4c,0x46,0x4a,0x4c,0x49,0x4f,0x50,0x53,0x58,0x5c,0x5c,0x57,0x52,
+0x47,0x4c,0x51,0x52,0x51,0x51,0x50,0x4e,0x4a,0x4b,0x4e,0x50,0x4f,0x49,0x3f,0x38,
+0x36,0x33,0x2f,0x2f,0x32,0x35,0x38,0x39,0x3c,0x37,0x35,0x36,0x38,0x3b,0x42,0x4b,
+0x48,0x47,0x49,0x4e,0x50,0x4f,0x51,0x56,0x5b,0x5e,0x60,0x61,0x67,0x6c,0x65,0x5a,
+0x62,0x57,0x4c,0x4c,0x55,0x61,0x6c,0x74,0x69,0x59,0x4e,0x4f,0x51,0x4f,0x52,0x59,
+0x58,0x5b,0x5c,0x5c,0x60,0x65,0x65,0x61,0x6a,0x6e,0x6e,0x67,0x61,0x5f,0x5f,0x5e,
+0x5e,0x51,0x46,0x44,0x42,0x3e,0x3d,0x3f,0x3a,0x3b,0x3d,0x40,0x46,0x52,0x6a,0x7e,
+0x8a,0x70,0x57,0x51,0x57,0x5c,0x60,0x65,0x65,0x70,0x72,0x72,0x6d,0x74,0x82,0x7c,
+0x65,0x5b,0x5d,0x65,0x62,0x5c,0x5b,0x5c,0x63,0x64,0x69,0x70,0x75,0x6f,0x60,0x52,
+0x5e,0x6a,0x78,0x7f,0x82,0x84,0x86,0x86,0x81,0x7c,0x6e,0x5c,0x51,0x4e,0x4f,0x4d,
+0x49,0x4d,0x53,0x5a,0x60,0x63,0x64,0x64,0x63,0x62,0x66,0x6d,0x6d,0x67,0x67,0x6d,
+0x6c,0x6d,0x77,0x72,0x6f,0x50,0x4f,0x59,0x5d,0x5c,0x5d,0x60,0x62,0x62,0x64,0x67,
+0x6e,0x74,0x79,0x7a,0x78,0x78,0x79,0x78,0x7c,0x7e,0x7e,0x7c,0x7c,0x80,0x82,0x83,
+0x83,0x85,0x88,0x8a,0x89,0x88,0x87,0x86,0x86,0x87,0x8a,0x8c,0x8d,0x8d,0x8d,0x8c,
+0x8e,0x90,0x91,0x91,0x91,0x91,0x93,0x94,0x94,0x97,0x97,0x95,0x96,0x99,0x9a,0x97,
+0x98,0x99,0x9a,0x9c,0x9d,0x9d,0x9d,0x9d,0x9d,0x9e,0xa0,0xa2,0xa3,0xa4,0xa4,0xa4,
+0xa6,0xa6,0xa7,0xa7,0xa8,0xa8,0xa8,0xa8,0xa9,0xa9,0xa9,0xa7,0xa5,0xa4,0xa4,0xa5,
+0xa8,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa8,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa4,0xa4,
+0xa7,0xa7,0xa6,0xa6,0xa6,0xa5,0xa5,0xa5,0xa3,0xa3,0xa3,0xa2,0xa2,0xa1,0xa1,0xa1,
+0xa0,0x9f,0x9f,0x9e,0x9e,0x9e,0x9e,0x9f,0x99,0x98,0x97,0x97,0x97,0x95,0x93,0x91,
+0x8e,0x90,0x90,0x8e,0x8d,0x8c,0x89,0x85,0x87,0x85,0x82,0x80,0x7f,0x7f,0x7e,0x7d,
+0x7a,0x7a,0x79,0x79,0x78,0x76,0x75,0x75,0x73,0x73,0x71,0x6e,0x6a,0x67,0x64,0x63,
+0x5f,0x5f,0x5c,0x56,0x53,0x52,0x50,0x4e,0x62,0x6c,0x6e,0x74,0x72,0x6d,0x73,0x72,
+0x6e,0x70,0x70,0x6c,0x69,0x67,0x67,0x67,0x64,0x6a,0x70,0x74,0x75,0x78,0x7d,0x81,
+0x7b,0x7c,0x7e,0x80,0x83,0x86,0x87,0x88,0x88,0x83,0x81,0x84,0x86,0x85,0x84,0x86,
+0x7f,0x80,0x7d,0x77,0x73,0x73,0x72,0x6e,0x61,0x68,0x68,0x5d,0x4e,0x47,0x49,0x4d,
+0x49,0x4a,0x4e,0x54,0x54,0x4c,0x42,0x3c,0x38,0x48,0x5c,0x69,0x70,0x73,0x75,0x77,
+0x60,0x5e,0x5d,0x5f,0x5f,0x5d,0x5c,0x5c,0x4f,0x4f,0x5b,0x64,0x66,0x6c,0x67,0x53,
+0x4d,0x4f,0x58,0x5e,0x56,0x46,0x3e,0x40,0x3e,0x42,0x47,0x4c,0x4d,0x48,0x41,0x3b,
+0x38,0x32,0x31,0x34,0x39,0x43,0x45,0x3c,0x3e,0x38,0x31,0x2a,0x25,0x23,0x28,0x2e,
+0x38,0x41,0x43,0x3e,0x38,0x30,0x2f,0x37,0x45,0x41,0x30,0x2e,0x36,0x3c,0x3d,0x2f,
+0x2b,0x30,0x38,0x39,0x36,0x3b,0x3e,0x38,0x30,0x25,0x1e,0x2b,0x3f,0x42,0x3f,0x43,
+0x46,0x49,0x3a,0x37,0x4e,0x51,0x3f,0x38,0x21,0x25,0x31,0x3b,0x3d,0x3e,0x39,0x2e,
+0x28,0x21,0x1e,0x23,0x2f,0x38,0x3c,0x3d,0x41,0x48,0x51,0x58,0x5a,0x59,0x57,0x57,
+0x47,0x46,0x47,0x47,0x46,0x4a,0x55,0x5f,0x59,0x44,0x2f,0x2e,0x3c,0x47,0x45,0x3f,
+0x40,0x3f,0x3e,0x3d,0x3a,0x37,0x39,0x3e,0x3f,0x3e,0x44,0x4b,0x47,0x3c,0x39,0x3d,
+0x3e,0x3c,0x41,0x44,0x42,0x45,0x4c,0x4d,0x4c,0x44,0x3e,0x41,0x46,0x4b,0x51,0x56,
+0x58,0x50,0x43,0x37,0x30,0x30,0x34,0x37,0x3c,0x46,0x4d,0x49,0x41,0x3c,0x3f,0x43,
+0x3d,0x37,0x31,0x31,0x32,0x35,0x39,0x3d,0x45,0x47,0x46,0x41,0x3f,0x41,0x43,0x43,
+0x44,0x3f,0x3d,0x3f,0x3c,0x35,0x32,0x33,0x36,0x36,0x37,0x39,0x3f,0x49,0x55,0x5d,
+0x5e,0x5e,0x59,0x53,0x53,0x57,0x56,0x50,0x4c,0x4c,0x4e,0x51,0x54,0x53,0x4f,0x4b,
+0x47,0x4c,0x51,0x54,0x56,0x55,0x4e,0x47,0x46,0x4a,0x51,0x58,0x59,0x50,0x40,0x34,
+0x33,0x33,0x33,0x35,0x38,0x3a,0x3a,0x39,0x3c,0x39,0x38,0x3c,0x42,0x46,0x49,0x4b,
+0x49,0x47,0x47,0x4b,0x4d,0x4d,0x4f,0x52,0x52,0x55,0x5c,0x64,0x67,0x65,0x61,0x5f,
+0x58,0x56,0x53,0x50,0x50,0x56,0x65,0x73,0x6a,0x5e,0x51,0x4d,0x4d,0x53,0x62,0x70,
+0x76,0x6c,0x66,0x66,0x60,0x55,0x52,0x58,0x62,0x6b,0x72,0x6e,0x66,0x61,0x5f,0x5d,
+0x57,0x55,0x50,0x48,0x41,0x3e,0x3e,0x3e,0x40,0x3e,0x3b,0x37,0x39,0x47,0x63,0x7b,
+0x79,0x68,0x55,0x51,0x56,0x5e,0x64,0x68,0x6b,0x70,0x77,0x87,0x8c,0x8c,0x8d,0x7f,
+0x77,0x71,0x79,0x83,0x7c,0x6d,0x63,0x5c,0x61,0x6b,0x72,0x73,0x77,0x75,0x61,0x49,
+0x42,0x50,0x62,0x6f,0x74,0x76,0x79,0x7d,0x74,0x72,0x6c,0x62,0x5d,0x5f,0x63,0x63,
+0x61,0x62,0x63,0x65,0x67,0x69,0x6b,0x6d,0x70,0x72,0x76,0x76,0x6e,0x66,0x66,0x6b,
+0x68,0x6a,0x76,0x72,0x6c,0x4f,0x4f,0x59,0x5d,0x5b,0x5a,0x5d,0x5f,0x60,0x63,0x67,
+0x6d,0x73,0x78,0x79,0x78,0x79,0x7a,0x79,0x7b,0x7d,0x7d,0x7b,0x7c,0x7f,0x82,0x82,
+0x82,0x84,0x86,0x87,0x87,0x86,0x85,0x85,0x86,0x88,0x8a,0x8c,0x8d,0x8d,0x8c,0x8b,
+0x8d,0x8e,0x90,0x90,0x8f,0x8f,0x91,0x92,0x93,0x95,0x96,0x94,0x95,0x97,0x98,0x96,
+0x96,0x97,0x98,0x99,0x9a,0x9b,0x9b,0x9a,0x9c,0x9d,0x9e,0xa0,0xa1,0xa2,0xa3,0xa3,
+0xa3,0xa4,0xa4,0xa4,0xa5,0xa5,0xa5,0xa5,0xa6,0xa7,0xa7,0xa6,0xa5,0xa4,0xa5,0xa6,
+0xa7,0xa7,0xa6,0xa6,0xa6,0xa6,0xa7,0xa7,0xa8,0xa8,0xa7,0xa6,0xa5,0xa4,0xa4,0xa4,
+0xa5,0xa5,0xa5,0xa5,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa4,0xa3,0xa2,0xa2,0xa2,0xa1,
+0xa0,0x9f,0x9f,0x9e,0x9d,0x9d,0x9c,0x9c,0x9a,0x99,0x98,0x97,0x97,0x96,0x93,0x92,
+0x8f,0x8f,0x8f,0x8d,0x8c,0x8b,0x88,0x83,0x86,0x84,0x81,0x80,0x7f,0x7e,0x7d,0x7c,
+0x7b,0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x72,0x72,0x71,0x6e,0x6a,0x67,0x65,0x63,
+0x60,0x5f,0x5c,0x56,0x52,0x52,0x50,0x4e,0x52,0x5a,0x58,0x59,0x58,0x57,0x60,0x5f,
+0x62,0x65,0x69,0x6a,0x69,0x69,0x69,0x69,0x66,0x67,0x69,0x6b,0x6d,0x6e,0x70,0x72,
+0x7a,0x7a,0x7b,0x7d,0x80,0x83,0x84,0x85,0x83,0x82,0x84,0x88,0x87,0x83,0x82,0x84,
+0x83,0x85,0x84,0x80,0x7f,0x81,0x81,0x80,0x83,0x87,0x80,0x69,0x4d,0x3e,0x3d,0x42,
+0x42,0x45,0x4b,0x54,0x57,0x55,0x51,0x50,0x4f,0x5c,0x65,0x65,0x65,0x69,0x6a,0x65,
+0x5f,0x61,0x64,0x67,0x68,0x65,0x5d,0x56,0x58,0x56,0x59,0x5a,0x58,0x5e,0x5d,0x4e,
+0x48,0x4a,0x54,0x60,0x60,0x55,0x4b,0x49,0x4f,0x52,0x55,0x52,0x4b,0x43,0x3d,0x3b,
+0x3c,0x35,0x31,0x30,0x34,0x40,0x46,0x40,0x3e,0x38,0x32,0x2e,0x2b,0x2a,0x2b,0x2e,
+0x38,0x40,0x42,0x3e,0x38,0x30,0x2f,0x38,0x4a,0x46,0x34,0x30,0x36,0x3d,0x43,0x39,
+0x2e,0x30,0x36,0x38,0x35,0x39,0x3e,0x3b,0x35,0x2a,0x21,0x2e,0x42,0x47,0x44,0x48,
+0x45,0x46,0x3c,0x40,0x57,0x53,0x39,0x2b,0x22,0x23,0x2e,0x3b,0x43,0x4a,0x47,0x3a,
+0x21,0x1d,0x1c,0x22,0x2c,0x35,0x3b,0x3d,0x48,0x4d,0x53,0x57,0x5a,0x5b,0x57,0x51,
+0x45,0x44,0x44,0x45,0x44,0x45,0x4a,0x50,0x4d,0x40,0x30,0x2b,0x36,0x43,0x42,0x3a,
+0x3d,0x40,0x45,0x45,0x3f,0x3a,0x3c,0x41,0x40,0x3e,0x3e,0x3e,0x3c,0x3c,0x40,0x45,
+0x45,0x43,0x4b,0x52,0x4b,0x42,0x42,0x44,0x41,0x3f,0x3d,0x3d,0x3f,0x41,0x42,0x42,
+0x41,0x43,0x40,0x38,0x35,0x35,0x33,0x2f,0x3b,0x4a,0x52,0x4b,0x42,0x41,0x44,0x45,
+0x42,0x39,0x32,0x34,0x3a,0x3e,0x3f,0x3f,0x3f,0x44,0x42,0x3c,0x3f,0x49,0x48,0x40,
+0x43,0x41,0x42,0x45,0x42,0x39,0x34,0x34,0x37,0x38,0x39,0x39,0x3a,0x40,0x49,0x51,
+0x59,0x59,0x56,0x55,0x59,0x5c,0x56,0x4d,0x4c,0x4b,0x4a,0x4b,0x4c,0x4c,0x49,0x46,
+0x4b,0x4c,0x4e,0x51,0x56,0x57,0x50,0x48,0x48,0x4b,0x53,0x5c,0x5e,0x55,0x43,0x35,
+0x33,0x33,0x34,0x35,0x38,0x3a,0x3b,0x3b,0x3b,0x3b,0x3e,0x46,0x52,0x5b,0x5c,0x59,
+0x52,0x50,0x51,0x55,0x57,0x56,0x55,0x54,0x52,0x50,0x53,0x59,0x58,0x56,0x5d,0x68,
+0x6b,0x63,0x5a,0x58,0x59,0x5d,0x63,0x67,0x64,0x62,0x5e,0x58,0x57,0x5b,0x65,0x6d,
+0x71,0x6a,0x68,0x6b,0x63,0x51,0x47,0x47,0x59,0x64,0x6e,0x6d,0x66,0x60,0x5e,0x5e,
+0x63,0x6a,0x67,0x57,0x49,0x45,0x45,0x44,0x47,0x4a,0x4b,0x47,0x41,0x41,0x4d,0x5b,
+0x65,0x64,0x61,0x5f,0x64,0x6c,0x71,0x73,0x6d,0x69,0x6d,0x86,0x95,0x97,0x98,0x8b,
+0x7a,0x72,0x75,0x7c,0x76,0x6c,0x66,0x61,0x61,0x6e,0x72,0x6e,0x79,0x8c,0x8a,0x79,
+0x55,0x50,0x53,0x63,0x74,0x7a,0x76,0x73,0x70,0x6e,0x68,0x5d,0x54,0x50,0x4f,0x4f,
+0x48,0x47,0x45,0x45,0x47,0x4c,0x51,0x54,0x5e,0x64,0x69,0x6b,0x6b,0x6a,0x68,0x65,
+0x63,0x68,0x75,0x72,0x66,0x4e,0x50,0x5a,0x5d,0x5b,0x5a,0x5c,0x5e,0x60,0x64,0x69,
+0x6b,0x71,0x76,0x77,0x78,0x79,0x7a,0x7a,0x79,0x7b,0x7b,0x7a,0x7a,0x7e,0x81,0x81,
+0x80,0x82,0x84,0x84,0x83,0x83,0x83,0x83,0x86,0x87,0x89,0x8b,0x8c,0x8c,0x8b,0x8b,
+0x8d,0x8e,0x8e,0x8e,0x8e,0x8d,0x8e,0x8f,0x91,0x93,0x93,0x92,0x93,0x95,0x95,0x94,
+0x94,0x95,0x96,0x97,0x98,0x98,0x99,0x99,0x9b,0x9b,0x9c,0x9d,0x9e,0xa0,0xa1,0xa2,
+0xa1,0xa1,0xa1,0xa2,0xa2,0xa3,0xa3,0xa3,0xa2,0xa4,0xa5,0xa5,0xa5,0xa4,0xa5,0xa6,
+0xa6,0xa6,0xa5,0xa5,0xa5,0xa5,0xa6,0xa6,0xa7,0xa6,0xa5,0xa4,0xa4,0xa3,0xa3,0xa3,
+0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa3,0xa4,0xa3,0xa3,0xa2,0xa1,0xa1,0xa0,0xa0,
+0xa0,0x9f,0x9e,0x9d,0x9c,0x9b,0x9a,0x9a,0x9b,0x99,0x98,0x98,0x98,0x96,0x94,0x93,
+0x90,0x8f,0x8d,0x8b,0x8b,0x8b,0x87,0x81,0x84,0x82,0x81,0x7f,0x7f,0x7e,0x7c,0x7b,
+0x7b,0x7b,0x79,0x78,0x77,0x76,0x75,0x75,0x71,0x71,0x6f,0x6d,0x6b,0x68,0x65,0x63,
+0x60,0x5f,0x5b,0x55,0x51,0x51,0x50,0x4f,0x54,0x5d,0x57,0x50,0x4b,0x4c,0x55,0x52,
+0x53,0x57,0x5d,0x62,0x64,0x64,0x64,0x65,0x64,0x64,0x65,0x67,0x69,0x69,0x66,0x63,
+0x6c,0x6b,0x6b,0x6d,0x70,0x72,0x74,0x74,0x71,0x77,0x7f,0x84,0x83,0x80,0x80,0x83,
+0x82,0x84,0x83,0x80,0x7e,0x80,0x82,0x82,0x78,0x7c,0x74,0x5a,0x3d,0x31,0x37,0x41,
+0x46,0x45,0x47,0x4b,0x4d,0x4f,0x53,0x58,0x57,0x5d,0x5b,0x51,0x52,0x5d,0x62,0x5d,
+0x57,0x5e,0x65,0x69,0x6c,0x69,0x5e,0x51,0x57,0x53,0x51,0x4e,0x4a,0x50,0x52,0x4a,
+0x42,0x3c,0x3b,0x44,0x4d,0x4e,0x4d,0x4d,0x58,0x5b,0x5c,0x54,0x47,0x3e,0x3d,0x3f,
+0x39,0x33,0x30,0x2d,0x30,0x3d,0x44,0x3f,0x3b,0x38,0x35,0x2f,0x27,0x24,0x28,0x2f,
+0x3a,0x42,0x44,0x41,0x3c,0x32,0x32,0x3b,0x48,0x44,0x34,0x30,0x34,0x3b,0x42,0x3b,
+0x33,0x31,0x37,0x3a,0x35,0x36,0x3c,0x3e,0x38,0x2c,0x24,0x30,0x44,0x49,0x43,0x44,
+0x43,0x45,0x41,0x4a,0x5a,0x50,0x35,0x29,0x2b,0x29,0x30,0x3e,0x4a,0x52,0x4d,0x3d,
+0x24,0x20,0x1e,0x23,0x29,0x2d,0x30,0x32,0x40,0x47,0x4e,0x53,0x5c,0x64,0x61,0x57,
+0x47,0x46,0x46,0x48,0x47,0x46,0x46,0x49,0x46,0x42,0x37,0x2e,0x36,0x46,0x48,0x40,
+0x3f,0x3f,0x42,0x45,0x44,0x41,0x40,0x41,0x41,0x43,0x42,0x3e,0x3e,0x41,0x45,0x46,
+0x48,0x46,0x4e,0x54,0x4d,0x46,0x43,0x40,0x3d,0x3b,0x39,0x3a,0x3d,0x3f,0x3d,0x39,
+0x35,0x3c,0x3f,0x3c,0x3b,0x3e,0x3a,0x31,0x38,0x41,0x47,0x46,0x43,0x42,0x40,0x3d,
+0x3f,0x38,0x36,0x3c,0x45,0x48,0x47,0x44,0x3f,0x43,0x42,0x41,0x48,0x55,0x57,0x52,
+0x47,0x45,0x46,0x48,0x44,0x3c,0x38,0x39,0x36,0x3a,0x3d,0x3d,0x3a,0x3a,0x3d,0x41,
+0x4b,0x4d,0x4e,0x50,0x55,0x57,0x52,0x4a,0x4f,0x4c,0x49,0x47,0x47,0x48,0x48,0x47,
+0x46,0x45,0x44,0x46,0x4d,0x55,0x57,0x56,0x51,0x4f,0x50,0x55,0x58,0x52,0x45,0x3a,
+0x35,0x33,0x31,0x30,0x32,0x36,0x3a,0x3d,0x3e,0x41,0x45,0x4b,0x57,0x62,0x63,0x5f,
+0x5c,0x5d,0x60,0x67,0x6d,0x6f,0x6e,0x6b,0x66,0x63,0x62,0x60,0x5b,0x59,0x5f,0x69,
+0x73,0x67,0x5b,0x59,0x5c,0x5e,0x5f,0x5f,0x5d,0x5e,0x5e,0x5e,0x64,0x6a,0x69,0x63,
+0x5d,0x63,0x69,0x6d,0x74,0x77,0x71,0x68,0x61,0x67,0x6c,0x6c,0x69,0x67,0x69,0x6b,
+0x66,0x6a,0x66,0x57,0x49,0x45,0x49,0x4c,0x5e,0x64,0x6a,0x6a,0x62,0x58,0x54,0x54,
+0x64,0x74,0x80,0x7f,0x7d,0x81,0x84,0x84,0x74,0x6d,0x68,0x75,0x81,0x8c,0x9b,0x97,
+0x75,0x66,0x61,0x64,0x63,0x62,0x61,0x5d,0x5e,0x68,0x68,0x64,0x73,0x91,0xa3,0xa2,
+0x7f,0x69,0x5c,0x65,0x75,0x7a,0x76,0x73,0x73,0x72,0x6c,0x62,0x57,0x51,0x50,0x51,
+0x57,0x56,0x55,0x56,0x59,0x5e,0x63,0x66,0x62,0x69,0x70,0x78,0x83,0x8b,0x84,0x76,
+0x62,0x68,0x74,0x71,0x5e,0x4d,0x53,0x5d,0x5f,0x5d,0x5d,0x5f,0x62,0x63,0x67,0x6a,
+0x6c,0x71,0x75,0x76,0x77,0x79,0x79,0x78,0x76,0x79,0x79,0x78,0x78,0x7c,0x7f,0x7f,
+0x7f,0x81,0x82,0x82,0x81,0x81,0x82,0x82,0x85,0x86,0x88,0x8a,0x8b,0x8c,0x8c,0x8b,
+0x8d,0x8e,0x8e,0x8e,0x8d,0x8d,0x8e,0x8f,0x90,0x91,0x91,0x91,0x92,0x93,0x93,0x93,
+0x95,0x95,0x96,0x97,0x97,0x98,0x98,0x98,0x9a,0x9a,0x9a,0x9b,0x9c,0x9d,0x9f,0xa0,
+0xa0,0xa0,0xa1,0xa1,0xa2,0xa2,0xa2,0xa2,0xa0,0xa1,0xa3,0xa4,0xa3,0xa3,0xa3,0xa4,
+0xa4,0xa4,0xa4,0xa3,0xa3,0xa4,0xa4,0xa4,0xa4,0xa3,0xa3,0xa2,0xa2,0xa2,0xa2,0xa2,
+0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa1,0xa1,0xa1,0xa0,0x9f,0x9e,0x9d,0x9d,
+0x9f,0x9e,0x9e,0x9d,0x9c,0x9b,0x9b,0x9a,0x9b,0x9a,0x98,0x98,0x98,0x97,0x95,0x94,
+0x92,0x90,0x8c,0x8a,0x8c,0x8c,0x87,0x80,0x83,0x82,0x80,0x7f,0x7f,0x7e,0x7c,0x7a,
+0x7b,0x7a,0x78,0x76,0x74,0x74,0x74,0x74,0x70,0x6f,0x6e,0x6c,0x6b,0x68,0x64,0x62,
+0x60,0x5f,0x5a,0x53,0x50,0x50,0x50,0x4f,0x54,0x61,0x59,0x4b,0x3f,0x3d,0x46,0x42,
+0x4b,0x4c,0x51,0x56,0x58,0x57,0x57,0x58,0x5a,0x5d,0x61,0x65,0x66,0x63,0x5e,0x5b,
+0x5a,0x58,0x56,0x57,0x5b,0x5e,0x5f,0x60,0x62,0x6a,0x74,0x77,0x74,0x71,0x72,0x76,
+0x78,0x79,0x77,0x73,0x6f,0x6e,0x6f,0x70,0x74,0x75,0x6a,0x4f,0x33,0x28,0x2e,0x39,
+0x48,0x41,0x38,0x30,0x2b,0x2a,0x31,0x38,0x3d,0x42,0x46,0x46,0x4a,0x50,0x50,0x4b,
+0x48,0x52,0x5b,0x5e,0x61,0x62,0x5b,0x52,0x4e,0x4a,0x47,0x44,0x47,0x4d,0x50,0x4c,
+0x49,0x3e,0x34,0x34,0x3c,0x46,0x4c,0x50,0x5c,0x5f,0x5d,0x53,0x46,0x3d,0x3d,0x40,
+0x33,0x32,0x32,0x30,0x32,0x3e,0x45,0x3e,0x39,0x3c,0x3b,0x30,0x20,0x19,0x23,0x32,
+0x3d,0x44,0x46,0x44,0x3e,0x33,0x32,0x3c,0x47,0x41,0x31,0x2f,0x35,0x3a,0x3f,0x37,
+0x36,0x33,0x38,0x3d,0x36,0x33,0x3a,0x3f,0x3a,0x30,0x27,0x32,0x46,0x49,0x42,0x40,
+0x42,0x46,0x48,0x50,0x57,0x4a,0x3a,0x38,0x2e,0x2d,0x36,0x45,0x50,0x56,0x4e,0x3c,
+0x2e,0x26,0x23,0x28,0x2e,0x2e,0x2c,0x2c,0x32,0x3e,0x49,0x50,0x5e,0x6d,0x6d,0x64,
+0x3f,0x3e,0x41,0x45,0x47,0x45,0x45,0x46,0x4d,0x4e,0x46,0x3a,0x3c,0x48,0x4c,0x46,
+0x3f,0x38,0x34,0x3a,0x42,0x44,0x40,0x3b,0x41,0x43,0x41,0x3c,0x3b,0x3e,0x3f,0x3e,
+0x3f,0x3f,0x43,0x45,0x45,0x4a,0x4b,0x42,0x41,0x3b,0x36,0x39,0x42,0x48,0x46,0x42,
+0x40,0x44,0x41,0x3a,0x39,0x3e,0x3f,0x3a,0x31,0x34,0x3c,0x43,0x43,0x3e,0x3d,0x3f,
+0x3e,0x3a,0x39,0x3f,0x46,0x49,0x49,0x48,0x3f,0x3f,0x3f,0x41,0x47,0x50,0x57,0x59,
+0x44,0x42,0x41,0x42,0x3e,0x38,0x36,0x39,0x35,0x39,0x3d,0x3d,0x3a,0x39,0x3b,0x3e,
+0x42,0x47,0x4c,0x4f,0x52,0x54,0x53,0x51,0x4f,0x4b,0x46,0x43,0x42,0x44,0x46,0x48,
+0x41,0x43,0x43,0x43,0x47,0x52,0x5b,0x60,0x57,0x51,0x4c,0x4c,0x4e,0x4b,0x43,0x3b,
+0x34,0x33,0x30,0x2f,0x30,0x34,0x38,0x3c,0x44,0x46,0x47,0x4a,0x50,0x56,0x57,0x55,
+0x50,0x50,0x52,0x59,0x63,0x6c,0x71,0x71,0x72,0x77,0x79,0x76,0x72,0x70,0x6b,0x66,
+0x5d,0x5a,0x56,0x52,0x4e,0x4f,0x58,0x61,0x5c,0x54,0x4d,0x52,0x66,0x7a,0x79,0x6e,
+0x61,0x5e,0x5b,0x5d,0x68,0x74,0x76,0x70,0x63,0x62,0x62,0x63,0x64,0x65,0x66,0x68,
+0x64,0x5d,0x56,0x52,0x4e,0x4e,0x55,0x5e,0x69,0x67,0x65,0x64,0x65,0x67,0x68,0x69,
+0x64,0x79,0x87,0x81,0x76,0x75,0x79,0x7a,0x83,0x84,0x7a,0x72,0x6a,0x70,0x80,0x7b,
+0x7b,0x6b,0x65,0x67,0x66,0x63,0x5b,0x52,0x55,0x5a,0x5c,0x5c,0x63,0x72,0x80,0x86,
+0x7f,0x72,0x68,0x69,0x6a,0x69,0x6e,0x77,0x79,0x78,0x72,0x67,0x5b,0x53,0x54,0x58,
+0x63,0x63,0x64,0x65,0x66,0x67,0x68,0x68,0x6b,0x75,0x7c,0x7f,0x84,0x86,0x7b,0x6b,
+0x61,0x67,0x70,0x6d,0x54,0x4c,0x54,0x5d,0x5f,0x5e,0x60,0x63,0x66,0x66,0x67,0x6a,
+0x6e,0x72,0x75,0x75,0x75,0x77,0x77,0x75,0x75,0x77,0x77,0x75,0x76,0x79,0x7c,0x7d,
+0x7e,0x80,0x81,0x82,0x81,0x81,0x82,0x83,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8c,0x8c,
+0x8d,0x8e,0x8f,0x8e,0x8d,0x8d,0x8e,0x8f,0x8f,0x8f,0x8f,0x90,0x91,0x91,0x91,0x92,
+0x94,0x94,0x94,0x95,0x95,0x96,0x96,0x97,0x99,0x99,0x99,0x99,0x9a,0x9c,0x9d,0x9e,
+0x9f,0x9f,0x9f,0x9f,0xa0,0xa0,0xa1,0xa1,0x9f,0xa0,0xa2,0xa2,0xa1,0xa0,0xa1,0xa2,
+0xa3,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa2,0xa2,0xa2,0xa2,0xa2,0xa3,
+0xa2,0xa2,0xa2,0xa2,0xa1,0xa1,0xa1,0xa1,0xa0,0x9f,0x9f,0x9e,0x9e,0x9d,0x9c,0x9c,
+0x9d,0x9d,0x9e,0x9e,0x9d,0x9d,0x9c,0x9b,0x9a,0x99,0x97,0x97,0x97,0x96,0x95,0x94,
+0x93,0x91,0x8d,0x8b,0x8c,0x8d,0x88,0x81,0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7b,0x7a,
+0x79,0x77,0x75,0x72,0x71,0x70,0x71,0x71,0x6f,0x6d,0x6c,0x6b,0x6a,0x67,0x63,0x60,
+0x5f,0x5e,0x59,0x52,0x4f,0x4f,0x4f,0x4e,0x54,0x61,0x59,0x48,0x3a,0x3a,0x47,0x45,
+0x49,0x47,0x48,0x4b,0x4d,0x4b,0x4b,0x4d,0x50,0x54,0x58,0x59,0x57,0x55,0x54,0x55,
+0x52,0x4f,0x4c,0x4c,0x50,0x54,0x56,0x56,0x5e,0x64,0x68,0x65,0x5e,0x5a,0x5b,0x5f,
+0x67,0x67,0x67,0x64,0x5f,0x5c,0x5d,0x5f,0x64,0x66,0x5f,0x50,0x42,0x42,0x4e,0x58,
+0x5a,0x51,0x45,0x38,0x2e,0x28,0x2b,0x30,0x34,0x3b,0x4d,0x5e,0x60,0x53,0x44,0x3e,
+0x43,0x4c,0x52,0x53,0x54,0x59,0x5a,0x59,0x52,0x4d,0x44,0x41,0x48,0x4e,0x50,0x50,
+0x4a,0x44,0x3c,0x37,0x39,0x3f,0x44,0x46,0x60,0x5f,0x5b,0x51,0x45,0x3d,0x3b,0x3b,
+0x35,0x34,0x34,0x31,0x33,0x42,0x4a,0x44,0x3a,0x3e,0x3e,0x35,0x26,0x1f,0x26,0x33,
+0x3d,0x43,0x46,0x45,0x3f,0x33,0x31,0x3c,0x4d,0x42,0x2d,0x2d,0x37,0x3c,0x40,0x37,
+0x30,0x2f,0x37,0x3c,0x35,0x31,0x38,0x3e,0x40,0x34,0x29,0x30,0x42,0x49,0x45,0x45,
+0x3f,0x3f,0x43,0x4d,0x53,0x4b,0x40,0x3d,0x26,0x2a,0x39,0x4a,0x55,0x5a,0x52,0x43,
+0x30,0x26,0x22,0x2c,0x38,0x39,0x34,0x30,0x2e,0x3d,0x4a,0x52,0x5f,0x6e,0x70,0x68,
+0x3c,0x3b,0x3d,0x40,0x40,0x3d,0x3c,0x3d,0x47,0x4b,0x47,0x3c,0x3a,0x42,0x47,0x45,
+0x3b,0x2f,0x28,0x2f,0x3c,0x42,0x3d,0x37,0x3b,0x3b,0x38,0x35,0x36,0x3c,0x40,0x42,
+0x3b,0x3b,0x3e,0x3f,0x44,0x51,0x56,0x4d,0x3a,0x34,0x36,0x44,0x50,0x4e,0x44,0x3d,
+0x44,0x46,0x44,0x3f,0x3b,0x3c,0x39,0x34,0x2d,0x32,0x3d,0x46,0x43,0x3d,0x42,0x4e,
+0x4e,0x47,0x40,0x3f,0x3f,0x40,0x41,0x43,0x44,0x42,0x40,0x3f,0x40,0x45,0x4b,0x50,
+0x48,0x45,0x45,0x44,0x3d,0x34,0x31,0x34,0x34,0x37,0x38,0x38,0x38,0x3b,0x40,0x45,
+0x49,0x4e,0x54,0x54,0x52,0x4f,0x50,0x52,0x4c,0x4a,0x47,0x44,0x42,0x43,0x44,0x45,
+0x4e,0x52,0x53,0x4e,0x4b,0x4d,0x53,0x58,0x53,0x4e,0x48,0x46,0x47,0x44,0x3d,0x37,
+0x31,0x32,0x33,0x33,0x34,0x36,0x39,0x3b,0x44,0x43,0x46,0x4c,0x50,0x51,0x51,0x51,
+0x4c,0x4a,0x47,0x47,0x4e,0x59,0x62,0x65,0x66,0x6a,0x6c,0x6b,0x70,0x77,0x74,0x6c,
+0x60,0x5a,0x55,0x52,0x52,0x53,0x58,0x5e,0x5b,0x50,0x46,0x4d,0x65,0x78,0x77,0x6b,
+0x60,0x53,0x4f,0x5a,0x64,0x63,0x61,0x63,0x5e,0x5b,0x59,0x5c,0x5e,0x5c,0x5a,0x59,
+0x67,0x5a,0x52,0x55,0x59,0x5a,0x5e,0x63,0x5d,0x56,0x4d,0x4b,0x53,0x5f,0x67,0x69,
+0x65,0x71,0x75,0x69,0x5c,0x5d,0x66,0x6d,0x6c,0x7c,0x84,0x88,0x87,0x92,0xa3,0x9d,
+0x7e,0x6f,0x66,0x65,0x62,0x61,0x5d,0x55,0x56,0x53,0x53,0x55,0x56,0x57,0x5f,0x68,
+0x6a,0x67,0x68,0x6b,0x6b,0x68,0x69,0x6e,0x71,0x6f,0x68,0x5c,0x4c,0x42,0x43,0x49,
+0x49,0x4b,0x4f,0x52,0x55,0x55,0x55,0x55,0x62,0x6d,0x73,0x6c,0x62,0x5c,0x55,0x4d,
+0x5e,0x63,0x6b,0x6a,0x4d,0x4c,0x56,0x5c,0x5f,0x5e,0x61,0x65,0x67,0x66,0x66,0x68,
+0x70,0x73,0x74,0x74,0x74,0x76,0x75,0x72,0x73,0x76,0x76,0x74,0x74,0x77,0x79,0x7a,
+0x7d,0x7e,0x81,0x82,0x82,0x82,0x83,0x84,0x82,0x83,0x85,0x87,0x89,0x8a,0x8b,0x8c,
+0x8b,0x8c,0x8d,0x8d,0x8c,0x8c,0x8d,0x8e,0x8e,0x8c,0x8d,0x8f,0x8f,0x8f,0x8f,0x91,
+0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x93,0x97,0x97,0x98,0x98,0x99,0x9a,0x9b,0x9c,
+0x9b,0x9c,0x9c,0x9c,0x9d,0x9d,0x9d,0x9d,0x9f,0xa0,0xa0,0x9f,0x9e,0x9e,0x9f,0xa0,
+0xa1,0xa1,0xa0,0xa0,0xa0,0xa0,0xa1,0xa1,0xa3,0xa2,0xa2,0xa2,0xa2,0xa3,0xa3,0xa4,
+0xa2,0xa1,0xa1,0xa1,0xa0,0xa0,0x9f,0x9f,0x9f,0x9f,0x9e,0x9e,0x9e,0x9d,0x9d,0x9d,
+0x9c,0x9d,0x9d,0x9e,0x9e,0x9d,0x9c,0x9b,0x99,0x97,0x96,0x95,0x95,0x95,0x94,0x93,
+0x93,0x92,0x8f,0x8c,0x8d,0x8d,0x89,0x84,0x84,0x82,0x7f,0x7d,0x7c,0x7b,0x7a,0x79,
+0x78,0x76,0x72,0x6f,0x6e,0x6e,0x6e,0x6f,0x6e,0x6c,0x6a,0x6a,0x69,0x66,0x61,0x5d,
+0x5d,0x5c,0x58,0x51,0x4e,0x4e,0x4d,0x4c,0x58,0x61,0x59,0x4f,0x47,0x4a,0x5a,0x5d,
+0x4c,0x47,0x45,0x47,0x48,0x45,0x46,0x49,0x4d,0x4d,0x4d,0x49,0x45,0x46,0x4c,0x52,
+0x4d,0x49,0x44,0x45,0x49,0x4e,0x50,0x50,0x55,0x58,0x57,0x50,0x4b,0x4a,0x4d,0x4f,
+0x50,0x52,0x55,0x56,0x53,0x51,0x53,0x57,0x60,0x60,0x5a,0x4d,0x42,0x40,0x46,0x4b,
+0x4e,0x49,0x43,0x3c,0x35,0x2e,0x2b,0x2c,0x3b,0x40,0x52,0x65,0x63,0x50,0x43,0x44,
+0x4f,0x51,0x54,0x55,0x56,0x59,0x5e,0x63,0x61,0x5b,0x4b,0x42,0x46,0x48,0x48,0x4d,
+0x49,0x48,0x41,0x36,0x33,0x3a,0x42,0x46,0x57,0x55,0x50,0x49,0x42,0x3e,0x3c,0x3c,
+0x39,0x36,0x31,0x2b,0x2f,0x42,0x4d,0x47,0x3a,0x39,0x38,0x36,0x30,0x2a,0x2b,0x2e,
+0x3e,0x43,0x47,0x48,0x43,0x36,0x34,0x41,0x50,0x40,0x28,0x28,0x33,0x3b,0x40,0x38,
+0x2a,0x2d,0x36,0x39,0x31,0x30,0x39,0x3e,0x40,0x35,0x26,0x28,0x38,0x42,0x42,0x46,
+0x36,0x34,0x39,0x46,0x50,0x4c,0x3e,0x30,0x26,0x2b,0x3a,0x4a,0x52,0x57,0x52,0x45,
+0x2f,0x22,0x1e,0x2b,0x39,0x39,0x31,0x2b,0x2c,0x3a,0x49,0x54,0x61,0x6d,0x6f,0x6a,
+0x44,0x43,0x44,0x44,0x41,0x3b,0x3a,0x3b,0x38,0x40,0x42,0x3b,0x37,0x3a,0x3f,0x40,
+0x36,0x2d,0x28,0x2e,0x3a,0x40,0x3e,0x3b,0x39,0x36,0x33,0x33,0x37,0x3c,0x42,0x47,
+0x42,0x3e,0x40,0x43,0x46,0x4e,0x54,0x51,0x38,0x31,0x37,0x49,0x50,0x44,0x36,0x30,
+0x37,0x3a,0x3e,0x40,0x3e,0x38,0x32,0x2d,0x31,0x35,0x3a,0x3c,0x3b,0x3d,0x44,0x4d,
+0x4f,0x46,0x3e,0x3b,0x3c,0x3d,0x3e,0x3f,0x4d,0x4f,0x4a,0x42,0x41,0x48,0x4a,0x47,
+0x44,0x44,0x48,0x4a,0x43,0x37,0x30,0x31,0x33,0x34,0x36,0x37,0x3a,0x3e,0x43,0x47,
+0x48,0x4d,0x52,0x52,0x4d,0x47,0x47,0x49,0x4f,0x50,0x50,0x4f,0x4d,0x4a,0x47,0x46,
+0x56,0x5a,0x5a,0x53,0x4a,0x48,0x4a,0x4d,0x4d,0x49,0x44,0x42,0x41,0x3e,0x39,0x34,
+0x31,0x32,0x34,0x35,0x36,0x39,0x3d,0x40,0x41,0x3d,0x44,0x54,0x5d,0x59,0x54,0x54,
+0x5b,0x5b,0x5a,0x58,0x5b,0x64,0x6a,0x6c,0x5f,0x5b,0x57,0x58,0x60,0x69,0x6c,0x6b,
+0x6b,0x61,0x58,0x58,0x5d,0x5e,0x5c,0x5a,0x5a,0x53,0x4e,0x51,0x5a,0x5f,0x5c,0x55,
+0x52,0x4e,0x56,0x69,0x76,0x75,0x73,0x76,0x65,0x61,0x5e,0x5e,0x5c,0x58,0x55,0x54,
+0x61,0x5a,0x55,0x5a,0x62,0x62,0x5b,0x54,0x57,0x53,0x4c,0x4a,0x51,0x5b,0x5f,0x5e,
+0x64,0x65,0x61,0x58,0x56,0x60,0x6f,0x79,0x6d,0x72,0x73,0x79,0x78,0x7a,0x81,0x76,
+0x73,0x65,0x5b,0x55,0x51,0x57,0x61,0x63,0x67,0x5e,0x58,0x5a,0x5d,0x5d,0x60,0x65,
+0x63,0x67,0x6f,0x75,0x76,0x70,0x66,0x5e,0x59,0x59,0x58,0x52,0x47,0x40,0x45,0x4f,
+0x51,0x54,0x58,0x5e,0x64,0x6a,0x6d,0x6f,0x6a,0x6e,0x6c,0x64,0x5c,0x5a,0x5a,0x59,
+0x5a,0x60,0x69,0x6b,0x4d,0x51,0x59,0x5c,0x61,0x60,0x61,0x64,0x66,0x65,0x66,0x68,
+0x70,0x73,0x73,0x73,0x74,0x75,0x74,0x71,0x73,0x75,0x75,0x72,0x72,0x75,0x77,0x77,
+0x7a,0x7d,0x80,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x87,0x88,0x89,0x89,0x8a,
+0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8b,0x8c,0x8c,0x8a,0x8a,0x8d,0x8e,0x8c,0x8c,0x8f,
+0x8f,0x8e,0x8e,0x8e,0x8e,0x8f,0x90,0x90,0x95,0x95,0x96,0x97,0x98,0x98,0x98,0x98,
+0x99,0x99,0x99,0x9a,0x9a,0x9b,0x9b,0x9b,0x9e,0x9e,0x9e,0x9c,0x9b,0x9c,0x9e,0xa0,
+0xa0,0xa0,0x9f,0x9f,0x9f,0x9f,0xa0,0xa0,0xa1,0xa1,0xa1,0xa1,0xa1,0xa2,0xa3,0xa3,
+0xa1,0xa1,0xa0,0x9f,0x9e,0x9e,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,0x9d,
+0x9c,0x9c,0x9d,0x9d,0x9d,0x9b,0x9a,0x99,0x97,0x96,0x94,0x93,0x94,0x94,0x93,0x92,
+0x92,0x92,0x8f,0x8d,0x8c,0x8c,0x8a,0x86,0x84,0x81,0x7d,0x7a,0x79,0x78,0x78,0x77,
+0x77,0x75,0x71,0x6d,0x6c,0x6c,0x6d,0x6e,0x6d,0x6b,0x69,0x68,0x68,0x64,0x5f,0x5a,
+0x5b,0x5b,0x57,0x51,0x4d,0x4d,0x4c,0x49,0x53,0x58,0x52,0x52,0x53,0x55,0x61,0x61,
+0x51,0x4a,0x46,0x48,0x47,0x43,0x42,0x46,0x46,0x45,0x42,0x3e,0x3d,0x40,0x46,0x4b,
+0x43,0x3e,0x39,0x39,0x3e,0x44,0x46,0x47,0x48,0x48,0x44,0x3f,0x3e,0x42,0x46,0x47,
+0x41,0x44,0x49,0x4c,0x4a,0x47,0x49,0x4e,0x49,0x4d,0x4d,0x46,0x3f,0x3e,0x42,0x46,
+0x45,0x42,0x40,0x40,0x3e,0x3a,0x37,0x37,0x35,0x3b,0x48,0x52,0x4f,0x44,0x42,0x49,
+0x54,0x50,0x51,0x58,0x5c,0x5b,0x5c,0x60,0x64,0x62,0x52,0x44,0x40,0x3a,0x37,0x3f,
+0x4a,0x4d,0x49,0x40,0x3e,0x48,0x52,0x56,0x50,0x4e,0x4a,0x45,0x40,0x3f,0x41,0x44,
+0x3d,0x38,0x31,0x2a,0x2f,0x43,0x4d,0x46,0x37,0x37,0x36,0x32,0x2c,0x28,0x2b,0x31,
+0x3b,0x41,0x45,0x48,0x44,0x38,0x37,0x45,0x46,0x39,0x25,0x28,0x33,0x38,0x3d,0x35,
+0x2e,0x33,0x3b,0x38,0x2e,0x2f,0x39,0x3c,0x3d,0x34,0x28,0x28,0x34,0x39,0x36,0x38,
+0x33,0x36,0x41,0x4b,0x4f,0x4b,0x3e,0x2d,0x2e,0x2e,0x37,0x42,0x49,0x50,0x4e,0x43,
+0x31,0x24,0x20,0x2c,0x36,0x32,0x27,0x21,0x2a,0x34,0x42,0x52,0x62,0x6b,0x6a,0x65,
+0x3c,0x3c,0x3d,0x3e,0x3a,0x36,0x36,0x38,0x37,0x40,0x46,0x41,0x3a,0x38,0x3a,0x3c,
+0x34,0x2f,0x2e,0x34,0x3c,0x40,0x42,0x43,0x3f,0x39,0x36,0x37,0x38,0x38,0x3b,0x40,
+0x45,0x3d,0x3f,0x45,0x42,0x41,0x46,0x49,0x48,0x3a,0x36,0x40,0x41,0x34,0x2c,0x30,
+0x2f,0x2e,0x30,0x34,0x35,0x34,0x33,0x35,0x34,0x33,0x2f,0x2a,0x2f,0x3a,0x3e,0x3b,
+0x3a,0x33,0x30,0x35,0x3d,0x42,0x43,0x43,0x44,0x4a,0x46,0x39,0x39,0x44,0x43,0x37,
+0x31,0x35,0x40,0x48,0x45,0x3a,0x33,0x33,0x32,0x34,0x37,0x3a,0x3d,0x40,0x41,0x42,
+0x39,0x3e,0x44,0x48,0x46,0x42,0x42,0x43,0x55,0x58,0x5b,0x5c,0x59,0x53,0x4d,0x4a,
+0x4b,0x4e,0x4e,0x48,0x43,0x44,0x49,0x4c,0x4b,0x46,0x41,0x3d,0x3c,0x3a,0x37,0x35,
+0x33,0x33,0x32,0x31,0x33,0x39,0x41,0x46,0x42,0x3c,0x45,0x5b,0x67,0x5e,0x53,0x50,
+0x58,0x5e,0x65,0x68,0x6d,0x74,0x77,0x76,0x6c,0x62,0x5d,0x60,0x63,0x5f,0x5d,0x5e,
+0x5c,0x5b,0x5b,0x5b,0x59,0x57,0x59,0x5e,0x5b,0x58,0x53,0x4d,0x47,0x44,0x45,0x49,
+0x49,0x50,0x56,0x5a,0x61,0x68,0x69,0x65,0x64,0x5e,0x59,0x55,0x4f,0x49,0x49,0x4c,
+0x5f,0x61,0x62,0x68,0x71,0x74,0x66,0x54,0x54,0x52,0x4d,0x4a,0x4d,0x54,0x57,0x55,
+0x51,0x4d,0x47,0x48,0x52,0x64,0x76,0x81,0x79,0x6b,0x5e,0x64,0x68,0x6a,0x70,0x68,
+0x66,0x5e,0x58,0x52,0x4c,0x53,0x62,0x69,0x78,0x6f,0x68,0x69,0x6d,0x6c,0x64,0x5e,
+0x61,0x73,0x83,0x83,0x76,0x67,0x5c,0x57,0x4f,0x50,0x52,0x4f,0x45,0x3f,0x44,0x4e,
+0x51,0x52,0x56,0x5b,0x63,0x6b,0x72,0x76,0x71,0x67,0x5c,0x59,0x5d,0x65,0x68,0x67,
+0x57,0x5e,0x69,0x6f,0x4f,0x56,0x5d,0x5e,0x64,0x62,0x62,0x64,0x65,0x65,0x67,0x6a,
+0x70,0x72,0x73,0x72,0x73,0x75,0x74,0x72,0x73,0x75,0x74,0x72,0x71,0x73,0x75,0x76,
+0x78,0x7b,0x80,0x82,0x83,0x83,0x83,0x84,0x85,0x86,0x86,0x86,0x87,0x87,0x88,0x88,
+0x85,0x86,0x88,0x88,0x88,0x88,0x89,0x8a,0x8b,0x88,0x88,0x8c,0x8c,0x8a,0x8b,0x8e,
+0x8e,0x8e,0x8d,0x8d,0x8d,0x8e,0x8f,0x8f,0x93,0x94,0x95,0x96,0x97,0x97,0x96,0x96,
+0x99,0x99,0x99,0x99,0x9a,0x9a,0x9b,0x9b,0x9e,0x9d,0x9c,0x9b,0x9a,0x9c,0x9f,0xa1,
+0x9f,0x9f,0x9f,0x9e,0x9e,0x9f,0x9f,0x9f,0x9e,0x9e,0x9e,0x9e,0x9f,0xa0,0xa0,0xa1,
+0xa1,0xa0,0x9f,0x9e,0x9d,0x9c,0x9b,0x9b,0x9a,0x9a,0x9b,0x9b,0x9b,0x9c,0x9c,0x9c,
+0x9c,0x9c,0x9d,0x9d,0x9c,0x9a,0x98,0x97,0x96,0x95,0x93,0x92,0x92,0x93,0x92,0x92,
+0x90,0x91,0x90,0x8d,0x8b,0x8b,0x8a,0x87,0x84,0x81,0x7c,0x78,0x76,0x76,0x76,0x76,
+0x77,0x74,0x70,0x6d,0x6b,0x6b,0x6d,0x6e,0x6d,0x6a,0x68,0x67,0x67,0x63,0x5d,0x58,
+0x5a,0x5a,0x56,0x51,0x4d,0x4c,0x4b,0x48,0x51,0x53,0x50,0x59,0x5f,0x5e,0x60,0x59,
+0x55,0x4d,0x49,0x4a,0x48,0x42,0x3f,0x42,0x3b,0x3a,0x38,0x39,0x3c,0x3f,0x41,0x41,
+0x3b,0x35,0x2f,0x2f,0x35,0x3b,0x3e,0x3e,0x44,0x42,0x3b,0x35,0x36,0x3c,0x3e,0x3d,
+0x3e,0x41,0x46,0x49,0x46,0x41,0x41,0x46,0x5b,0x60,0x5f,0x53,0x45,0x3c,0x3a,0x3a,
+0x38,0x34,0x31,0x33,0x34,0x34,0x33,0x34,0x34,0x42,0x52,0x59,0x54,0x4c,0x4b,0x4e,
+0x4b,0x43,0x45,0x52,0x5a,0x57,0x53,0x55,0x5b,0x5f,0x54,0x45,0x3c,0x2e,0x28,0x31,
+0x39,0x45,0x4c,0x4c,0x4d,0x55,0x59,0x57,0x58,0x56,0x51,0x49,0x41,0x40,0x44,0x49,
+0x41,0x3d,0x38,0x31,0x37,0x49,0x50,0x45,0x38,0x3c,0x3c,0x31,0x22,0x1d,0x2b,0x3c,
+0x34,0x3a,0x3f,0x44,0x41,0x35,0x35,0x43,0x3b,0x34,0x28,0x2f,0x38,0x38,0x3a,0x32,
+0x37,0x3d,0x42,0x39,0x2c,0x2e,0x38,0x3a,0x3b,0x38,0x30,0x31,0x38,0x36,0x2c,0x29,
+0x38,0x45,0x57,0x5a,0x51,0x4b,0x45,0x3a,0x30,0x2c,0x30,0x38,0x41,0x4b,0x4d,0x44,
+0x33,0x28,0x25,0x30,0x38,0x31,0x27,0x23,0x2e,0x32,0x3e,0x50,0x60,0x65,0x5f,0x59,
+0x43,0x44,0x41,0x40,0x3e,0x37,0x35,0x3e,0x38,0x3c,0x3e,0x40,0x40,0x38,0x30,0x33,
+0x3a,0x3b,0x3d,0x3e,0x3e,0x3c,0x3a,0x38,0x39,0x35,0x33,0x35,0x39,0x3b,0x3d,0x40,
+0x3f,0x3f,0x3c,0x3a,0x39,0x3a,0x39,0x37,0x3c,0x3e,0x3c,0x37,0x35,0x38,0x3b,0x3a,
+0x3b,0x39,0x35,0x30,0x2e,0x2e,0x2c,0x29,0x2e,0x2e,0x30,0x31,0x30,0x32,0x39,0x41,
+0x36,0x2c,0x2d,0x3e,0x4f,0x50,0x47,0x40,0x3a,0x39,0x39,0x3b,0x3d,0x3c,0x36,0x31,
+0x2e,0x2f,0x33,0x38,0x3a,0x38,0x36,0x36,0x32,0x32,0x37,0x3d,0x3f,0x3b,0x3a,0x3d,
+0x3e,0x3f,0x41,0x43,0x44,0x43,0x42,0x41,0x44,0x47,0x4c,0x54,0x59,0x58,0x54,0x50,
+0x42,0x45,0x46,0x43,0x3f,0x40,0x48,0x4f,0x4b,0x46,0x40,0x3e,0x3e,0x3b,0x34,0x2d,
+0x35,0x34,0x32,0x32,0x34,0x39,0x40,0x44,0x43,0x42,0x44,0x4b,0x53,0x57,0x57,0x54,
+0x50,0x57,0x60,0x66,0x6a,0x6d,0x71,0x74,0x6e,0x6c,0x6d,0x70,0x71,0x6c,0x64,0x5f,
+0x55,0x52,0x56,0x58,0x55,0x58,0x5d,0x5c,0x5c,0x57,0x51,0x4f,0x4d,0x42,0x3f,0x49,
+0x4b,0x51,0x57,0x56,0x54,0x52,0x52,0x50,0x57,0x61,0x66,0x62,0x57,0x49,0x46,0x4f,
+0x62,0x6a,0x65,0x65,0x74,0x79,0x6f,0x69,0x60,0x5b,0x55,0x52,0x4f,0x4e,0x51,0x55,
+0x50,0x4d,0x49,0x49,0x4d,0x56,0x63,0x6d,0x6c,0x6b,0x67,0x61,0x64,0x6c,0x70,0x70,
+0x6e,0x6b,0x62,0x53,0x4a,0x4a,0x53,0x5b,0x6a,0x6e,0x6e,0x6b,0x6b,0x6c,0x6c,0x69,
+0x69,0x73,0x7b,0x79,0x6e,0x5f,0x53,0x4c,0x4c,0x47,0x46,0x4a,0x48,0x42,0x44,0x4c,
+0x4e,0x5c,0x63,0x62,0x66,0x68,0x6a,0x70,0x78,0x6e,0x5e,0x58,0x5b,0x5a,0x5c,0x64,
+0x5e,0x60,0x5e,0x54,0x53,0x4c,0x5d,0x60,0x68,0x65,0x64,0x67,0x67,0x66,0x69,0x6d,
+0x6f,0x6f,0x70,0x71,0x72,0x74,0x75,0x76,0x76,0x74,0x72,0x70,0x70,0x71,0x72,0x73,
+0x77,0x78,0x7b,0x7e,0x81,0x82,0x83,0x83,0x83,0x84,0x85,0x86,0x87,0x87,0x87,0x87,
+0x86,0x86,0x86,0x87,0x88,0x89,0x88,0x87,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,
+0x89,0x8a,0x8b,0x8d,0x8e,0x8f,0x90,0x90,0x90,0x91,0x92,0x93,0x95,0x96,0x97,0x97,
+0x98,0x99,0x99,0x98,0x97,0x97,0x98,0x99,0x98,0x99,0x99,0x9a,0x9b,0x9b,0x9b,0x9c,
+0x9b,0x9b,0x9c,0x9c,0x9d,0x9d,0x9e,0x9e,0x9c,0x9c,0x9c,0x9c,0x9c,0x9d,0x9d,0x9d,
+0xa2,0xa0,0x9d,0x9c,0x9d,0x9d,0x9d,0x9d,0x9b,0x9c,0x9c,0x9b,0x9a,0x99,0x99,0x9a,
+0x9c,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,0x92,0x93,0x94,0x94,0x94,0x92,0x8f,0x8e,
+0x8e,0x8e,0x8e,0x8e,0x8c,0x89,0x86,0x84,0x80,0x7f,0x7d,0x7b,0x79,0x79,0x79,0x79,
+0x78,0x75,0x71,0x6e,0x6d,0x6c,0x6b,0x6b,0x6a,0x69,0x66,0x64,0x62,0x5f,0x5b,0x59,
+0x5d,0x59,0x53,0x51,0x50,0x4e,0x4a,0x47,0x51,0x57,0x5a,0x5f,0x67,0x63,0x5a,0x58,
+0x51,0x4f,0x4a,0x46,0x46,0x46,0x41,0x3a,0x3a,0x38,0x37,0x38,0x3a,0x3d,0x3e,0x3d,
+0x3c,0x35,0x32,0x32,0x30,0x35,0x3c,0x3e,0x41,0x3b,0x36,0x35,0x34,0x36,0x3c,0x42,
+0x51,0x53,0x53,0x4d,0x42,0x3e,0x47,0x54,0x64,0x70,0x68,0x56,0x52,0x4c,0x40,0x3c,
+0x34,0x2a,0x22,0x23,0x26,0x27,0x28,0x2b,0x31,0x42,0x4f,0x57,0x5a,0x52,0x45,0x3f,
+0x4d,0x48,0x45,0x4a,0x51,0x55,0x53,0x4f,0x5c,0x54,0x4e,0x4f,0x52,0x52,0x50,0x4e,
+0x52,0x56,0x58,0x53,0x49,0x47,0x56,0x69,0x7a,0x66,0x4b,0x40,0x41,0x41,0x44,0x4d,
+0x45,0x33,0x30,0x35,0x3d,0x53,0x59,0x43,0x37,0x3a,0x3e,0x39,0x2b,0x2b,0x38,0x40,
+0x45,0x3e,0x3e,0x42,0x44,0x45,0x3e,0x30,0x27,0x2a,0x27,0x2a,0x36,0x3c,0x38,0x37,
+0x36,0x3e,0x40,0x38,0x30,0x31,0x38,0x3d,0x3c,0x3b,0x30,0x3a,0x34,0x34,0x2e,0x3c,
+0x42,0x4b,0x51,0x4f,0x4d,0x4c,0x46,0x3e,0x32,0x29,0x33,0x3f,0x42,0x50,0x55,0x42,
+0x39,0x28,0x1f,0x2c,0x39,0x36,0x2a,0x21,0x30,0x38,0x42,0x4d,0x58,0x5e,0x59,0x50,
+0x4f,0x52,0x51,0x51,0x4e,0x44,0x41,0x49,0x41,0x44,0x40,0x3a,0x37,0x30,0x2c,0x2f,
+0x2b,0x2e,0x31,0x35,0x38,0x3a,0x3c,0x3e,0x3f,0x37,0x30,0x32,0x37,0x3b,0x3c,0x3d,
+0x41,0x46,0x46,0x3d,0x33,0x2f,0x32,0x36,0x3f,0x42,0x41,0x3c,0x3b,0x3f,0x45,0x48,
+0x43,0x3d,0x33,0x2d,0x2e,0x31,0x2e,0x2a,0x2b,0x2c,0x2d,0x2e,0x2d,0x2e,0x35,0x3d,
+0x3f,0x3a,0x36,0x3a,0x44,0x4b,0x49,0x43,0x3a,0x39,0x37,0x35,0x34,0x35,0x38,0x3a,
+0x34,0x36,0x3a,0x3f,0x3f,0x3a,0x35,0x34,0x36,0x37,0x3b,0x41,0x42,0x3d,0x3b,0x3b,
+0x3b,0x3d,0x3f,0x42,0x43,0x44,0x44,0x44,0x46,0x46,0x48,0x4a,0x4c,0x4a,0x45,0x41,
+0x45,0x44,0x42,0x3f,0x3c,0x3b,0x3d,0x3f,0x4a,0x46,0x40,0x3b,0x39,0x37,0x35,0x34,
+0x35,0x34,0x34,0x34,0x35,0x38,0x3b,0x3d,0x3d,0x3f,0x43,0x4a,0x51,0x56,0x56,0x54,
+0x4a,0x4b,0x4e,0x52,0x56,0x5a,0x5c,0x5c,0x68,0x69,0x6d,0x70,0x6f,0x68,0x5f,0x58,
+0x5b,0x56,0x57,0x58,0x55,0x57,0x5a,0x56,0x58,0x54,0x4d,0x4b,0x4b,0x46,0x46,0x51,
+0x57,0x55,0x50,0x4c,0x4b,0x4d,0x4b,0x48,0x4d,0x57,0x65,0x67,0x5b,0x4d,0x49,0x4c,
+0x56,0x5f,0x66,0x6f,0x7d,0x80,0x74,0x68,0x5b,0x59,0x57,0x52,0x4b,0x46,0x49,0x4e,
+0x4f,0x4f,0x4f,0x4d,0x4b,0x4d,0x54,0x5b,0x58,0x5f,0x62,0x60,0x62,0x6b,0x70,0x6f,
+0x79,0x6e,0x60,0x55,0x52,0x51,0x4f,0x4c,0x56,0x5d,0x63,0x64,0x65,0x69,0x6c,0x6c,
+0x70,0x71,0x6d,0x61,0x55,0x54,0x5f,0x6a,0x61,0x57,0x4f,0x4e,0x51,0x57,0x65,0x74,
+0x6f,0x75,0x76,0x7a,0x84,0x86,0x7e,0x7a,0x76,0x70,0x64,0x5f,0x65,0x69,0x6d,0x75,
+0x74,0x7a,0x73,0x5e,0x4d,0x59,0x60,0x5f,0x64,0x63,0x65,0x68,0x69,0x68,0x6a,0x6e,
+0x70,0x71,0x72,0x73,0x75,0x76,0x76,0x77,0x76,0x73,0x70,0x6e,0x6e,0x70,0x72,0x73,
+0x75,0x77,0x7a,0x7d,0x80,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x84,0x86,0x86,
+0x85,0x85,0x85,0x86,0x87,0x87,0x87,0x85,0x87,0x87,0x88,0x89,0x89,0x8a,0x8a,0x8a,
+0x88,0x88,0x8a,0x8b,0x8d,0x8e,0x8e,0x8e,0x8f,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,
+0x96,0x96,0x97,0x96,0x95,0x95,0x96,0x97,0x96,0x96,0x97,0x97,0x98,0x99,0x99,0x9a,
+0x9b,0x9b,0x9b,0x9c,0x9c,0x9c,0x9d,0x9d,0x9c,0x9c,0x9c,0x9d,0x9d,0x9d,0x9d,0x9e,
+0xa1,0x9f,0x9c,0x9b,0x9b,0x9b,0x9b,0x9b,0x99,0x99,0x9a,0x99,0x97,0x96,0x97,0x97,
+0x9a,0x9a,0x9a,0x99,0x98,0x97,0x96,0x95,0x94,0x94,0x94,0x94,0x93,0x92,0x90,0x90,
+0x8d,0x8d,0x8d,0x8d,0x8b,0x89,0x86,0x84,0x7f,0x7e,0x7e,0x7c,0x7b,0x79,0x78,0x77,
+0x76,0x73,0x70,0x6e,0x6d,0x6d,0x6c,0x6c,0x6b,0x69,0x66,0x64,0x62,0x60,0x5d,0x5b,
+0x5a,0x57,0x53,0x51,0x4f,0x4d,0x48,0x44,0x55,0x5a,0x59,0x5a,0x5f,0x5c,0x57,0x58,
+0x55,0x50,0x4b,0x4b,0x4c,0x4a,0x46,0x43,0x38,0x39,0x3a,0x3b,0x3b,0x38,0x35,0x32,
+0x35,0x2e,0x2d,0x2f,0x30,0x36,0x3c,0x3c,0x38,0x39,0x3a,0x3b,0x3c,0x3f,0x43,0x45,
+0x4c,0x4f,0x53,0x54,0x4c,0x45,0x4b,0x57,0x67,0x6e,0x6d,0x64,0x5b,0x51,0x4a,0x4b,
+0x35,0x2a,0x20,0x1e,0x1e,0x1e,0x24,0x2d,0x44,0x4f,0x54,0x54,0x55,0x4f,0x48,0x48,
+0x4a,0x45,0x46,0x50,0x56,0x53,0x4c,0x48,0x44,0x4b,0x4e,0x4b,0x4e,0x58,0x5c,0x59,
+0x59,0x50,0x4b,0x4e,0x4e,0x4e,0x57,0x64,0x66,0x58,0x4c,0x47,0x42,0x3e,0x41,0x45,
+0x3e,0x32,0x33,0x37,0x3a,0x4b,0x50,0x3d,0x2f,0x37,0x3f,0x36,0x23,0x23,0x39,0x4a,
+0x44,0x3e,0x3f,0x42,0x42,0x43,0x3f,0x35,0x2e,0x30,0x2c,0x2c,0x36,0x3b,0x39,0x38,
+0x39,0x3e,0x3f,0x39,0x34,0x35,0x3a,0x3e,0x3d,0x3d,0x32,0x37,0x31,0x34,0x31,0x3e,
+0x4d,0x4a,0x4b,0x53,0x5a,0x57,0x4a,0x3f,0x36,0x28,0x2c,0x38,0x3f,0x4e,0x53,0x43,
+0x36,0x28,0x23,0x2e,0x38,0x35,0x2c,0x27,0x2b,0x33,0x3a,0x41,0x4d,0x56,0x52,0x46,
+0x4e,0x53,0x55,0x55,0x51,0x47,0x43,0x4b,0x4d,0x53,0x4c,0x3e,0x36,0x31,0x2d,0x2f,
+0x2b,0x2c,0x2e,0x31,0x36,0x3f,0x48,0x4f,0x49,0x3d,0x31,0x30,0x35,0x38,0x38,0x36,
+0x3e,0x43,0x42,0x37,0x2c,0x28,0x2c,0x31,0x3a,0x3c,0x3b,0x38,0x37,0x3d,0x44,0x49,
+0x4a,0x3f,0x32,0x2b,0x2e,0x33,0x32,0x2d,0x23,0x24,0x27,0x2a,0x2a,0x2b,0x30,0x37,
+0x44,0x44,0x3d,0x35,0x35,0x3c,0x3c,0x35,0x31,0x32,0x32,0x2e,0x2c,0x2f,0x38,0x40,
+0x3b,0x3d,0x41,0x45,0x43,0x3c,0x35,0x33,0x34,0x36,0x3b,0x40,0x41,0x3e,0x3a,0x39,
+0x3a,0x3b,0x3d,0x3e,0x3f,0x40,0x41,0x41,0x42,0x41,0x41,0x43,0x45,0x46,0x43,0x41,
+0x48,0x44,0x3f,0x3d,0x3c,0x3c,0x3a,0x38,0x42,0x42,0x40,0x3c,0x38,0x36,0x38,0x3b,
+0x35,0x35,0x36,0x36,0x36,0x36,0x36,0x36,0x3b,0x3f,0x46,0x4d,0x53,0x56,0x57,0x57,
+0x51,0x4b,0x46,0x47,0x4e,0x55,0x59,0x59,0x63,0x62,0x61,0x5f,0x5e,0x5e,0x5d,0x5c,
+0x5e,0x58,0x57,0x57,0x54,0x56,0x57,0x53,0x57,0x56,0x50,0x4e,0x4e,0x49,0x48,0x51,
+0x5a,0x52,0x4a,0x47,0x4c,0x51,0x4e,0x47,0x44,0x48,0x58,0x60,0x54,0x4e,0x51,0x4f,
+0x59,0x5f,0x6c,0x74,0x76,0x76,0x6c,0x5d,0x52,0x56,0x5b,0x59,0x51,0x4a,0x4b,0x51,
+0x4e,0x52,0x54,0x50,0x49,0x47,0x4b,0x51,0x59,0x63,0x67,0x60,0x5f,0x66,0x69,0x67,
+0x67,0x5e,0x54,0x52,0x56,0x59,0x58,0x55,0x59,0x5e,0x61,0x5e,0x5b,0x5e,0x65,0x6a,
+0x65,0x60,0x56,0x4c,0x4a,0x55,0x69,0x79,0x68,0x65,0x64,0x66,0x63,0x5c,0x5a,0x5b,
+0x60,0x67,0x68,0x67,0x6c,0x6e,0x6f,0x72,0x74,0x75,0x6e,0x69,0x70,0x78,0x7d,0x84,
+0x88,0x7f,0x79,0x68,0x50,0x5e,0x58,0x63,0x61,0x62,0x66,0x6a,0x6a,0x6a,0x6b,0x6f,
+0x6d,0x6e,0x71,0x73,0x74,0x75,0x75,0x75,0x76,0x73,0x6f,0x6c,0x6d,0x6f,0x71,0x72,
+0x73,0x75,0x79,0x7c,0x7f,0x81,0x82,0x82,0x84,0x83,0x81,0x80,0x80,0x82,0x84,0x85,
+0x84,0x84,0x83,0x84,0x85,0x86,0x85,0x84,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x89,
+0x86,0x87,0x88,0x89,0x8b,0x8c,0x8c,0x8c,0x8c,0x8c,0x8d,0x8e,0x8f,0x8f,0x90,0x90,
+0x91,0x92,0x93,0x92,0x92,0x92,0x93,0x95,0x94,0x94,0x94,0x94,0x95,0x96,0x97,0x98,
+0x9a,0x9a,0x9a,0x9a,0x9b,0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,0x9b,0x9c,0x9d,0x9d,0x9d,
+0x9f,0x9d,0x9b,0x9a,0x99,0x99,0x98,0x98,0x97,0x97,0x98,0x97,0x96,0x95,0x95,0x96,
+0x97,0x98,0x97,0x97,0x96,0x96,0x95,0x94,0x95,0x94,0x92,0x91,0x90,0x90,0x90,0x90,
+0x8c,0x8c,0x8c,0x8c,0x8a,0x88,0x86,0x84,0x7e,0x7f,0x7e,0x7e,0x7c,0x79,0x76,0x74,
+0x74,0x72,0x6f,0x6d,0x6d,0x6d,0x6c,0x6c,0x6a,0x68,0x65,0x63,0x62,0x60,0x5e,0x5d,
+0x59,0x56,0x54,0x52,0x50,0x4c,0x47,0x42,0x56,0x59,0x57,0x56,0x58,0x55,0x50,0x51,
+0x4a,0x47,0x46,0x4a,0x4d,0x4b,0x48,0x46,0x3d,0x3b,0x37,0x33,0x30,0x30,0x33,0x35,
+0x3a,0x34,0x34,0x35,0x34,0x38,0x3b,0x37,0x38,0x3d,0x3f,0x3d,0x3f,0x45,0x48,0x47,
+0x49,0x4a,0x52,0x5a,0x56,0x4d,0x4e,0x58,0x59,0x55,0x5d,0x6c,0x6e,0x63,0x52,0x42,
+0x3b,0x2f,0x26,0x25,0x24,0x24,0x2f,0x3e,0x58,0x62,0x63,0x5c,0x54,0x48,0x3d,0x3b,
+0x46,0x44,0x4a,0x56,0x5c,0x56,0x4b,0x45,0x39,0x3e,0x41,0x40,0x42,0x48,0x4b,0x4a,
+0x57,0x4d,0x4b,0x54,0x57,0x51,0x4d,0x50,0x58,0x4b,0x48,0x44,0x38,0x39,0x43,0x47,
+0x37,0x32,0x35,0x37,0x38,0x44,0x48,0x38,0x30,0x35,0x3b,0x32,0x21,0x23,0x3a,0x4b,
+0x3f,0x3c,0x40,0x44,0x42,0x41,0x3d,0x35,0x30,0x32,0x2d,0x2c,0x34,0x3a,0x3a,0x3d,
+0x3b,0x3c,0x3b,0x37,0x35,0x37,0x3a,0x3b,0x3f,0x3e,0x34,0x34,0x2e,0x2f,0x30,0x3f,
+0x4d,0x43,0x41,0x4d,0x55,0x51,0x49,0x44,0x32,0x26,0x2e,0x41,0x4c,0x52,0x4c,0x39,
+0x2b,0x23,0x21,0x2b,0x31,0x2e,0x29,0x28,0x2a,0x35,0x3a,0x3b,0x44,0x51,0x51,0x46,
+0x49,0x4e,0x4f,0x4e,0x4a,0x40,0x3e,0x48,0x4c,0x56,0x50,0x3f,0x36,0x31,0x2c,0x2b,
+0x30,0x2f,0x2d,0x2d,0x31,0x3b,0x48,0x52,0x48,0x3d,0x33,0x32,0x36,0x38,0x38,0x37,
+0x3a,0x39,0x35,0x2f,0x2d,0x2e,0x30,0x2f,0x35,0x34,0x32,0x31,0x34,0x38,0x3d,0x40,
+0x44,0x3b,0x2e,0x27,0x29,0x2f,0x2f,0x2c,0x24,0x26,0x2a,0x2d,0x2d,0x2b,0x2c,0x30,
+0x39,0x39,0x36,0x30,0x2e,0x2f,0x2c,0x27,0x24,0x28,0x2b,0x2c,0x2b,0x2e,0x36,0x3d,
+0x39,0x3a,0x3d,0x40,0x3e,0x37,0x32,0x30,0x32,0x33,0x37,0x3c,0x3e,0x3e,0x3c,0x3b,
+0x3b,0x3a,0x3a,0x3a,0x39,0x39,0x39,0x38,0x37,0x38,0x3c,0x42,0x49,0x4e,0x4f,0x4f,
+0x4a,0x45,0x3f,0x3b,0x3a,0x3a,0x38,0x37,0x35,0x38,0x3b,0x3b,0x39,0x37,0x37,0x39,
+0x37,0x36,0x36,0x36,0x36,0x35,0x34,0x33,0x39,0x3e,0x46,0x4c,0x4f,0x51,0x52,0x53,
+0x57,0x55,0x56,0x5c,0x65,0x6a,0x69,0x66,0x5d,0x5c,0x58,0x53,0x50,0x52,0x53,0x54,
+0x59,0x55,0x57,0x59,0x55,0x56,0x57,0x53,0x50,0x54,0x52,0x50,0x50,0x4a,0x45,0x48,
+0x4a,0x46,0x43,0x47,0x51,0x58,0x54,0x4b,0x44,0x3d,0x4a,0x55,0x51,0x5a,0x68,0x65,
+0x62,0x63,0x6c,0x6b,0x5f,0x5f,0x62,0x5a,0x55,0x5a,0x5f,0x60,0x5a,0x53,0x52,0x56,
+0x57,0x5d,0x5e,0x57,0x4d,0x48,0x4a,0x4d,0x5f,0x65,0x62,0x57,0x52,0x59,0x5c,0x59,
+0x4f,0x50,0x52,0x54,0x56,0x5a,0x62,0x69,0x61,0x5f,0x5b,0x57,0x59,0x64,0x72,0x7d,
+0x80,0x76,0x6c,0x6a,0x6d,0x6f,0x6e,0x6c,0x74,0x6e,0x66,0x5d,0x55,0x50,0x4f,0x50,
+0x4c,0x56,0x5b,0x5d,0x61,0x63,0x65,0x6d,0x6f,0x79,0x7c,0x7c,0x81,0x82,0x7e,0x7f,
+0x9d,0xa3,0xab,0x7a,0x55,0x5d,0x5d,0x6a,0x62,0x64,0x67,0x69,0x6a,0x6a,0x6d,0x6f,
+0x6a,0x6c,0x70,0x73,0x75,0x76,0x75,0x74,0x77,0x73,0x6e,0x6b,0x6c,0x6f,0x72,0x72,
+0x73,0x75,0x78,0x7c,0x7f,0x80,0x81,0x81,0x83,0x83,0x81,0x81,0x81,0x82,0x83,0x84,
+0x83,0x83,0x83,0x83,0x84,0x85,0x84,0x82,0x82,0x83,0x84,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x87,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8b,0x8c,0x8c,0x8d,0x8d,
+0x8e,0x8f,0x90,0x8f,0x8f,0x90,0x91,0x92,0x93,0x92,0x92,0x92,0x93,0x95,0x96,0x97,
+0x99,0x99,0x99,0x99,0x99,0x98,0x98,0x98,0x97,0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9c,
+0x9e,0x9c,0x9a,0x98,0x98,0x98,0x96,0x95,0x96,0x97,0x98,0x97,0x96,0x95,0x96,0x96,
+0x96,0x96,0x96,0x96,0x95,0x95,0x94,0x93,0x93,0x92,0x8f,0x8d,0x8c,0x8d,0x8e,0x8f,
+0x8c,0x8c,0x8c,0x8b,0x8a,0x88,0x86,0x84,0x7f,0x7f,0x7e,0x7c,0x7a,0x77,0x75,0x74,
+0x74,0x71,0x6f,0x6d,0x6c,0x6c,0x6b,0x6a,0x67,0x65,0x62,0x61,0x60,0x5f,0x5e,0x5c,
+0x5b,0x59,0x56,0x53,0x50,0x4d,0x48,0x45,0x56,0x58,0x56,0x56,0x5a,0x56,0x4d,0x4b,
+0x44,0x46,0x46,0x45,0x47,0x48,0x43,0x3c,0x3e,0x3a,0x34,0x2f,0x2c,0x30,0x37,0x3d,
+0x3d,0x3b,0x3d,0x3c,0x36,0x36,0x39,0x35,0x3e,0x42,0x40,0x38,0x37,0x40,0x46,0x45,
+0x3a,0x38,0x42,0x54,0x5c,0x59,0x5c,0x65,0x5e,0x51,0x58,0x6b,0x75,0x78,0x6f,0x5d,
+0x49,0x3c,0x30,0x2e,0x2a,0x28,0x32,0x40,0x59,0x61,0x5f,0x54,0x4a,0x3c,0x30,0x2e,
+0x40,0x45,0x4b,0x52,0x58,0x58,0x4e,0x43,0x32,0x29,0x29,0x36,0x3f,0x3e,0x41,0x48,
+0x4e,0x44,0x3b,0x37,0x39,0x3e,0x47,0x4f,0x4f,0x43,0x46,0x46,0x38,0x3b,0x49,0x48,
+0x38,0x35,0x38,0x39,0x3d,0x48,0x4a,0x3c,0x38,0x35,0x34,0x30,0x29,0x2f,0x3c,0x42,
+0x41,0x3d,0x41,0x48,0x47,0x44,0x3f,0x35,0x2f,0x31,0x2b,0x29,0x31,0x39,0x3d,0x43,
+0x40,0x3e,0x3a,0x38,0x38,0x39,0x39,0x38,0x41,0x3c,0x35,0x36,0x31,0x28,0x2c,0x41,
+0x53,0x4e,0x49,0x46,0x3f,0x37,0x35,0x37,0x2e,0x28,0x34,0x49,0x53,0x52,0x46,0x34,
+0x1d,0x19,0x1d,0x2a,0x34,0x36,0x34,0x35,0x3e,0x4b,0x4f,0x4a,0x4f,0x5b,0x59,0x4b,
+0x51,0x53,0x50,0x4d,0x48,0x3f,0x3e,0x48,0x4d,0x57,0x53,0x44,0x3d,0x3b,0x38,0x39,
+0x3f,0x3d,0x3b,0x39,0x3a,0x3e,0x46,0x4b,0x3d,0x38,0x34,0x35,0x38,0x39,0x3a,0x3d,
+0x3a,0x39,0x35,0x31,0x32,0x35,0x36,0x34,0x36,0x32,0x2f,0x33,0x38,0x3d,0x3d,0x3d,
+0x3b,0x36,0x2d,0x25,0x23,0x26,0x27,0x26,0x2a,0x2d,0x32,0x36,0x34,0x2e,0x2c,0x2c,
+0x30,0x2b,0x29,0x2e,0x30,0x2d,0x2a,0x2a,0x21,0x24,0x27,0x29,0x2b,0x2e,0x32,0x34,
+0x2f,0x2e,0x2f,0x32,0x32,0x2e,0x2d,0x2d,0x32,0x33,0x34,0x36,0x39,0x3b,0x3b,0x3a,
+0x38,0x38,0x37,0x36,0x35,0x34,0x33,0x33,0x32,0x34,0x39,0x40,0x48,0x4c,0x4c,0x4b,
+0x49,0x45,0x3f,0x39,0x35,0x34,0x35,0x36,0x31,0x32,0x34,0x36,0x37,0x36,0x35,0x33,
+0x39,0x37,0x35,0x34,0x35,0x36,0x36,0x35,0x35,0x39,0x40,0x44,0x45,0x46,0x48,0x4a,
+0x4b,0x51,0x5d,0x68,0x70,0x6f,0x6a,0x65,0x66,0x6b,0x6d,0x6a,0x65,0x60,0x59,0x52,
+0x53,0x53,0x58,0x5a,0x54,0x54,0x56,0x54,0x4c,0x51,0x4f,0x4b,0x4b,0x46,0x41,0x42,
+0x3d,0x3d,0x3d,0x42,0x4b,0x52,0x4f,0x49,0x49,0x3e,0x49,0x58,0x5c,0x69,0x77,0x71,
+0x5a,0x5b,0x63,0x5e,0x4f,0x53,0x64,0x69,0x65,0x62,0x5e,0x5c,0x58,0x56,0x57,0x5a,
+0x5d,0x65,0x68,0x60,0x55,0x4b,0x46,0x42,0x4f,0x50,0x4c,0x44,0x45,0x4c,0x4f,0x4d,
+0x4f,0x54,0x5b,0x5f,0x5c,0x5a,0x60,0x69,0x6c,0x64,0x5a,0x55,0x59,0x64,0x71,0x7a,
+0x86,0x7f,0x7a,0x7e,0x81,0x7c,0x72,0x6b,0x73,0x6d,0x61,0x55,0x50,0x55,0x5f,0x65,
+0x60,0x66,0x6b,0x76,0x83,0x83,0x7a,0x78,0x79,0x7d,0x78,0x71,0x71,0x73,0x77,0x7f,
+0xab,0xdc,0xeb,0x76,0x46,0x53,0x63,0x62,0x66,0x66,0x67,0x67,0x68,0x6b,0x6e,0x6f,
+0x6b,0x6d,0x71,0x76,0x78,0x79,0x79,0x78,0x78,0x73,0x6d,0x6b,0x6d,0x70,0x72,0x72,
+0x73,0x75,0x78,0x7c,0x7e,0x80,0x81,0x81,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x83,0x82,0x83,0x84,0x84,0x83,0x81,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x89,0x88,0x88,0x89,0x89,0x8a,0x8b,0x8b,0x8b,
+0x8c,0x8d,0x8e,0x8e,0x8d,0x8e,0x8f,0x91,0x91,0x91,0x91,0x92,0x93,0x94,0x96,0x97,
+0x97,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9c,
+0x9c,0x9b,0x99,0x98,0x97,0x97,0x95,0x94,0x95,0x96,0x96,0x96,0x95,0x94,0x95,0x96,
+0x95,0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x92,0x90,0x8e,0x8c,0x8b,0x8c,0x8d,0x8e,
+0x8c,0x8b,0x8b,0x8a,0x88,0x86,0x85,0x84,0x80,0x7f,0x7c,0x7a,0x77,0x75,0x74,0x74,
+0x74,0x72,0x6f,0x6d,0x6b,0x6a,0x69,0x68,0x66,0x64,0x62,0x60,0x60,0x5f,0x5d,0x5c,
+0x5d,0x5a,0x56,0x51,0x4e,0x4c,0x4a,0x49,0x58,0x57,0x52,0x52,0x5a,0x58,0x4f,0x4c,
+0x4f,0x53,0x4d,0x40,0x3d,0x43,0x41,0x37,0x37,0x38,0x39,0x38,0x36,0x36,0x39,0x3b,
+0x36,0x3a,0x3f,0x3c,0x33,0x34,0x39,0x37,0x3d,0x42,0x3f,0x36,0x34,0x3d,0x44,0x44,
+0x46,0x3f,0x43,0x52,0x5b,0x5a,0x5a,0x5f,0x58,0x58,0x64,0x6d,0x6e,0x78,0x7e,0x76,
+0x6b,0x5a,0x48,0x3c,0x34,0x2e,0x32,0x39,0x46,0x4b,0x45,0x3a,0x36,0x33,0x32,0x37,
+0x3c,0x45,0x48,0x45,0x4a,0x54,0x4f,0x40,0x3a,0x34,0x34,0x3b,0x3e,0x3c,0x41,0x4a,
+0x39,0x46,0x55,0x60,0x67,0x68,0x5f,0x54,0x47,0x40,0x4b,0x51,0x45,0x45,0x4b,0x43,
+0x3d,0x39,0x37,0x3a,0x46,0x54,0x53,0x45,0x3a,0x36,0x37,0x38,0x35,0x39,0x41,0x41,
+0x4a,0x41,0x41,0x48,0x4a,0x49,0x44,0x3b,0x32,0x33,0x2c,0x28,0x31,0x3a,0x40,0x47,
+0x47,0x43,0x40,0x3f,0x3e,0x3d,0x3a,0x38,0x3f,0x35,0x35,0x3a,0x36,0x22,0x29,0x46,
+0x42,0x45,0x44,0x3a,0x30,0x2d,0x2b,0x29,0x2c,0x2b,0x35,0x43,0x4c,0x4c,0x45,0x3c,
+0x2e,0x28,0x29,0x33,0x3b,0x3c,0x37,0x34,0x3d,0x44,0x44,0x43,0x4c,0x53,0x42,0x26,
+0x56,0x56,0x52,0x4e,0x4a,0x3f,0x3b,0x42,0x4c,0x53,0x4e,0x44,0x42,0x43,0x45,0x4a,
+0x4c,0x4b,0x4a,0x49,0x47,0x45,0x43,0x42,0x3a,0x39,0x38,0x37,0x35,0x32,0x33,0x37,
+0x36,0x3a,0x3b,0x37,0x32,0x32,0x34,0x36,0x31,0x2d,0x2b,0x31,0x38,0x3b,0x3b,0x3a,
+0x3a,0x39,0x33,0x2a,0x24,0x23,0x24,0x25,0x23,0x26,0x2d,0x34,0x35,0x32,0x30,0x30,
+0x36,0x2c,0x29,0x2e,0x32,0x2e,0x2b,0x2d,0x28,0x27,0x26,0x27,0x29,0x2b,0x2d,0x2e,
+0x29,0x28,0x28,0x2b,0x2c,0x2c,0x2e,0x30,0x31,0x31,0x2f,0x2f,0x31,0x35,0x36,0x33,
+0x33,0x33,0x34,0x34,0x34,0x33,0x33,0x32,0x34,0x34,0x36,0x3a,0x3c,0x3b,0x37,0x34,
+0x3d,0x3d,0x3c,0x38,0x34,0x35,0x3a,0x3f,0x3b,0x37,0x34,0x34,0x36,0x37,0x36,0x34,
+0x39,0x36,0x33,0x32,0x34,0x37,0x37,0x37,0x34,0x37,0x3b,0x3d,0x3f,0x41,0x44,0x47,
+0x42,0x46,0x4b,0x51,0x55,0x58,0x5a,0x5c,0x6c,0x72,0x75,0x73,0x71,0x6e,0x67,0x5e,
+0x50,0x4e,0x52,0x54,0x4e,0x4e,0x51,0x4e,0x57,0x5a,0x52,0x46,0x43,0x40,0x3d,0x3d,
+0x40,0x40,0x3e,0x3e,0x41,0x46,0x47,0x44,0x4c,0x46,0x50,0x5c,0x5e,0x5f,0x5f,0x55,
+0x4e,0x54,0x5c,0x59,0x4e,0x51,0x62,0x6f,0x6a,0x60,0x55,0x51,0x53,0x58,0x5f,0x64,
+0x65,0x71,0x7b,0x7c,0x76,0x6c,0x5d,0x51,0x43,0x41,0x3f,0x40,0x44,0x49,0x4c,0x4e,
+0x53,0x54,0x5a,0x62,0x64,0x62,0x62,0x66,0x6d,0x63,0x5a,0x56,0x56,0x58,0x5c,0x5f,
+0x62,0x5d,0x5c,0x5e,0x5f,0x61,0x68,0x70,0x70,0x73,0x6f,0x62,0x58,0x57,0x58,0x58,
+0x5f,0x64,0x67,0x6c,0x72,0x71,0x71,0x77,0x82,0x88,0x89,0x86,0x82,0x79,0x75,0x7c,
+0xb1,0xdd,0xd7,0x5b,0x47,0x52,0x66,0x61,0x69,0x68,0x66,0x65,0x69,0x6d,0x6e,0x6d,
+0x6c,0x6e,0x72,0x75,0x78,0x79,0x78,0x78,0x77,0x72,0x6d,0x6b,0x6e,0x71,0x71,0x71,
+0x74,0x75,0x78,0x7b,0x7e,0x7f,0x80,0x80,0x81,0x82,0x83,0x84,0x84,0x84,0x83,0x82,
+0x83,0x82,0x81,0x82,0x83,0x83,0x81,0x80,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x81,
+0x83,0x83,0x84,0x86,0x86,0x87,0x87,0x87,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,0x8b,
+0x8c,0x8c,0x8d,0x8d,0x8c,0x8c,0x8e,0x8f,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9b,
+0x9a,0x99,0x97,0x96,0x96,0x95,0x94,0x93,0x92,0x93,0x94,0x93,0x92,0x92,0x93,0x94,
+0x94,0x94,0x94,0x94,0x93,0x92,0x91,0x91,0x91,0x90,0x8e,0x8d,0x8c,0x8c,0x8c,0x8c,
+0x8b,0x8a,0x89,0x88,0x86,0x84,0x82,0x81,0x7f,0x7e,0x7b,0x77,0x75,0x74,0x73,0x73,
+0x73,0x71,0x6e,0x6c,0x6b,0x69,0x67,0x66,0x65,0x64,0x63,0x62,0x62,0x60,0x5e,0x5c,
+0x5b,0x58,0x54,0x4f,0x4c,0x4a,0x4a,0x4a,0x56,0x53,0x4a,0x48,0x50,0x53,0x4f,0x4f,
+0x54,0x55,0x49,0x38,0x35,0x41,0x45,0x40,0x3d,0x3d,0x3c,0x3a,0x39,0x39,0x3b,0x3c,
+0x3d,0x41,0x46,0x40,0x36,0x37,0x3b,0x39,0x3b,0x41,0x42,0x3f,0x3e,0x43,0x47,0x48,
+0x5b,0x57,0x57,0x5c,0x5e,0x5b,0x59,0x5b,0x61,0x5d,0x5a,0x57,0x5b,0x6a,0x75,0x74,
+0x7b,0x6e,0x5c,0x4c,0x41,0x3c,0x3b,0x3b,0x37,0x3c,0x3a,0x35,0x37,0x37,0x37,0x3b,
+0x3c,0x44,0x43,0x3b,0x40,0x4e,0x4d,0x41,0x3e,0x4a,0x4d,0x40,0x38,0x3c,0x42,0x44,
+0x46,0x53,0x65,0x76,0x82,0x81,0x70,0x5d,0x4b,0x47,0x4d,0x50,0x48,0x49,0x4d,0x48,
+0x3d,0x38,0x31,0x36,0x4a,0x5a,0x55,0x47,0x35,0x3a,0x43,0x42,0x39,0x3b,0x46,0x4d,
+0x4b,0x3d,0x3b,0x43,0x47,0x48,0x46,0x3f,0x3a,0x38,0x2e,0x29,0x31,0x39,0x3f,0x45,
+0x47,0x45,0x44,0x44,0x41,0x3c,0x38,0x37,0x37,0x2e,0x33,0x38,0x35,0x1c,0x27,0x45,
+0x4a,0x4f,0x51,0x4d,0x4c,0x4a,0x3f,0x31,0x26,0x30,0x3c,0x47,0x4e,0x4e,0x46,0x3f,
+0x35,0x2e,0x2a,0x31,0x39,0x3b,0x38,0x34,0x46,0x45,0x43,0x48,0x59,0x5d,0x41,0x1d,
+0x4d,0x4f,0x4e,0x4f,0x4d,0x41,0x38,0x3b,0x3c,0x40,0x3e,0x3b,0x3e,0x40,0x42,0x4a,
+0x49,0x46,0x43,0x41,0x3f,0x3d,0x38,0x35,0x3b,0x39,0x37,0x34,0x2f,0x2a,0x2a,0x2d,
+0x30,0x33,0x35,0x34,0x33,0x34,0x33,0x32,0x2d,0x29,0x28,0x2c,0x30,0x31,0x33,0x37,
+0x38,0x38,0x33,0x2b,0x25,0x24,0x26,0x27,0x21,0x23,0x28,0x2e,0x30,0x2f,0x2f,0x30,
+0x32,0x2e,0x2c,0x2c,0x2d,0x2c,0x2a,0x28,0x28,0x27,0x26,0x26,0x27,0x27,0x28,0x28,
+0x29,0x27,0x28,0x2b,0x2d,0x2e,0x31,0x34,0x2f,0x2f,0x2e,0x2d,0x30,0x35,0x34,0x30,
+0x2d,0x2e,0x30,0x32,0x32,0x32,0x32,0x31,0x33,0x32,0x32,0x33,0x34,0x31,0x2c,0x28,
+0x33,0x35,0x36,0x36,0x35,0x37,0x3b,0x3e,0x3a,0x37,0x35,0x35,0x37,0x38,0x37,0x35,
+0x37,0x34,0x31,0x32,0x35,0x37,0x37,0x36,0x37,0x38,0x39,0x3c,0x3f,0x44,0x49,0x4d,
+0x4c,0x4b,0x4b,0x4b,0x4e,0x53,0x58,0x5c,0x60,0x64,0x66,0x64,0x65,0x67,0x62,0x5a,
+0x4c,0x44,0x43,0x44,0x43,0x47,0x49,0x45,0x5a,0x5e,0x53,0x44,0x3f,0x3f,0x3c,0x3c,
+0x41,0x41,0x3f,0x3d,0x3f,0x43,0x45,0x45,0x4b,0x4c,0x50,0x54,0x51,0x49,0x41,0x3d,
+0x4a,0x55,0x5a,0x57,0x51,0x4d,0x53,0x5e,0x5a,0x51,0x49,0x49,0x4f,0x57,0x5e,0x64,
+0x68,0x75,0x84,0x8d,0x8f,0x88,0x76,0x65,0x47,0x41,0x40,0x44,0x47,0x49,0x51,0x5b,
+0x5d,0x58,0x57,0x5d,0x61,0x62,0x66,0x6d,0x63,0x5f,0x5c,0x5c,0x5c,0x5a,0x5a,0x5d,
+0x58,0x4f,0x47,0x44,0x44,0x49,0x59,0x6a,0x7b,0x7d,0x74,0x5e,0x4b,0x46,0x47,0x47,
+0x47,0x51,0x56,0x56,0x55,0x54,0x5e,0x6f,0x7f,0x91,0xa7,0xb5,0xac,0x8c,0x71,0x6b,
+0xab,0xc2,0xa0,0x4d,0x5a,0x5e,0x6a,0x71,0x69,0x68,0x65,0x65,0x6b,0x71,0x6f,0x6a,
+0x6e,0x70,0x72,0x75,0x76,0x77,0x76,0x76,0x76,0x71,0x6c,0x6b,0x6e,0x70,0x70,0x6f,
+0x73,0x75,0x78,0x7a,0x7c,0x7d,0x7e,0x7e,0x80,0x80,0x80,0x81,0x81,0x82,0x82,0x83,
+0x81,0x81,0x80,0x80,0x81,0x81,0x80,0x7e,0x7f,0x80,0x80,0x81,0x81,0x81,0x81,0x81,
+0x81,0x82,0x83,0x84,0x84,0x85,0x85,0x85,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8a,
+0x8b,0x8c,0x8c,0x8c,0x8b,0x8b,0x8c,0x8d,0x8a,0x8c,0x8d,0x8f,0x91,0x91,0x91,0x91,
+0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x95,0x93,0x94,0x95,0x95,0x96,0x97,0x98,0x98,
+0x97,0x96,0x95,0x95,0x95,0x94,0x93,0x91,0x90,0x91,0x92,0x92,0x91,0x91,0x91,0x92,
+0x93,0x93,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8e,0x8e,0x8e,0x8e,0x8d,0x8c,0x8b,0x8a,
+0x89,0x88,0x87,0x85,0x83,0x80,0x7e,0x7d,0x7c,0x7b,0x7a,0x77,0x75,0x73,0x72,0x71,
+0x71,0x70,0x6d,0x6c,0x6b,0x69,0x68,0x66,0x64,0x63,0x63,0x63,0x62,0x60,0x5d,0x5a,
+0x57,0x56,0x53,0x4f,0x4b,0x49,0x49,0x49,0x51,0x50,0x49,0x46,0x4c,0x4e,0x4f,0x53,
+0x4f,0x49,0x40,0x38,0x37,0x3c,0x42,0x45,0x44,0x41,0x3d,0x3a,0x3a,0x3b,0x3c,0x3d,
+0x44,0x45,0x46,0x3f,0x37,0x3a,0x3e,0x38,0x3c,0x40,0x44,0x44,0x42,0x41,0x43,0x46,
+0x51,0x59,0x62,0x65,0x64,0x64,0x66,0x69,0x79,0x65,0x4b,0x41,0x4c,0x5a,0x66,0x70,
+0x69,0x6c,0x68,0x5c,0x53,0x4f,0x48,0x41,0x3d,0x43,0x42,0x40,0x41,0x3d,0x35,0x33,
+0x36,0x37,0x36,0x35,0x3b,0x45,0x48,0x45,0x36,0x46,0x4b,0x40,0x3e,0x4a,0x4f,0x49,
+0x4e,0x5f,0x7e,0x9a,0x9d,0x85,0x66,0x53,0x51,0x50,0x4f,0x4a,0x45,0x46,0x4b,0x4e,
+0x3c,0x38,0x2f,0x34,0x4c,0x5c,0x54,0x45,0x38,0x3f,0x4a,0x46,0x39,0x3a,0x4b,0x56,
+0x3e,0x35,0x39,0x45,0x49,0x47,0x43,0x3c,0x3c,0x38,0x2b,0x25,0x2d,0x35,0x39,0x3e,
+0x43,0x44,0x46,0x46,0x41,0x39,0x35,0x36,0x37,0x35,0x3c,0x36,0x32,0x1c,0x29,0x41,
+0x54,0x52,0x51,0x50,0x4c,0x3e,0x28,0x15,0x28,0x3a,0x46,0x4c,0x52,0x51,0x45,0x39,
+0x26,0x20,0x1e,0x25,0x32,0x3d,0x43,0x45,0x45,0x44,0x40,0x3e,0x44,0x43,0x31,0x1b,
+0x44,0x48,0x4c,0x52,0x54,0x47,0x3a,0x3a,0x37,0x3c,0x3e,0x42,0x48,0x46,0x46,0x4d,
+0x4c,0x45,0x3c,0x38,0x39,0x3a,0x39,0x37,0x35,0x32,0x30,0x2f,0x2c,0x29,0x2a,0x2d,
+0x2d,0x2b,0x2a,0x2f,0x39,0x3e,0x38,0x2f,0x30,0x2d,0x2d,0x2d,0x2c,0x2b,0x30,0x37,
+0x31,0x30,0x2c,0x25,0x22,0x24,0x26,0x27,0x2f,0x2d,0x2e,0x2f,0x2d,0x29,0x27,0x28,
+0x1f,0x25,0x28,0x27,0x28,0x2c,0x2a,0x24,0x1f,0x22,0x26,0x27,0x27,0x25,0x25,0x25,
+0x27,0x26,0x27,0x2a,0x2c,0x2d,0x2f,0x32,0x30,0x31,0x31,0x31,0x36,0x3b,0x3a,0x35,
+0x2a,0x2c,0x2e,0x2f,0x30,0x30,0x2e,0x2d,0x2f,0x2e,0x2f,0x31,0x34,0x34,0x31,0x2f,
+0x33,0x34,0x34,0x34,0x32,0x30,0x2f,0x2f,0x2e,0x2f,0x31,0x34,0x35,0x35,0x33,0x31,
+0x35,0x32,0x30,0x32,0x35,0x37,0x35,0x33,0x38,0x37,0x38,0x3b,0x40,0x47,0x4e,0x52,
+0x57,0x5c,0x63,0x6a,0x6e,0x6c,0x66,0x61,0x60,0x67,0x6c,0x6c,0x6c,0x6a,0x5d,0x4f,
+0x46,0x3a,0x34,0x35,0x39,0x41,0x44,0x3e,0x4b,0x52,0x4c,0x40,0x3f,0x41,0x3f,0x3e,
+0x39,0x3a,0x3a,0x3c,0x40,0x46,0x48,0x47,0x49,0x4d,0x4d,0x4b,0x48,0x41,0x3f,0x46,
+0x4a,0x55,0x56,0x52,0x52,0x49,0x44,0x4d,0x49,0x45,0x43,0x47,0x4c,0x4f,0x51,0x54,
+0x51,0x5c,0x6a,0x73,0x79,0x76,0x63,0x4f,0x49,0x40,0x3d,0x42,0x44,0x47,0x56,0x69,
+0x74,0x6b,0x62,0x5c,0x56,0x57,0x63,0x72,0x74,0x71,0x6e,0x6c,0x65,0x5e,0x5c,0x5e,
+0x53,0x46,0x3c,0x3e,0x45,0x4f,0x5e,0x6b,0x6c,0x74,0x70,0x5c,0x4a,0x45,0x46,0x46,
+0x4a,0x54,0x5e,0x69,0x71,0x6e,0x6d,0x74,0x8a,0x8f,0x96,0x9a,0x8e,0x72,0x63,0x6a,
+0x90,0xb8,0x8d,0x46,0x53,0x59,0x60,0x6d,0x68,0x67,0x64,0x66,0x6e,0x74,0x70,0x68,
+0x74,0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x74,0x70,0x6b,0x6a,0x6e,0x70,0x6f,0x6d,
+0x73,0x75,0x77,0x7a,0x7b,0x7c,0x7c,0x7c,0x7f,0x7e,0x7d,0x7d,0x7e,0x80,0x82,0x83,
+0x80,0x7f,0x7f,0x7f,0x80,0x80,0x7e,0x7d,0x7e,0x7e,0x7f,0x80,0x81,0x82,0x82,0x82,
+0x80,0x80,0x81,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x84,0x86,0x87,0x88,0x89,0x8a,
+0x8b,0x8b,0x8c,0x8b,0x8a,0x89,0x8a,0x8c,0x87,0x89,0x8b,0x8e,0x8f,0x8f,0x8f,0x8e,
+0x91,0x92,0x92,0x93,0x93,0x94,0x94,0x94,0x91,0x91,0x92,0x93,0x93,0x94,0x95,0x95,
+0x95,0x94,0x93,0x93,0x93,0x93,0x91,0x90,0x90,0x91,0x92,0x91,0x91,0x90,0x91,0x92,
+0x92,0x92,0x92,0x91,0x90,0x8e,0x8d,0x8c,0x8b,0x8c,0x8d,0x8d,0x8d,0x8b,0x88,0x87,
+0x88,0x87,0x85,0x83,0x80,0x7e,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x76,0x73,0x71,0x6f,
+0x70,0x6e,0x6c,0x6b,0x6b,0x6a,0x68,0x67,0x62,0x62,0x62,0x62,0x61,0x5f,0x5b,0x58,
+0x55,0x55,0x53,0x50,0x4d,0x4a,0x49,0x48,0x4f,0x53,0x51,0x4f,0x51,0x51,0x52,0x58,
+0x4f,0x45,0x3f,0x41,0x3e,0x37,0x38,0x3f,0x3d,0x3e,0x40,0x42,0x43,0x3f,0x39,0x34,
+0x3b,0x3a,0x39,0x35,0x33,0x3a,0x3d,0x36,0x3d,0x3e,0x3f,0x3f,0x3a,0x35,0x37,0x3b,
+0x4d,0x5e,0x6b,0x69,0x60,0x5c,0x5e,0x5f,0x59,0x57,0x52,0x56,0x5a,0x4d,0x45,0x50,
+0x63,0x75,0x80,0x7a,0x71,0x6a,0x5d,0x4e,0x4d,0x4e,0x46,0x3e,0x3e,0x3b,0x35,0x34,
+0x2b,0x26,0x26,0x2f,0x37,0x3b,0x40,0x45,0x47,0x47,0x46,0x47,0x4e,0x53,0x4e,0x44,
+0x4f,0x5b,0x76,0x8d,0x83,0x62,0x50,0x52,0x4a,0x52,0x53,0x4e,0x4a,0x45,0x44,0x48,
+0x40,0x3d,0x34,0x39,0x52,0x60,0x56,0x47,0x41,0x44,0x49,0x44,0x38,0x3b,0x4c,0x57,
+0x32,0x30,0x3e,0x4f,0x52,0x4b,0x42,0x3a,0x38,0x33,0x25,0x1e,0x28,0x31,0x34,0x37,
+0x42,0x44,0x49,0x4a,0x43,0x3a,0x36,0x39,0x41,0x45,0x4b,0x39,0x33,0x21,0x30,0x41,
+0x55,0x52,0x53,0x58,0x52,0x3f,0x2c,0x22,0x34,0x43,0x47,0x43,0x48,0x4b,0x42,0x37,
+0x38,0x30,0x27,0x26,0x2c,0x34,0x3b,0x3f,0x4d,0x4f,0x48,0x37,0x26,0x1e,0x1d,0x1c,
+0x4e,0x4c,0x4f,0x55,0x53,0x48,0x3e,0x39,0x2f,0x39,0x44,0x48,0x47,0x46,0x43,0x40,
+0x3e,0x3e,0x3b,0x38,0x35,0x34,0x34,0x33,0x33,0x35,0x34,0x32,0x30,0x2f,0x30,0x2f,
+0x2c,0x2d,0x36,0x45,0x4c,0x46,0x3f,0x3d,0x3e,0x38,0x35,0x34,0x32,0x2e,0x2c,0x2e,
+0x31,0x2d,0x28,0x27,0x28,0x27,0x24,0x21,0x30,0x2f,0x2f,0x2d,0x29,0x26,0x26,0x28,
+0x26,0x23,0x21,0x22,0x25,0x26,0x26,0x24,0x25,0x23,0x21,0x23,0x25,0x25,0x22,0x1f,
+0x22,0x24,0x27,0x29,0x2b,0x2c,0x2d,0x2e,0x31,0x35,0x39,0x3d,0x41,0x43,0x40,0x3b,
+0x33,0x2d,0x28,0x2a,0x30,0x32,0x2f,0x2c,0x2a,0x2c,0x2d,0x2e,0x2d,0x2c,0x2b,0x2b,
+0x33,0x33,0x33,0x32,0x30,0x2e,0x2d,0x2c,0x2d,0x33,0x37,0x35,0x31,0x30,0x32,0x33,
+0x38,0x36,0x34,0x32,0x32,0x34,0x38,0x3a,0x37,0x38,0x3a,0x3e,0x43,0x47,0x4a,0x4b,
+0x4d,0x5a,0x67,0x69,0x66,0x65,0x68,0x6b,0x74,0x6d,0x67,0x6a,0x74,0x78,0x6e,0x61,
+0x4e,0x45,0x3c,0x38,0x3b,0x3f,0x40,0x40,0x42,0x47,0x49,0x44,0x3e,0x3d,0x3d,0x3e,
+0x38,0x37,0x39,0x3d,0x40,0x40,0x42,0x44,0x4b,0x4e,0x4e,0x4a,0x47,0x44,0x3f,0x3b,
+0x48,0x54,0x5d,0x58,0x4d,0x46,0x43,0x42,0x3e,0x42,0x43,0x42,0x46,0x4f,0x59,0x5c,
+0x5e,0x5e,0x5f,0x61,0x61,0x5d,0x53,0x4a,0x44,0x40,0x3f,0x42,0x47,0x4d,0x58,0x62,
+0x73,0x67,0x61,0x60,0x5a,0x56,0x67,0x80,0x85,0x7c,0x6f,0x65,0x60,0x5d,0x5a,0x57,
+0x51,0x4b,0x49,0x4f,0x5a,0x62,0x61,0x5e,0x64,0x66,0x66,0x60,0x56,0x4d,0x48,0x47,
+0x42,0x49,0x50,0x57,0x5c,0x5b,0x63,0x74,0x8d,0x98,0xa1,0x8f,0x70,0x54,0x47,0x57,
+0x95,0xa6,0x7f,0x4e,0x55,0x66,0x67,0x6d,0x6b,0x69,0x69,0x6b,0x6b,0x69,0x6b,0x70,
+0x78,0x7a,0x7a,0x78,0x77,0x77,0x76,0x73,0x74,0x6e,0x6b,0x6d,0x71,0x71,0x70,0x70,
+0x71,0x74,0x78,0x7a,0x7b,0x7b,0x7c,0x7c,0x7f,0x7e,0x7e,0x7d,0x7e,0x7f,0x80,0x81,
+0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7e,0x7f,0x7c,0x7c,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7c,0x7f,0x82,0x84,0x84,0x84,0x86,0x87,0x83,0x83,0x84,0x85,0x86,0x86,0x87,0x87,
+0x86,0x87,0x88,0x89,0x8a,0x8a,0x89,0x89,0x8b,0x8c,0x8c,0x8d,0x8d,0x8e,0x8e,0x8e,
+0x8e,0x8f,0x8f,0x8f,0x8f,0x8f,0x90,0x92,0x91,0x91,0x90,0x91,0x91,0x92,0x93,0x94,
+0x91,0x91,0x8f,0x8e,0x8d,0x8c,0x8c,0x8c,0x90,0x8f,0x8e,0x8e,0x8e,0x8f,0x90,0x90,
+0x8f,0x8c,0x8c,0x8d,0x8d,0x8b,0x8b,0x8d,0x8a,0x8b,0x8a,0x87,0x86,0x87,0x87,0x85,
+0x86,0x85,0x84,0x82,0x80,0x7e,0x7d,0x7c,0x79,0x78,0x76,0x74,0x73,0x71,0x6e,0x6c,
+0x6d,0x6b,0x69,0x68,0x68,0x68,0x67,0x67,0x65,0x64,0x62,0x60,0x60,0x5f,0x5d,0x5c,
+0x58,0x55,0x54,0x4c,0x4b,0x4a,0x42,0x4b,0x4e,0x5b,0x65,0x70,0x69,0x5b,0x62,0x67,
+0x5c,0x50,0x4e,0x4e,0x42,0x37,0x37,0x3a,0x3e,0x31,0x3d,0x4d,0x45,0x45,0x4e,0x4d,
+0x47,0x45,0x42,0x3f,0x3e,0x3d,0x37,0x30,0x36,0x3a,0x3d,0x3b,0x39,0x3a,0x3a,0x38,
+0x45,0x52,0x62,0x66,0x5d,0x53,0x53,0x58,0x52,0x50,0x60,0x76,0x7d,0x74,0x65,0x57,
+0x61,0x70,0x7d,0x7e,0x7a,0x74,0x6b,0x61,0x5a,0x4f,0x41,0x3a,0x3a,0x38,0x31,0x2a,
+0x1f,0x2f,0x40,0x45,0x3f,0x3a,0x3e,0x45,0x4e,0x4c,0x4f,0x55,0x55,0x4d,0x47,0x46,
+0x4d,0x66,0x6e,0x74,0x68,0x65,0x51,0x4c,0x42,0x53,0x53,0x49,0x43,0x3e,0x42,0x52,
+0x45,0x41,0x3e,0x42,0x4f,0x5a,0x56,0x4b,0x3d,0x3e,0x45,0x41,0x3b,0x50,0x5f,0x51,
+0x32,0x35,0x3d,0x46,0x49,0x47,0x45,0x45,0x35,0x28,0x1b,0x1a,0x26,0x34,0x3d,0x40,
+0x37,0x39,0x3d,0x45,0x43,0x34,0x33,0x42,0x41,0x49,0x4b,0x45,0x39,0x2d,0x31,0x42,
+0x53,0x4c,0x4b,0x5a,0x5f,0x46,0x28,0x1f,0x2d,0x3a,0x49,0x4f,0x4f,0x4b,0x41,0x37,
+0x36,0x2e,0x25,0x23,0x29,0x33,0x3a,0x3e,0x4d,0x4c,0x3f,0x2c,0x25,0x29,0x27,0x1d,
+0x53,0x51,0x4f,0x4f,0x52,0x53,0x4d,0x45,0x3e,0x43,0x47,0x45,0x41,0x3c,0x36,0x31,
+0x28,0x2e,0x34,0x38,0x38,0x35,0x30,0x2c,0x2f,0x2e,0x2d,0x2e,0x30,0x34,0x3a,0x3f,
+0x34,0x33,0x3a,0x45,0x4a,0x44,0x3d,0x3b,0x3f,0x3a,0x36,0x35,0x33,0x2f,0x2d,0x2e,
+0x2c,0x2d,0x2f,0x2f,0x2c,0x29,0x25,0x24,0x2b,0x2a,0x28,0x26,0x24,0x22,0x24,0x26,
+0x22,0x21,0x22,0x25,0x28,0x2a,0x28,0x26,0x25,0x22,0x20,0x21,0x22,0x22,0x1f,0x1c,
+0x1e,0x21,0x24,0x27,0x29,0x2b,0x2e,0x2f,0x33,0x35,0x38,0x3a,0x3e,0x41,0x40,0x3d,
+0x33,0x2c,0x27,0x29,0x2e,0x31,0x30,0x2e,0x2a,0x2c,0x2f,0x30,0x2f,0x2e,0x2e,0x2f,
+0x2d,0x2d,0x2d,0x2d,0x2c,0x2a,0x2a,0x29,0x2c,0x32,0x35,0x34,0x31,0x30,0x30,0x2f,
+0x32,0x31,0x30,0x31,0x32,0x34,0x36,0x36,0x3b,0x3b,0x3a,0x3c,0x3e,0x41,0x43,0x44,
+0x52,0x5b,0x61,0x60,0x5d,0x61,0x69,0x70,0x6f,0x69,0x64,0x66,0x71,0x79,0x77,0x6f,
+0x61,0x5b,0x53,0x4e,0x4d,0x4d,0x4b,0x49,0x45,0x4a,0x4d,0x4a,0x44,0x40,0x3c,0x39,
+0x3a,0x38,0x38,0x3b,0x3b,0x3a,0x3b,0x3d,0x3b,0x3f,0x42,0x41,0x40,0x40,0x40,0x3e,
+0x43,0x4b,0x51,0x4f,0x4a,0x46,0x44,0x42,0x3d,0x3e,0x3d,0x3a,0x3e,0x4a,0x56,0x5c,
+0x61,0x5e,0x5b,0x5c,0x60,0x63,0x62,0x5f,0x63,0x5a,0x50,0x4d,0x50,0x57,0x62,0x6b,
+0x74,0x6a,0x65,0x64,0x5e,0x56,0x5b,0x68,0x6e,0x65,0x5b,0x57,0x5a,0x5d,0x5c,0x59,
+0x59,0x5e,0x68,0x75,0x7c,0x77,0x68,0x5c,0x5f,0x63,0x64,0x5d,0x50,0x47,0x44,0x46,
+0x50,0x4f,0x4c,0x4e,0x53,0x54,0x5c,0x6c,0x88,0x9a,0xaa,0x96,0x70,0x4f,0x42,0x55,
+0x74,0x7c,0x62,0x4a,0x57,0x64,0x63,0x68,0x6a,0x67,0x67,0x69,0x6a,0x69,0x6d,0x72,
+0x76,0x78,0x79,0x77,0x77,0x77,0x75,0x72,0x71,0x6d,0x6a,0x6d,0x70,0x71,0x70,0x6f,
+0x72,0x75,0x78,0x7a,0x7b,0x7a,0x7a,0x7b,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x80,
+0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7e,0x7e,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,
+0x7e,0x80,0x83,0x84,0x84,0x84,0x86,0x87,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,
+0x86,0x87,0x88,0x88,0x89,0x88,0x88,0x88,0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,
+0x8e,0x8e,0x8f,0x8e,0x8d,0x8d,0x8e,0x8f,0x90,0x90,0x8f,0x8f,0x90,0x91,0x92,0x93,
+0x91,0x90,0x8f,0x8d,0x8c,0x8c,0x8c,0x8c,0x8e,0x8e,0x8e,0x8d,0x8d,0x8d,0x8e,0x8e,
+0x8d,0x8b,0x8a,0x8b,0x8b,0x89,0x89,0x8b,0x88,0x8a,0x89,0x86,0x85,0x86,0x86,0x84,
+0x85,0x84,0x83,0x81,0x7f,0x7d,0x7c,0x7b,0x79,0x77,0x75,0x74,0x72,0x70,0x6e,0x6c,
+0x6c,0x6a,0x68,0x67,0x67,0x67,0x66,0x66,0x64,0x63,0x61,0x60,0x60,0x5e,0x5c,0x5a,
+0x59,0x54,0x53,0x4d,0x4c,0x49,0x44,0x51,0x61,0x6f,0x75,0x7a,0x72,0x6a,0x76,0x7d,
+0x73,0x64,0x55,0x4c,0x4c,0x5a,0x69,0x6d,0x57,0x3f,0x3c,0x45,0x42,0x4a,0x5e,0x65,
+0x6b,0x65,0x5b,0x53,0x4f,0x4b,0x41,0x38,0x40,0x45,0x46,0x44,0x46,0x48,0x43,0x3b,
+0x3f,0x45,0x4a,0x4c,0x4f,0x57,0x60,0x64,0x68,0x58,0x52,0x59,0x63,0x6f,0x76,0x74,
+0x64,0x63,0x62,0x67,0x72,0x7a,0x78,0x70,0x64,0x5a,0x4d,0x44,0x3b,0x32,0x2d,0x2d,
+0x30,0x38,0x40,0x42,0x41,0x43,0x4b,0x53,0x54,0x51,0x4f,0x4e,0x4b,0x45,0x3f,0x3c,
+0x44,0x65,0x7d,0x75,0x63,0x4a,0x3b,0x37,0x44,0x53,0x59,0x51,0x47,0x41,0x45,0x4f,
+0x53,0x4f,0x48,0x46,0x50,0x5b,0x56,0x49,0x38,0x43,0x4c,0x42,0x39,0x48,0x4f,0x40,
+0x35,0x3c,0x47,0x50,0x4f,0x45,0x3b,0x36,0x2f,0x2c,0x28,0x27,0x2b,0x33,0x37,0x38,
+0x28,0x2e,0x37,0x3e,0x3a,0x2b,0x2a,0x3a,0x44,0x50,0x55,0x4d,0x3d,0x2e,0x32,0x44,
+0x52,0x53,0x57,0x5d,0x5a,0x44,0x31,0x30,0x3a,0x44,0x4a,0x4a,0x4a,0x4c,0x47,0x3f,
+0x2e,0x26,0x27,0x33,0x3e,0x43,0x47,0x4c,0x47,0x47,0x3e,0x30,0x2e,0x33,0x2f,0x24,
+0x50,0x4c,0x44,0x40,0x47,0x52,0x51,0x48,0x48,0x4a,0x49,0x43,0x3d,0x37,0x31,0x2b,
+0x28,0x2b,0x2e,0x30,0x30,0x30,0x30,0x30,0x33,0x2e,0x2c,0x2e,0x2f,0x31,0x38,0x40,
+0x39,0x37,0x3a,0x41,0x42,0x3b,0x34,0x31,0x39,0x37,0x37,0x38,0x37,0x33,0x30,0x2f,
+0x31,0x38,0x3f,0x3e,0x37,0x2e,0x28,0x27,0x28,0x29,0x2a,0x29,0x27,0x25,0x25,0x25,
+0x1e,0x1f,0x22,0x26,0x29,0x29,0x26,0x23,0x21,0x1f,0x1d,0x1d,0x1f,0x20,0x1f,0x1d,
+0x1d,0x1f,0x22,0x25,0x27,0x29,0x2b,0x2d,0x30,0x32,0x34,0x36,0x3a,0x3f,0x41,0x40,
+0x3a,0x34,0x2d,0x2b,0x2d,0x2e,0x2c,0x2a,0x27,0x2b,0x30,0x31,0x2f,0x2c,0x2c,0x2d,
+0x2c,0x2c,0x2c,0x2c,0x2d,0x2d,0x2d,0x2d,0x2e,0x32,0x36,0x35,0x33,0x32,0x30,0x2e,
+0x30,0x30,0x30,0x32,0x36,0x37,0x37,0x35,0x33,0x33,0x33,0x35,0x38,0x3d,0x42,0x45,
+0x4b,0x51,0x54,0x50,0x4d,0x50,0x56,0x5b,0x66,0x63,0x5f,0x60,0x68,0x71,0x73,0x71,
+0x6e,0x6a,0x64,0x60,0x5d,0x59,0x54,0x50,0x46,0x4a,0x4b,0x48,0x43,0x3e,0x3a,0x35,
+0x38,0x36,0x36,0x38,0x38,0x36,0x36,0x38,0x37,0x3c,0x3f,0x3c,0x39,0x39,0x39,0x39,
+0x3d,0x40,0x43,0x44,0x46,0x46,0x42,0x3d,0x3e,0x3f,0x3d,0x3b,0x3e,0x48,0x53,0x5a,
+0x5d,0x59,0x57,0x5a,0x62,0x6b,0x70,0x73,0x6e,0x67,0x5f,0x5c,0x5b,0x5b,0x5d,0x60,
+0x64,0x5e,0x5b,0x5d,0x5d,0x5a,0x59,0x5b,0x58,0x4d,0x44,0x46,0x54,0x63,0x6b,0x6e,
+0x68,0x6e,0x79,0x82,0x83,0x79,0x6a,0x5f,0x5e,0x62,0x64,0x5d,0x53,0x4e,0x53,0x5a,
+0x5d,0x58,0x51,0x53,0x5c,0x62,0x69,0x75,0x76,0x84,0x92,0x83,0x68,0x51,0x4a,0x5d,
+0x60,0x59,0x4c,0x4c,0x5c,0x64,0x63,0x65,0x67,0x65,0x65,0x67,0x68,0x6a,0x6f,0x74,
+0x76,0x79,0x7b,0x79,0x78,0x78,0x75,0x72,0x6f,0x6c,0x6c,0x6f,0x72,0x71,0x70,0x70,
+0x74,0x76,0x79,0x7a,0x7a,0x79,0x79,0x79,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7e,
+0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x7e,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,
+0x80,0x81,0x82,0x82,0x82,0x83,0x84,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x89,0x89,0x89,0x8a,0x8b,0x8b,0x8c,0x8c,
+0x8c,0x8d,0x8e,0x8d,0x8c,0x8b,0x8c,0x8d,0x8e,0x8e,0x8e,0x8e,0x8f,0x90,0x91,0x91,
+0x8f,0x8e,0x8e,0x8d,0x8c,0x8c,0x8c,0x8c,0x8c,0x8c,0x8d,0x8c,0x8c,0x8c,0x8b,0x8a,
+0x8a,0x88,0x88,0x89,0x89,0x87,0x86,0x88,0x86,0x88,0x87,0x84,0x83,0x84,0x84,0x82,
+0x83,0x83,0x81,0x7f,0x7e,0x7c,0x7b,0x7a,0x78,0x77,0x74,0x73,0x71,0x70,0x6d,0x6b,
+0x6b,0x69,0x67,0x66,0x66,0x66,0x65,0x64,0x63,0x62,0x61,0x60,0x60,0x5e,0x5b,0x59,
+0x5b,0x53,0x52,0x4e,0x4d,0x49,0x48,0x5b,0x69,0x74,0x74,0x77,0x75,0x73,0x7b,0x79,
+0x78,0x73,0x6a,0x63,0x69,0x7e,0x86,0x7a,0x58,0x3e,0x38,0x41,0x41,0x48,0x5b,0x67,
+0x71,0x70,0x6f,0x70,0x70,0x68,0x55,0x43,0x4e,0x5a,0x61,0x5c,0x58,0x59,0x56,0x4e,
+0x46,0x48,0x48,0x4c,0x58,0x67,0x6d,0x6b,0x64,0x5b,0x55,0x54,0x59,0x6b,0x7c,0x80,
+0x74,0x66,0x59,0x5a,0x65,0x70,0x75,0x77,0x77,0x6c,0x5d,0x4c,0x38,0x29,0x28,0x2f,
+0x46,0x46,0x46,0x45,0x46,0x49,0x4f,0x53,0x57,0x56,0x54,0x50,0x4d,0x4a,0x44,0x3e,
+0x45,0x5e,0x75,0x64,0x57,0x39,0x37,0x38,0x39,0x44,0x51,0x4e,0x42,0x3f,0x46,0x4a,
+0x48,0x47,0x40,0x3d,0x4b,0x5c,0x58,0x49,0x32,0x44,0x4b,0x41,0x3e,0x4b,0x51,0x4a,
+0x36,0x3c,0x44,0x48,0x40,0x31,0x24,0x1e,0x19,0x21,0x27,0x26,0x26,0x2a,0x2d,0x2d,
+0x2a,0x34,0x3d,0x40,0x36,0x25,0x25,0x36,0x47,0x51,0x54,0x49,0x37,0x27,0x2b,0x3d,
+0x4c,0x54,0x58,0x58,0x53,0x45,0x38,0x37,0x3e,0x4d,0x55,0x54,0x55,0x57,0x4c,0x3b,
+0x27,0x20,0x25,0x38,0x44,0x40,0x3d,0x40,0x42,0x43,0x3e,0x35,0x36,0x3b,0x35,0x28,
+0x47,0x40,0x38,0x35,0x3a,0x42,0x44,0x41,0x45,0x47,0x45,0x42,0x3f,0x3b,0x36,0x30,
+0x31,0x2f,0x2c,0x2a,0x28,0x29,0x2d,0x32,0x38,0x31,0x2e,0x30,0x2f,0x2c,0x31,0x38,
+0x3f,0x3e,0x3f,0x42,0x40,0x38,0x2f,0x2c,0x30,0x31,0x34,0x38,0x3a,0x38,0x35,0x33,
+0x3b,0x42,0x48,0x46,0x3d,0x31,0x2a,0x26,0x2a,0x2d,0x30,0x2f,0x2d,0x2a,0x25,0x20,
+0x1d,0x1e,0x20,0x23,0x25,0x24,0x20,0x1d,0x1c,0x1a,0x1a,0x1b,0x1d,0x20,0x21,0x20,
+0x1f,0x21,0x22,0x23,0x23,0x24,0x25,0x26,0x29,0x2c,0x2f,0x32,0x37,0x3e,0x41,0x41,
+0x3c,0x39,0x33,0x2e,0x2e,0x2e,0x2c,0x28,0x28,0x2e,0x33,0x34,0x31,0x2c,0x29,0x29,
+0x2e,0x2d,0x2d,0x2e,0x2f,0x31,0x31,0x32,0x32,0x35,0x37,0x36,0x35,0x35,0x34,0x31,
+0x32,0x31,0x31,0x33,0x37,0x38,0x37,0x35,0x30,0x30,0x31,0x34,0x38,0x3f,0x47,0x4c,
+0x4b,0x50,0x55,0x57,0x58,0x5a,0x5a,0x58,0x5a,0x5c,0x5c,0x5b,0x5d,0x60,0x5f,0x5d,
+0x64,0x5f,0x5a,0x59,0x59,0x56,0x4e,0x48,0x42,0x43,0x41,0x3c,0x39,0x38,0x36,0x33,
+0x31,0x31,0x33,0x37,0x38,0x36,0x34,0x35,0x39,0x3e,0x3f,0x3a,0x34,0x32,0x32,0x33,
+0x3b,0x3b,0x3d,0x44,0x4c,0x4c,0x43,0x3a,0x34,0x37,0x38,0x39,0x3b,0x40,0x47,0x4c,
+0x52,0x50,0x51,0x58,0x61,0x69,0x6e,0x71,0x6e,0x6c,0x69,0x67,0x65,0x62,0x60,0x5f,
+0x57,0x53,0x50,0x50,0x53,0x56,0x56,0x56,0x4e,0x49,0x47,0x4d,0x5a,0x68,0x70,0x73,
+0x6b,0x6f,0x74,0x75,0x71,0x69,0x61,0x5b,0x63,0x63,0x60,0x57,0x4d,0x49,0x4f,0x55,
+0x4c,0x4c,0x4b,0x51,0x5c,0x60,0x62,0x6a,0x6c,0x67,0x66,0x5f,0x5e,0x5b,0x55,0x62,
+0x60,0x50,0x49,0x51,0x5c,0x62,0x64,0x64,0x64,0x63,0x63,0x65,0x67,0x6b,0x71,0x76,
+0x79,0x7c,0x7e,0x7c,0x7b,0x79,0x76,0x71,0x6e,0x6d,0x6e,0x72,0x73,0x72,0x71,0x72,
+0x75,0x76,0x78,0x79,0x79,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x7e,0x7e,0x7d,
+0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x80,0x80,0x7f,0x7f,0x7f,0x80,0x81,0x83,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,
+0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x88,0x89,0x89,0x8a,0x8a,
+0x8a,0x8b,0x8c,0x8c,0x8b,0x8b,0x8b,0x8c,0x8d,0x8d,0x8e,0x8e,0x8f,0x8f,0x90,0x90,
+0x8d,0x8d,0x8d,0x8c,0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,0x8b,0x8b,0x8a,0x89,0x88,0x87,
+0x88,0x87,0x86,0x88,0x88,0x85,0x85,0x86,0x85,0x86,0x85,0x83,0x82,0x83,0x83,0x81,
+0x81,0x81,0x7f,0x7e,0x7c,0x7a,0x79,0x79,0x78,0x76,0x73,0x71,0x70,0x6e,0x6c,0x6b,
+0x6b,0x69,0x67,0x65,0x65,0x65,0x65,0x64,0x63,0x62,0x61,0x60,0x60,0x5e,0x5b,0x59,
+0x5c,0x53,0x52,0x4f,0x4d,0x48,0x4a,0x63,0x7c,0x7a,0x6b,0x67,0x69,0x6c,0x70,0x65,
+0x6b,0x72,0x7a,0x7e,0x83,0x8b,0x82,0x6a,0x56,0x4a,0x52,0x60,0x5c,0x55,0x5c,0x66,
+0x6d,0x6c,0x6e,0x72,0x76,0x6f,0x5b,0x48,0x4c,0x63,0x70,0x65,0x55,0x53,0x56,0x56,
+0x45,0x43,0x43,0x4a,0x55,0x5f,0x62,0x61,0x64,0x6e,0x79,0x76,0x6f,0x75,0x7d,0x7b,
+0x83,0x78,0x6e,0x68,0x61,0x5e,0x66,0x73,0x75,0x70,0x61,0x4a,0x36,0x2e,0x31,0x37,
+0x49,0x49,0x4a,0x4a,0x4b,0x4b,0x4a,0x4a,0x54,0x57,0x56,0x50,0x4c,0x4a,0x43,0x3b,
+0x41,0x52,0x65,0x66,0x68,0x54,0x46,0x3d,0x3f,0x42,0x4d,0x4a,0x3a,0x3a,0x44,0x44,
+0x36,0x38,0x34,0x35,0x48,0x60,0x5d,0x4a,0x33,0x46,0x50,0x4d,0x49,0x42,0x36,0x2f,
+0x23,0x23,0x23,0x21,0x1b,0x15,0x12,0x13,0x22,0x2a,0x2e,0x2a,0x28,0x2c,0x32,0x35,
+0x39,0x43,0x47,0x40,0x30,0x1f,0x22,0x35,0x4b,0x4e,0x49,0x3f,0x33,0x25,0x26,0x34,
+0x49,0x52,0x55,0x53,0x53,0x4a,0x3a,0x31,0x3d,0x51,0x5d,0x5c,0x5c,0x5c,0x4b,0x34,
+0x26,0x21,0x26,0x37,0x43,0x42,0x3d,0x3b,0x48,0x48,0x43,0x3c,0x3d,0x40,0x37,0x28,
+0x44,0x3c,0x38,0x3a,0x39,0x34,0x35,0x3b,0x44,0x46,0x46,0x44,0x42,0x40,0x3b,0x36,
+0x2b,0x2a,0x2a,0x2b,0x29,0x28,0x2c,0x32,0x38,0x32,0x2e,0x2f,0x2f,0x30,0x37,0x3f,
+0x48,0x48,0x49,0x4a,0x46,0x3e,0x35,0x31,0x2f,0x2f,0x30,0x32,0x35,0x38,0x39,0x39,
+0x3a,0x3d,0x40,0x3f,0x3a,0x32,0x2b,0x27,0x2c,0x2f,0x2f,0x2c,0x29,0x26,0x21,0x1b,
+0x1c,0x1d,0x1e,0x1f,0x20,0x1f,0x1d,0x1c,0x1a,0x19,0x19,0x1a,0x1c,0x1e,0x20,0x20,
+0x21,0x21,0x22,0x22,0x21,0x21,0x22,0x23,0x25,0x2a,0x2f,0x33,0x37,0x3c,0x3e,0x3e,
+0x34,0x35,0x32,0x2f,0x2f,0x31,0x30,0x2c,0x2e,0x33,0x39,0x3a,0x35,0x2f,0x2a,0x28,
+0x2b,0x2a,0x29,0x29,0x2c,0x2e,0x2f,0x2f,0x33,0x35,0x36,0x34,0x34,0x35,0x34,0x32,
+0x33,0x32,0x31,0x32,0x34,0x35,0x34,0x33,0x3a,0x3a,0x39,0x39,0x3b,0x40,0x48,0x4d,
+0x4b,0x4c,0x4f,0x55,0x5f,0x67,0x68,0x65,0x61,0x66,0x6a,0x6a,0x68,0x65,0x60,0x5a,
+0x51,0x4a,0x44,0x45,0x49,0x48,0x3f,0x37,0x3c,0x3c,0x3a,0x35,0x32,0x31,0x30,0x2e,
+0x2b,0x2c,0x30,0x35,0x36,0x33,0x30,0x30,0x35,0x39,0x3b,0x36,0x31,0x30,0x32,0x34,
+0x3a,0x3a,0x3f,0x4b,0x55,0x53,0x47,0x3d,0x37,0x39,0x3d,0x40,0x43,0x46,0x4c,0x51,
+0x4f,0x4c,0x4d,0x53,0x59,0x5d,0x61,0x65,0x6d,0x6c,0x69,0x63,0x5e,0x5d,0x5e,0x60,
+0x59,0x56,0x50,0x4c,0x4c,0x4e,0x50,0x50,0x56,0x5b,0x62,0x67,0x68,0x67,0x65,0x64,
+0x64,0x69,0x6f,0x6e,0x68,0x5e,0x57,0x54,0x58,0x58,0x57,0x54,0x51,0x50,0x53,0x57,
+0x61,0x66,0x69,0x6e,0x76,0x75,0x73,0x78,0x6b,0x5c,0x53,0x52,0x5d,0x5f,0x53,0x55,
+0x5b,0x4d,0x4a,0x53,0x59,0x5f,0x64,0x60,0x61,0x62,0x63,0x63,0x66,0x6c,0x73,0x77,
+0x7a,0x7d,0x7d,0x7b,0x79,0x76,0x72,0x6e,0x6d,0x6d,0x6f,0x73,0x73,0x71,0x71,0x73,
+0x74,0x76,0x77,0x78,0x78,0x78,0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7f,0x7e,0x7e,0x7d,
+0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,
+0x81,0x80,0x7f,0x7e,0x7f,0x80,0x80,0x81,0x82,0x83,0x83,0x84,0x84,0x85,0x85,0x86,
+0x82,0x82,0x83,0x83,0x84,0x85,0x85,0x86,0x85,0x85,0x86,0x86,0x87,0x88,0x88,0x88,
+0x88,0x89,0x8b,0x8c,0x8c,0x8b,0x8c,0x8d,0x8c,0x8d,0x8d,0x8e,0x8f,0x8f,0x8f,0x90,
+0x8c,0x8c,0x8c,0x8b,0x8a,0x8a,0x89,0x89,0x88,0x89,0x89,0x89,0x89,0x87,0x86,0x85,
+0x87,0x86,0x86,0x88,0x87,0x85,0x84,0x85,0x84,0x85,0x84,0x82,0x81,0x83,0x83,0x81,
+0x7f,0x7f,0x7e,0x7c,0x7b,0x79,0x78,0x78,0x77,0x75,0x72,0x70,0x6e,0x6d,0x6b,0x6a,
+0x6b,0x69,0x67,0x65,0x65,0x65,0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5b,0x59,
+0x5b,0x53,0x52,0x4f,0x4c,0x48,0x4b,0x66,0x91,0x88,0x6f,0x60,0x5d,0x60,0x67,0x61,
+0x64,0x6a,0x78,0x82,0x84,0x84,0x7c,0x6d,0x67,0x6a,0x7a,0x85,0x7c,0x6e,0x70,0x7a,
+0x7e,0x74,0x66,0x5f,0x5f,0x5f,0x56,0x4b,0x55,0x69,0x73,0x65,0x53,0x4e,0x51,0x53,
+0x51,0x4b,0x49,0x50,0x56,0x5a,0x62,0x6b,0x76,0x83,0x91,0x8f,0x87,0x86,0x85,0x7a,
+0x70,0x6e,0x6e,0x68,0x56,0x45,0x48,0x55,0x5a,0x5e,0x57,0x46,0x3d,0x41,0x43,0x40,
+0x3e,0x42,0x47,0x4a,0x4c,0x4b,0x4a,0x49,0x46,0x4c,0x50,0x50,0x54,0x5e,0x63,0x63,
+0x64,0x65,0x5d,0x67,0x6c,0x6d,0x5d,0x59,0x5f,0x59,0x57,0x4c,0x3a,0x3a,0x43,0x42,
+0x3b,0x3c,0x37,0x3a,0x51,0x67,0x60,0x49,0x36,0x3a,0x3c,0x3e,0x3c,0x31,0x28,0x2a,
+0x24,0x1d,0x17,0x17,0x1b,0x22,0x2c,0x34,0x3d,0x3a,0x32,0x29,0x26,0x2b,0x34,0x3b,
+0x3e,0x46,0x44,0x36,0x25,0x1a,0x24,0x39,0x51,0x4e,0x46,0x43,0x41,0x37,0x31,0x35,
+0x4c,0x5a,0x60,0x5c,0x59,0x4d,0x39,0x2b,0x3f,0x52,0x5e,0x5a,0x58,0x58,0x49,0x34,
+0x2d,0x2d,0x31,0x3c,0x4d,0x5a,0x59,0x53,0x51,0x50,0x4a,0x43,0x43,0x43,0x39,0x2b,
+0x47,0x40,0x40,0x44,0x3d,0x2f,0x30,0x3a,0x4a,0x4c,0x4c,0x49,0x46,0x43,0x3f,0x3b,
+0x2d,0x2a,0x29,0x2a,0x2a,0x2c,0x34,0x3f,0x3d,0x3a,0x34,0x30,0x30,0x36,0x3f,0x46,
+0x44,0x45,0x46,0x45,0x42,0x3c,0x36,0x32,0x36,0x34,0x2e,0x2a,0x2d,0x34,0x39,0x3b,
+0x33,0x33,0x34,0x34,0x34,0x32,0x2f,0x2d,0x31,0x31,0x2c,0x25,0x22,0x23,0x21,0x1c,
+0x1b,0x1b,0x1c,0x1d,0x1d,0x1e,0x1e,0x1e,0x1b,0x1b,0x1b,0x1b,0x1b,0x1c,0x1c,0x1c,
+0x1e,0x1e,0x1f,0x1f,0x1f,0x1f,0x21,0x22,0x26,0x2c,0x31,0x35,0x37,0x3b,0x3b,0x3a,
+0x35,0x37,0x34,0x2e,0x2c,0x2e,0x2d,0x29,0x2e,0x32,0x35,0x37,0x35,0x31,0x2d,0x2a,
+0x2b,0x29,0x26,0x26,0x29,0x2b,0x2c,0x2c,0x2f,0x33,0x34,0x33,0x31,0x32,0x32,0x31,
+0x36,0x37,0x37,0x37,0x36,0x36,0x35,0x35,0x3d,0x3d,0x3b,0x3a,0x3a,0x3f,0x46,0x4b,
+0x47,0x44,0x40,0x42,0x4c,0x58,0x5e,0x5f,0x63,0x68,0x6c,0x6e,0x6d,0x69,0x62,0x5b,
+0x4a,0x44,0x3e,0x3f,0x42,0x41,0x38,0x2f,0x36,0x39,0x3a,0x36,0x32,0x2f,0x2b,0x27,
+0x28,0x29,0x2c,0x30,0x31,0x2d,0x2b,0x2b,0x36,0x38,0x38,0x34,0x30,0x31,0x33,0x34,
+0x34,0x35,0x3c,0x49,0x51,0x4e,0x44,0x3c,0x40,0x41,0x44,0x49,0x4d,0x52,0x5a,0x61,
+0x59,0x51,0x4b,0x4d,0x50,0x54,0x5c,0x63,0x6f,0x71,0x70,0x6a,0x62,0x5a,0x53,0x4e,
+0x51,0x50,0x4e,0x4e,0x50,0x53,0x57,0x5a,0x6b,0x6f,0x73,0x70,0x68,0x63,0x65,0x68,
+0x66,0x6a,0x6c,0x68,0x60,0x59,0x55,0x55,0x4c,0x4f,0x53,0x56,0x58,0x58,0x58,0x58,
+0x54,0x5b,0x5e,0x60,0x65,0x65,0x65,0x6a,0x61,0x58,0x56,0x57,0x5e,0x5b,0x49,0x49,
+0x50,0x48,0x4a,0x55,0x5c,0x61,0x64,0x61,0x60,0x62,0x63,0x64,0x67,0x6d,0x73,0x76,
+0x78,0x7a,0x7a,0x77,0x75,0x73,0x6f,0x6b,0x6d,0x6e,0x71,0x74,0x72,0x70,0x71,0x73,
+0x75,0x76,0x77,0x77,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7e,
+0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x80,
+0x82,0x81,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x83,0x84,0x85,0x85,
+0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x85,0x84,0x84,0x85,0x85,0x86,0x86,0x87,0x87,
+0x85,0x87,0x8a,0x8b,0x8b,0x8b,0x8c,0x8c,0x8b,0x8c,0x8d,0x8e,0x8e,0x8f,0x8f,0x8f,
+0x8c,0x8c,0x8b,0x8b,0x8a,0x88,0x87,0x86,0x87,0x87,0x87,0x87,0x87,0x86,0x85,0x85,
+0x86,0x85,0x85,0x87,0x87,0x84,0x83,0x84,0x82,0x83,0x83,0x80,0x80,0x82,0x82,0x80,
+0x7e,0x7e,0x7d,0x7b,0x7a,0x79,0x78,0x77,0x76,0x74,0x71,0x6e,0x6d,0x6c,0x6b,0x69,
+0x6a,0x68,0x66,0x65,0x65,0x65,0x64,0x64,0x63,0x61,0x5f,0x5e,0x5e,0x5d,0x5b,0x59,
+0x5a,0x53,0x53,0x4e,0x4b,0x48,0x4b,0x62,0x79,0x7c,0x71,0x69,0x60,0x5a,0x62,0x61,
+0x66,0x68,0x74,0x7d,0x79,0x74,0x72,0x6e,0x6a,0x71,0x79,0x7c,0x75,0x6e,0x74,0x81,
+0x82,0x78,0x69,0x5f,0x5e,0x61,0x5e,0x59,0x65,0x6c,0x6d,0x64,0x58,0x53,0x4f,0x4c,
+0x54,0x52,0x54,0x5b,0x5e,0x5e,0x61,0x66,0x6a,0x70,0x7b,0x82,0x86,0x8b,0x85,0x75,
+0x62,0x62,0x64,0x62,0x54,0x40,0x37,0x39,0x47,0x4d,0x4d,0x47,0x47,0x4b,0x46,0x3b,
+0x3c,0x3f,0x43,0x45,0x47,0x47,0x48,0x48,0x41,0x46,0x49,0x4c,0x56,0x68,0x7d,0x8b,
+0x91,0x81,0x63,0x64,0x63,0x6f,0x69,0x71,0x6b,0x61,0x55,0x46,0x3b,0x3e,0x46,0x47,
+0x44,0x3f,0x38,0x3f,0x59,0x6d,0x61,0x47,0x2b,0x29,0x2e,0x38,0x3b,0x3a,0x3e,0x43,
+0x3a,0x30,0x29,0x2d,0x38,0x45,0x4e,0x53,0x43,0x37,0x2b,0x26,0x24,0x28,0x32,0x3c,
+0x3d,0x44,0x40,0x30,0x25,0x23,0x33,0x49,0x51,0x4e,0x4b,0x4f,0x53,0x4a,0x3d,0x3b,
+0x4e,0x63,0x6d,0x67,0x5d,0x4a,0x34,0x28,0x3c,0x53,0x64,0x63,0x5d,0x56,0x47,0x36,
+0x3c,0x3c,0x3b,0x41,0x52,0x62,0x62,0x58,0x50,0x50,0x4b,0x46,0x46,0x44,0x3a,0x2e,
+0x48,0x46,0x47,0x47,0x3e,0x34,0x34,0x3b,0x45,0x48,0x49,0x45,0x42,0x42,0x42,0x41,
+0x3a,0x35,0x32,0x32,0x2f,0x2d,0x36,0x41,0x43,0x44,0x40,0x38,0x36,0x3c,0x3f,0x3f,
+0x3a,0x3a,0x3a,0x38,0x36,0x34,0x33,0x31,0x37,0x35,0x31,0x2c,0x2d,0x33,0x37,0x37,
+0x33,0x32,0x31,0x30,0x2f,0x2f,0x2f,0x2f,0x30,0x31,0x2d,0x27,0x25,0x27,0x25,0x1f,
+0x1a,0x1b,0x1c,0x1c,0x1c,0x1c,0x1b,0x1b,0x1a,0x1b,0x1b,0x1b,0x1a,0x1a,0x19,0x19,
+0x1b,0x1b,0x1c,0x1c,0x1c,0x1d,0x1f,0x21,0x23,0x29,0x2f,0x32,0x35,0x38,0x3a,0x3a,
+0x3e,0x3f,0x3a,0x2f,0x29,0x2a,0x29,0x26,0x2b,0x2b,0x2c,0x2e,0x31,0x33,0x33,0x32,
+0x2f,0x2b,0x27,0x27,0x29,0x2b,0x2c,0x2b,0x2b,0x32,0x37,0x36,0x34,0x33,0x33,0x32,
+0x37,0x3a,0x3e,0x3e,0x3b,0x38,0x38,0x38,0x3a,0x3a,0x3a,0x39,0x39,0x3e,0x45,0x4b,
+0x4d,0x4e,0x4d,0x4c,0x4e,0x54,0x59,0x5a,0x59,0x59,0x57,0x55,0x55,0x55,0x50,0x4a,
+0x47,0x45,0x42,0x43,0x43,0x3f,0x37,0x30,0x30,0x35,0x37,0x34,0x2e,0x2b,0x29,0x28,
+0x2a,0x28,0x29,0x2b,0x2b,0x2a,0x29,0x2b,0x35,0x37,0x35,0x30,0x2e,0x30,0x32,0x32,
+0x32,0x33,0x38,0x40,0x43,0x3e,0x39,0x37,0x36,0x38,0x3d,0x44,0x48,0x4a,0x50,0x57,
+0x57,0x4c,0x43,0x43,0x48,0x4f,0x5d,0x6a,0x71,0x77,0x7b,0x7c,0x7a,0x71,0x61,0x53,
+0x4c,0x47,0x46,0x4b,0x52,0x58,0x5f,0x66,0x71,0x73,0x71,0x69,0x5f,0x5e,0x65,0x6e,
+0x6b,0x6c,0x69,0x63,0x5a,0x54,0x54,0x55,0x50,0x52,0x52,0x50,0x4d,0x4a,0x4a,0x4b,
+0x49,0x50,0x51,0x52,0x59,0x5b,0x5c,0x61,0x57,0x51,0x53,0x53,0x58,0x55,0x48,0x4e,
+0x55,0x4b,0x4a,0x57,0x62,0x61,0x60,0x63,0x5f,0x63,0x65,0x65,0x67,0x6e,0x73,0x75,
+0x79,0x7b,0x7a,0x77,0x75,0x74,0x71,0x6e,0x70,0x71,0x74,0x76,0x74,0x71,0x72,0x76,
+0x77,0x77,0x77,0x77,0x76,0x76,0x78,0x7a,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x80,
+0x82,0x82,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,
+0x81,0x80,0x80,0x81,0x82,0x83,0x81,0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x83,0x83,
+0x84,0x84,0x83,0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x86,0x86,0x86,
+0x84,0x86,0x89,0x8a,0x8a,0x89,0x8a,0x8a,0x8a,0x8b,0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,
+0x8c,0x8c,0x8b,0x8a,0x89,0x87,0x85,0x84,0x86,0x86,0x85,0x85,0x85,0x85,0x86,0x86,
+0x84,0x83,0x84,0x86,0x86,0x83,0x81,0x82,0x80,0x81,0x81,0x7e,0x7e,0x80,0x80,0x7f,
+0x7e,0x7d,0x7c,0x7b,0x7a,0x78,0x77,0x77,0x76,0x73,0x70,0x6d,0x6c,0x6b,0x6a,0x69,
+0x69,0x67,0x65,0x64,0x64,0x64,0x63,0x62,0x62,0x60,0x5d,0x5b,0x5b,0x5a,0x59,0x59,
+0x58,0x54,0x54,0x4c,0x49,0x49,0x49,0x5b,0x63,0x6a,0x6c,0x72,0x6e,0x63,0x63,0x60,
+0x68,0x6d,0x7a,0x7f,0x76,0x6c,0x66,0x60,0x5f,0x66,0x69,0x69,0x6c,0x70,0x73,0x79,
+0x77,0x77,0x76,0x73,0x72,0x6f,0x68,0x62,0x60,0x60,0x60,0x5d,0x57,0x50,0x4b,0x48,
+0x43,0x49,0x4d,0x51,0x59,0x61,0x5f,0x57,0x55,0x57,0x60,0x6a,0x71,0x7b,0x7c,0x73,
+0x72,0x71,0x71,0x70,0x66,0x57,0x4c,0x47,0x4b,0x47,0x45,0x48,0x4a,0x47,0x3e,0x36,
+0x3d,0x3d,0x3e,0x40,0x43,0x46,0x47,0x47,0x49,0x47,0x43,0x3e,0x3d,0x47,0x5e,0x72,
+0x7e,0x73,0x67,0x6f,0x78,0x72,0x62,0x5e,0x5c,0x55,0x44,0x39,0x3d,0x46,0x4d,0x52,
+0x49,0x3d,0x34,0x3f,0x5e,0x71,0x64,0x4a,0x2c,0x34,0x4a,0x57,0x52,0x4f,0x4b,0x3f,
+0x3a,0x2e,0x28,0x30,0x40,0x4b,0x4c,0x4a,0x41,0x34,0x2e,0x32,0x33,0x2f,0x34,0x3f,
+0x3e,0x45,0x41,0x34,0x2d,0x32,0x42,0x55,0x50,0x51,0x50,0x53,0x54,0x49,0x3e,0x3f,
+0x51,0x61,0x6a,0x67,0x5f,0x4b,0x33,0x26,0x3a,0x53,0x68,0x6a,0x5f,0x53,0x46,0x3b,
+0x42,0x3d,0x3c,0x44,0x53,0x5d,0x58,0x4f,0x4d,0x4e,0x4d,0x4b,0x49,0x46,0x3c,0x32,
+0x4a,0x4c,0x4b,0x46,0x3f,0x3b,0x3c,0x3e,0x35,0x39,0x3b,0x39,0x39,0x3d,0x43,0x45,
+0x40,0x3f,0x41,0x41,0x39,0x2d,0x2a,0x2e,0x3f,0x48,0x49,0x41,0x3e,0x41,0x3e,0x36,
+0x37,0x37,0x36,0x33,0x32,0x33,0x35,0x36,0x31,0x34,0x34,0x32,0x33,0x36,0x35,0x31,
+0x36,0x35,0x32,0x2e,0x29,0x27,0x27,0x28,0x29,0x2e,0x2f,0x2c,0x2b,0x2c,0x27,0x1e,
+0x1b,0x1c,0x1d,0x1d,0x1b,0x19,0x17,0x16,0x17,0x18,0x1a,0x1a,0x1a,0x1a,0x19,0x19,
+0x1a,0x1b,0x1b,0x1b,0x1a,0x1b,0x1d,0x1f,0x1d,0x23,0x2a,0x2e,0x32,0x37,0x3b,0x3c,
+0x42,0x42,0x3b,0x2e,0x28,0x2b,0x2d,0x2c,0x2a,0x27,0x26,0x2a,0x31,0x38,0x3c,0x3d,
+0x31,0x2d,0x28,0x27,0x29,0x2b,0x2b,0x2a,0x2b,0x34,0x3c,0x3d,0x3a,0x37,0x36,0x34,
+0x33,0x39,0x3f,0x40,0x3c,0x38,0x37,0x37,0x3e,0x3f,0x3e,0x3c,0x3b,0x3e,0x44,0x4a,
+0x4e,0x58,0x62,0x64,0x62,0x5f,0x5e,0x5d,0x61,0x5b,0x51,0x4a,0x4a,0x4c,0x4a,0x45,
+0x40,0x42,0x44,0x44,0x41,0x3b,0x34,0x30,0x2d,0x31,0x31,0x2d,0x28,0x28,0x2b,0x2d,
+0x2b,0x28,0x27,0x28,0x29,0x29,0x2c,0x30,0x2c,0x2d,0x2c,0x29,0x2a,0x2e,0x31,0x32,
+0x39,0x37,0x39,0x3b,0x39,0x34,0x32,0x35,0x2f,0x32,0x3b,0x43,0x46,0x44,0x45,0x49,
+0x47,0x3d,0x35,0x38,0x3f,0x4b,0x5c,0x6c,0x67,0x6a,0x6e,0x76,0x7f,0x82,0x79,0x6c,
+0x58,0x4b,0x43,0x46,0x4c,0x51,0x59,0x61,0x65,0x6a,0x6c,0x66,0x5c,0x56,0x58,0x5c,
+0x68,0x6b,0x6c,0x67,0x5e,0x55,0x4f,0x4d,0x4e,0x50,0x50,0x4d,0x4b,0x50,0x5a,0x63,
+0x6b,0x71,0x70,0x71,0x78,0x7a,0x77,0x79,0x5b,0x51,0x4c,0x49,0x50,0x53,0x4e,0x58,
+0x63,0x52,0x49,0x56,0x62,0x5c,0x57,0x61,0x5f,0x64,0x66,0x65,0x68,0x6f,0x73,0x73,
+0x7c,0x7e,0x7d,0x7b,0x79,0x79,0x77,0x74,0x74,0x75,0x78,0x79,0x76,0x73,0x75,0x7a,
+0x79,0x79,0x78,0x77,0x75,0x75,0x77,0x78,0x7f,0x7e,0x7e,0x7d,0x7e,0x7f,0x80,0x81,
+0x85,0x85,0x85,0x84,0x83,0x81,0x80,0x7f,0x80,0x7f,0x7e,0x7d,0x7d,0x7d,0x7e,0x7f,
+0x7f,0x7f,0x7f,0x80,0x82,0x82,0x80,0x7e,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+0x86,0x85,0x84,0x82,0x81,0x81,0x81,0x81,0x83,0x83,0x84,0x84,0x85,0x85,0x86,0x86,
+0x84,0x86,0x88,0x89,0x88,0x87,0x87,0x88,0x89,0x89,0x8a,0x8c,0x8c,0x8c,0x8c,0x8c,
+0x8c,0x8c,0x8b,0x8a,0x88,0x86,0x84,0x83,0x86,0x85,0x84,0x84,0x84,0x85,0x86,0x87,
+0x83,0x82,0x83,0x85,0x85,0x82,0x80,0x81,0x7f,0x80,0x7f,0x7d,0x7d,0x7f,0x7f,0x7d,
+0x7d,0x7d,0x7c,0x7b,0x79,0x78,0x77,0x77,0x75,0x73,0x6f,0x6d,0x6c,0x6b,0x69,0x69,
+0x68,0x66,0x64,0x63,0x63,0x63,0x62,0x61,0x62,0x5f,0x5c,0x59,0x59,0x59,0x58,0x58,
+0x57,0x55,0x54,0x4a,0x48,0x49,0x48,0x56,0x77,0x72,0x6b,0x74,0x77,0x6e,0x6d,0x67,
+0x6c,0x74,0x81,0x82,0x77,0x6e,0x66,0x5b,0x61,0x6a,0x6f,0x74,0x82,0x89,0x83,0x7d,
+0x78,0x7d,0x80,0x7e,0x77,0x6e,0x63,0x5a,0x59,0x5c,0x61,0x63,0x5c,0x53,0x51,0x55,
+0x50,0x57,0x55,0x52,0x65,0x80,0x85,0x76,0x5f,0x5e,0x61,0x60,0x5e,0x68,0x77,0x7d,
+0x77,0x77,0x78,0x75,0x6d,0x65,0x5f,0x5d,0x53,0x44,0x3e,0x46,0x49,0x40,0x3a,0x3c,
+0x35,0x35,0x36,0x3d,0x45,0x4a,0x4b,0x49,0x44,0x40,0x3b,0x35,0x30,0x35,0x4b,0x62,
+0x63,0x57,0x5a,0x66,0x82,0x74,0x62,0x52,0x51,0x4d,0x3c,0x34,0x43,0x4e,0x52,0x5b,
+0x54,0x42,0x35,0x43,0x63,0x75,0x67,0x4e,0x43,0x49,0x58,0x56,0x49,0x53,0x5d,0x50,
+0x2e,0x22,0x1e,0x2b,0x3f,0x4a,0x48,0x41,0x3c,0x32,0x32,0x3d,0x3b,0x2e,0x2b,0x35,
+0x3d,0x44,0x40,0x35,0x31,0x36,0x44,0x54,0x54,0x56,0x53,0x50,0x4b,0x3e,0x39,0x40,
+0x56,0x5c,0x5f,0x61,0x63,0x54,0x38,0x27,0x41,0x54,0x63,0x5f,0x52,0x48,0x46,0x47,
+0x3a,0x34,0x38,0x4a,0x5d,0x63,0x5d,0x58,0x4f,0x52,0x54,0x52,0x50,0x4b,0x41,0x37,
+0x4a,0x49,0x45,0x3e,0x39,0x3a,0x42,0x4a,0x40,0x3c,0x36,0x32,0x31,0x33,0x37,0x39,
+0x3b,0x3b,0x3c,0x3e,0x3e,0x37,0x2c,0x24,0x34,0x3d,0x43,0x42,0x3e,0x3b,0x38,0x35,
+0x38,0x35,0x33,0x34,0x31,0x2d,0x2d,0x30,0x35,0x3b,0x3d,0x38,0x35,0x38,0x3a,0x37,
+0x34,0x37,0x3a,0x3b,0x37,0x32,0x2d,0x2a,0x26,0x25,0x26,0x29,0x2c,0x2b,0x26,0x22,
+0x1c,0x1d,0x1e,0x1c,0x19,0x17,0x17,0x18,0x17,0x18,0x19,0x19,0x18,0x18,0x18,0x19,
+0x18,0x18,0x19,0x18,0x19,0x1a,0x1d,0x1f,0x1d,0x20,0x24,0x29,0x2d,0x31,0x35,0x37,
+0x38,0x38,0x35,0x2e,0x28,0x27,0x26,0x24,0x29,0x27,0x26,0x27,0x2a,0x2c,0x2d,0x2c,
+0x25,0x23,0x24,0x2a,0x2d,0x2a,0x27,0x27,0x27,0x2e,0x36,0x3a,0x38,0x35,0x34,0x34,
+0x30,0x30,0x2f,0x2f,0x30,0x33,0x36,0x39,0x3c,0x3b,0x3c,0x3f,0x40,0x3f,0x40,0x42,
+0x4c,0x52,0x5b,0x5f,0x5f,0x5d,0x5d,0x5d,0x5f,0x62,0x65,0x66,0x66,0x63,0x5a,0x52,
+0x45,0x40,0x42,0x41,0x39,0x35,0x34,0x32,0x2c,0x2e,0x30,0x2e,0x2a,0x28,0x28,0x2a,
+0x2b,0x2b,0x29,0x28,0x27,0x29,0x2b,0x2e,0x35,0x37,0x36,0x31,0x2c,0x2b,0x31,0x36,
+0x3a,0x3b,0x39,0x36,0x33,0x33,0x33,0x33,0x31,0x34,0x39,0x3e,0x41,0x41,0x3e,0x3c,
+0x35,0x3a,0x35,0x30,0x3a,0x4a,0x58,0x63,0x67,0x6a,0x6c,0x69,0x64,0x61,0x62,0x63,
+0x69,0x69,0x67,0x5f,0x55,0x4f,0x56,0x60,0x68,0x6c,0x6d,0x66,0x5e,0x58,0x54,0x51,
+0x58,0x60,0x68,0x61,0x54,0x54,0x59,0x56,0x54,0x51,0x4b,0x4d,0x58,0x5b,0x58,0x59,
+0x57,0x5e,0x65,0x68,0x67,0x66,0x67,0x6a,0x63,0x67,0x6b,0x6e,0x6d,0x6b,0x68,0x64,
+0x56,0x4f,0x51,0x58,0x57,0x57,0x5c,0x5c,0x5f,0x62,0x67,0x6b,0x6f,0x73,0x77,0x7a,
+0x7a,0x7e,0x7f,0x7d,0x7b,0x7a,0x79,0x76,0x75,0x76,0x76,0x77,0x77,0x76,0x75,0x74,
+0x77,0x77,0x76,0x76,0x77,0x78,0x7a,0x7b,0x7f,0x80,0x80,0x7f,0x7f,0x80,0x82,0x83,
+0x84,0x84,0x84,0x84,0x83,0x82,0x81,0x80,0x81,0x80,0x80,0x7f,0x7e,0x7e,0x7e,0x7e,
+0x7c,0x7d,0x7e,0x80,0x81,0x82,0x82,0x83,0x81,0x82,0x83,0x83,0x84,0x84,0x83,0x83,
+0x83,0x83,0x82,0x83,0x84,0x85,0x84,0x83,0x83,0x84,0x85,0x86,0x86,0x86,0x85,0x84,
+0x87,0x89,0x8b,0x8a,0x87,0x85,0x85,0x87,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x8a,
+0x88,0x88,0x87,0x87,0x86,0x86,0x85,0x85,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x7f,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7b,0x7a,0x78,0x78,0x78,0x78,0x77,0x76,0x75,0x73,0x70,0x6d,0x6b,0x69,0x69,0x69,
+0x67,0x67,0x66,0x65,0x64,0x63,0x63,0x62,0x61,0x60,0x5f,0x5d,0x5b,0x59,0x57,0x56,
+0x59,0x4f,0x49,0x49,0x44,0x3f,0x49,0x5a,0x6e,0x6d,0x71,0x79,0x80,0x7f,0x78,0x72,
+0x71,0x76,0x7a,0x7a,0x79,0x79,0x74,0x6e,0x66,0x6c,0x6f,0x6f,0x75,0x7e,0x7f,0x79,
+0x79,0x72,0x66,0x68,0x64,0x59,0x58,0x55,0x5a,0x50,0x4d,0x54,0x56,0x52,0x54,0x5c,
+0x54,0x55,0x57,0x5c,0x62,0x69,0x6e,0x71,0x6f,0x65,0x61,0x67,0x6c,0x68,0x61,0x5d,
+0x5f,0x63,0x60,0x57,0x50,0x51,0x51,0x50,0x47,0x48,0x46,0x44,0x46,0x47,0x42,0x3a,
+0x3b,0x44,0x45,0x3f,0x40,0x4b,0x53,0x53,0x49,0x43,0x34,0x24,0x23,0x33,0x4a,0x58,
+0x53,0x5a,0x5d,0x63,0x67,0x57,0x49,0x4f,0x52,0x45,0x3a,0x3e,0x47,0x4f,0x54,0x58,
+0x52,0x37,0x33,0x4d,0x68,0x77,0x6c,0x53,0x3c,0x41,0x4e,0x57,0x58,0x57,0x51,0x44,
+0x32,0x25,0x23,0x32,0x43,0x48,0x46,0x45,0x41,0x35,0x3a,0x40,0x3f,0x37,0x2a,0x30,
+0x37,0x3f,0x40,0x3b,0x39,0x3a,0x42,0x50,0x5c,0x5f,0x51,0x4a,0x53,0x4d,0x44,0x4e,
+0x53,0x64,0x61,0x5d,0x5d,0x40,0x24,0x2a,0x4f,0x5b,0x61,0x5b,0x55,0x54,0x4f,0x48,
+0x42,0x41,0x44,0x4f,0x5e,0x65,0x60,0x57,0x5a,0x54,0x4f,0x47,0x3e,0x3c,0x38,0x2f,
+0x45,0x43,0x3f,0x3a,0x36,0x38,0x3e,0x43,0x42,0x3f,0x3a,0x34,0x30,0x30,0x32,0x34,
+0x39,0x38,0x37,0x38,0x3a,0x3b,0x3a,0x38,0x2c,0x32,0x37,0x38,0x3a,0x3c,0x3c,0x3a,
+0x39,0x35,0x32,0x31,0x2e,0x2e,0x34,0x3b,0x42,0x3e,0x3a,0x38,0x37,0x35,0x34,0x35,
+0x3a,0x3c,0x3e,0x3c,0x37,0x30,0x2a,0x27,0x20,0x21,0x25,0x2a,0x2e,0x2e,0x29,0x25,
+0x1c,0x1d,0x1d,0x1c,0x19,0x18,0x19,0x19,0x19,0x19,0x19,0x18,0x17,0x17,0x19,0x1b,
+0x17,0x18,0x19,0x19,0x19,0x1a,0x1b,0x1d,0x1b,0x1e,0x23,0x28,0x2c,0x30,0x34,0x36,
+0x3b,0x3c,0x39,0x32,0x2c,0x2a,0x29,0x27,0x26,0x25,0x25,0x26,0x29,0x2a,0x2a,0x2a,
+0x25,0x23,0x23,0x27,0x28,0x26,0x26,0x27,0x25,0x2b,0x32,0x35,0x34,0x32,0x32,0x34,
+0x2e,0x2d,0x2c,0x2c,0x2e,0x32,0x37,0x3a,0x3e,0x3d,0x3e,0x41,0x42,0x42,0x43,0x47,
+0x48,0x4e,0x54,0x58,0x57,0x56,0x57,0x58,0x5d,0x61,0x66,0x6a,0x6d,0x6d,0x67,0x60,
+0x53,0x44,0x3b,0x38,0x35,0x36,0x36,0x31,0x2d,0x2f,0x30,0x2e,0x2b,0x2a,0x2c,0x2e,
+0x27,0x28,0x2b,0x2c,0x2c,0x2a,0x27,0x25,0x2a,0x2b,0x2a,0x28,0x26,0x25,0x27,0x2a,
+0x2c,0x32,0x38,0x3b,0x3e,0x40,0x3c,0x36,0x37,0x40,0x49,0x48,0x41,0x3c,0x3e,0x43,
+0x51,0x4e,0x41,0x38,0x3e,0x47,0x4d,0x52,0x59,0x5a,0x5c,0x5e,0x61,0x64,0x63,0x60,
+0x62,0x67,0x6d,0x6d,0x69,0x66,0x67,0x6a,0x6f,0x77,0x7e,0x7b,0x71,0x64,0x57,0x4e,
+0x52,0x51,0x54,0x57,0x5c,0x68,0x6d,0x65,0x54,0x54,0x4c,0x48,0x4a,0x48,0x47,0x4c,
+0x4f,0x51,0x56,0x5d,0x65,0x67,0x65,0x61,0x63,0x68,0x6e,0x71,0x6e,0x66,0x58,0x4e,
+0x48,0x44,0x4a,0x53,0x53,0x56,0x5e,0x63,0x60,0x63,0x69,0x6e,0x72,0x75,0x79,0x7b,
+0x7c,0x80,0x81,0x7f,0x7c,0x7c,0x7a,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x79,0x79,0x78,
+0x78,0x78,0x77,0x77,0x78,0x7a,0x7c,0x7d,0x7e,0x7f,0x81,0x81,0x81,0x83,0x84,0x86,
+0x86,0x86,0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7d,0x7e,0x7e,0x7f,
+0x7d,0x7e,0x7f,0x80,0x82,0x82,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,
+0x84,0x83,0x83,0x83,0x84,0x85,0x84,0x83,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,
+0x88,0x8a,0x8b,0x89,0x86,0x85,0x86,0x88,0x88,0x87,0x87,0x87,0x87,0x88,0x88,0x88,
+0x87,0x87,0x86,0x86,0x85,0x85,0x84,0x84,0x82,0x82,0x83,0x83,0x83,0x83,0x82,0x82,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x7f,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,
+0x7b,0x79,0x78,0x77,0x77,0x77,0x76,0x75,0x74,0x72,0x70,0x6d,0x6a,0x69,0x68,0x68,
+0x66,0x66,0x65,0x64,0x63,0x62,0x61,0x61,0x60,0x60,0x5e,0x5c,0x5a,0x58,0x57,0x56,
+0x55,0x4d,0x4a,0x4b,0x45,0x3f,0x48,0x58,0x6e,0x70,0x74,0x7a,0x80,0x82,0x7e,0x78,
+0x6f,0x6d,0x6d,0x72,0x74,0x71,0x6e,0x6e,0x66,0x62,0x5f,0x62,0x68,0x70,0x76,0x79,
+0x74,0x70,0x67,0x6d,0x69,0x5c,0x58,0x51,0x57,0x54,0x57,0x60,0x62,0x59,0x52,0x51,
+0x47,0x4a,0x50,0x57,0x5d,0x60,0x60,0x5f,0x61,0x5c,0x5a,0x5d,0x62,0x62,0x60,0x5e,
+0x4a,0x4f,0x51,0x4b,0x42,0x3e,0x3f,0x41,0x46,0x47,0x46,0x44,0x45,0x49,0x48,0x45,
+0x46,0x42,0x39,0x33,0x3b,0x4b,0x4f,0x49,0x40,0x3d,0x32,0x24,0x20,0x2c,0x3f,0x4c,
+0x4f,0x51,0x50,0x58,0x62,0x59,0x4e,0x51,0x43,0x3e,0x39,0x3c,0x48,0x52,0x52,0x4e,
+0x47,0x38,0x38,0x50,0x6e,0x7c,0x70,0x5b,0x3c,0x41,0x4e,0x58,0x55,0x50,0x48,0x3e,
+0x3b,0x2d,0x26,0x31,0x40,0x47,0x49,0x4b,0x45,0x37,0x39,0x3c,0x3b,0x33,0x28,0x2f,
+0x3b,0x46,0x49,0x42,0x3b,0x38,0x41,0x51,0x55,0x58,0x4e,0x4b,0x54,0x4c,0x3f,0x44,
+0x58,0x67,0x63,0x5c,0x5a,0x40,0x2b,0x35,0x41,0x49,0x4c,0x45,0x42,0x46,0x47,0x43,
+0x43,0x40,0x42,0x50,0x62,0x6b,0x68,0x62,0x67,0x5f,0x59,0x52,0x48,0x41,0x38,0x2a,
+0x3f,0x3b,0x36,0x32,0x31,0x34,0x38,0x3c,0x3b,0x3c,0x3a,0x36,0x32,0x30,0x33,0x36,
+0x36,0x36,0x35,0x35,0x36,0x3a,0x3f,0x43,0x34,0x34,0x34,0x35,0x39,0x3c,0x3b,0x37,
+0x37,0x35,0x33,0x32,0x30,0x32,0x39,0x41,0x45,0x38,0x30,0x33,0x34,0x31,0x30,0x32,
+0x32,0x35,0x37,0x38,0x35,0x30,0x2c,0x2a,0x23,0x25,0x29,0x2e,0x31,0x2f,0x29,0x24,
+0x1a,0x1b,0x1b,0x1a,0x19,0x18,0x19,0x1a,0x1a,0x1a,0x19,0x17,0x16,0x17,0x1a,0x1c,
+0x16,0x18,0x19,0x1a,0x19,0x19,0x19,0x1a,0x1a,0x1d,0x22,0x26,0x2b,0x2f,0x33,0x36,
+0x3b,0x3c,0x39,0x32,0x2b,0x28,0x27,0x26,0x23,0x23,0x23,0x25,0x27,0x27,0x27,0x26,
+0x25,0x24,0x23,0x24,0x24,0x23,0x25,0x27,0x2a,0x2f,0x34,0x35,0x34,0x32,0x32,0x34,
+0x31,0x31,0x30,0x32,0x34,0x38,0x3a,0x3b,0x43,0x41,0x42,0x44,0x45,0x45,0x49,0x4d,
+0x53,0x56,0x58,0x57,0x53,0x51,0x51,0x53,0x51,0x54,0x58,0x5c,0x62,0x67,0x66,0x62,
+0x56,0x46,0x3b,0x35,0x30,0x30,0x30,0x2c,0x2e,0x2f,0x30,0x30,0x2e,0x2e,0x30,0x33,
+0x28,0x29,0x2b,0x2d,0x2e,0x2b,0x25,0x20,0x21,0x22,0x23,0x26,0x29,0x2a,0x27,0x25,
+0x27,0x2d,0x31,0x36,0x41,0x4d,0x4f,0x48,0x42,0x44,0x46,0x46,0x43,0x3f,0x3c,0x3a,
+0x3c,0x3a,0x33,0x34,0x43,0x4d,0x4f,0x51,0x52,0x5c,0x67,0x6b,0x6b,0x6a,0x67,0x64,
+0x54,0x59,0x5c,0x5d,0x63,0x6c,0x71,0x71,0x77,0x7c,0x7f,0x7a,0x72,0x6b,0x65,0x61,
+0x5e,0x57,0x55,0x59,0x61,0x6e,0x70,0x66,0x5a,0x5e,0x59,0x4f,0x4b,0x48,0x4b,0x54,
+0x5c,0x5c,0x5e,0x64,0x6c,0x70,0x6f,0x6d,0x6d,0x6e,0x6e,0x6d,0x6c,0x67,0x5b,0x50,
+0x49,0x45,0x4c,0x53,0x53,0x55,0x5e,0x63,0x61,0x65,0x6b,0x71,0x75,0x78,0x7b,0x7d,
+0x7e,0x81,0x82,0x80,0x7e,0x7e,0x7d,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,
+0x7a,0x79,0x79,0x79,0x7a,0x7c,0x7e,0x7f,0x7e,0x80,0x83,0x84,0x85,0x87,0x89,0x8a,
+0x89,0x89,0x88,0x88,0x86,0x85,0x84,0x83,0x80,0x7f,0x7e,0x7d,0x7d,0x7e,0x7f,0x80,
+0x7f,0x80,0x81,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x84,0x84,
+0x85,0x84,0x83,0x84,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,
+0x89,0x8a,0x8a,0x89,0x86,0x85,0x86,0x88,0x88,0x88,0x88,0x89,0x89,0x89,0x89,0x89,
+0x85,0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,0x83,0x83,0x82,0x82,0x82,
+0x82,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x7e,0x7d,0x7c,0x7c,0x7c,0x7a,0x79,
+0x7a,0x78,0x77,0x76,0x76,0x75,0x74,0x72,0x72,0x71,0x6e,0x6c,0x6a,0x68,0x68,0x68,
+0x65,0x65,0x64,0x63,0x62,0x61,0x60,0x5f,0x60,0x5f,0x5d,0x5b,0x59,0x57,0x56,0x55,
+0x52,0x4d,0x4a,0x4a,0x44,0x40,0x4d,0x5f,0x64,0x67,0x68,0x67,0x6b,0x72,0x74,0x71,
+0x6e,0x66,0x66,0x6e,0x6e,0x65,0x60,0x64,0x64,0x68,0x73,0x7f,0x81,0x7b,0x7b,0x82,
+0x79,0x76,0x6f,0x75,0x72,0x66,0x62,0x5b,0x5c,0x54,0x4c,0x4a,0x4b,0x4d,0x4f,0x51,
+0x4d,0x4a,0x46,0x48,0x50,0x5c,0x68,0x70,0x71,0x6c,0x64,0x5c,0x59,0x5a,0x5b,0x5a,
+0x5c,0x60,0x61,0x59,0x48,0x38,0x32,0x34,0x42,0x42,0x3f,0x3d,0x3f,0x46,0x4b,0x4d,
+0x54,0x4a,0x3b,0x33,0x3c,0x4a,0x4b,0x43,0x3c,0x3d,0x39,0x30,0x2c,0x33,0x43,0x4f,
+0x4d,0x51,0x56,0x5f,0x68,0x62,0x59,0x5a,0x4b,0x47,0x42,0x42,0x4e,0x59,0x54,0x48,
+0x3f,0x3a,0x37,0x48,0x64,0x6f,0x60,0x4f,0x40,0x43,0x52,0x5c,0x54,0x47,0x3f,0x38,
+0x3b,0x2e,0x28,0x32,0x3f,0x46,0x4a,0x4e,0x47,0x36,0x33,0x32,0x30,0x2b,0x22,0x29,
+0x38,0x47,0x4e,0x46,0x3c,0x36,0x3f,0x50,0x51,0x53,0x4b,0x4a,0x52,0x4c,0x41,0x45,
+0x56,0x67,0x66,0x60,0x59,0x3c,0x26,0x2d,0x3e,0x48,0x4d,0x49,0x45,0x46,0x45,0x40,
+0x3d,0x34,0x34,0x45,0x5b,0x66,0x67,0x66,0x60,0x51,0x46,0x44,0x44,0x48,0x47,0x3f,
+0x3e,0x38,0x30,0x2c,0x2d,0x31,0x35,0x37,0x34,0x39,0x3c,0x3a,0x35,0x31,0x32,0x34,
+0x37,0x3b,0x3e,0x3e,0x3b,0x3a,0x3b,0x3e,0x42,0x3d,0x38,0x38,0x3c,0x3d,0x38,0x32,
+0x34,0x34,0x35,0x36,0x36,0x36,0x37,0x38,0x37,0x2e,0x28,0x2a,0x2d,0x2d,0x2e,0x2f,
+0x29,0x2e,0x33,0x36,0x35,0x31,0x2d,0x2b,0x29,0x2a,0x2b,0x2c,0x2c,0x27,0x21,0x1d,
+0x19,0x1a,0x1a,0x19,0x18,0x18,0x18,0x18,0x1a,0x1a,0x1a,0x19,0x17,0x18,0x19,0x1b,
+0x18,0x18,0x19,0x19,0x18,0x18,0x19,0x1a,0x19,0x1d,0x21,0x26,0x2b,0x2f,0x33,0x36,
+0x3a,0x3c,0x39,0x31,0x2a,0x26,0x25,0x24,0x20,0x21,0x23,0x24,0x25,0x25,0x23,0x22,
+0x24,0x25,0x25,0x25,0x23,0x23,0x25,0x28,0x33,0x37,0x3a,0x3b,0x38,0x34,0x33,0x33,
+0x34,0x35,0x37,0x39,0x3b,0x3c,0x3b,0x3a,0x45,0x43,0x43,0x43,0x43,0x44,0x49,0x4f,
+0x55,0x57,0x59,0x58,0x55,0x56,0x59,0x5d,0x59,0x58,0x56,0x55,0x58,0x5c,0x5c,0x59,
+0x4c,0x47,0x46,0x42,0x36,0x2e,0x2c,0x29,0x28,0x2a,0x2d,0x2e,0x2d,0x2e,0x2f,0x30,
+0x2e,0x2c,0x29,0x2a,0x2a,0x29,0x25,0x21,0x1f,0x1f,0x22,0x2a,0x31,0x33,0x2e,0x29,
+0x29,0x2d,0x2e,0x31,0x3d,0x4d,0x50,0x49,0x3f,0x3d,0x3d,0x3e,0x3e,0x3b,0x34,0x2e,
+0x29,0x2b,0x2c,0x36,0x46,0x4c,0x4a,0x4b,0x4f,0x5c,0x69,0x6d,0x6d,0x69,0x62,0x5b,
+0x59,0x5b,0x5a,0x5a,0x66,0x79,0x83,0x82,0x7c,0x7b,0x76,0x6b,0x64,0x64,0x67,0x69,
+0x5e,0x5a,0x5a,0x57,0x53,0x56,0x55,0x4c,0x56,0x5c,0x57,0x4a,0x41,0x3c,0x3e,0x47,
+0x48,0x4b,0x4e,0x4f,0x51,0x55,0x5c,0x62,0x6f,0x6e,0x6b,0x69,0x6c,0x6e,0x68,0x60,
+0x51,0x4b,0x4e,0x55,0x55,0x57,0x5d,0x60,0x62,0x66,0x6d,0x73,0x77,0x7a,0x7d,0x7e,
+0x7e,0x81,0x82,0x81,0x80,0x80,0x80,0x7e,0x7c,0x7d,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7e,0x80,0x81,0x81,0x83,0x86,0x88,0x8a,0x8b,0x8c,0x8d,
+0x8c,0x8c,0x8c,0x8b,0x8a,0x88,0x87,0x86,0x83,0x82,0x80,0x7f,0x7f,0x80,0x81,0x82,
+0x82,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x85,
+0x87,0x86,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x84,0x83,0x83,0x83,0x84,0x85,0x86,
+0x89,0x8a,0x8b,0x8a,0x87,0x86,0x85,0x86,0x87,0x87,0x88,0x88,0x89,0x89,0x89,0x89,
+0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x82,0x82,
+0x83,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x7e,0x7d,0x7c,0x7c,0x7c,0x7b,0x79,0x78,
+0x79,0x77,0x76,0x75,0x75,0x74,0x72,0x70,0x70,0x6f,0x6d,0x6b,0x69,0x68,0x67,0x67,
+0x65,0x65,0x64,0x62,0x61,0x5f,0x5e,0x5e,0x5e,0x5d,0x5c,0x5a,0x58,0x56,0x55,0x54,
+0x53,0x4d,0x49,0x46,0x41,0x43,0x56,0x6c,0x63,0x65,0x62,0x5c,0x5d,0x67,0x6d,0x6e,
+0x65,0x64,0x67,0x6c,0x69,0x5f,0x5a,0x5c,0x69,0x78,0x8c,0x97,0x8d,0x7a,0x70,0x71,
+0x77,0x73,0x69,0x6c,0x6b,0x63,0x64,0x5f,0x54,0x4f,0x47,0x43,0x44,0x48,0x4a,0x4a,
+0x4c,0x47,0x41,0x42,0x4a,0x58,0x65,0x6d,0x78,0x79,0x75,0x6d,0x6a,0x6a,0x64,0x5c,
+0x58,0x57,0x57,0x53,0x48,0x3a,0x37,0x3b,0x3f,0x3a,0x34,0x32,0x36,0x3e,0x45,0x48,
+0x4a,0x47,0x3f,0x37,0x37,0x3c,0x3b,0x34,0x32,0x36,0x38,0x33,0x2e,0x31,0x3b,0x44,
+0x4b,0x51,0x58,0x5d,0x61,0x61,0x64,0x6a,0x58,0x4a,0x3c,0x3b,0x47,0x4e,0x46,0x38,
+0x3f,0x3f,0x39,0x44,0x63,0x6d,0x5e,0x52,0x44,0x46,0x56,0x62,0x58,0x46,0x3c,0x37,
+0x2f,0x28,0x2a,0x38,0x46,0x4a,0x4c,0x50,0x4f,0x3c,0x35,0x32,0x33,0x31,0x29,0x2d,
+0x37,0x47,0x4f,0x49,0x40,0x3b,0x42,0x52,0x52,0x52,0x49,0x46,0x4b,0x4a,0x49,0x51,
+0x56,0x63,0x63,0x5d,0x54,0x3a,0x25,0x2a,0x3f,0x48,0x4c,0x45,0x3d,0x3b,0x3a,0x37,
+0x3b,0x32,0x33,0x45,0x5b,0x66,0x68,0x69,0x62,0x54,0x50,0x54,0x52,0x48,0x36,0x24,
+0x48,0x3e,0x33,0x2c,0x2c,0x30,0x33,0x34,0x35,0x3b,0x40,0x3e,0x36,0x2e,0x2c,0x2c,
+0x3a,0x40,0x46,0x46,0x41,0x3c,0x3b,0x3c,0x44,0x3e,0x39,0x3b,0x40,0x40,0x3a,0x34,
+0x37,0x36,0x35,0x34,0x35,0x34,0x2f,0x2b,0x2a,0x2c,0x2a,0x26,0x26,0x2a,0x2c,0x2a,
+0x2e,0x32,0x37,0x38,0x35,0x2f,0x29,0x25,0x28,0x27,0x25,0x23,0x21,0x1d,0x1a,0x17,
+0x1b,0x1b,0x1a,0x19,0x19,0x18,0x17,0x17,0x18,0x19,0x1a,0x1a,0x19,0x18,0x18,0x18,
+0x1a,0x1a,0x1a,0x18,0x17,0x18,0x19,0x1b,0x1a,0x1e,0x22,0x27,0x2b,0x30,0x34,0x36,
+0x3c,0x3f,0x3d,0x34,0x2c,0x27,0x26,0x25,0x1e,0x20,0x22,0x24,0x24,0x23,0x21,0x20,
+0x22,0x25,0x27,0x26,0x25,0x26,0x28,0x29,0x33,0x37,0x3a,0x3b,0x38,0x34,0x31,0x30,
+0x31,0x31,0x33,0x33,0x34,0x35,0x38,0x39,0x43,0x42,0x41,0x40,0x3f,0x40,0x46,0x4c,
+0x4a,0x4d,0x50,0x52,0x54,0x59,0x60,0x66,0x6a,0x69,0x66,0x62,0x60,0x5f,0x5a,0x55,
+0x48,0x46,0x4b,0x4d,0x43,0x39,0x32,0x2b,0x22,0x24,0x28,0x2a,0x2b,0x2a,0x2a,0x2a,
+0x2e,0x2b,0x28,0x27,0x27,0x26,0x23,0x1f,0x1e,0x1e,0x21,0x29,0x31,0x33,0x2f,0x29,
+0x27,0x2c,0x30,0x33,0x3b,0x44,0x41,0x37,0x37,0x3d,0x42,0x40,0x37,0x30,0x2e,0x2f,
+0x2c,0x2f,0x32,0x3b,0x46,0x48,0x49,0x51,0x5c,0x60,0x61,0x60,0x61,0x63,0x5e,0x55,
+0x52,0x55,0x56,0x58,0x66,0x79,0x81,0x7d,0x80,0x7f,0x77,0x6a,0x5e,0x57,0x56,0x55,
+0x55,0x54,0x57,0x57,0x52,0x50,0x4d,0x44,0x49,0x52,0x51,0x4b,0x4a,0x4c,0x4f,0x56,
+0x6c,0x6c,0x6c,0x6a,0x68,0x67,0x69,0x6c,0x6c,0x6f,0x70,0x6e,0x70,0x71,0x6b,0x61,
+0x51,0x47,0x48,0x52,0x57,0x5b,0x60,0x60,0x63,0x67,0x6e,0x74,0x78,0x7b,0x7d,0x7f,
+0x7d,0x80,0x82,0x81,0x81,0x83,0x83,0x82,0x81,0x82,0x83,0x83,0x83,0x82,0x81,0x80,
+0x7d,0x7d,0x7d,0x7d,0x7f,0x81,0x83,0x84,0x86,0x88,0x8b,0x8d,0x8d,0x8e,0x8f,0x90,
+0x90,0x90,0x90,0x8f,0x8e,0x8c,0x8b,0x8b,0x8a,0x89,0x87,0x85,0x84,0x84,0x85,0x85,
+0x86,0x86,0x87,0x87,0x87,0x87,0x86,0x86,0x89,0x89,0x88,0x88,0x88,0x88,0x88,0x88,
+0x8a,0x89,0x87,0x87,0x88,0x88,0x88,0x87,0x85,0x84,0x84,0x83,0x84,0x84,0x85,0x86,
+0x87,0x89,0x8a,0x8b,0x89,0x86,0x84,0x82,0x82,0x83,0x84,0x85,0x85,0x85,0x85,0x85,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x84,0x83,0x83,
+0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7d,0x7c,0x7b,0x7b,0x7b,0x7a,0x78,0x77,
+0x77,0x76,0x75,0x74,0x74,0x73,0x70,0x6f,0x6f,0x6e,0x6c,0x6b,0x69,0x68,0x67,0x67,
+0x66,0x65,0x64,0x62,0x60,0x5f,0x5d,0x5d,0x5c,0x5b,0x5a,0x58,0x56,0x54,0x53,0x52,
+0x52,0x4d,0x49,0x46,0x41,0x44,0x57,0x6c,0x5c,0x5f,0x5f,0x5a,0x5a,0x60,0x64,0x64,
+0x5a,0x62,0x68,0x67,0x62,0x60,0x60,0x61,0x68,0x72,0x7c,0x80,0x7e,0x7a,0x76,0x74,
+0x75,0x72,0x67,0x68,0x68,0x63,0x65,0x60,0x4f,0x4b,0x44,0x3e,0x3d,0x40,0x42,0x43,
+0x45,0x47,0x4b,0x51,0x56,0x56,0x53,0x4f,0x52,0x5d,0x6a,0x75,0x7e,0x7f,0x74,0x65,
+0x5b,0x50,0x45,0x40,0x3c,0x39,0x3d,0x43,0x43,0x3a,0x31,0x2e,0x33,0x3a,0x3f,0x41,
+0x41,0x44,0x45,0x43,0x42,0x40,0x38,0x2f,0x33,0x36,0x37,0x35,0x30,0x2d,0x31,0x36,
+0x41,0x41,0x43,0x47,0x51,0x61,0x6f,0x75,0x61,0x49,0x36,0x3c,0x48,0x49,0x3e,0x35,
+0x39,0x3a,0x38,0x49,0x6b,0x75,0x65,0x59,0x41,0x43,0x53,0x62,0x5b,0x4b,0x41,0x3b,
+0x27,0x23,0x2a,0x3c,0x4a,0x4d,0x4d,0x50,0x4a,0x38,0x33,0x31,0x35,0x36,0x2d,0x30,
+0x3f,0x4c,0x52,0x4e,0x49,0x45,0x4a,0x56,0x52,0x50,0x49,0x44,0x43,0x44,0x4a,0x55,
+0x5a,0x5f,0x5c,0x56,0x4e,0x3b,0x2f,0x35,0x43,0x46,0x42,0x34,0x29,0x2a,0x30,0x35,
+0x25,0x23,0x2b,0x3f,0x51,0x56,0x53,0x4f,0x2c,0x23,0x2a,0x3f,0x49,0x46,0x39,0x2a,
+0x50,0x45,0x38,0x30,0x2f,0x31,0x32,0x32,0x32,0x38,0x3e,0x3c,0x35,0x2e,0x2b,0x2b,
+0x35,0x3b,0x41,0x41,0x3d,0x3a,0x3b,0x3d,0x44,0x3e,0x3b,0x3d,0x41,0x40,0x3d,0x3a,
+0x3e,0x3b,0x36,0x30,0x2e,0x2e,0x2a,0x26,0x2a,0x31,0x31,0x29,0x25,0x28,0x29,0x27,
+0x2f,0x32,0x35,0x36,0x32,0x2d,0x27,0x24,0x26,0x25,0x22,0x1f,0x1d,0x1c,0x1b,0x1b,
+0x1d,0x1c,0x1b,0x1a,0x1a,0x1a,0x19,0x18,0x16,0x18,0x1a,0x1b,0x1a,0x18,0x16,0x16,
+0x1a,0x1b,0x1b,0x1a,0x19,0x19,0x1a,0x1c,0x1c,0x1f,0x24,0x28,0x2c,0x30,0x34,0x36,
+0x3c,0x3f,0x3d,0x34,0x2b,0x25,0x24,0x23,0x1e,0x20,0x22,0x23,0x22,0x20,0x1f,0x1f,
+0x21,0x24,0x26,0x25,0x26,0x29,0x2a,0x2a,0x2d,0x30,0x33,0x34,0x32,0x30,0x2e,0x2d,
+0x2f,0x2f,0x2e,0x2b,0x29,0x2d,0x36,0x3d,0x42,0x41,0x40,0x40,0x3e,0x3f,0x45,0x4c,
+0x52,0x54,0x55,0x54,0x52,0x53,0x57,0x5b,0x60,0x61,0x62,0x62,0x62,0x61,0x5b,0x55,
+0x4c,0x41,0x3f,0x45,0x47,0x43,0x39,0x2b,0x23,0x25,0x28,0x2a,0x2b,0x2a,0x29,0x28,
+0x27,0x27,0x27,0x28,0x28,0x25,0x1f,0x1a,0x21,0x20,0x21,0x26,0x2c,0x2e,0x2c,0x28,
+0x29,0x2b,0x2c,0x2e,0x34,0x3b,0x3e,0x3d,0x40,0x41,0x41,0x3f,0x3a,0x35,0x32,0x30,
+0x2e,0x2f,0x2f,0x34,0x3c,0x40,0x4d,0x61,0x72,0x78,0x73,0x61,0x52,0x51,0x54,0x55,
+0x59,0x58,0x56,0x59,0x66,0x77,0x81,0x83,0x83,0x81,0x77,0x68,0x5a,0x52,0x50,0x4f,
+0x53,0x4e,0x50,0x58,0x5c,0x5e,0x59,0x4d,0x46,0x50,0x51,0x50,0x57,0x5e,0x62,0x67,
+0x62,0x61,0x62,0x6a,0x73,0x77,0x74,0x6f,0x7c,0x7f,0x7b,0x71,0x6c,0x6e,0x6c,0x66,
+0x56,0x49,0x48,0x52,0x59,0x5e,0x61,0x5e,0x65,0x69,0x6f,0x74,0x78,0x7b,0x7e,0x7f,
+0x7d,0x81,0x83,0x82,0x82,0x85,0x86,0x85,0x84,0x85,0x85,0x86,0x86,0x85,0x84,0x83,
+0x81,0x80,0x80,0x81,0x82,0x84,0x87,0x88,0x8a,0x8c,0x8e,0x90,0x90,0x91,0x92,0x94,
+0x95,0x95,0x95,0x94,0x93,0x92,0x91,0x91,0x92,0x91,0x90,0x8e,0x8d,0x8c,0x8b,0x8b,
+0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x89,0x89,0x88,0x87,0x87,0x87,0x88,0x88,
+0x8c,0x8a,0x88,0x87,0x88,0x89,0x88,0x88,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,
+0x87,0x88,0x89,0x8a,0x88,0x86,0x83,0x81,0x81,0x82,0x83,0x84,0x85,0x85,0x85,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x84,0x84,0x84,0x85,0x85,0x84,0x84,0x84,
+0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x77,0x75,
+0x76,0x75,0x74,0x74,0x74,0x72,0x70,0x6e,0x6d,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,
+0x66,0x65,0x63,0x62,0x5f,0x5e,0x5c,0x5b,0x5a,0x59,0x58,0x56,0x54,0x52,0x50,0x50,
+0x4e,0x4c,0x4a,0x47,0x42,0x42,0x4f,0x5f,0x4d,0x52,0x58,0x5c,0x5c,0x58,0x53,0x50,
+0x57,0x5f,0x64,0x60,0x5c,0x60,0x65,0x67,0x69,0x66,0x65,0x69,0x75,0x7e,0x7d,0x77,
+0x72,0x72,0x6a,0x6c,0x6c,0x65,0x63,0x5b,0x53,0x4e,0x49,0x44,0x40,0x3d,0x3e,0x42,
+0x48,0x45,0x44,0x47,0x4c,0x50,0x50,0x4f,0x52,0x59,0x64,0x72,0x7f,0x85,0x80,0x78,
+0x77,0x65,0x4e,0x42,0x3f,0x41,0x45,0x48,0x47,0x3e,0x35,0x33,0x35,0x38,0x3a,0x3c,
+0x40,0x43,0x47,0x4c,0x4f,0x4d,0x43,0x38,0x38,0x37,0x37,0x39,0x37,0x35,0x34,0x36,
+0x33,0x2f,0x36,0x44,0x58,0x6e,0x76,0x6e,0x5f,0x47,0x3b,0x47,0x54,0x52,0x48,0x44,
+0x40,0x3f,0x43,0x59,0x72,0x72,0x5d,0x4c,0x38,0x3b,0x4b,0x5b,0x5b,0x52,0x47,0x3d,
+0x23,0x1f,0x25,0x37,0x46,0x49,0x4a,0x4c,0x41,0x37,0x38,0x38,0x39,0x39,0x31,0x35,
+0x46,0x50,0x52,0x4e,0x4a,0x47,0x4a,0x54,0x4e,0x4b,0x47,0x42,0x3e,0x3e,0x45,0x4d,
+0x56,0x5b,0x5b,0x57,0x4b,0x37,0x2c,0x30,0x40,0x43,0x41,0x37,0x2e,0x2b,0x2b,0x2c,
+0x23,0x2e,0x3f,0x52,0x5e,0x5d,0x54,0x4c,0x3a,0x2b,0x2c,0x3c,0x45,0x43,0x3d,0x36,
+0x4a,0x42,0x38,0x32,0x31,0x33,0x34,0x33,0x30,0x34,0x37,0x36,0x31,0x2d,0x2c,0x2e,
+0x2e,0x33,0x37,0x38,0x35,0x33,0x36,0x39,0x40,0x3a,0x37,0x3a,0x3c,0x3c,0x3d,0x3f,
+0x44,0x44,0x3e,0x34,0x2d,0x2b,0x2b,0x29,0x2c,0x2e,0x2e,0x2b,0x27,0x27,0x29,0x2b,
+0x2c,0x2e,0x30,0x2f,0x2e,0x2b,0x2a,0x29,0x2c,0x2a,0x27,0x23,0x1f,0x1d,0x1d,0x1d,
+0x1c,0x1a,0x19,0x19,0x1a,0x1a,0x19,0x18,0x17,0x18,0x19,0x19,0x18,0x16,0x16,0x16,
+0x18,0x1b,0x1d,0x1e,0x1e,0x1c,0x1b,0x1b,0x1d,0x20,0x24,0x28,0x2c,0x2f,0x33,0x35,
+0x38,0x3b,0x3a,0x31,0x26,0x20,0x1f,0x1e,0x1d,0x1f,0x21,0x21,0x1f,0x1e,0x1d,0x1e,
+0x20,0x21,0x21,0x21,0x24,0x2a,0x2c,0x2b,0x2e,0x2e,0x2f,0x2e,0x2e,0x2e,0x2e,0x2e,
+0x30,0x32,0x32,0x2d,0x28,0x29,0x33,0x3b,0x3b,0x3b,0x3b,0x3c,0x3a,0x3b,0x42,0x4a,
+0x5c,0x5e,0x5e,0x5b,0x56,0x54,0x56,0x58,0x59,0x59,0x58,0x58,0x5a,0x5d,0x5c,0x59,
+0x4f,0x3f,0x37,0x3b,0x3e,0x3e,0x35,0x28,0x27,0x27,0x27,0x27,0x28,0x28,0x27,0x27,
+0x23,0x25,0x28,0x2a,0x29,0x24,0x1f,0x1a,0x24,0x23,0x23,0x25,0x29,0x2c,0x2e,0x2f,
+0x30,0x2c,0x29,0x2a,0x2b,0x31,0x3c,0x46,0x47,0x40,0x38,0x37,0x3a,0x3b,0x37,0x32,
+0x37,0x35,0x32,0x34,0x3a,0x40,0x54,0x70,0x8b,0x91,0x8d,0x79,0x64,0x58,0x4f,0x46,
+0x46,0x43,0x43,0x47,0x52,0x60,0x6c,0x73,0x7a,0x78,0x6f,0x61,0x56,0x54,0x57,0x5a,
+0x52,0x48,0x48,0x4f,0x55,0x59,0x55,0x4b,0x53,0x59,0x54,0x4a,0x4b,0x4d,0x4d,0x4e,
+0x3b,0x3c,0x41,0x4e,0x5f,0x6a,0x6c,0x6a,0x7f,0x83,0x7d,0x6c,0x62,0x64,0x68,0x67,
+0x5c,0x50,0x4e,0x55,0x5a,0x5d,0x60,0x5e,0x68,0x6c,0x70,0x75,0x78,0x7b,0x7e,0x80,
+0x80,0x84,0x85,0x84,0x84,0x86,0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x87,0x86,0x86,
+0x84,0x84,0x84,0x85,0x86,0x88,0x8b,0x8c,0x8e,0x8f,0x90,0x91,0x92,0x94,0x96,0x98,
+0x99,0x9a,0x9a,0x9a,0x99,0x99,0x98,0x98,0x98,0x98,0x98,0x97,0x96,0x95,0x93,0x92,
+0x92,0x92,0x92,0x92,0x91,0x90,0x8f,0x8e,0x8a,0x8a,0x89,0x88,0x88,0x88,0x88,0x89,
+0x8c,0x8a,0x88,0x87,0x87,0x88,0x88,0x88,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,
+0x89,0x88,0x87,0x86,0x85,0x84,0x82,0x81,0x82,0x83,0x84,0x86,0x87,0x87,0x86,0x86,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x83,
+0x81,0x81,0x80,0x80,0x7f,0x7e,0x7e,0x7d,0x7b,0x7b,0x7a,0x7b,0x7a,0x79,0x77,0x75,
+0x74,0x74,0x74,0x74,0x74,0x73,0x70,0x6e,0x6d,0x6c,0x6c,0x6b,0x6a,0x69,0x68,0x68,
+0x65,0x64,0x62,0x60,0x5e,0x5c,0x5a,0x59,0x58,0x57,0x56,0x54,0x52,0x50,0x4f,0x4e,
+0x4c,0x4a,0x48,0x45,0x40,0x40,0x4a,0x56,0x4f,0x51,0x59,0x63,0x61,0x54,0x49,0x45,
+0x4b,0x4f,0x56,0x5d,0x61,0x64,0x68,0x6c,0x73,0x6d,0x69,0x6c,0x6d,0x67,0x60,0x5c,
+0x68,0x6a,0x63,0x65,0x63,0x5a,0x55,0x4a,0x49,0x4e,0x59,0x61,0x5a,0x48,0x3c,0x3c,
+0x40,0x3b,0x37,0x39,0x44,0x50,0x59,0x5e,0x6d,0x69,0x66,0x68,0x6d,0x70,0x73,0x75,
+0x69,0x5d,0x4f,0x47,0x4a,0x4f,0x4f,0x4a,0x42,0x3d,0x39,0x37,0x34,0x32,0x34,0x38,
+0x37,0x3c,0x41,0x43,0x42,0x42,0x41,0x40,0x3a,0x34,0x30,0x33,0x35,0x33,0x30,0x2e,
+0x2b,0x2d,0x3a,0x49,0x56,0x66,0x67,0x56,0x4c,0x40,0x3b,0x44,0x4e,0x4e,0x4b,0x4a,
+0x52,0x4b,0x56,0x6e,0x79,0x6e,0x59,0x46,0x34,0x36,0x44,0x54,0x58,0x54,0x48,0x38,
+0x20,0x1b,0x22,0x35,0x45,0x49,0x47,0x48,0x49,0x48,0x52,0x4f,0x47,0x3f,0x38,0x3e,
+0x45,0x4e,0x4e,0x49,0x45,0x41,0x45,0x50,0x4d,0x45,0x40,0x3f,0x3c,0x3e,0x45,0x49,
+0x4f,0x54,0x56,0x4f,0x3e,0x2d,0x2b,0x34,0x45,0x48,0x4a,0x48,0x43,0x37,0x28,0x1c,
+0x20,0x32,0x46,0x52,0x57,0x58,0x52,0x4a,0x38,0x2e,0x36,0x49,0x4b,0x3d,0x2f,0x25,
+0x3f,0x39,0x33,0x30,0x32,0x34,0x35,0x35,0x36,0x37,0x36,0x31,0x2b,0x28,0x28,0x2a,
+0x2c,0x31,0x35,0x35,0x32,0x30,0x31,0x33,0x33,0x2f,0x2d,0x31,0x34,0x38,0x3e,0x45,
+0x46,0x4a,0x47,0x3c,0x31,0x2d,0x2d,0x2d,0x29,0x25,0x25,0x29,0x29,0x26,0x2a,0x32,
+0x32,0x32,0x30,0x2e,0x2c,0x2b,0x2c,0x2e,0x32,0x30,0x2b,0x25,0x1f,0x1b,0x19,0x18,
+0x18,0x17,0x16,0x17,0x19,0x19,0x18,0x17,0x18,0x18,0x18,0x17,0x16,0x15,0x16,0x17,
+0x16,0x1a,0x1f,0x22,0x21,0x1e,0x1c,0x1a,0x1d,0x20,0x24,0x28,0x2b,0x2f,0x32,0x34,
+0x37,0x3a,0x39,0x30,0x25,0x1f,0x1d,0x1d,0x1c,0x1e,0x20,0x1f,0x1d,0x1c,0x1c,0x1d,
+0x1f,0x1f,0x1d,0x1c,0x21,0x29,0x2d,0x2c,0x35,0x33,0x31,0x2e,0x2d,0x2e,0x30,0x32,
+0x30,0x35,0x38,0x33,0x2b,0x27,0x2c,0x33,0x2f,0x30,0x32,0x33,0x32,0x34,0x3b,0x43,
+0x51,0x55,0x5a,0x5d,0x5e,0x61,0x66,0x6b,0x70,0x6a,0x61,0x59,0x59,0x5e,0x61,0x61,
+0x51,0x43,0x3c,0x3b,0x37,0x34,0x2f,0x27,0x25,0x23,0x21,0x20,0x20,0x21,0x21,0x22,
+0x24,0x27,0x2a,0x2b,0x28,0x25,0x21,0x1f,0x23,0x23,0x23,0x24,0x27,0x2c,0x32,0x37,
+0x32,0x2e,0x2e,0x2e,0x29,0x25,0x2b,0x36,0x3c,0x3a,0x37,0x33,0x30,0x31,0x37,0x3c,
+0x37,0x37,0x38,0x40,0x4c,0x57,0x72,0x92,0xab,0xa6,0x9e,0x99,0x99,0x8b,0x62,0x3a,
+0x35,0x39,0x42,0x4f,0x58,0x5e,0x63,0x67,0x6b,0x6c,0x69,0x60,0x59,0x58,0x59,0x5b,
+0x57,0x4e,0x4d,0x50,0x4f,0x52,0x54,0x4f,0x63,0x68,0x62,0x56,0x55,0x58,0x59,0x5b,
+0x64,0x62,0x5f,0x5c,0x59,0x59,0x5a,0x5c,0x66,0x71,0x74,0x67,0x5c,0x5b,0x5b,0x59,
+0x58,0x4e,0x4e,0x56,0x58,0x5c,0x61,0x61,0x6b,0x6d,0x71,0x75,0x78,0x7c,0x7f,0x81,
+0x83,0x86,0x87,0x86,0x85,0x87,0x88,0x87,0x8b,0x8c,0x8c,0x8d,0x8d,0x8c,0x8b,0x8a,
+0x87,0x87,0x87,0x87,0x89,0x8b,0x8e,0x8f,0x8f,0x90,0x91,0x92,0x93,0x95,0x98,0x9b,
+0x9c,0x9d,0x9d,0x9d,0x9d,0x9d,0x9c,0x9c,0x9b,0x9b,0x9c,0x9c,0x9c,0x9a,0x99,0x98,
+0x96,0x96,0x96,0x95,0x94,0x93,0x92,0x92,0x8f,0x8f,0x8e,0x8d,0x8c,0x8d,0x8d,0x8e,
+0x8b,0x89,0x87,0x86,0x87,0x87,0x87,0x87,0x85,0x85,0x86,0x87,0x87,0x87,0x86,0x86,
+0x8b,0x89,0x85,0x83,0x83,0x83,0x83,0x83,0x80,0x81,0x83,0x84,0x85,0x85,0x84,0x84,
+0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x84,0x83,0x83,0x83,
+0x83,0x83,0x82,0x82,0x81,0x80,0x7f,0x7f,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x76,0x74,
+0x74,0x73,0x73,0x74,0x74,0x73,0x71,0x6f,0x6c,0x6c,0x6c,0x6b,0x6b,0x6a,0x69,0x68,
+0x64,0x63,0x61,0x5f,0x5d,0x5b,0x59,0x58,0x57,0x56,0x55,0x53,0x51,0x4f,0x4d,0x4d,
+0x4d,0x49,0x44,0x40,0x3d,0x3f,0x4a,0x56,0x54,0x51,0x56,0x5f,0x5b,0x4a,0x3d,0x3b,
+0x35,0x38,0x46,0x5d,0x6b,0x6d,0x6f,0x75,0x74,0x72,0x76,0x7a,0x6d,0x5b,0x58,0x63,
+0x6b,0x6c,0x63,0x63,0x5f,0x56,0x52,0x47,0x43,0x45,0x4d,0x55,0x4d,0x3c,0x36,0x3c,
+0x38,0x3d,0x48,0x57,0x64,0x69,0x67,0x63,0x59,0x53,0x4f,0x4f,0x4b,0x46,0x47,0x4d,
+0x51,0x51,0x4e,0x4d,0x51,0x54,0x4a,0x3d,0x39,0x39,0x39,0x37,0x30,0x2a,0x2d,0x34,
+0x35,0x40,0x47,0x40,0x35,0x34,0x41,0x4f,0x49,0x3e,0x35,0x35,0x36,0x31,0x29,0x24,
+0x2d,0x30,0x3b,0x3c,0x38,0x43,0x4c,0x42,0x45,0x42,0x3f,0x41,0x45,0x4a,0x4d,0x4e,
+0x48,0x3e,0x4f,0x6c,0x71,0x68,0x5a,0x4c,0x36,0x38,0x42,0x4f,0x55,0x54,0x45,0x30,
+0x1e,0x1b,0x24,0x3b,0x4d,0x4f,0x4b,0x49,0x4a,0x50,0x5f,0x58,0x46,0x38,0x30,0x39,
+0x42,0x4b,0x4c,0x46,0x41,0x3e,0x44,0x51,0x4f,0x42,0x3b,0x3a,0x3b,0x42,0x4b,0x4d,
+0x50,0x50,0x4a,0x3c,0x2a,0x25,0x38,0x50,0x63,0x60,0x5c,0x5b,0x57,0x49,0x34,0x22,
+0x26,0x3a,0x4a,0x4e,0x50,0x56,0x57,0x53,0x47,0x3a,0x3e,0x4c,0x4a,0x3b,0x30,0x2a,
+0x34,0x2f,0x2e,0x32,0x31,0x2d,0x2e,0x33,0x37,0x33,0x2f,0x2d,0x2a,0x26,0x29,0x2f,
+0x2b,0x2f,0x2e,0x28,0x28,0x2d,0x2e,0x2b,0x2c,0x2e,0x33,0x33,0x2e,0x2b,0x32,0x3c,
+0x41,0x42,0x3d,0x32,0x2a,0x2a,0x2d,0x2e,0x28,0x26,0x25,0x26,0x28,0x2a,0x2c,0x2d,
+0x2e,0x2c,0x2c,0x2d,0x2c,0x2a,0x2d,0x33,0x31,0x35,0x37,0x31,0x25,0x1c,0x1a,0x1b,
+0x20,0x1e,0x1a,0x1a,0x1b,0x1b,0x1a,0x19,0x17,0x17,0x17,0x18,0x18,0x19,0x1a,0x1a,
+0x18,0x1a,0x1e,0x20,0x1f,0x1e,0x1d,0x1d,0x22,0x20,0x21,0x25,0x29,0x2b,0x2e,0x31,
+0x37,0x39,0x3a,0x35,0x2b,0x23,0x1e,0x1d,0x1b,0x1c,0x1d,0x1d,0x1c,0x1c,0x1c,0x1c,
+0x1d,0x1f,0x21,0x21,0x21,0x23,0x28,0x2d,0x34,0x36,0x37,0x36,0x33,0x31,0x31,0x33,
+0x2e,0x31,0x34,0x33,0x2f,0x2c,0x2c,0x2e,0x2a,0x2b,0x2a,0x28,0x29,0x2f,0x39,0x42,
+0x4a,0x50,0x53,0x54,0x58,0x60,0x66,0x68,0x6f,0x72,0x6f,0x65,0x62,0x67,0x6b,0x6a,
+0x5a,0x40,0x2f,0x2e,0x2d,0x2a,0x26,0x1f,0x22,0x22,0x22,0x22,0x21,0x22,0x24,0x25,
+0x23,0x25,0x28,0x2a,0x27,0x22,0x20,0x21,0x22,0x24,0x26,0x27,0x28,0x2d,0x34,0x3a,
+0x39,0x39,0x3c,0x3d,0x36,0x2c,0x2e,0x36,0x30,0x2f,0x2f,0x30,0x33,0x36,0x38,0x39,
+0x34,0x39,0x42,0x4a,0x4f,0x57,0x6b,0x7e,0x9c,0xab,0xa5,0xb0,0xcd,0xc3,0x83,0x3c,
+0x34,0x35,0x3a,0x43,0x4b,0x50,0x51,0x51,0x54,0x61,0x61,0x56,0x56,0x5d,0x62,0x67,
+0x60,0x5a,0x53,0x4f,0x50,0x53,0x55,0x56,0x63,0x65,0x65,0x5d,0x53,0x4f,0x53,0x58,
+0x66,0x68,0x68,0x68,0x6e,0x73,0x70,0x68,0x66,0x61,0x65,0x72,0x77,0x6f,0x64,0x60,
+0x5d,0x4f,0x50,0x5d,0x5e,0x5b,0x60,0x67,0x6e,0x6f,0x72,0x77,0x7b,0x7e,0x7f,0x7f,
+0x84,0x85,0x87,0x87,0x86,0x86,0x88,0x8a,0x8a,0x8b,0x8c,0x8d,0x8d,0x8e,0x8e,0x8e,
+0x8c,0x8a,0x8b,0x8d,0x8d,0x8a,0x8d,0x92,0x93,0x93,0x94,0x95,0x97,0x98,0x9a,0x9b,
+0xa0,0xa0,0xa0,0x9f,0x9f,0x9f,0x9f,0x9e,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9c,
+0x9b,0x9a,0x98,0x95,0x93,0x92,0x92,0x93,0x90,0x8e,0x8c,0x8c,0x8e,0x8f,0x8e,0x8d,
+0x8b,0x8a,0x89,0x8a,0x8b,0x8a,0x89,0x88,0x84,0x85,0x85,0x85,0x86,0x87,0x87,0x87,
+0x89,0x88,0x87,0x86,0x85,0x83,0x82,0x82,0x81,0x82,0x83,0x85,0x86,0x86,0x84,0x83,
+0x85,0x86,0x86,0x85,0x83,0x82,0x84,0x86,0x85,0x85,0x84,0x84,0x84,0x84,0x85,0x85,
+0x81,0x81,0x81,0x80,0x7f,0x7e,0x7e,0x7d,0x7b,0x7a,0x78,0x78,0x79,0x78,0x76,0x74,
+0x74,0x75,0x75,0x76,0x75,0x73,0x71,0x70,0x6d,0x6c,0x6a,0x69,0x68,0x67,0x66,0x64,
+0x64,0x63,0x60,0x5c,0x5b,0x5c,0x5b,0x58,0x57,0x55,0x53,0x50,0x4f,0x4e,0x4f,0x4f,
+0x52,0x4a,0x41,0x3c,0x3b,0x3e,0x45,0x4b,0x4d,0x4e,0x51,0x51,0x4b,0x43,0x40,0x42,
+0x3b,0x48,0x5f,0x70,0x70,0x63,0x5b,0x5c,0x62,0x6f,0x6d,0x66,0x61,0x4f,0x4a,0x5e,
+0x77,0x6a,0x5f,0x60,0x67,0x65,0x56,0x46,0x3e,0x3e,0x3b,0x3d,0x41,0x3c,0x35,0x37,
+0x2b,0x35,0x3f,0x50,0x65,0x6c,0x63,0x5c,0x4a,0x44,0x41,0x42,0x40,0x3b,0x3a,0x3d,
+0x4a,0x44,0x43,0x49,0x4d,0x48,0x40,0x3a,0x3b,0x34,0x2f,0x2f,0x2e,0x2b,0x29,0x2a,
+0x25,0x28,0x2f,0x39,0x41,0x49,0x52,0x5a,0x45,0x3e,0x36,0x30,0x2d,0x2a,0x25,0x21,
+0x2a,0x38,0x3f,0x40,0x43,0x42,0x40,0x41,0x49,0x45,0x48,0x3f,0x4e,0x4e,0x50,0x42,
+0x2a,0x36,0x58,0x74,0x70,0x60,0x4d,0x38,0x27,0x1e,0x2d,0x4c,0x58,0x50,0x45,0x3e,
+0x2f,0x26,0x2c,0x3c,0x45,0x4a,0x4d,0x4c,0x4e,0x51,0x4e,0x43,0x39,0x37,0x39,0x3b,
+0x4e,0x57,0x57,0x4b,0x41,0x41,0x45,0x44,0x48,0x41,0x43,0x42,0x3b,0x40,0x44,0x3b,
+0x3a,0x45,0x4a,0x3d,0x2a,0x2a,0x46,0x63,0x6c,0x59,0x47,0x43,0x47,0x44,0x35,0x26,
+0x31,0x3e,0x50,0x5a,0x5c,0x5e,0x57,0x46,0x28,0x2f,0x44,0x51,0x4c,0x47,0x40,0x31,
+0x37,0x2d,0x26,0x26,0x27,0x25,0x26,0x2a,0x33,0x2f,0x2b,0x29,0x24,0x22,0x25,0x2b,
+0x29,0x31,0x34,0x2f,0x2c,0x2e,0x2f,0x2c,0x2f,0x30,0x32,0x33,0x31,0x2e,0x32,0x38,
+0x39,0x36,0x30,0x29,0x28,0x2b,0x2c,0x29,0x2b,0x29,0x27,0x27,0x28,0x29,0x2a,0x2a,
+0x26,0x24,0x25,0x28,0x29,0x29,0x2d,0x32,0x2e,0x30,0x30,0x2d,0x27,0x24,0x25,0x28,
+0x26,0x22,0x1d,0x1b,0x1a,0x19,0x18,0x16,0x17,0x17,0x16,0x16,0x17,0x17,0x18,0x18,
+0x15,0x18,0x1b,0x1d,0x1c,0x1b,0x19,0x18,0x1e,0x1d,0x1f,0x25,0x2a,0x2e,0x31,0x34,
+0x3b,0x3c,0x3b,0x36,0x2e,0x26,0x22,0x20,0x1e,0x1e,0x1d,0x1c,0x1b,0x1b,0x1c,0x1c,
+0x1e,0x1e,0x1e,0x1e,0x1e,0x22,0x29,0x2f,0x37,0x37,0x37,0x36,0x35,0x32,0x2f,0x2c,
+0x2e,0x2f,0x31,0x31,0x30,0x2e,0x2c,0x2b,0x29,0x2a,0x2b,0x2b,0x2e,0x35,0x3f,0x46,
+0x44,0x47,0x47,0x45,0x48,0x51,0x59,0x5c,0x5b,0x61,0x63,0x61,0x61,0x65,0x64,0x5f,
+0x50,0x3a,0x2c,0x2a,0x26,0x23,0x22,0x20,0x21,0x22,0x22,0x21,0x20,0x20,0x21,0x22,
+0x25,0x24,0x26,0x27,0x24,0x20,0x20,0x22,0x23,0x24,0x25,0x25,0x25,0x27,0x2c,0x31,
+0x39,0x3b,0x40,0x42,0x3b,0x31,0x31,0x38,0x28,0x29,0x2d,0x33,0x39,0x3c,0x3d,0x3b,
+0x3d,0x40,0x46,0x4d,0x51,0x56,0x62,0x6e,0x7c,0x9a,0xa3,0xa9,0xaf,0xa2,0x7b,0x49,
+0x44,0x42,0x40,0x41,0x43,0x45,0x4a,0x4e,0x63,0x67,0x5d,0x50,0x4f,0x56,0x5d,0x64,
+0x65,0x5f,0x57,0x52,0x51,0x51,0x52,0x52,0x55,0x58,0x58,0x50,0x45,0x3f,0x42,0x46,
+0x45,0x4a,0x50,0x54,0x5a,0x64,0x6c,0x70,0x6e,0x69,0x69,0x71,0x7d,0x80,0x77,0x6c,
+0x5c,0x51,0x54,0x5f,0x5f,0x5e,0x63,0x68,0x6d,0x6f,0x72,0x75,0x78,0x7b,0x7d,0x7f,
+0x84,0x85,0x86,0x87,0x87,0x88,0x8a,0x8b,0x8d,0x8d,0x8e,0x8f,0x8f,0x90,0x90,0x90,
+0x8d,0x8c,0x8d,0x8f,0x8e,0x8c,0x8f,0x93,0x92,0x93,0x94,0x96,0x98,0x9b,0x9c,0x9d,
+0x9f,0xa0,0xa0,0x9f,0x9f,0x9e,0x9d,0x9d,0x9a,0x9a,0x99,0x98,0x98,0x98,0x98,0x98,
+0x99,0x99,0x99,0x97,0x94,0x92,0x91,0x91,0x92,0x90,0x8e,0x8d,0x8d,0x8d,0x8c,0x8a,
+0x8a,0x8a,0x89,0x89,0x8a,0x89,0x88,0x87,0x83,0x84,0x84,0x84,0x85,0x85,0x86,0x86,
+0x88,0x87,0x87,0x86,0x85,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x85,0x84,0x83,
+0x84,0x85,0x85,0x84,0x83,0x83,0x84,0x86,0x84,0x84,0x83,0x83,0x83,0x83,0x84,0x84,
+0x82,0x81,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7c,0x7b,0x79,0x79,0x79,0x78,0x76,0x74,
+0x75,0x74,0x74,0x73,0x72,0x71,0x70,0x70,0x6c,0x6b,0x69,0x68,0x68,0x66,0x65,0x63,
+0x63,0x63,0x60,0x5c,0x5b,0x5c,0x5a,0x57,0x57,0x55,0x52,0x50,0x4e,0x4e,0x4e,0x4e,
+0x4d,0x48,0x43,0x40,0x3f,0x3f,0x42,0x46,0x41,0x41,0x43,0x47,0x4b,0x4d,0x4b,0x48,
+0x45,0x41,0x48,0x58,0x64,0x60,0x54,0x4d,0x52,0x5c,0x5e,0x5f,0x5e,0x51,0x4c,0x58,
+0x77,0x78,0x72,0x68,0x64,0x62,0x5a,0x4f,0x52,0x4c,0x3f,0x37,0x39,0x35,0x2e,0x2e,
+0x2e,0x3d,0x48,0x50,0x5b,0x62,0x67,0x6d,0x6d,0x69,0x65,0x65,0x64,0x61,0x5e,0x5d,
+0x46,0x41,0x3e,0x41,0x44,0x43,0x3d,0x38,0x31,0x2f,0x2e,0x31,0x31,0x30,0x33,0x37,
+0x42,0x39,0x37,0x3d,0x3e,0x3b,0x40,0x4a,0x52,0x48,0x3a,0x2f,0x2a,0x2a,0x2a,0x2b,
+0x34,0x3e,0x3f,0x39,0x36,0x33,0x34,0x39,0x45,0x41,0x43,0x3c,0x4c,0x50,0x54,0x4a,
+0x39,0x3f,0x54,0x64,0x5c,0x4e,0x3c,0x28,0x29,0x30,0x44,0x55,0x57,0x55,0x51,0x4a,
+0x3c,0x2b,0x2b,0x3b,0x46,0x4b,0x4e,0x4e,0x4f,0x49,0x3d,0x33,0x33,0x3e,0x49,0x4e,
+0x4d,0x4f,0x48,0x3b,0x32,0x36,0x3f,0x45,0x4d,0x49,0x49,0x41,0x34,0x37,0x3f,0x3c,
+0x3a,0x38,0x37,0x33,0x2d,0x2f,0x40,0x53,0x58,0x4a,0x3d,0x3a,0x3b,0x37,0x30,0x2b,
+0x35,0x3e,0x4f,0x59,0x59,0x56,0x4c,0x3c,0x2f,0x3b,0x4d,0x54,0x4a,0x3e,0x34,0x2c,
+0x3e,0x33,0x2a,0x2a,0x2b,0x2a,0x28,0x29,0x31,0x2e,0x2b,0x27,0x22,0x20,0x24,0x2a,
+0x32,0x3b,0x42,0x3f,0x3a,0x3a,0x39,0x38,0x36,0x33,0x30,0x2e,0x2a,0x26,0x24,0x25,
+0x2a,0x2b,0x2a,0x26,0x23,0x21,0x20,0x1f,0x2a,0x29,0x28,0x28,0x28,0x29,0x28,0x28,
+0x25,0x23,0x22,0x25,0x27,0x28,0x29,0x2a,0x2a,0x2b,0x2a,0x27,0x25,0x26,0x29,0x2d,
+0x2a,0x26,0x20,0x1c,0x19,0x18,0x15,0x13,0x17,0x17,0x16,0x16,0x16,0x17,0x17,0x18,
+0x1b,0x1e,0x22,0x23,0x22,0x1f,0x1d,0x1b,0x1c,0x1b,0x1e,0x26,0x2d,0x32,0x37,0x3b,
+0x41,0x41,0x3e,0x38,0x30,0x29,0x23,0x21,0x20,0x1f,0x1e,0x1d,0x1c,0x1c,0x1c,0x1c,
+0x20,0x1f,0x1d,0x1c,0x1d,0x23,0x2c,0x33,0x34,0x33,0x34,0x37,0x39,0x37,0x32,0x2e,
+0x2d,0x2d,0x2e,0x2f,0x31,0x30,0x2d,0x2a,0x28,0x28,0x29,0x2a,0x2e,0x35,0x3e,0x44,
+0x44,0x47,0x48,0x46,0x44,0x46,0x48,0x49,0x4a,0x4d,0x4d,0x4b,0x4e,0x55,0x58,0x56,
+0x4c,0x38,0x2a,0x27,0x22,0x20,0x23,0x24,0x1f,0x20,0x21,0x21,0x20,0x1f,0x1f,0x20,
+0x24,0x23,0x22,0x23,0x21,0x1e,0x1f,0x22,0x24,0x26,0x27,0x27,0x26,0x27,0x2a,0x2c,
+0x36,0x3d,0x48,0x4e,0x46,0x37,0x2f,0x2f,0x28,0x28,0x2a,0x31,0x38,0x3c,0x3c,0x3b,
+0x38,0x3b,0x41,0x4b,0x54,0x59,0x5d,0x60,0x78,0x8c,0x92,0x90,0x8b,0x86,0x75,0x50,
+0x4b,0x48,0x45,0x42,0x3e,0x3b,0x3d,0x41,0x41,0x44,0x42,0x45,0x50,0x57,0x5c,0x63,
+0x5f,0x5c,0x59,0x56,0x53,0x51,0x4f,0x4d,0x44,0x48,0x4b,0x49,0x45,0x45,0x4a,0x4f,
+0x4d,0x50,0x55,0x5a,0x5a,0x58,0x58,0x59,0x64,0x67,0x68,0x69,0x71,0x79,0x74,0x68,
+0x59,0x53,0x57,0x60,0x61,0x62,0x68,0x6a,0x6e,0x70,0x73,0x75,0x76,0x79,0x7d,0x80,
+0x84,0x84,0x85,0x87,0x89,0x8b,0x8c,0x8c,0x90,0x90,0x91,0x92,0x92,0x93,0x93,0x93,
+0x91,0x90,0x91,0x92,0x92,0x91,0x92,0x95,0x97,0x98,0x99,0x9b,0x9c,0x9d,0x9e,0x9e,
+0x9f,0x9f,0xa0,0xa0,0x9f,0x9d,0x9b,0x9a,0x97,0x96,0x95,0x94,0x93,0x92,0x92,0x92,
+0x94,0x95,0x97,0x96,0x94,0x92,0x90,0x8f,0x94,0x92,0x91,0x90,0x8f,0x8e,0x8d,0x8c,
+0x8a,0x89,0x89,0x89,0x89,0x88,0x87,0x85,0x83,0x83,0x83,0x83,0x84,0x84,0x85,0x85,
+0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x83,0x81,0x81,0x82,0x83,0x84,0x84,
+0x84,0x84,0x85,0x84,0x83,0x83,0x85,0x86,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x83,
+0x82,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7a,0x79,0x79,0x78,0x77,0x75,
+0x75,0x74,0x73,0x71,0x70,0x6f,0x6f,0x6f,0x6d,0x6b,0x6a,0x68,0x68,0x67,0x65,0x63,
+0x62,0x62,0x5f,0x5c,0x5b,0x5b,0x59,0x56,0x55,0x53,0x51,0x4f,0x4d,0x4d,0x4d,0x4d,
+0x4a,0x46,0x43,0x42,0x41,0x42,0x45,0x49,0x4a,0x47,0x43,0x45,0x52,0x63,0x6a,0x69,
+0x55,0x4a,0x41,0x42,0x47,0x4a,0x4d,0x50,0x56,0x54,0x53,0x53,0x51,0x4b,0x4b,0x50,
+0x5f,0x72,0x7c,0x74,0x6c,0x6c,0x6a,0x63,0x54,0x4f,0x42,0x39,0x3b,0x39,0x31,0x2d,
+0x40,0x54,0x63,0x66,0x69,0x6e,0x7b,0x8b,0x8d,0x86,0x7a,0x6d,0x66,0x65,0x65,0x63,
+0x61,0x5b,0x51,0x49,0x44,0x41,0x39,0x32,0x2e,0x2f,0x31,0x33,0x33,0x34,0x39,0x3f,
+0x46,0x3d,0x3d,0x46,0x45,0x37,0x34,0x3c,0x47,0x42,0x3a,0x33,0x2f,0x2f,0x32,0x34,
+0x34,0x3e,0x3e,0x36,0x30,0x2c,0x2e,0x37,0x41,0x3e,0x3e,0x3b,0x49,0x50,0x56,0x50,
+0x4c,0x4b,0x4d,0x46,0x37,0x32,0x32,0x2d,0x42,0x49,0x53,0x55,0x51,0x54,0x58,0x53,
+0x44,0x2c,0x27,0x3b,0x49,0x4d,0x4e,0x4e,0x4d,0x47,0x3e,0x3a,0x43,0x50,0x55,0x51,
+0x4f,0x48,0x3d,0x31,0x2b,0x31,0x3f,0x4a,0x56,0x5b,0x60,0x55,0x44,0x41,0x45,0x42,
+0x3b,0x42,0x4f,0x56,0x4c,0x3b,0x39,0x43,0x3f,0x33,0x2b,0x30,0x35,0x34,0x32,0x33,
+0x30,0x37,0x4b,0x5c,0x60,0x5d,0x55,0x49,0x29,0x3e,0x51,0x56,0x4e,0x3f,0x36,0x38,
+0x3f,0x39,0x36,0x38,0x38,0x34,0x2f,0x2d,0x2d,0x2c,0x2a,0x26,0x21,0x21,0x24,0x29,
+0x29,0x30,0x36,0x36,0x34,0x33,0x32,0x30,0x30,0x2e,0x2c,0x2b,0x2a,0x29,0x2b,0x2c,
+0x2f,0x39,0x41,0x3b,0x2c,0x21,0x1f,0x22,0x26,0x25,0x25,0x26,0x28,0x29,0x28,0x27,
+0x24,0x23,0x23,0x26,0x28,0x28,0x26,0x24,0x29,0x2b,0x2a,0x27,0x23,0x21,0x23,0x26,
+0x28,0x24,0x1e,0x1b,0x19,0x18,0x16,0x14,0x17,0x17,0x17,0x17,0x17,0x18,0x19,0x19,
+0x20,0x22,0x25,0x26,0x25,0x22,0x1f,0x1e,0x1b,0x1a,0x1c,0x23,0x2c,0x33,0x39,0x3f,
+0x45,0x43,0x3f,0x38,0x2f,0x27,0x21,0x1e,0x1f,0x1f,0x1f,0x20,0x20,0x1f,0x1e,0x1d,
+0x21,0x20,0x1e,0x1d,0x1f,0x25,0x2d,0x33,0x33,0x33,0x35,0x37,0x38,0x37,0x33,0x30,
+0x2b,0x2a,0x2a,0x2b,0x2c,0x2c,0x2c,0x2c,0x2c,0x2b,0x29,0x28,0x2b,0x31,0x39,0x3e,
+0x4e,0x55,0x5b,0x5d,0x5a,0x56,0x53,0x51,0x4e,0x50,0x4f,0x4d,0x4f,0x56,0x5c,0x5d,
+0x56,0x3c,0x2a,0x27,0x26,0x27,0x29,0x28,0x1f,0x21,0x22,0x23,0x21,0x20,0x20,0x20,
+0x21,0x1f,0x1e,0x20,0x1f,0x1d,0x1e,0x20,0x22,0x24,0x26,0x27,0x28,0x29,0x2a,0x2c,
+0x30,0x37,0x42,0x47,0x42,0x37,0x31,0x31,0x34,0x30,0x2c,0x2d,0x32,0x38,0x3b,0x3c,
+0x3b,0x3f,0x48,0x55,0x62,0x69,0x67,0x62,0x57,0x65,0x7b,0x9d,0xbb,0xc9,0xb5,0x81,
+0x44,0x40,0x40,0x42,0x40,0x3b,0x38,0x39,0x38,0x3b,0x3f,0x4d,0x5d,0x60,0x5e,0x63,
+0x60,0x60,0x5f,0x5d,0x59,0x54,0x4f,0x4c,0x5a,0x57,0x52,0x4a,0x44,0x40,0x40,0x41,
+0x50,0x4f,0x55,0x63,0x6d,0x71,0x73,0x77,0x6d,0x77,0x7c,0x76,0x6d,0x67,0x5f,0x58,
+0x57,0x53,0x59,0x60,0x61,0x66,0x6c,0x6b,0x70,0x73,0x75,0x75,0x75,0x78,0x7e,0x83,
+0x85,0x84,0x85,0x88,0x8c,0x8f,0x8f,0x8e,0x92,0x93,0x94,0x94,0x95,0x95,0x95,0x95,
+0x94,0x94,0x95,0x95,0x95,0x95,0x96,0x97,0x9a,0x9a,0x9b,0x9b,0x9b,0x9a,0x99,0x98,
+0x99,0x99,0x9a,0x9a,0x99,0x96,0x94,0x92,0x92,0x91,0x8f,0x8e,0x8c,0x8b,0x8b,0x8b,
+0x8d,0x8e,0x91,0x91,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x8f,0x8e,0x8d,0x8c,
+0x8a,0x89,0x88,0x88,0x88,0x87,0x85,0x84,0x82,0x83,0x83,0x83,0x83,0x84,0x84,0x84,
+0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x85,0x86,0x84,0x82,0x82,0x83,0x84,0x84,0x84,
+0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x82,0x82,0x82,0x81,0x81,0x82,0x82,0x82,
+0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x76,0x75,
+0x75,0x74,0x73,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6d,0x6b,0x6a,0x69,0x68,0x66,0x64,
+0x61,0x61,0x5f,0x5c,0x5b,0x5b,0x58,0x55,0x52,0x51,0x4f,0x4e,0x4d,0x4d,0x4d,0x4e,
+0x4d,0x47,0x41,0x3f,0x41,0x44,0x4c,0x53,0x5e,0x58,0x4a,0x40,0x47,0x5c,0x6b,0x6f,
+0x51,0x4c,0x48,0x48,0x4a,0x51,0x5d,0x68,0x61,0x59,0x56,0x53,0x4b,0x45,0x45,0x44,
+0x50,0x63,0x73,0x72,0x69,0x61,0x59,0x51,0x43,0x47,0x44,0x42,0x46,0x42,0x37,0x33,
+0x3d,0x51,0x60,0x67,0x6d,0x71,0x77,0x81,0x87,0x86,0x7d,0x6e,0x63,0x61,0x5f,0x5b,
+0x5c,0x58,0x50,0x48,0x45,0x45,0x42,0x3c,0x36,0x34,0x32,0x30,0x2e,0x2f,0x33,0x38,
+0x36,0x31,0x33,0x39,0x36,0x2b,0x29,0x2f,0x30,0x35,0x3b,0x3f,0x3d,0x38,0x33,0x30,
+0x2f,0x3c,0x40,0x3b,0x35,0x2f,0x30,0x38,0x3f,0x3f,0x3f,0x41,0x4b,0x53,0x56,0x53,
+0x53,0x55,0x50,0x40,0x31,0x33,0x3f,0x47,0x5e,0x54,0x55,0x59,0x56,0x53,0x51,0x4e,
+0x47,0x2b,0x26,0x3f,0x50,0x51,0x4f,0x4f,0x55,0x4a,0x3a,0x33,0x3f,0x54,0x60,0x60,
+0x52,0x48,0x3c,0x34,0x32,0x39,0x47,0x54,0x57,0x5f,0x61,0x53,0x44,0x41,0x44,0x44,
+0x46,0x48,0x51,0x56,0x47,0x33,0x32,0x40,0x3e,0x30,0x2b,0x38,0x46,0x48,0x44,0x43,
+0x39,0x3d,0x4e,0x5f,0x60,0x5a,0x50,0x46,0x36,0x4c,0x59,0x5a,0x52,0x3d,0x30,0x35,
+0x37,0x36,0x37,0x38,0x36,0x31,0x2d,0x2b,0x27,0x27,0x26,0x23,0x20,0x20,0x22,0x23,
+0x1f,0x22,0x24,0x25,0x28,0x29,0x28,0x25,0x2a,0x2b,0x29,0x26,0x25,0x27,0x2b,0x2e,
+0x3b,0x42,0x46,0x3e,0x2e,0x20,0x1d,0x20,0x22,0x22,0x23,0x25,0x26,0x26,0x25,0x23,
+0x1e,0x1f,0x21,0x24,0x27,0x27,0x24,0x21,0x25,0x29,0x2b,0x28,0x21,0x1d,0x1d,0x1f,
+0x21,0x1e,0x1b,0x19,0x1a,0x1a,0x19,0x17,0x16,0x16,0x16,0x17,0x17,0x18,0x19,0x1a,
+0x1b,0x1d,0x1f,0x20,0x1e,0x1c,0x1a,0x19,0x1c,0x19,0x19,0x1e,0x26,0x2f,0x37,0x3e,
+0x41,0x40,0x3c,0x35,0x2d,0x25,0x20,0x1e,0x1e,0x1e,0x20,0x23,0x25,0x24,0x20,0x1d,
+0x20,0x1f,0x1e,0x1e,0x21,0x26,0x2d,0x31,0x37,0x39,0x39,0x37,0x33,0x2e,0x2c,0x2b,
+0x28,0x29,0x29,0x28,0x26,0x28,0x2c,0x30,0x32,0x30,0x2c,0x29,0x29,0x2f,0x37,0x3d,
+0x47,0x4d,0x54,0x58,0x59,0x59,0x5c,0x60,0x5f,0x65,0x6b,0x6d,0x6d,0x6e,0x6f,0x70,
+0x61,0x40,0x27,0x25,0x2a,0x2e,0x2e,0x29,0x23,0x24,0x25,0x24,0x22,0x20,0x1f,0x1f,
+0x1d,0x1c,0x1c,0x1f,0x1f,0x1e,0x1d,0x1f,0x1d,0x1f,0x21,0x24,0x25,0x26,0x27,0x28,
+0x2c,0x2e,0x32,0x34,0x33,0x33,0x37,0x3d,0x3a,0x34,0x2f,0x2e,0x32,0x39,0x3e,0x40,
+0x41,0x48,0x52,0x5d,0x68,0x6d,0x67,0x5c,0x5b,0x61,0x73,0x9c,0xc3,0xd6,0xc1,0x8b,
+0x51,0x43,0x38,0x39,0x3d,0x3d,0x3d,0x3f,0x42,0x42,0x44,0x52,0x63,0x66,0x65,0x6c,
+0x6d,0x6c,0x68,0x62,0x5c,0x58,0x57,0x57,0x51,0x4e,0x4b,0x4e,0x56,0x61,0x69,0x6d,
+0x6e,0x66,0x60,0x5f,0x61,0x64,0x6f,0x7b,0x99,0xa0,0xa5,0x9f,0x8d,0x74,0x61,0x57,
+0x5a,0x54,0x58,0x5f,0x62,0x68,0x6e,0x6d,0x72,0x74,0x75,0x75,0x75,0x79,0x7f,0x85,
+0x85,0x85,0x86,0x8a,0x8e,0x91,0x92,0x91,0x94,0x95,0x96,0x96,0x97,0x97,0x97,0x97,
+0x95,0x96,0x96,0x96,0x97,0x98,0x97,0x97,0x95,0x95,0x95,0x94,0x93,0x92,0x91,0x90,
+0x91,0x91,0x92,0x92,0x90,0x8e,0x8b,0x89,0x8c,0x8b,0x8a,0x88,0x86,0x85,0x84,0x84,
+0x85,0x86,0x87,0x87,0x88,0x8a,0x8d,0x8f,0x8b,0x8c,0x8d,0x8c,0x8b,0x8a,0x88,0x87,
+0x89,0x88,0x87,0x87,0x87,0x86,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x81,0x81,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x84,0x83,0x84,0x85,0x85,0x84,0x83,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x82,0x82,0x82,0x81,0x81,0x82,0x82,0x82,
+0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7c,0x7c,0x7a,0x78,0x77,0x75,0x75,0x75,
+0x73,0x74,0x74,0x74,0x73,0x71,0x6f,0x6e,0x6f,0x6e,0x6b,0x6a,0x69,0x68,0x66,0x64,
+0x61,0x61,0x5f,0x5b,0x5a,0x5a,0x58,0x55,0x4f,0x4e,0x4e,0x4d,0x4d,0x4d,0x4d,0x4e,
+0x4e,0x48,0x41,0x3f,0x40,0x43,0x4a,0x50,0x65,0x63,0x56,0x41,0x38,0x3f,0x48,0x4b,
+0x4b,0x4d,0x54,0x5c,0x61,0x60,0x5d,0x5b,0x59,0x57,0x58,0x57,0x4d,0x47,0x45,0x42,
+0x53,0x57,0x5f,0x65,0x63,0x58,0x4d,0x48,0x38,0x3f,0x41,0x43,0x45,0x40,0x3b,0x3d,
+0x3c,0x48,0x52,0x5d,0x6b,0x6f,0x69,0x66,0x6e,0x7a,0x82,0x7f,0x78,0x71,0x6a,0x62,
+0x57,0x55,0x4f,0x4a,0x48,0x48,0x47,0x44,0x3e,0x38,0x30,0x29,0x28,0x2b,0x2e,0x2f,
+0x43,0x3f,0x37,0x2d,0x26,0x24,0x26,0x2a,0x2b,0x34,0x3e,0x44,0x40,0x38,0x2f,0x29,
+0x2e,0x39,0x3e,0x3c,0x38,0x31,0x30,0x38,0x3e,0x41,0x44,0x4c,0x52,0x59,0x58,0x56,
+0x52,0x57,0x57,0x52,0x4f,0x50,0x53,0x58,0x63,0x4e,0x4f,0x61,0x60,0x4f,0x48,0x4b,
+0x4a,0x2e,0x29,0x41,0x52,0x53,0x52,0x52,0x47,0x42,0x36,0x30,0x3d,0x54,0x62,0x63,
+0x54,0x49,0x3d,0x36,0x37,0x3f,0x4f,0x5c,0x60,0x61,0x54,0x3e,0x35,0x3b,0x45,0x4a,
+0x47,0x40,0x41,0x48,0x44,0x37,0x34,0x3d,0x3e,0x35,0x33,0x3c,0x44,0x41,0x3d,0x3c,
+0x3a,0x3e,0x4d,0x5b,0x5a,0x52,0x4a,0x41,0x41,0x51,0x59,0x5a,0x53,0x3e,0x2e,0x32,
+0x32,0x30,0x2e,0x2b,0x29,0x27,0x27,0x28,0x24,0x26,0x26,0x25,0x26,0x27,0x25,0x21,
+0x25,0x23,0x22,0x25,0x29,0x2c,0x2b,0x2a,0x28,0x2b,0x2c,0x2b,0x2c,0x30,0x35,0x37,
+0x3d,0x38,0x31,0x2c,0x25,0x1e,0x19,0x18,0x20,0x21,0x22,0x24,0x24,0x23,0x20,0x1e,
+0x1f,0x21,0x21,0x20,0x21,0x22,0x20,0x1d,0x1e,0x22,0x24,0x22,0x1d,0x1a,0x19,0x1b,
+0x1b,0x1a,0x18,0x19,0x1b,0x1c,0x1b,0x19,0x15,0x15,0x15,0x15,0x16,0x17,0x17,0x18,
+0x19,0x1a,0x1c,0x1c,0x1b,0x19,0x19,0x19,0x1f,0x1b,0x1a,0x1f,0x26,0x2e,0x37,0x3d,
+0x3a,0x3c,0x3b,0x35,0x2b,0x23,0x20,0x20,0x1e,0x1e,0x20,0x24,0x26,0x26,0x22,0x1e,
+0x1e,0x1e,0x1d,0x1f,0x22,0x27,0x2d,0x30,0x36,0x38,0x39,0x36,0x30,0x2c,0x2a,0x2a,
+0x2a,0x2c,0x2d,0x2b,0x29,0x2b,0x31,0x37,0x33,0x32,0x2f,0x2b,0x28,0x2c,0x34,0x3c,
+0x41,0x41,0x43,0x44,0x45,0x4a,0x56,0x60,0x6b,0x6e,0x70,0x71,0x70,0x71,0x74,0x77,
+0x5e,0x3c,0x24,0x23,0x2b,0x30,0x2e,0x27,0x27,0x28,0x28,0x26,0x23,0x21,0x20,0x20,
+0x1f,0x1d,0x1d,0x1f,0x20,0x1f,0x1e,0x1e,0x1d,0x1f,0x21,0x23,0x24,0x25,0x25,0x25,
+0x2a,0x2e,0x33,0x35,0x33,0x32,0x32,0x34,0x2e,0x2d,0x2d,0x30,0x35,0x3a,0x3f,0x41,
+0x45,0x50,0x5b,0x62,0x6a,0x6e,0x67,0x5c,0x54,0x61,0x6e,0x89,0xa6,0xbc,0xc0,0xab,
+0x7e,0x5d,0x3c,0x2f,0x32,0x38,0x41,0x48,0x41,0x45,0x4a,0x57,0x65,0x67,0x65,0x6a,
+0x6c,0x69,0x63,0x5b,0x57,0x58,0x60,0x66,0x67,0x61,0x59,0x57,0x5a,0x62,0x68,0x6c,
+0x70,0x73,0x75,0x74,0x74,0x7d,0x93,0xa6,0xb4,0xb4,0xb6,0xb8,0xaf,0x98,0x7d,0x6b,
+0x64,0x58,0x58,0x60,0x64,0x69,0x6f,0x6f,0x71,0x73,0x74,0x74,0x76,0x7a,0x7f,0x84,
+0x85,0x86,0x88,0x8c,0x90,0x92,0x93,0x93,0x96,0x97,0x97,0x98,0x99,0x99,0x99,0x99,
+0x96,0x97,0x97,0x96,0x97,0x99,0x98,0x95,0x92,0x91,0x91,0x90,0x90,0x90,0x90,0x90,
+0x90,0x91,0x91,0x90,0x8f,0x8d,0x8b,0x89,0x8a,0x89,0x87,0x84,0x82,0x80,0x7f,0x7e,
+0x7d,0x7d,0x7c,0x7b,0x7c,0x7f,0x83,0x87,0x87,0x89,0x8b,0x8b,0x89,0x86,0x85,0x84,
+0x86,0x85,0x85,0x84,0x85,0x84,0x82,0x81,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x84,0x83,0x83,0x84,0x85,0x85,0x84,0x83,
+0x83,0x83,0x83,0x83,0x84,0x85,0x84,0x83,0x82,0x82,0x81,0x81,0x81,0x81,0x82,0x82,
+0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7c,0x7c,0x7b,0x78,0x76,0x74,0x74,0x75,
+0x72,0x73,0x75,0x75,0x74,0x72,0x70,0x6f,0x70,0x6e,0x6c,0x6a,0x69,0x68,0x66,0x64,
+0x62,0x61,0x5e,0x5a,0x59,0x5a,0x59,0x56,0x4f,0x4e,0x4e,0x4d,0x4c,0x4c,0x4c,0x4c,
+0x4a,0x47,0x43,0x42,0x40,0x3e,0x3e,0x40,0x4c,0x52,0x50,0x43,0x35,0x2e,0x2c,0x2b,
+0x3c,0x46,0x52,0x57,0x54,0x4d,0x4a,0x49,0x4d,0x4d,0x4a,0x46,0x44,0x45,0x4b,0x51,
+0x4b,0x43,0x42,0x49,0x4b,0x45,0x3e,0x3d,0x35,0x36,0x36,0x3a,0x3e,0x3b,0x40,0x4f,
+0x5b,0x61,0x64,0x6b,0x79,0x7a,0x6f,0x68,0x6c,0x71,0x74,0x72,0x6e,0x69,0x65,0x61,
+0x66,0x60,0x58,0x51,0x49,0x42,0x3e,0x3e,0x42,0x3c,0x32,0x2a,0x2a,0x2f,0x32,0x32,
+0x48,0x48,0x43,0x39,0x33,0x30,0x2a,0x23,0x2d,0x31,0x36,0x37,0x35,0x32,0x2f,0x2e,
+0x2c,0x32,0x33,0x33,0x34,0x32,0x33,0x3c,0x3c,0x43,0x48,0x56,0x58,0x5e,0x59,0x58,
+0x55,0x53,0x4d,0x50,0x5a,0x5b,0x57,0x5a,0x61,0x45,0x41,0x52,0x52,0x46,0x49,0x56,
+0x44,0x2e,0x2c,0x40,0x4d,0x4f,0x51,0x52,0x43,0x46,0x42,0x3d,0x45,0x55,0x5c,0x58,
+0x4f,0x47,0x3b,0x32,0x33,0x3f,0x4f,0x5b,0x61,0x62,0x50,0x3a,0x37,0x40,0x47,0x4b,
+0x49,0x48,0x4e,0x54,0x4c,0x3f,0x3c,0x44,0x3b,0x3b,0x3c,0x37,0x2e,0x28,0x29,0x2f,
+0x3d,0x43,0x52,0x5c,0x58,0x54,0x50,0x49,0x45,0x4c,0x53,0x57,0x51,0x40,0x32,0x31,
+0x31,0x2d,0x28,0x25,0x25,0x29,0x2b,0x2b,0x27,0x29,0x2b,0x2d,0x31,0x32,0x2c,0x24,
+0x23,0x21,0x21,0x22,0x24,0x26,0x27,0x28,0x21,0x27,0x2d,0x35,0x3e,0x48,0x4c,0x4b,
+0x3b,0x31,0x2a,0x28,0x28,0x24,0x1f,0x1d,0x1d,0x1f,0x21,0x23,0x24,0x23,0x1f,0x1c,
+0x21,0x22,0x21,0x1e,0x1e,0x22,0x25,0x26,0x25,0x22,0x1d,0x1b,0x1a,0x1a,0x1a,0x19,
+0x1b,0x1a,0x1a,0x1b,0x1d,0x1d,0x1a,0x17,0x17,0x16,0x16,0x15,0x15,0x15,0x16,0x16,
+0x19,0x1a,0x1b,0x1b,0x1a,0x1a,0x1b,0x1c,0x1f,0x1c,0x1c,0x21,0x27,0x2e,0x35,0x3a,
+0x39,0x3d,0x3e,0x37,0x2c,0x22,0x1f,0x20,0x20,0x1f,0x1f,0x22,0x24,0x25,0x22,0x1f,
+0x1e,0x1d,0x1d,0x1f,0x24,0x2b,0x31,0x34,0x35,0x36,0x38,0x37,0x35,0x31,0x2d,0x2b,
+0x2a,0x2c,0x2d,0x2d,0x2e,0x30,0x33,0x36,0x33,0x35,0x34,0x30,0x2a,0x2b,0x32,0x39,
+0x4a,0x4b,0x4d,0x4e,0x4d,0x4f,0x58,0x63,0x6a,0x64,0x5e,0x5b,0x5c,0x5f,0x62,0x64,
+0x4f,0x35,0x24,0x26,0x2a,0x2d,0x2e,0x2a,0x28,0x29,0x29,0x29,0x28,0x28,0x29,0x2a,
+0x26,0x22,0x1f,0x20,0x21,0x1f,0x1f,0x20,0x20,0x21,0x22,0x24,0x26,0x28,0x28,0x28,
+0x28,0x2f,0x36,0x39,0x35,0x2f,0x2a,0x27,0x27,0x2a,0x2e,0x32,0x36,0x3a,0x3e,0x41,
+0x4d,0x5d,0x6a,0x6d,0x6f,0x73,0x6f,0x66,0x63,0x81,0x92,0xa2,0xad,0xb2,0xb7,0xb2,
+0x97,0x6d,0x3f,0x2b,0x2d,0x38,0x48,0x55,0x5f,0x63,0x62,0x61,0x63,0x5d,0x56,0x57,
+0x5c,0x5b,0x58,0x52,0x4f,0x52,0x5c,0x64,0x66,0x61,0x57,0x4b,0x42,0x40,0x44,0x48,
+0x4c,0x55,0x5e,0x64,0x6e,0x7f,0x92,0x9f,0xaa,0xae,0xb1,0xb4,0xb4,0xac,0x97,0x83,
+0x72,0x5f,0x5a,0x63,0x68,0x6b,0x6f,0x71,0x72,0x72,0x73,0x74,0x78,0x7c,0x81,0x84,
+0x85,0x87,0x8b,0x8e,0x91,0x92,0x94,0x95,0x98,0x99,0x99,0x9a,0x9b,0x9b,0x9b,0x9b,
+0x98,0x9a,0x99,0x98,0x9a,0x9c,0x9b,0x97,0x95,0x94,0x92,0x90,0x90,0x90,0x92,0x92,
+0x94,0x94,0x94,0x93,0x92,0x90,0x8f,0x8e,0x8b,0x8a,0x87,0x83,0x80,0x7d,0x7b,0x7a,
+0x77,0x76,0x74,0x72,0x71,0x72,0x75,0x78,0x7e,0x81,0x85,0x86,0x85,0x84,0x83,0x83,
+0x83,0x82,0x81,0x81,0x82,0x81,0x80,0x7f,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,
+0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x83,0x82,0x81,0x81,0x82,0x83,0x84,0x83,
+0x84,0x83,0x82,0x83,0x85,0x84,0x83,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x81,
+0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x79,0x76,0x74,0x75,0x76,
+0x73,0x73,0x73,0x74,0x73,0x72,0x72,0x71,0x72,0x71,0x6e,0x6d,0x6c,0x6a,0x68,0x66,
+0x63,0x62,0x5e,0x5a,0x58,0x5a,0x5a,0x57,0x51,0x50,0x4f,0x4e,0x4c,0x4b,0x4a,0x4a,
+0x47,0x45,0x44,0x43,0x3f,0x38,0x34,0x33,0x30,0x35,0x3a,0x3c,0x39,0x34,0x31,0x30,
+0x34,0x3d,0x45,0x44,0x3f,0x3f,0x46,0x4d,0x43,0x46,0x3d,0x35,0x3b,0x3f,0x43,0x4f,
+0x58,0x59,0x5b,0x5c,0x57,0x4d,0x43,0x3f,0x36,0x31,0x31,0x3c,0x43,0x3f,0x45,0x59,
+0x74,0x7f,0x82,0x80,0x7f,0x79,0x71,0x70,0x71,0x64,0x55,0x4e,0x4f,0x54,0x5a,0x5f,
+0x5b,0x51,0x4a,0x47,0x40,0x37,0x36,0x3c,0x41,0x3e,0x37,0x2e,0x2c,0x2f,0x32,0x32,
+0x32,0x34,0x3a,0x44,0x48,0x40,0x2c,0x1c,0x2a,0x2b,0x2b,0x2c,0x2d,0x2f,0x32,0x35,
+0x2e,0x2e,0x2b,0x2d,0x34,0x34,0x34,0x3c,0x3b,0x44,0x49,0x58,0x56,0x5b,0x52,0x52,
+0x56,0x53,0x4a,0x4a,0x50,0x4c,0x4d,0x5c,0x63,0x49,0x3a,0x3e,0x45,0x4c,0x53,0x53,
+0x33,0x29,0x30,0x44,0x4e,0x50,0x52,0x52,0x5a,0x57,0x48,0x38,0x3a,0x4b,0x55,0x53,
+0x46,0x45,0x3d,0x33,0x32,0x3d,0x4a,0x51,0x53,0x59,0x4b,0x39,0x3c,0x44,0x46,0x47,
+0x53,0x53,0x52,0x4b,0x3e,0x36,0x3d,0x4a,0x3d,0x42,0x40,0x33,0x26,0x27,0x32,0x3d,
+0x4a,0x53,0x5f,0x60,0x57,0x54,0x52,0x4b,0x50,0x4f,0x55,0x58,0x4c,0x3b,0x2f,0x29,
+0x2f,0x2b,0x26,0x25,0x2a,0x30,0x31,0x2f,0x28,0x2b,0x2d,0x32,0x37,0x39,0x30,0x25,
+0x21,0x21,0x22,0x22,0x21,0x21,0x23,0x26,0x23,0x26,0x2a,0x2f,0x37,0x3d,0x38,0x30,
+0x2c,0x29,0x28,0x29,0x26,0x20,0x1c,0x1d,0x1a,0x1b,0x1f,0x22,0x25,0x24,0x21,0x1f,
+0x1b,0x1e,0x1e,0x1c,0x20,0x2b,0x35,0x3a,0x35,0x2b,0x1f,0x1a,0x1b,0x1e,0x1d,0x1a,
+0x1d,0x1c,0x1c,0x1d,0x1e,0x1d,0x18,0x15,0x1a,0x19,0x18,0x17,0x16,0x15,0x15,0x15,
+0x16,0x16,0x17,0x16,0x16,0x17,0x19,0x1b,0x19,0x17,0x19,0x1f,0x25,0x2a,0x2f,0x34,
+0x3c,0x41,0x42,0x3b,0x2c,0x21,0x1e,0x1f,0x23,0x20,0x1e,0x1f,0x21,0x23,0x21,0x1f,
+0x20,0x1e,0x1e,0x20,0x26,0x2e,0x36,0x3a,0x3c,0x3b,0x3b,0x3c,0x3a,0x35,0x2d,0x27,
+0x25,0x25,0x26,0x29,0x2c,0x2f,0x2f,0x2e,0x37,0x3b,0x3d,0x38,0x30,0x2d,0x32,0x39,
+0x45,0x4b,0x56,0x5e,0x5d,0x59,0x5b,0x60,0x63,0x5b,0x55,0x55,0x57,0x56,0x50,0x4b,
+0x42,0x30,0x28,0x2b,0x2b,0x2b,0x2e,0x2f,0x27,0x28,0x2a,0x2b,0x2d,0x30,0x34,0x36,
+0x2c,0x27,0x22,0x21,0x20,0x20,0x20,0x21,0x1f,0x20,0x21,0x24,0x27,0x29,0x2a,0x2b,
+0x26,0x29,0x2b,0x2a,0x28,0x29,0x2a,0x2c,0x2d,0x30,0x34,0x36,0x37,0x3a,0x3f,0x43,
+0x4c,0x5e,0x6b,0x6a,0x67,0x68,0x65,0x5d,0x78,0x93,0x98,0x9b,0xa0,0x9d,0x9f,0xa0,
+0x8d,0x65,0x3b,0x2b,0x31,0x41,0x55,0x65,0x76,0x74,0x67,0x58,0x51,0x4d,0x4d,0x52,
+0x55,0x57,0x57,0x52,0x4c,0x4a,0x4e,0x52,0x5c,0x5b,0x53,0x43,0x32,0x2b,0x2f,0x36,
+0x3a,0x3c,0x3f,0x4a,0x63,0x82,0x95,0x9b,0xa0,0xac,0xb2,0xac,0xab,0xad,0xa1,0x90,
+0x7d,0x65,0x5c,0x66,0x6b,0x6b,0x6f,0x72,0x74,0x73,0x74,0x76,0x7b,0x80,0x83,0x85,
+0x84,0x88,0x8d,0x90,0x91,0x92,0x94,0x96,0x99,0x9a,0x9b,0x9c,0x9c,0x9d,0x9d,0x9d,
+0x9c,0x9d,0x9d,0x9b,0x9d,0xa0,0x9e,0x99,0x98,0x96,0x92,0x90,0x8e,0x8e,0x8f,0x90,
+0x95,0x94,0x93,0x92,0x91,0x90,0x90,0x8f,0x8e,0x8c,0x88,0x84,0x7f,0x7b,0x78,0x77,
+0x74,0x73,0x70,0x6d,0x6a,0x69,0x6a,0x6c,0x71,0x75,0x7a,0x7e,0x7f,0x80,0x81,0x82,
+0x80,0x7f,0x7f,0x7f,0x80,0x80,0x7e,0x7d,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,
+0x82,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x83,0x81,0x7e,0x7e,0x7f,0x82,0x84,0x85,
+0x84,0x83,0x82,0x83,0x85,0x84,0x82,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x79,0x76,0x74,0x75,0x77,
+0x73,0x73,0x72,0x71,0x71,0x72,0x72,0x73,0x76,0x74,0x72,0x70,0x6f,0x6d,0x6b,0x69,
+0x64,0x63,0x5e,0x59,0x58,0x5a,0x5a,0x58,0x53,0x52,0x51,0x4e,0x4c,0x4a,0x48,0x47,
+0x45,0x43,0x42,0x41,0x3d,0x36,0x31,0x30,0x37,0x35,0x37,0x3f,0x47,0x4b,0x4e,0x50,
+0x56,0x50,0x48,0x45,0x46,0x46,0x3f,0x38,0x39,0x44,0x3d,0x38,0x41,0x3a,0x2f,0x34,
+0x39,0x4c,0x60,0x65,0x5d,0x52,0x45,0x3b,0x3b,0x35,0x38,0x49,0x50,0x44,0x43,0x53,
+0x7c,0x8f,0x98,0x8e,0x7e,0x6f,0x6b,0x71,0x6a,0x55,0x41,0x3f,0x4a,0x58,0x64,0x6d,
+0x58,0x4b,0x43,0x43,0x3c,0x31,0x32,0x3d,0x3d,0x3d,0x38,0x2e,0x27,0x28,0x2b,0x2b,
+0x2f,0x2a,0x33,0x4b,0x5a,0x51,0x3a,0x2a,0x2b,0x2b,0x2c,0x2e,0x30,0x32,0x33,0x34,
+0x36,0x34,0x2e,0x30,0x36,0x33,0x2e,0x32,0x3b,0x44,0x47,0x57,0x51,0x54,0x49,0x4a,
+0x51,0x58,0x59,0x57,0x51,0x41,0x46,0x61,0x65,0x52,0x3f,0x3d,0x4e,0x61,0x59,0x3e,
+0x25,0x26,0x38,0x50,0x59,0x59,0x58,0x55,0x54,0x53,0x48,0x3a,0x39,0x44,0x46,0x3e,
+0x3f,0x44,0x43,0x39,0x37,0x3f,0x47,0x47,0x55,0x5b,0x4b,0x38,0x3f,0x4b,0x51,0x56,
+0x4e,0x4c,0x4a,0x4a,0x48,0x41,0x39,0x35,0x36,0x38,0x31,0x24,0x20,0x2e,0x3f,0x48,
+0x3e,0x4b,0x5a,0x5a,0x54,0x58,0x5c,0x56,0x49,0x44,0x4f,0x58,0x4c,0x40,0x3c,0x35,
+0x3d,0x2c,0x20,0x25,0x2d,0x2e,0x2b,0x2b,0x27,0x27,0x27,0x29,0x2b,0x2b,0x28,0x25,
+0x1e,0x1f,0x21,0x21,0x21,0x22,0x24,0x26,0x26,0x29,0x29,0x26,0x27,0x2d,0x2d,0x29,
+0x2a,0x2b,0x2b,0x28,0x24,0x21,0x20,0x20,0x21,0x23,0x22,0x1f,0x21,0x24,0x23,0x1f,
+0x1f,0x22,0x23,0x23,0x24,0x27,0x28,0x27,0x26,0x23,0x21,0x20,0x1d,0x1a,0x1b,0x1e,
+0x1e,0x1d,0x1b,0x19,0x18,0x19,0x19,0x1a,0x1a,0x18,0x16,0x15,0x16,0x17,0x17,0x16,
+0x11,0x14,0x18,0x1b,0x1c,0x1c,0x1a,0x18,0x1b,0x1a,0x1b,0x1e,0x24,0x2b,0x30,0x33,
+0x3a,0x3c,0x3c,0x36,0x2b,0x22,0x1e,0x1d,0x20,0x1f,0x1f,0x1f,0x20,0x20,0x1d,0x1b,
+0x1e,0x1c,0x1f,0x24,0x28,0x2b,0x32,0x39,0x3c,0x3f,0x3d,0x38,0x35,0x35,0x31,0x2b,
+0x26,0x27,0x28,0x29,0x2c,0x30,0x33,0x35,0x3d,0x42,0x42,0x3d,0x38,0x2e,0x2b,0x31,
+0x43,0x49,0x4e,0x4f,0x50,0x57,0x61,0x67,0x64,0x65,0x65,0x64,0x63,0x60,0x5d,0x5b,
+0x4b,0x38,0x28,0x27,0x2b,0x2c,0x2a,0x2b,0x24,0x24,0x25,0x2a,0x2b,0x29,0x26,0x26,
+0x28,0x27,0x26,0x24,0x23,0x23,0x24,0x26,0x24,0x25,0x24,0x23,0x26,0x2c,0x2c,0x29,
+0x23,0x22,0x24,0x27,0x29,0x28,0x28,0x29,0x29,0x2e,0x33,0x36,0x3b,0x41,0x45,0x46,
+0x47,0x53,0x5e,0x5e,0x56,0x51,0x55,0x5b,0x70,0x7e,0x78,0x70,0x87,0xa4,0x9b,0x7f,
+0x6b,0x5b,0x52,0x56,0x5d,0x5e,0x5f,0x63,0x66,0x69,0x66,0x5b,0x51,0x4d,0x50,0x53,
+0x59,0x53,0x4f,0x4f,0x51,0x51,0x50,0x51,0x50,0x59,0x5d,0x5d,0x5b,0x52,0x48,0x48,
+0x42,0x3a,0x35,0x43,0x64,0x85,0x90,0x8c,0xa1,0xa4,0xaa,0xb0,0xb1,0xad,0xa5,0xa0,
+0x8a,0x73,0x61,0x62,0x6c,0x72,0x73,0x74,0x77,0x74,0x73,0x77,0x7c,0x7f,0x82,0x85,
+0x86,0x8a,0x8f,0x92,0x93,0x95,0x97,0x9a,0x9a,0x9b,0x9c,0x9d,0x9e,0x9e,0x9f,0x9f,
+0x9d,0x9e,0x9f,0xa0,0xa0,0xa0,0x9f,0x9e,0x9c,0x9b,0x9a,0x98,0x97,0x96,0x96,0x96,
+0x95,0x94,0x95,0x95,0x95,0x94,0x91,0x8f,0x8f,0x8d,0x8a,0x87,0x83,0x7d,0x77,0x73,
+0x6f,0x69,0x68,0x6b,0x6a,0x64,0x64,0x68,0x6b,0x6c,0x6d,0x71,0x76,0x7a,0x7d,0x7e,
+0x7d,0x7e,0x7f,0x7e,0x7d,0x7d,0x7e,0x7e,0x7f,0x7d,0x7c,0x7d,0x7f,0x80,0x80,0x7f,
+0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x82,0x81,0x7f,0x80,0x82,0x82,0x81,0x80,
+0x7e,0x80,0x82,0x85,0x85,0x83,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x81,
+0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7d,0x7d,0x7c,0x79,0x76,0x75,0x76,0x78,
+0x77,0x77,0x76,0x75,0x75,0x75,0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x71,0x6e,0x6c,
+0x67,0x62,0x5d,0x5b,0x5b,0x5c,0x5a,0x58,0x52,0x51,0x4f,0x4e,0x4e,0x4d,0x4b,0x49,
+0x49,0x44,0x40,0x3f,0x3b,0x34,0x32,0x33,0x3b,0x3b,0x41,0x47,0x4e,0x58,0x57,0x4a,
+0x42,0x42,0x49,0x51,0x56,0x5c,0x57,0x47,0x3e,0x3f,0x49,0x4c,0x3f,0x32,0x2f,0x2e,
+0x2c,0x3c,0x4e,0x56,0x4f,0x43,0x3b,0x37,0x34,0x33,0x48,0x69,0x71,0x5e,0x55,0x5e,
+0x7e,0x87,0x86,0x78,0x6c,0x69,0x67,0x64,0x5c,0x56,0x53,0x4b,0x3c,0x34,0x38,0x3b,
+0x4d,0x51,0x4d,0x3e,0x30,0x2b,0x2c,0x2e,0x32,0x2d,0x25,0x20,0x1f,0x23,0x28,0x2a,
+0x2f,0x2b,0x2c,0x38,0x43,0x43,0x3b,0x33,0x30,0x25,0x23,0x2f,0x34,0x2d,0x27,0x29,
+0x30,0x2d,0x2c,0x2f,0x34,0x35,0x31,0x2b,0x36,0x3f,0x50,0x5c,0x59,0x4e,0x48,0x4b,
+0x54,0x51,0x52,0x56,0x53,0x4c,0x4d,0x55,0x61,0x3f,0x3c,0x52,0x5a,0x5b,0x53,0x41,
+0x2a,0x29,0x3a,0x52,0x59,0x59,0x5d,0x60,0x54,0x58,0x48,0x33,0x36,0x48,0x51,0x53,
+0x55,0x4e,0x44,0x37,0x37,0x36,0x33,0x47,0x54,0x61,0x51,0x49,0x4d,0x41,0x3c,0x40,
+0x42,0x49,0x4e,0x4e,0x48,0x40,0x39,0x33,0x36,0x28,0x2e,0x1d,0x2e,0x3a,0x42,0x46,
+0x41,0x52,0x58,0x4e,0x4d,0x56,0x54,0x47,0x46,0x49,0x51,0x56,0x4c,0x3a,0x2e,0x2c,
+0x3c,0x37,0x2f,0x2a,0x29,0x29,0x27,0x25,0x20,0x22,0x24,0x24,0x22,0x20,0x1f,0x20,
+0x1f,0x20,0x20,0x20,0x1f,0x20,0x22,0x24,0x21,0x28,0x2f,0x34,0x35,0x31,0x29,0x20,
+0x24,0x25,0x27,0x28,0x29,0x27,0x24,0x21,0x22,0x24,0x24,0x20,0x1e,0x20,0x21,0x20,
+0x23,0x24,0x21,0x1e,0x1d,0x20,0x21,0x20,0x1d,0x1c,0x1c,0x1c,0x1a,0x18,0x19,0x1b,
+0x1a,0x19,0x18,0x17,0x17,0x18,0x18,0x18,0x19,0x18,0x18,0x19,0x1a,0x1a,0x19,0x17,
+0x16,0x18,0x1b,0x1d,0x1e,0x1e,0x1d,0x1c,0x1d,0x1d,0x1e,0x22,0x29,0x30,0x35,0x38,
+0x3d,0x3f,0x3e,0x37,0x2b,0x20,0x1a,0x19,0x1e,0x1d,0x1c,0x1d,0x1e,0x1e,0x1d,0x1b,
+0x1e,0x1c,0x1e,0x23,0x28,0x2c,0x31,0x36,0x3d,0x3f,0x3e,0x3a,0x36,0x32,0x2c,0x27,
+0x2a,0x2b,0x2c,0x2d,0x2d,0x2d,0x2d,0x2d,0x30,0x35,0x35,0x32,0x30,0x2b,0x2e,0x38,
+0x3e,0x44,0x48,0x47,0x47,0x4d,0x56,0x5c,0x62,0x63,0x65,0x68,0x6a,0x69,0x66,0x64,
+0x4e,0x3b,0x2a,0x26,0x28,0x27,0x25,0x26,0x23,0x20,0x1e,0x21,0x24,0x26,0x29,0x2c,
+0x28,0x28,0x29,0x29,0x2a,0x2a,0x29,0x29,0x28,0x29,0x28,0x27,0x2b,0x30,0x31,0x2f,
+0x22,0x20,0x20,0x23,0x25,0x27,0x2a,0x2e,0x31,0x34,0x35,0x35,0x35,0x39,0x3b,0x3b,
+0x43,0x4b,0x51,0x4e,0x47,0x44,0x48,0x4e,0x6a,0x70,0x6b,0x6d,0x89,0x9d,0x88,0x68,
+0x5e,0x55,0x4e,0x4b,0x47,0x42,0x41,0x44,0x4f,0x50,0x50,0x4f,0x52,0x59,0x60,0x63,
+0x5a,0x55,0x50,0x4e,0x4d,0x4e,0x52,0x58,0x5b,0x5e,0x5a,0x59,0x5e,0x5f,0x5f,0x64,
+0x5d,0x60,0x63,0x69,0x72,0x7d,0x83,0x84,0x91,0x9a,0xa4,0xa8,0xaa,0xaa,0xa6,0xa0,
+0x94,0x7f,0x6c,0x69,0x6d,0x70,0x73,0x75,0x77,0x74,0x74,0x77,0x7c,0x7f,0x82,0x85,
+0x89,0x8c,0x90,0x93,0x94,0x96,0x99,0x9c,0x9e,0x9e,0x9e,0x9f,0x9e,0x9e,0x9d,0x9d,
+0x9e,0x9f,0xa0,0xa1,0xa1,0xa1,0xa0,0x9f,0x9e,0x9d,0x9b,0x9a,0x99,0x99,0x99,0x99,
+0x97,0x97,0x97,0x97,0x97,0x95,0x92,0x90,0x8f,0x8d,0x8a,0x86,0x82,0x7c,0x76,0x72,
+0x6f,0x69,0x65,0x67,0x66,0x62,0x63,0x67,0x65,0x65,0x66,0x6a,0x6e,0x72,0x75,0x76,
+0x77,0x79,0x7a,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7c,0x7b,0x7c,0x7e,0x7f,0x7e,0x7d,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x80,0x7f,0x7f,0x80,0x81,0x82,0x82,0x81,
+0x80,0x80,0x81,0x82,0x82,0x81,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x81,0x81,
+0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7b,0x78,0x76,0x77,0x78,
+0x78,0x78,0x77,0x77,0x77,0x78,0x78,0x79,0x78,0x77,0x76,0x75,0x74,0x72,0x6f,0x6d,
+0x6a,0x65,0x60,0x5d,0x5c,0x5c,0x5a,0x57,0x52,0x50,0x4f,0x4e,0x4d,0x4c,0x4a,0x49,
+0x46,0x42,0x40,0x3f,0x3c,0x39,0x39,0x3c,0x45,0x43,0x43,0x41,0x42,0x4d,0x53,0x4e,
+0x44,0x40,0x48,0x55,0x5c,0x61,0x61,0x5c,0x49,0x3b,0x35,0x38,0x36,0x32,0x2e,0x28,
+0x2d,0x35,0x3e,0x44,0x45,0x43,0x41,0x41,0x35,0x32,0x3d,0x55,0x68,0x6f,0x75,0x7d,
+0x79,0x7f,0x7e,0x71,0x64,0x5e,0x5d,0x5c,0x61,0x5b,0x58,0x50,0x43,0x3b,0x38,0x33,
+0x3f,0x47,0x4d,0x49,0x3c,0x31,0x2e,0x2f,0x30,0x2c,0x25,0x22,0x22,0x25,0x29,0x2b,
+0x29,0x27,0x2b,0x35,0x41,0x4b,0x54,0x5a,0x3e,0x2b,0x25,0x35,0x3c,0x2f,0x26,0x29,
+0x2c,0x28,0x26,0x2a,0x2f,0x31,0x2d,0x28,0x31,0x41,0x50,0x50,0x44,0x3e,0x47,0x54,
+0x55,0x58,0x61,0x66,0x5e,0x4f,0x4a,0x4f,0x56,0x48,0x4d,0x56,0x51,0x52,0x53,0x47,
+0x3f,0x3a,0x48,0x5d,0x62,0x5c,0x5b,0x5c,0x5b,0x59,0x43,0x2d,0x32,0x43,0x4c,0x4e,
+0x4d,0x46,0x3d,0x31,0x33,0x31,0x2d,0x40,0x41,0x5d,0x5a,0x50,0x49,0x38,0x34,0x39,
+0x46,0x46,0x47,0x48,0x48,0x44,0x3a,0x32,0x39,0x36,0x42,0x30,0x35,0x3d,0x4b,0x59,
+0x50,0x49,0x43,0x49,0x59,0x62,0x56,0x44,0x46,0x4a,0x50,0x51,0x49,0x3f,0x42,0x4b,
+0x33,0x39,0x37,0x2a,0x21,0x21,0x20,0x1d,0x20,0x24,0x27,0x24,0x1d,0x19,0x1b,0x1f,
+0x1f,0x1f,0x1f,0x1f,0x1f,0x21,0x24,0x27,0x25,0x29,0x31,0x3a,0x3a,0x30,0x25,0x1e,
+0x24,0x25,0x28,0x2e,0x32,0x32,0x2e,0x2a,0x1f,0x21,0x21,0x1f,0x1e,0x22,0x28,0x2c,
+0x2e,0x2c,0x27,0x20,0x1d,0x1f,0x20,0x1f,0x18,0x17,0x18,0x19,0x18,0x16,0x16,0x19,
+0x1e,0x1c,0x1a,0x1a,0x1c,0x1d,0x1d,0x1c,0x19,0x19,0x1a,0x1c,0x1d,0x1d,0x1b,0x18,
+0x19,0x19,0x19,0x1a,0x1b,0x1b,0x1c,0x1c,0x1d,0x1d,0x1f,0x23,0x29,0x30,0x34,0x36,
+0x36,0x38,0x38,0x31,0x26,0x1d,0x19,0x19,0x1f,0x1e,0x1d,0x1e,0x1f,0x20,0x1f,0x1f,
+0x22,0x1f,0x20,0x26,0x2e,0x32,0x35,0x37,0x3b,0x3b,0x3b,0x3b,0x37,0x2f,0x28,0x25,
+0x27,0x2a,0x2d,0x2e,0x2d,0x2c,0x2a,0x2a,0x2b,0x32,0x33,0x31,0x2f,0x2b,0x2f,0x3c,
+0x51,0x57,0x5b,0x59,0x57,0x59,0x5d,0x5f,0x59,0x58,0x57,0x59,0x5b,0x5b,0x58,0x55,
+0x42,0x34,0x28,0x25,0x25,0x24,0x24,0x25,0x23,0x1f,0x1c,0x1e,0x21,0x24,0x28,0x2c,
+0x26,0x28,0x2c,0x31,0x35,0x35,0x32,0x2e,0x28,0x29,0x29,0x2a,0x2c,0x30,0x31,0x2f,
+0x23,0x20,0x1d,0x1e,0x21,0x24,0x2a,0x30,0x36,0x39,0x39,0x36,0x35,0x37,0x38,0x38,
+0x3a,0x40,0x46,0x46,0x43,0x42,0x46,0x4b,0x5a,0x60,0x61,0x64,0x70,0x71,0x5f,0x4e,
+0x4d,0x58,0x64,0x69,0x64,0x5e,0x5c,0x5c,0x69,0x63,0x59,0x54,0x56,0x59,0x57,0x52,
+0x58,0x54,0x4f,0x4a,0x46,0x46,0x4f,0x58,0x61,0x5f,0x56,0x50,0x50,0x4d,0x48,0x4a,
+0x4e,0x51,0x58,0x65,0x6e,0x72,0x72,0x72,0x7b,0x89,0x98,0x9f,0xa4,0xa7,0xa7,0xa3,
+0x9c,0x8a,0x78,0x70,0x6f,0x70,0x73,0x77,0x77,0x75,0x75,0x79,0x7d,0x7f,0x82,0x86,
+0x8c,0x8f,0x92,0x94,0x95,0x97,0x9b,0x9f,0xa0,0xa0,0xa0,0xa0,0xa0,0x9f,0x9f,0x9e,
+0xa0,0xa1,0xa2,0xa2,0xa3,0xa2,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,0x9d,0x9c,0x9c,0x9c,
+0x9b,0x9a,0x99,0x99,0x99,0x97,0x95,0x93,0x90,0x8e,0x8b,0x88,0x83,0x7e,0x78,0x74,
+0x6f,0x69,0x66,0x67,0x66,0x62,0x61,0x64,0x5f,0x5f,0x5f,0x62,0x66,0x69,0x6c,0x6c,
+0x6f,0x72,0x75,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x79,0x7b,0x7c,0x7c,0x7b,0x7a,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x81,0x82,0x82,0x81,
+0x81,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,
+0x82,0x82,0x83,0x84,0x84,0x84,0x83,0x82,0x82,0x81,0x7f,0x7d,0x7a,0x78,0x78,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7b,0x7a,0x79,0x77,0x76,0x73,0x70,0x6e,
+0x6c,0x68,0x63,0x5f,0x5e,0x5c,0x59,0x57,0x52,0x50,0x4e,0x4d,0x4c,0x4b,0x49,0x48,
+0x47,0x44,0x40,0x3d,0x38,0x36,0x38,0x3d,0x3f,0x3f,0x43,0x47,0x4b,0x54,0x55,0x4c,
+0x49,0x3c,0x38,0x3c,0x3a,0x38,0x39,0x3a,0x40,0x3b,0x3f,0x46,0x3f,0x34,0x29,0x1f,
+0x25,0x28,0x2e,0x36,0x3d,0x40,0x3d,0x39,0x33,0x32,0x36,0x49,0x67,0x83,0x90,0x91,
+0x82,0x79,0x71,0x71,0x76,0x77,0x71,0x6a,0x6c,0x67,0x64,0x5e,0x57,0x53,0x49,0x39,
+0x37,0x3d,0x45,0x47,0x3c,0x2e,0x29,0x2d,0x30,0x2c,0x26,0x22,0x20,0x20,0x20,0x20,
+0x20,0x21,0x26,0x2d,0x36,0x44,0x56,0x65,0x4b,0x31,0x27,0x38,0x3f,0x30,0x24,0x27,
+0x28,0x23,0x21,0x24,0x2b,0x2f,0x2c,0x27,0x36,0x44,0x4e,0x4a,0x43,0x47,0x51,0x58,
+0x55,0x58,0x5d,0x5d,0x52,0x45,0x47,0x52,0x5d,0x4d,0x48,0x4d,0x56,0x65,0x63,0x4d,
+0x35,0x2d,0x3b,0x57,0x61,0x5b,0x58,0x57,0x5f,0x54,0x3a,0x28,0x33,0x49,0x54,0x57,
+0x54,0x4f,0x48,0x3d,0x3e,0x38,0x2e,0x3c,0x4f,0x60,0x53,0x46,0x45,0x41,0x43,0x46,
+0x54,0x52,0x50,0x4f,0x4c,0x45,0x3b,0x34,0x40,0x3a,0x3e,0x31,0x33,0x36,0x3a,0x3e,
+0x46,0x3d,0x3d,0x49,0x50,0x44,0x32,0x26,0x26,0x3b,0x56,0x62,0x58,0x46,0x3e,0x40,
+0x2a,0x31,0x32,0x2a,0x23,0x22,0x22,0x20,0x25,0x28,0x2a,0x25,0x1e,0x19,0x1b,0x1f,
+0x1d,0x1d,0x1e,0x1f,0x22,0x26,0x2b,0x2e,0x2b,0x27,0x28,0x2d,0x2c,0x25,0x20,0x21,
+0x1e,0x1f,0x22,0x26,0x2a,0x2c,0x2d,0x2c,0x26,0x24,0x20,0x1e,0x1f,0x26,0x2e,0x33,
+0x34,0x32,0x2d,0x25,0x22,0x22,0x22,0x21,0x1b,0x19,0x19,0x19,0x17,0x15,0x16,0x18,
+0x1c,0x18,0x16,0x15,0x18,0x1a,0x1b,0x1a,0x1b,0x1b,0x1b,0x1d,0x1e,0x1d,0x1b,0x19,
+0x19,0x18,0x18,0x17,0x17,0x18,0x1a,0x1b,0x1c,0x1d,0x1f,0x23,0x29,0x2e,0x32,0x33,
+0x34,0x35,0x33,0x2c,0x23,0x1c,0x1a,0x1c,0x1e,0x1f,0x1f,0x20,0x21,0x20,0x1f,0x1e,
+0x22,0x20,0x22,0x2a,0x32,0x38,0x3a,0x39,0x37,0x35,0x36,0x38,0x34,0x2b,0x26,0x27,
+0x26,0x29,0x2c,0x2d,0x2c,0x2a,0x2a,0x2b,0x2b,0x33,0x35,0x33,0x31,0x2d,0x31,0x3d,
+0x4f,0x58,0x60,0x62,0x61,0x61,0x60,0x5f,0x56,0x53,0x50,0x50,0x53,0x53,0x50,0x4c,
+0x3f,0x34,0x2a,0x27,0x26,0x25,0x25,0x26,0x25,0x23,0x22,0x24,0x24,0x22,0x21,0x21,
+0x21,0x24,0x2a,0x32,0x38,0x38,0x33,0x2e,0x26,0x28,0x2a,0x2c,0x2d,0x2e,0x2d,0x2b,
+0x25,0x21,0x1d,0x1d,0x1f,0x21,0x27,0x2d,0x31,0x35,0x37,0x37,0x38,0x3a,0x3b,0x3a,
+0x36,0x3c,0x44,0x49,0x4a,0x49,0x4a,0x4b,0x58,0x5c,0x5d,0x5f,0x61,0x59,0x55,0x5b,
+0x5d,0x6d,0x7c,0x7e,0x76,0x6e,0x6a,0x68,0x66,0x5e,0x56,0x57,0x62,0x6b,0x69,0x62,
+0x55,0x50,0x4b,0x47,0x44,0x45,0x4b,0x52,0x54,0x58,0x57,0x58,0x60,0x64,0x66,0x6d,
+0x62,0x5e,0x62,0x6c,0x73,0x70,0x6b,0x6a,0x66,0x70,0x81,0x93,0x9e,0xa1,0xa2,0xa2,
+0x9e,0x8f,0x7e,0x74,0x71,0x71,0x74,0x78,0x77,0x75,0x76,0x7a,0x7d,0x80,0x83,0x87,
+0x8e,0x91,0x93,0x95,0x96,0x98,0x9d,0xa0,0xa0,0xa0,0xa1,0xa2,0xa2,0xa2,0xa2,0xa2,
+0xa2,0xa3,0xa3,0xa4,0xa4,0xa4,0xa4,0xa3,0xa2,0xa2,0xa1,0xa1,0xa0,0xa0,0xa0,0xa0,
+0x9f,0x9d,0x9c,0x9b,0x9a,0x99,0x97,0x95,0x93,0x91,0x8e,0x8b,0x87,0x83,0x7e,0x7b,
+0x70,0x6c,0x6b,0x6c,0x6c,0x67,0x62,0x61,0x5e,0x5d,0x5d,0x5e,0x61,0x64,0x66,0x66,
+0x68,0x6b,0x6f,0x72,0x73,0x74,0x75,0x75,0x75,0x76,0x78,0x79,0x7a,0x7a,0x79,0x78,
+0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x80,0x80,
+0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,
+0x83,0x84,0x85,0x87,0x87,0x87,0x86,0x86,0x84,0x84,0x82,0x80,0x7d,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,0x81,0x81,0x7f,0x7d,0x7a,0x78,0x75,0x72,0x6f,
+0x6d,0x69,0x65,0x62,0x5f,0x5c,0x59,0x57,0x52,0x50,0x4e,0x4d,0x4c,0x4b,0x49,0x47,
+0x49,0x45,0x40,0x39,0x35,0x37,0x3d,0x43,0x43,0x3b,0x3b,0x44,0x53,0x66,0x6e,0x68,
+0x4e,0x3e,0x32,0x2d,0x2a,0x2d,0x32,0x30,0x37,0x31,0x35,0x38,0x31,0x2a,0x29,0x27,
+0x2c,0x2c,0x2e,0x36,0x3e,0x41,0x3e,0x3a,0x36,0x32,0x31,0x3e,0x5e,0x7f,0x90,0x92,
+0x91,0x7b,0x67,0x63,0x6c,0x73,0x73,0x71,0x71,0x6e,0x6e,0x6f,0x74,0x7b,0x73,0x5f,
+0x3e,0x3a,0x3a,0x3e,0x36,0x29,0x25,0x2b,0x2f,0x2c,0x27,0x24,0x21,0x1f,0x1e,0x1d,
+0x20,0x22,0x29,0x31,0x39,0x42,0x4e,0x58,0x4d,0x36,0x2a,0x32,0x36,0x2b,0x22,0x23,
+0x25,0x21,0x1e,0x22,0x2a,0x2f,0x2e,0x2b,0x39,0x49,0x51,0x4a,0x45,0x4c,0x52,0x50,
+0x51,0x51,0x52,0x50,0x46,0x3e,0x47,0x56,0x5f,0x58,0x52,0x4a,0x46,0x4f,0x53,0x49,
+0x3b,0x3b,0x47,0x4b,0x36,0x25,0x31,0x45,0x65,0x53,0x35,0x26,0x35,0x49,0x52,0x55,
+0x52,0x50,0x4d,0x45,0x46,0x3c,0x2c,0x35,0x49,0x5d,0x55,0x41,0x2b,0x24,0x40,0x5d,
+0x61,0x5f,0x5b,0x54,0x4a,0x3f,0x39,0x38,0x36,0x43,0x50,0x43,0x30,0x2a,0x38,0x4a,
+0x48,0x3b,0x30,0x2b,0x21,0x17,0x1c,0x28,0x28,0x3c,0x54,0x5d,0x51,0x3e,0x35,0x37,
+0x28,0x28,0x29,0x2a,0x2b,0x2a,0x29,0x29,0x24,0x25,0x25,0x22,0x1d,0x19,0x19,0x1a,
+0x1c,0x1d,0x1e,0x1f,0x22,0x26,0x2b,0x2f,0x2a,0x24,0x21,0x24,0x23,0x1f,0x1d,0x20,
+0x1f,0x21,0x24,0x25,0x27,0x2b,0x32,0x38,0x37,0x2e,0x23,0x1d,0x1e,0x22,0x27,0x29,
+0x2d,0x2d,0x2a,0x25,0x22,0x22,0x21,0x1f,0x1e,0x1b,0x1a,0x19,0x17,0x16,0x18,0x1c,
+0x1e,0x1b,0x18,0x17,0x18,0x1b,0x1d,0x1d,0x1e,0x1d,0x1c,0x1b,0x1c,0x1b,0x1a,0x18,
+0x1a,0x19,0x18,0x17,0x17,0x19,0x1a,0x1b,0x1c,0x1d,0x20,0x25,0x2c,0x32,0x36,0x38,
+0x3c,0x3c,0x37,0x2e,0x23,0x1c,0x1b,0x1d,0x1b,0x1c,0x1f,0x20,0x1f,0x1d,0x1a,0x19,
+0x1d,0x1f,0x24,0x2b,0x33,0x39,0x3b,0x3a,0x37,0x33,0x32,0x33,0x2e,0x26,0x24,0x27,
+0x29,0x2b,0x2d,0x2c,0x2b,0x2a,0x2c,0x2f,0x29,0x2f,0x2f,0x2c,0x2b,0x2a,0x31,0x3f,
+0x41,0x4b,0x55,0x5a,0x5d,0x60,0x61,0x61,0x60,0x5f,0x61,0x66,0x6c,0x6c,0x67,0x62,
+0x52,0x45,0x35,0x2a,0x25,0x23,0x24,0x25,0x29,0x26,0x26,0x27,0x25,0x20,0x1c,0x1a,
+0x1e,0x20,0x25,0x2c,0x31,0x30,0x2a,0x25,0x26,0x28,0x2c,0x2f,0x2e,0x2b,0x28,0x26,
+0x24,0x20,0x1e,0x1f,0x20,0x21,0x25,0x29,0x29,0x2f,0x34,0x36,0x38,0x3a,0x3b,0x39,
+0x3b,0x3f,0x45,0x48,0x49,0x49,0x49,0x49,0x57,0x52,0x4e,0x53,0x5a,0x58,0x59,0x65,
+0x6e,0x73,0x73,0x6b,0x62,0x5e,0x5f,0x60,0x6e,0x65,0x5a,0x57,0x5d,0x60,0x59,0x4f,
+0x51,0x4b,0x47,0x48,0x4a,0x4b,0x4c,0x4e,0x61,0x62,0x5b,0x52,0x4f,0x4f,0x53,0x5d,
+0x69,0x6a,0x70,0x75,0x70,0x66,0x62,0x65,0x57,0x58,0x68,0x82,0x93,0x96,0x98,0x9c,
+0x9f,0x93,0x84,0x7a,0x74,0x73,0x74,0x76,0x76,0x75,0x77,0x7b,0x7f,0x81,0x85,0x89,
+0x8f,0x92,0x94,0x95,0x96,0x99,0x9d,0xa0,0xa1,0xa2,0xa3,0xa3,0xa4,0xa4,0xa4,0xa4,
+0xa4,0xa5,0xa5,0xa5,0xa5,0xa6,0xa5,0xa5,0xa4,0xa4,0xa4,0xa3,0xa3,0xa2,0xa2,0xa2,
+0xa1,0x9f,0x9d,0x9c,0x9b,0x9a,0x99,0x97,0x94,0x92,0x90,0x8e,0x8c,0x89,0x85,0x83,
+0x78,0x74,0x6f,0x6e,0x6d,0x6a,0x66,0x64,0x60,0x5e,0x5d,0x5d,0x5e,0x60,0x61,0x61,
+0x61,0x64,0x69,0x6c,0x6e,0x6f,0x70,0x71,0x72,0x73,0x75,0x77,0x78,0x78,0x78,0x78,
+0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7d,0x7e,0x7e,0x7d,0x7d,0x7e,0x7e,
+0x7d,0x7e,0x7f,0x80,0x80,0x80,0x7e,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x80,0x80,
+0x84,0x85,0x87,0x89,0x8a,0x8a,0x8a,0x89,0x89,0x88,0x87,0x86,0x85,0x84,0x83,0x82,
+0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x86,0x84,0x81,0x7e,0x7b,0x77,0x74,0x71,
+0x6b,0x69,0x66,0x63,0x60,0x5d,0x5a,0x59,0x53,0x51,0x4f,0x4d,0x4c,0x4b,0x49,0x47,
+0x48,0x45,0x3e,0x38,0x38,0x3f,0x49,0x50,0x47,0x46,0x4e,0x55,0x56,0x57,0x51,0x45,
+0x38,0x32,0x2e,0x2e,0x37,0x4a,0x52,0x4a,0x2f,0x22,0x20,0x29,0x2e,0x31,0x32,0x2e,
+0x33,0x2e,0x2a,0x2b,0x31,0x38,0x3c,0x3d,0x3c,0x34,0x2e,0x37,0x50,0x6d,0x82,0x8c,
+0x8c,0x7e,0x6b,0x58,0x4a,0x45,0x4c,0x54,0x4c,0x48,0x4a,0x51,0x5e,0x6e,0x6d,0x5c,
+0x41,0x38,0x36,0x3e,0x3d,0x31,0x2a,0x2d,0x2c,0x2a,0x28,0x28,0x29,0x29,0x29,0x29,
+0x1e,0x1f,0x26,0x34,0x41,0x47,0x4a,0x4b,0x4d,0x3e,0x30,0x2a,0x28,0x24,0x20,0x1e,
+0x24,0x20,0x1f,0x22,0x2a,0x2f,0x2f,0x2d,0x33,0x49,0x51,0x41,0x35,0x3d,0x4a,0x4f,
+0x4e,0x50,0x56,0x59,0x4f,0x43,0x44,0x4d,0x3d,0x2e,0x24,0x2b,0x3e,0x4e,0x49,0x39,
+0x31,0x26,0x28,0x2f,0x2e,0x33,0x47,0x59,0x51,0x3e,0x25,0x21,0x38,0x4c,0x55,0x5a,
+0x5c,0x59,0x55,0x4d,0x4e,0x46,0x38,0x44,0x59,0x57,0x49,0x43,0x3a,0x32,0x43,0x54,
+0x68,0x5e,0x52,0x49,0x42,0x3e,0x3f,0x42,0x4d,0x55,0x53,0x48,0x33,0x2d,0x3b,0x4b,
+0x3b,0x33,0x2d,0x2d,0x2b,0x25,0x22,0x24,0x3e,0x4a,0x58,0x5b,0x4f,0x40,0x38,0x36,
+0x2b,0x26,0x23,0x25,0x27,0x26,0x25,0x26,0x21,0x20,0x20,0x1e,0x1c,0x1a,0x18,0x18,
+0x1d,0x1d,0x1e,0x1e,0x1f,0x21,0x25,0x27,0x25,0x25,0x28,0x2c,0x2c,0x28,0x23,0x20,
+0x25,0x29,0x2b,0x2c,0x2c,0x31,0x3a,0x43,0x38,0x2d,0x21,0x1c,0x1e,0x1f,0x20,0x21,
+0x24,0x25,0x24,0x21,0x20,0x20,0x1f,0x1d,0x1c,0x1a,0x19,0x1a,0x19,0x18,0x1b,0x1f,
+0x1f,0x1e,0x1c,0x1b,0x1a,0x1b,0x1d,0x1e,0x1e,0x1d,0x1b,0x1b,0x1b,0x1a,0x19,0x17,
+0x18,0x18,0x17,0x17,0x17,0x18,0x19,0x1a,0x19,0x1a,0x1d,0x23,0x2c,0x34,0x39,0x3c,
+0x3b,0x3b,0x37,0x2f,0x24,0x1e,0x1e,0x20,0x1b,0x1d,0x20,0x20,0x1f,0x1c,0x1a,0x18,
+0x1e,0x24,0x2b,0x30,0x34,0x39,0x3b,0x3b,0x3b,0x38,0x34,0x2f,0x28,0x21,0x20,0x22,
+0x23,0x26,0x29,0x2b,0x2b,0x2e,0x34,0x39,0x31,0x32,0x2b,0x24,0x23,0x24,0x2d,0x3c,
+0x48,0x4f,0x55,0x59,0x5c,0x60,0x63,0x64,0x67,0x6b,0x71,0x79,0x7e,0x7b,0x73,0x6c,
+0x5e,0x4e,0x37,0x26,0x1f,0x20,0x24,0x26,0x29,0x25,0x22,0x22,0x21,0x1e,0x1d,0x1d,
+0x24,0x25,0x27,0x2a,0x2b,0x29,0x24,0x20,0x24,0x26,0x29,0x2c,0x2a,0x25,0x21,0x21,
+0x21,0x1f,0x1e,0x20,0x22,0x23,0x26,0x29,0x2b,0x31,0x36,0x38,0x39,0x3b,0x3a,0x38,
+0x3d,0x3e,0x40,0x41,0x43,0x47,0x4c,0x4f,0x52,0x52,0x4f,0x4e,0x4d,0x46,0x47,0x53,
+0x5c,0x5c,0x5c,0x5b,0x59,0x58,0x58,0x59,0x58,0x55,0x52,0x52,0x56,0x58,0x54,0x4d,
+0x4c,0x45,0x41,0x45,0x4c,0x4e,0x4d,0x4b,0x4c,0x52,0x50,0x4a,0x46,0x42,0x43,0x4c,
+0x4d,0x4f,0x56,0x61,0x66,0x61,0x59,0x53,0x52,0x4f,0x59,0x71,0x85,0x8b,0x90,0x97,
+0x9e,0x99,0x8f,0x84,0x7a,0x74,0x73,0x74,0x74,0x74,0x77,0x7c,0x80,0x82,0x87,0x8c,
+0x90,0x92,0x95,0x97,0x97,0x99,0x9d,0xa0,0xa4,0xa4,0xa5,0xa5,0xa5,0xa5,0xa4,0xa4,
+0xa6,0xa6,0xa6,0xa6,0xa6,0xa7,0xa7,0xa7,0xa5,0xa5,0xa5,0xa5,0xa4,0xa3,0xa2,0xa2,
+0xa1,0x9f,0x9c,0x9b,0x9b,0x9a,0x99,0x99,0x95,0x93,0x91,0x90,0x8f,0x8d,0x8a,0x88,
+0x84,0x7d,0x74,0x6f,0x6d,0x6c,0x6b,0x69,0x62,0x60,0x5d,0x5b,0x5b,0x5c,0x5c,0x5c,
+0x5b,0x5e,0x62,0x65,0x67,0x68,0x6a,0x6b,0x6d,0x6f,0x72,0x74,0x75,0x75,0x76,0x77,
+0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,
+0x7c,0x7d,0x7f,0x80,0x80,0x80,0x7e,0x7d,0x7d,0x7e,0x80,0x81,0x82,0x83,0x83,0x82,
+0x85,0x87,0x88,0x8a,0x8c,0x8d,0x8d,0x8d,0x8f,0x8e,0x8d,0x8d,0x8e,0x8e,0x8d,0x8c,
+0x8a,0x8a,0x8b,0x8b,0x8a,0x8a,0x89,0x88,0x8b,0x89,0x85,0x81,0x7d,0x79,0x75,0x73,
+0x6a,0x69,0x67,0x65,0x62,0x5e,0x5c,0x5a,0x54,0x53,0x50,0x4f,0x4e,0x4c,0x4a,0x48,
+0x4a,0x46,0x3e,0x37,0x38,0x40,0x48,0x4d,0x4b,0x5a,0x71,0x77,0x64,0x4b,0x35,0x25,
+0x23,0x24,0x26,0x27,0x2f,0x40,0x43,0x33,0x2a,0x22,0x24,0x2d,0x2f,0x30,0x31,0x2e,
+0x27,0x25,0x25,0x29,0x30,0x36,0x37,0x37,0x38,0x36,0x3a,0x49,0x5b,0x69,0x73,0x79,
+0x74,0x76,0x76,0x6f,0x62,0x53,0x47,0x41,0x45,0x3e,0x3b,0x3e,0x46,0x53,0x54,0x49,
+0x34,0x2f,0x34,0x41,0x44,0x38,0x2d,0x2a,0x2d,0x2b,0x29,0x29,0x29,0x2a,0x2b,0x2b,
+0x31,0x2f,0x34,0x42,0x52,0x59,0x59,0x56,0x4f,0x46,0x37,0x29,0x22,0x20,0x1e,0x1c,
+0x22,0x21,0x21,0x23,0x28,0x2b,0x2d,0x2c,0x36,0x41,0x41,0x33,0x31,0x44,0x55,0x59,
+0x50,0x54,0x5b,0x5d,0x50,0x3e,0x39,0x3e,0x49,0x54,0x5a,0x53,0x49,0x43,0x41,0x40,
+0x30,0x23,0x23,0x33,0x42,0x4c,0x4e,0x49,0x3c,0x2c,0x1d,0x25,0x40,0x51,0x57,0x5d,
+0x55,0x4f,0x45,0x36,0x33,0x2e,0x27,0x38,0x54,0x5f,0x60,0x5b,0x47,0x3d,0x59,0x72,
+0x6e,0x5a,0x46,0x41,0x45,0x4b,0x50,0x54,0x5d,0x51,0x36,0x33,0x2e,0x35,0x3d,0x40,
+0x52,0x43,0x32,0x28,0x27,0x2b,0x32,0x37,0x46,0x52,0x61,0x67,0x5e,0x4d,0x3b,0x31,
+0x39,0x38,0x31,0x26,0x1f,0x1e,0x1d,0x1b,0x1c,0x1d,0x1e,0x1e,0x1d,0x1b,0x1a,0x1a,
+0x1d,0x1e,0x1e,0x1d,0x1c,0x1c,0x1e,0x1f,0x22,0x27,0x2d,0x30,0x32,0x30,0x2a,0x24,
+0x21,0x24,0x27,0x28,0x27,0x29,0x2e,0x32,0x2a,0x22,0x1d,0x1e,0x20,0x20,0x21,0x22,
+0x20,0x21,0x21,0x1e,0x1d,0x1e,0x1e,0x1c,0x1b,0x1b,0x1c,0x1d,0x1c,0x1a,0x1a,0x1d,
+0x17,0x1a,0x1c,0x1b,0x18,0x15,0x14,0x15,0x1c,0x1c,0x1c,0x1c,0x1c,0x1b,0x18,0x16,
+0x17,0x17,0x18,0x19,0x19,0x19,0x19,0x19,0x18,0x19,0x1b,0x20,0x28,0x31,0x37,0x3a,
+0x34,0x36,0x36,0x31,0x28,0x21,0x20,0x21,0x1c,0x1e,0x1f,0x1f,0x1d,0x1c,0x1c,0x1c,
+0x21,0x2c,0x35,0x36,0x34,0x35,0x38,0x39,0x3e,0x3e,0x39,0x2e,0x25,0x20,0x1e,0x1d,
+0x1e,0x22,0x26,0x28,0x29,0x2d,0x34,0x3a,0x36,0x35,0x2c,0x25,0x25,0x24,0x29,0x35,
+0x49,0x4f,0x56,0x59,0x5a,0x5c,0x5d,0x5b,0x63,0x65,0x68,0x6c,0x6c,0x69,0x63,0x5f,
+0x57,0x48,0x33,0x24,0x1f,0x21,0x23,0x23,0x25,0x21,0x1f,0x1f,0x20,0x20,0x20,0x22,
+0x28,0x28,0x28,0x28,0x27,0x26,0x25,0x24,0x24,0x23,0x24,0x26,0x24,0x1f,0x1e,0x21,
+0x22,0x20,0x20,0x22,0x23,0x23,0x25,0x28,0x2d,0x32,0x36,0x38,0x39,0x3c,0x3e,0x3d,
+0x38,0x39,0x3b,0x3c,0x3f,0x45,0x4c,0x52,0x53,0x5b,0x5a,0x55,0x4f,0x48,0x45,0x4c,
+0x49,0x49,0x4e,0x56,0x56,0x4d,0x43,0x3f,0x4b,0x50,0x53,0x53,0x52,0x51,0x4e,0x4b,
+0x4f,0x45,0x3e,0x40,0x46,0x4a,0x49,0x48,0x56,0x5f,0x63,0x62,0x60,0x5a,0x55,0x59,
+0x57,0x56,0x58,0x60,0x6a,0x69,0x5a,0x49,0x50,0x51,0x54,0x5e,0x6e,0x7f,0x8a,0x8f,
+0x98,0x9c,0x9b,0x8e,0x7e,0x73,0x72,0x75,0x72,0x74,0x77,0x7d,0x81,0x83,0x89,0x8e,
+0x90,0x93,0x97,0x99,0x99,0x9a,0x9d,0xa0,0xa3,0xa4,0xa5,0xa5,0xa6,0xa6,0xa6,0xa6,
+0xa7,0xa7,0xa6,0xa6,0xa7,0xa7,0xa7,0xa8,0xa5,0xa6,0xa5,0xa5,0xa4,0xa3,0xa1,0xa1,
+0xa0,0x9e,0x9b,0x9a,0x9a,0x9a,0x9a,0x99,0x98,0x97,0x95,0x93,0x92,0x91,0x8f,0x8d,
+0x8b,0x85,0x7c,0x76,0x74,0x73,0x6f,0x6b,0x64,0x61,0x5d,0x5a,0x59,0x59,0x58,0x58,
+0x5a,0x5c,0x5f,0x61,0x62,0x64,0x66,0x68,0x69,0x6b,0x6e,0x70,0x71,0x72,0x75,0x77,
+0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,0x7a,0x7b,0x7d,0x7c,0x7b,0x7b,0x7c,0x7e,
+0x7d,0x7d,0x7d,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7c,0x7e,0x81,0x82,0x83,0x83,0x83,
+0x87,0x87,0x89,0x8a,0x8c,0x8e,0x8f,0x90,0x91,0x90,0x90,0x92,0x94,0x95,0x94,0x93,
+0x92,0x92,0x92,0x91,0x90,0x8f,0x8d,0x8c,0x8f,0x8c,0x88,0x83,0x7f,0x7b,0x77,0x74,
+0x6b,0x6b,0x6a,0x67,0x63,0x5f,0x5c,0x5b,0x56,0x54,0x52,0x50,0x4f,0x4d,0x4b,0x49,
+0x4c,0x47,0x3f,0x38,0x39,0x3f,0x42,0x41,0x33,0x3a,0x47,0x48,0x39,0x2d,0x2b,0x29,
+0x29,0x29,0x2b,0x29,0x28,0x2f,0x30,0x25,0x2e,0x24,0x23,0x25,0x23,0x24,0x2b,0x2e,
+0x20,0x22,0x28,0x33,0x3e,0x41,0x3c,0x36,0x31,0x3b,0x4c,0x5f,0x6b,0x6c,0x64,0x5c,
+0x53,0x5f,0x70,0x7e,0x84,0x7d,0x67,0x52,0x4a,0x3f,0x38,0x35,0x33,0x37,0x39,0x33,
+0x2b,0x2a,0x2f,0x39,0x3a,0x31,0x28,0x25,0x2e,0x2b,0x27,0x24,0x23,0x23,0x24,0x24,
+0x24,0x24,0x28,0x34,0x41,0x47,0x4a,0x4a,0x50,0x45,0x37,0x2d,0x25,0x21,0x1f,0x1f,
+0x24,0x24,0x25,0x26,0x26,0x27,0x28,0x29,0x3b,0x3e,0x3b,0x36,0x41,0x57,0x5f,0x5a,
+0x4f,0x54,0x5b,0x59,0x47,0x33,0x2f,0x36,0x4f,0x5a,0x59,0x4e,0x4d,0x4d,0x3f,0x2e,
+0x12,0x23,0x3a,0x44,0x3e,0x3e,0x46,0x4a,0x3f,0x31,0x27,0x32,0x47,0x4e,0x4b,0x4e,
+0x59,0x53,0x47,0x35,0x30,0x2c,0x29,0x3e,0x58,0x5c,0x56,0x54,0x50,0x56,0x6a,0x6d,
+0x6a,0x5b,0x4d,0x49,0x4a,0x4b,0x4f,0x54,0x42,0x47,0x37,0x39,0x2a,0x31,0x4b,0x60,
+0x4f,0x47,0x3f,0x3a,0x33,0x2e,0x31,0x39,0x55,0x5a,0x5f,0x5d,0x56,0x4a,0x3e,0x36,
+0x4d,0x53,0x4a,0x31,0x1f,0x1e,0x1e,0x19,0x17,0x1a,0x1d,0x1e,0x1c,0x1a,0x1a,0x1b,
+0x1d,0x1d,0x1d,0x1d,0x1b,0x1b,0x1c,0x1d,0x20,0x25,0x28,0x28,0x2b,0x2f,0x2d,0x27,
+0x24,0x25,0x28,0x29,0x28,0x26,0x24,0x23,0x20,0x1d,0x1e,0x22,0x23,0x20,0x20,0x22,
+0x1e,0x1f,0x1e,0x1b,0x1a,0x1c,0x1c,0x1a,0x1d,0x1d,0x20,0x22,0x1f,0x1b,0x18,0x19,
+0x1c,0x22,0x27,0x27,0x22,0x1c,0x1a,0x1a,0x19,0x1a,0x1c,0x1e,0x1e,0x1c,0x19,0x16,
+0x19,0x1a,0x1c,0x1d,0x1e,0x1e,0x1d,0x1c,0x1c,0x1c,0x1c,0x20,0x27,0x2e,0x34,0x37,
+0x38,0x3b,0x3c,0x37,0x2d,0x23,0x1e,0x1e,0x1a,0x1b,0x1b,0x1a,0x18,0x19,0x1b,0x1e,
+0x22,0x2f,0x3a,0x38,0x31,0x2f,0x32,0x34,0x3e,0x41,0x3c,0x2f,0x24,0x21,0x1e,0x1b,
+0x23,0x26,0x29,0x28,0x25,0x25,0x29,0x2d,0x2d,0x2e,0x2a,0x29,0x2b,0x29,0x2a,0x32,
+0x3f,0x49,0x55,0x5c,0x60,0x60,0x5d,0x59,0x5b,0x59,0x57,0x56,0x55,0x56,0x57,0x57,
+0x52,0x46,0x36,0x2a,0x25,0x24,0x1f,0x1a,0x21,0x1f,0x1f,0x21,0x23,0x22,0x22,0x23,
+0x25,0x24,0x24,0x23,0x22,0x23,0x25,0x27,0x27,0x25,0x24,0x25,0x22,0x1f,0x21,0x26,
+0x26,0x24,0x22,0x23,0x23,0x22,0x23,0x26,0x29,0x2d,0x31,0x33,0x37,0x3d,0x41,0x42,
+0x34,0x37,0x3a,0x3b,0x3c,0x3e,0x43,0x47,0x4b,0x4d,0x4a,0x4d,0x5a,0x60,0x58,0x51,
+0x47,0x44,0x48,0x52,0x53,0x47,0x3d,0x3a,0x3e,0x49,0x53,0x55,0x53,0x51,0x52,0x53,
+0x58,0x4d,0x42,0x40,0x43,0x46,0x47,0x48,0x4f,0x54,0x53,0x53,0x57,0x58,0x58,0x5e,
+0x5b,0x62,0x66,0x65,0x64,0x62,0x5a,0x50,0x4c,0x52,0x50,0x4d,0x59,0x72,0x83,0x85,
+0x91,0x9c,0xa1,0x95,0x7f,0x72,0x72,0x78,0x71,0x73,0x78,0x7d,0x81,0x84,0x8a,0x8f,
+0x90,0x94,0x98,0x9a,0x9b,0x9c,0x9e,0xa0,0xa1,0xa2,0xa3,0xa5,0xa7,0xa8,0xa9,0xa9,
+0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa8,0xa8,0xa6,0xa6,0xa6,0xa5,0xa4,0xa2,0xa1,0xa0,
+0x9f,0x9d,0x9a,0x99,0x99,0x99,0x9a,0x99,0x9c,0x9b,0x99,0x97,0x96,0x94,0x92,0x90,
+0x8c,0x89,0x84,0x80,0x7e,0x7a,0x71,0x69,0x66,0x63,0x5e,0x5a,0x58,0x57,0x56,0x56,
+0x5a,0x5c,0x5e,0x60,0x61,0x63,0x65,0x67,0x66,0x68,0x6b,0x6d,0x6e,0x70,0x74,0x76,
+0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x7a,0x7c,0x7c,0x7b,0x7b,0x7d,0x7f,
+0x7f,0x7e,0x7c,0x7b,0x7a,0x7b,0x7b,0x7c,0x78,0x79,0x7c,0x7f,0x81,0x82,0x82,0x82,
+0x87,0x88,0x89,0x8a,0x8c,0x8e,0x90,0x91,0x91,0x90,0x90,0x92,0x96,0x97,0x97,0x96,
+0x98,0x97,0x97,0x96,0x94,0x92,0x90,0x8f,0x91,0x8e,0x89,0x84,0x80,0x7c,0x77,0x75,
+0x6d,0x6d,0x6c,0x69,0x65,0x60,0x5d,0x5b,0x57,0x55,0x53,0x51,0x50,0x4e,0x4c,0x4a,
+0x49,0x46,0x40,0x3c,0x3e,0x44,0x44,0x3f,0x39,0x32,0x31,0x2f,0x28,0x25,0x26,0x24,
+0x29,0x27,0x2c,0x30,0x31,0x39,0x43,0x45,0x2a,0x1f,0x24,0x34,0x3e,0x3d,0x30,0x21,
+0x1d,0x1b,0x1d,0x27,0x35,0x3c,0x39,0x33,0x34,0x42,0x53,0x60,0x69,0x68,0x5a,0x49,
+0x38,0x4a,0x5c,0x68,0x72,0x78,0x73,0x68,0x54,0x47,0x40,0x3d,0x38,0x38,0x3d,0x3c,
+0x30,0x2e,0x2d,0x2d,0x29,0x23,0x22,0x24,0x2a,0x27,0x23,0x20,0x20,0x22,0x23,0x24,
+0x22,0x25,0x2e,0x3a,0x44,0x4a,0x50,0x55,0x4f,0x40,0x34,0x30,0x2c,0x24,0x21,0x25,
+0x26,0x28,0x29,0x28,0x25,0x24,0x25,0x27,0x37,0x42,0x49,0x47,0x4a,0x53,0x55,0x4f,
+0x47,0x51,0x5f,0x5f,0x4a,0x32,0x2d,0x35,0x56,0x67,0x60,0x49,0x44,0x47,0x38,0x21,
+0x19,0x20,0x2b,0x30,0x33,0x3f,0x46,0x42,0x2f,0x27,0x25,0x37,0x4f,0x53,0x50,0x53,
+0x51,0x4f,0x48,0x3a,0x38,0x35,0x35,0x4b,0x51,0x62,0x64,0x5c,0x52,0x5a,0x6a,0x62,
+0x5d,0x5a,0x58,0x53,0x46,0x3a,0x3b,0x44,0x46,0x4f,0x3f,0x43,0x2f,0x30,0x45,0x57,
+0x54,0x42,0x34,0x34,0x35,0x36,0x42,0x51,0x5a,0x5d,0x5f,0x5a,0x51,0x45,0x3a,0x32,
+0x5c,0x4d,0x35,0x22,0x1f,0x26,0x26,0x20,0x1d,0x1a,0x18,0x19,0x1a,0x19,0x19,0x1a,
+0x1c,0x1f,0x21,0x20,0x1c,0x1a,0x1b,0x1e,0x24,0x21,0x1d,0x1b,0x1c,0x1d,0x1e,0x1d,
+0x1d,0x1f,0x21,0x23,0x23,0x23,0x24,0x24,0x1d,0x1f,0x20,0x22,0x22,0x22,0x21,0x21,
+0x1f,0x1f,0x1f,0x1f,0x1e,0x1d,0x1c,0x1b,0x1e,0x23,0x26,0x25,0x22,0x20,0x1c,0x18,
+0x1b,0x25,0x2f,0x30,0x2e,0x2b,0x26,0x20,0x1e,0x1a,0x1a,0x1d,0x1e,0x1a,0x17,0x17,
+0x1b,0x1b,0x1a,0x18,0x17,0x18,0x1b,0x1e,0x1e,0x1d,0x20,0x27,0x2d,0x2f,0x31,0x33,
+0x3c,0x3e,0x3f,0x3a,0x30,0x25,0x1e,0x1c,0x20,0x1e,0x1c,0x1a,0x18,0x17,0x1b,0x21,
+0x27,0x2d,0x30,0x2e,0x2c,0x2e,0x32,0x35,0x38,0x37,0x33,0x2c,0x25,0x20,0x1e,0x1e,
+0x24,0x25,0x25,0x26,0x27,0x2a,0x2d,0x30,0x27,0x2d,0x31,0x36,0x3a,0x35,0x30,0x34,
+0x3c,0x46,0x4f,0x51,0x52,0x57,0x5f,0x64,0x6a,0x6c,0x6f,0x6f,0x67,0x5b,0x51,0x4b,
+0x54,0x44,0x39,0x31,0x25,0x1f,0x20,0x1f,0x21,0x25,0x2a,0x2d,0x2d,0x2a,0x25,0x20,
+0x29,0x26,0x22,0x1f,0x1e,0x20,0x23,0x25,0x22,0x1e,0x1e,0x23,0x28,0x28,0x25,0x24,
+0x23,0x23,0x24,0x23,0x22,0x21,0x24,0x28,0x2d,0x2f,0x32,0x31,0x30,0x34,0x3d,0x45,
+0x44,0x41,0x40,0x44,0x46,0x45,0x45,0x46,0x4a,0x45,0x43,0x4a,0x53,0x53,0x4c,0x44,
+0x3b,0x38,0x3e,0x4c,0x54,0x4d,0x42,0x3d,0x42,0x4b,0x54,0x5a,0x60,0x66,0x68,0x65,
+0x5d,0x52,0x49,0x47,0x49,0x49,0x47,0x45,0x46,0x44,0x44,0x46,0x45,0x44,0x46,0x48,
+0x51,0x4c,0x4b,0x53,0x5c,0x5e,0x58,0x51,0x49,0x52,0x4f,0x4c,0x56,0x61,0x6f,0x82,
+0x8a,0x94,0x9e,0x9c,0x8c,0x79,0x6e,0x6c,0x6f,0x72,0x77,0x7c,0x80,0x85,0x8a,0x8e,
+0x91,0x93,0x97,0x9a,0x9d,0x9f,0xa1,0xa2,0xa2,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa7,
+0xa9,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa6,0xa7,0xa6,0xa5,0xa4,0xa2,0xa0,0x9f,0x9e,
+0x9c,0x9d,0x9d,0x9b,0x98,0x97,0x98,0x99,0x99,0x99,0x99,0x99,0x97,0x95,0x93,0x92,
+0x90,0x90,0x8d,0x88,0x83,0x7d,0x76,0x6f,0x67,0x65,0x62,0x5d,0x58,0x55,0x55,0x55,
+0x59,0x59,0x5a,0x5b,0x5d,0x5f,0x61,0x62,0x62,0x64,0x67,0x6a,0x6c,0x6f,0x72,0x75,
+0x75,0x78,0x7b,0x7b,0x78,0x76,0x76,0x77,0x7b,0x79,0x78,0x7a,0x7d,0x7f,0x7d,0x7b,
+0x7c,0x7b,0x7a,0x79,0x78,0x78,0x79,0x79,0x78,0x7a,0x7c,0x7c,0x7c,0x7c,0x7e,0x80,
+0x83,0x84,0x86,0x89,0x8c,0x8e,0x8f,0x90,0x92,0x90,0x8e,0x90,0x93,0x96,0x96,0x95,
+0x94,0x97,0x97,0x95,0x91,0x8e,0x8f,0x90,0x92,0x90,0x8d,0x89,0x85,0x7f,0x79,0x75,
+0x6e,0x6e,0x6d,0x6b,0x67,0x62,0x5e,0x5b,0x57,0x57,0x57,0x55,0x51,0x4e,0x4c,0x4b,
+0x48,0x44,0x3e,0x3c,0x42,0x48,0x46,0x3f,0x2f,0x27,0x21,0x23,0x2a,0x2e,0x2f,0x2e,
+0x25,0x1f,0x1e,0x2c,0x3f,0x49,0x43,0x39,0x28,0x27,0x2a,0x32,0x35,0x2e,0x24,0x1f,
+0x1a,0x1f,0x27,0x30,0x39,0x3d,0x3b,0x37,0x35,0x40,0x55,0x67,0x68,0x5d,0x56,0x57,
+0x44,0x43,0x42,0x4b,0x60,0x72,0x74,0x6b,0x5f,0x5b,0x51,0x47,0x45,0x47,0x43,0x3c,
+0x33,0x2b,0x26,0x28,0x28,0x23,0x1f,0x20,0x21,0x27,0x2b,0x2b,0x2b,0x2a,0x24,0x1d,
+0x20,0x20,0x26,0x34,0x44,0x4f,0x59,0x5f,0x56,0x3f,0x42,0x54,0x4a,0x2e,0x24,0x2d,
+0x36,0x2c,0x2c,0x26,0x23,0x24,0x22,0x2c,0x3d,0x48,0x4d,0x48,0x44,0x47,0x46,0x42,
+0x4e,0x56,0x5e,0x60,0x49,0x36,0x23,0x35,0x5d,0x6d,0x62,0x4f,0x42,0x38,0x32,0x26,
+0x1b,0x24,0x2a,0x2e,0x3b,0x48,0x44,0x36,0x29,0x1d,0x21,0x3b,0x4e,0x4c,0x48,0x4b,
+0x51,0x57,0x4b,0x44,0x4a,0x44,0x40,0x4f,0x52,0x51,0x52,0x4f,0x4b,0x55,0x61,0x64,
+0x67,0x65,0x61,0x5e,0x5e,0x5e,0x58,0x51,0x40,0x3c,0x2e,0x17,0x19,0x44,0x62,0x5a,
+0x50,0x45,0x3e,0x3d,0x3a,0x39,0x48,0x5b,0x61,0x65,0x64,0x57,0x42,0x30,0x2c,0x2f,
+0x49,0x3a,0x2a,0x21,0x20,0x20,0x20,0x1f,0x1c,0x1b,0x1c,0x1f,0x1e,0x1b,0x1a,0x1b,
+0x1e,0x22,0x25,0x23,0x1f,0x1c,0x1e,0x21,0x24,0x21,0x1e,0x1c,0x1d,0x1e,0x1e,0x1d,
+0x1c,0x1e,0x20,0x21,0x21,0x21,0x20,0x1f,0x1e,0x21,0x24,0x26,0x26,0x25,0x24,0x24,
+0x21,0x21,0x21,0x22,0x22,0x1f,0x1b,0x17,0x1e,0x23,0x26,0x26,0x24,0x22,0x1f,0x1b,
+0x1a,0x23,0x2a,0x2b,0x2b,0x2b,0x29,0x26,0x23,0x1e,0x1c,0x1e,0x1f,0x1e,0x1d,0x1f,
+0x1e,0x1d,0x1b,0x19,0x17,0x17,0x19,0x1a,0x1c,0x1b,0x1e,0x26,0x2d,0x2f,0x2e,0x2d,
+0x33,0x37,0x3b,0x39,0x31,0x28,0x21,0x1e,0x1d,0x1c,0x1c,0x1d,0x1c,0x1b,0x1f,0x24,
+0x28,0x2b,0x2d,0x2d,0x2f,0x32,0x35,0x36,0x34,0x32,0x2d,0x26,0x20,0x1d,0x1e,0x1f,
+0x20,0x22,0x25,0x26,0x25,0x26,0x27,0x29,0x28,0x2d,0x2e,0x32,0x37,0x36,0x37,0x3e,
+0x50,0x56,0x58,0x55,0x52,0x55,0x5d,0x63,0x67,0x68,0x6a,0x6c,0x6b,0x67,0x63,0x60,
+0x52,0x41,0x35,0x2e,0x25,0x23,0x28,0x2b,0x33,0x32,0x31,0x31,0x30,0x2e,0x29,0x24,
+0x24,0x24,0x23,0x22,0x22,0x21,0x21,0x21,0x23,0x1f,0x1d,0x20,0x22,0x22,0x20,0x20,
+0x22,0x22,0x22,0x21,0x20,0x20,0x22,0x24,0x2e,0x31,0x34,0x34,0x34,0x38,0x40,0x47,
+0x4a,0x4a,0x49,0x4a,0x4c,0x4c,0x4a,0x48,0x47,0x45,0x41,0x40,0x3f,0x3e,0x39,0x35,
+0x37,0x35,0x39,0x3f,0x3f,0x39,0x36,0x38,0x44,0x47,0x49,0x4b,0x4f,0x54,0x55,0x53,
+0x5c,0x55,0x4f,0x4f,0x50,0x4f,0x4b,0x49,0x52,0x51,0x52,0x55,0x57,0x59,0x5e,0x63,
+0x5b,0x59,0x5b,0x64,0x6b,0x66,0x58,0x4c,0x47,0x4f,0x4c,0x4a,0x54,0x5d,0x66,0x76,
+0x82,0x8d,0x98,0x99,0x8d,0x7c,0x70,0x6b,0x6f,0x73,0x79,0x7d,0x81,0x85,0x89,0x8c,
+0x91,0x94,0x97,0x9a,0x9c,0x9e,0xa0,0xa1,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa7,
+0xa9,0xa9,0xa8,0xa8,0xa8,0xa8,0xa6,0xa4,0xa4,0xa3,0xa2,0xa0,0x9e,0x9d,0x9b,0x9b,
+0x99,0x9a,0x99,0x97,0x95,0x94,0x95,0x96,0x95,0x96,0x96,0x96,0x96,0x95,0x93,0x92,
+0x90,0x90,0x8e,0x8a,0x86,0x81,0x7b,0x74,0x6d,0x6a,0x65,0x60,0x5c,0x59,0x58,0x57,
+0x57,0x57,0x58,0x59,0x5b,0x5d,0x5f,0x60,0x63,0x65,0x67,0x68,0x6a,0x6d,0x70,0x73,
+0x73,0x76,0x79,0x7a,0x78,0x76,0x76,0x78,0x7b,0x79,0x77,0x77,0x7a,0x7d,0x7c,0x7b,
+0x7b,0x7a,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x80,
+0x80,0x81,0x83,0x86,0x88,0x8a,0x8b,0x8c,0x8a,0x89,0x88,0x8a,0x8c,0x8e,0x8f,0x8f,
+0x91,0x92,0x92,0x90,0x8c,0x8a,0x8b,0x8d,0x8f,0x8d,0x8b,0x89,0x85,0x80,0x7a,0x76,
+0x70,0x6e,0x6d,0x6a,0x67,0x63,0x5f,0x5c,0x58,0x58,0x57,0x55,0x52,0x4f,0x4d,0x4b,
+0x47,0x45,0x3f,0x39,0x38,0x3a,0x39,0x34,0x33,0x30,0x2d,0x2d,0x2f,0x31,0x32,0x33,
+0x1f,0x1d,0x20,0x2c,0x38,0x39,0x2b,0x1e,0x24,0x26,0x2a,0x2a,0x25,0x1f,0x22,0x29,
+0x36,0x3a,0x3e,0x40,0x40,0x3e,0x3b,0x39,0x3f,0x4d,0x65,0x7a,0x7f,0x74,0x66,0x5d,
+0x4d,0x4c,0x4c,0x4d,0x4f,0x52,0x58,0x5e,0x66,0x63,0x5b,0x51,0x48,0x42,0x3b,0x35,
+0x2f,0x28,0x23,0x25,0x28,0x28,0x26,0x24,0x26,0x26,0x24,0x25,0x2c,0x34,0x36,0x33,
+0x1e,0x2d,0x3f,0x4d,0x55,0x56,0x4d,0x43,0x47,0x3c,0x3d,0x41,0x34,0x25,0x25,0x2a,
+0x2d,0x27,0x2c,0x2a,0x25,0x23,0x24,0x31,0x51,0x49,0x3b,0x34,0x3c,0x4c,0x50,0x4b,
+0x45,0x53,0x60,0x60,0x43,0x2d,0x1e,0x35,0x50,0x5f,0x56,0x4b,0x43,0x39,0x33,0x27,
+0x17,0x2d,0x3f,0x43,0x44,0x48,0x47,0x3f,0x29,0x23,0x2b,0x42,0x4e,0x49,0x46,0x4b,
+0x56,0x53,0x43,0x39,0x39,0x35,0x36,0x44,0x4e,0x4f,0x51,0x4f,0x4e,0x57,0x5f,0x5f,
+0x61,0x6c,0x6f,0x69,0x69,0x6c,0x62,0x51,0x3d,0x23,0x16,0x1b,0x28,0x41,0x5a,0x61,
+0x47,0x44,0x44,0x43,0x3c,0x39,0x47,0x5a,0x63,0x5d,0x50,0x40,0x34,0x32,0x37,0x3d,
+0x31,0x26,0x1f,0x20,0x20,0x1c,0x1a,0x1e,0x18,0x1a,0x1f,0x22,0x20,0x1b,0x19,0x1a,
+0x1e,0x22,0x25,0x24,0x20,0x1d,0x1e,0x20,0x22,0x20,0x1e,0x1d,0x1e,0x20,0x21,0x21,
+0x1c,0x1e,0x20,0x21,0x21,0x20,0x1e,0x1c,0x1b,0x1f,0x24,0x28,0x2a,0x29,0x26,0x24,
+0x1f,0x1f,0x20,0x23,0x25,0x24,0x1f,0x1a,0x1f,0x23,0x27,0x27,0x26,0x25,0x22,0x1f,
+0x1e,0x23,0x27,0x28,0x28,0x2a,0x2b,0x2b,0x28,0x23,0x1e,0x1d,0x1e,0x1e,0x21,0x23,
+0x20,0x1e,0x1b,0x19,0x18,0x19,0x19,0x19,0x19,0x19,0x1f,0x28,0x30,0x31,0x2f,0x2d,
+0x2d,0x32,0x38,0x37,0x30,0x27,0x20,0x1d,0x19,0x19,0x1a,0x1c,0x1c,0x1c,0x20,0x25,
+0x29,0x2b,0x2c,0x2e,0x33,0x3a,0x3c,0x3a,0x3c,0x38,0x30,0x27,0x21,0x1e,0x1f,0x21,
+0x20,0x24,0x29,0x2b,0x29,0x27,0x28,0x29,0x28,0x2a,0x28,0x28,0x2d,0x2f,0x35,0x40,
+0x4c,0x55,0x5e,0x5f,0x5c,0x5c,0x5d,0x5e,0x5c,0x5b,0x5a,0x5a,0x5c,0x5d,0x5b,0x5a,
+0x4e,0x3c,0x2f,0x29,0x23,0x26,0x30,0x35,0x3e,0x38,0x32,0x30,0x31,0x30,0x2b,0x26,
+0x22,0x22,0x22,0x22,0x22,0x22,0x21,0x21,0x23,0x20,0x1d,0x1d,0x1d,0x1b,0x1c,0x1e,
+0x24,0x25,0x25,0x22,0x20,0x1f,0x20,0x22,0x2a,0x2d,0x30,0x31,0x31,0x33,0x39,0x3d,
+0x45,0x4c,0x52,0x55,0x57,0x58,0x52,0x4a,0x52,0x56,0x56,0x4d,0x45,0x41,0x3e,0x3b,
+0x3c,0x3d,0x3f,0x40,0x3b,0x35,0x37,0x3f,0x3f,0x42,0x45,0x48,0x4c,0x4d,0x4b,0x46,
+0x51,0x4e,0x4d,0x51,0x53,0x52,0x4f,0x4f,0x4b,0x4b,0x4e,0x52,0x55,0x54,0x54,0x56,
+0x5e,0x5e,0x62,0x6a,0x6e,0x66,0x55,0x45,0x47,0x4c,0x4b,0x4c,0x55,0x59,0x5e,0x67,
+0x78,0x83,0x90,0x94,0x8d,0x7f,0x70,0x67,0x6f,0x74,0x7b,0x7f,0x82,0x85,0x88,0x8b,
+0x91,0x94,0x97,0x99,0x9b,0x9c,0x9e,0x9f,0xa0,0xa1,0xa3,0xa5,0xa6,0xa6,0xa6,0xa6,
+0xa7,0xa7,0xa7,0xa7,0xa7,0xa5,0xa2,0xa0,0xa2,0xa1,0xa0,0x9e,0x9c,0x9a,0x99,0x98,
+0x94,0x94,0x93,0x91,0x8f,0x8f,0x8f,0x90,0x91,0x92,0x93,0x94,0x94,0x94,0x93,0x93,
+0x8f,0x90,0x8f,0x8b,0x88,0x85,0x80,0x7a,0x74,0x6f,0x69,0x64,0x61,0x5e,0x5a,0x58,
+0x55,0x55,0x55,0x56,0x58,0x5a,0x5c,0x5d,0x63,0x64,0x65,0x66,0x68,0x6a,0x6e,0x71,
+0x71,0x74,0x77,0x78,0x77,0x76,0x77,0x78,0x7b,0x78,0x75,0x75,0x77,0x7a,0x7a,0x7a,
+0x79,0x78,0x77,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x76,0x79,0x7a,0x7b,0x7b,
+0x7a,0x7b,0x7d,0x7f,0x81,0x82,0x83,0x84,0x82,0x83,0x83,0x84,0x84,0x85,0x87,0x88,
+0x8a,0x8b,0x8b,0x89,0x86,0x85,0x87,0x88,0x89,0x88,0x88,0x87,0x84,0x80,0x7b,0x77,
+0x72,0x70,0x6c,0x6a,0x68,0x65,0x61,0x5d,0x59,0x59,0x58,0x56,0x54,0x51,0x4e,0x4d,
+0x45,0x45,0x40,0x39,0x33,0x31,0x31,0x30,0x38,0x37,0x33,0x2e,0x28,0x24,0x23,0x23,
+0x22,0x1d,0x1b,0x21,0x2c,0x33,0x32,0x2f,0x22,0x24,0x24,0x22,0x21,0x29,0x3c,0x4d,
+0x57,0x59,0x59,0x54,0x4a,0x42,0x3f,0x40,0x3e,0x4f,0x65,0x77,0x80,0x7d,0x72,0x66,
+0x60,0x5c,0x59,0x55,0x4a,0x3d,0x3d,0x45,0x45,0x48,0x4d,0x50,0x4b,0x43,0x3c,0x3a,
+0x2e,0x2a,0x26,0x27,0x30,0x37,0x37,0x33,0x28,0x24,0x20,0x23,0x2f,0x3f,0x47,0x49,
+0x39,0x44,0x4a,0x47,0x49,0x51,0x54,0x4f,0x48,0x4b,0x4b,0x40,0x2f,0x2b,0x2d,0x2a,
+0x24,0x20,0x29,0x29,0x24,0x24,0x2d,0x45,0x4a,0x3d,0x2d,0x2c,0x3c,0x4f,0x54,0x4f,
+0x42,0x50,0x5b,0x58,0x3a,0x25,0x17,0x2e,0x47,0x53,0x4c,0x46,0x40,0x33,0x2b,0x21,
+0x22,0x3d,0x54,0x58,0x52,0x4f,0x4a,0x43,0x31,0x2f,0x38,0x48,0x4c,0x46,0x49,0x53,
+0x5a,0x53,0x47,0x3e,0x3d,0x41,0x48,0x4e,0x4b,0x51,0x54,0x53,0x55,0x5b,0x5f,0x5d,
+0x62,0x74,0x79,0x6e,0x6c,0x73,0x65,0x4c,0x40,0x30,0x1e,0x1d,0x39,0x62,0x6c,0x58,
+0x47,0x46,0x47,0x47,0x41,0x3e,0x4a,0x5a,0x6d,0x62,0x4e,0x3d,0x3a,0x43,0x4c,0x4f,
+0x23,0x1f,0x1e,0x20,0x1f,0x1c,0x1b,0x1c,0x19,0x1c,0x21,0x24,0x21,0x1c,0x1a,0x1c,
+0x1f,0x20,0x22,0x22,0x21,0x1f,0x1d,0x1c,0x1e,0x1d,0x1c,0x1d,0x1e,0x21,0x23,0x24,
+0x1e,0x1f,0x20,0x22,0x23,0x22,0x1f,0x1d,0x1b,0x1d,0x21,0x29,0x2f,0x30,0x2c,0x27,
+0x20,0x20,0x20,0x21,0x22,0x22,0x20,0x1f,0x20,0x24,0x27,0x27,0x26,0x26,0x24,0x22,
+0x25,0x27,0x28,0x28,0x27,0x27,0x29,0x2a,0x28,0x24,0x1f,0x1c,0x1b,0x1c,0x1f,0x21,
+0x20,0x1d,0x1a,0x19,0x1b,0x1c,0x1c,0x1b,0x18,0x1b,0x23,0x2c,0x32,0x33,0x33,0x35,
+0x34,0x37,0x38,0x35,0x2d,0x24,0x20,0x1e,0x1a,0x1a,0x1b,0x1c,0x1b,0x1b,0x1f,0x24,
+0x2a,0x2c,0x2e,0x31,0x37,0x3f,0x42,0x41,0x47,0x41,0x36,0x2a,0x22,0x20,0x20,0x22,
+0x22,0x27,0x2d,0x2f,0x2e,0x2c,0x2d,0x2e,0x2d,0x2c,0x26,0x22,0x24,0x25,0x2c,0x38,
+0x3c,0x49,0x57,0x5e,0x61,0x63,0x64,0x64,0x68,0x65,0x61,0x5e,0x5d,0x5b,0x56,0x50,
+0x47,0x35,0x28,0x23,0x1f,0x23,0x2d,0x32,0x3a,0x33,0x2e,0x2f,0x33,0x31,0x2b,0x26,
+0x25,0x23,0x21,0x20,0x1f,0x21,0x23,0x25,0x22,0x1f,0x1d,0x1c,0x1a,0x19,0x1c,0x20,
+0x26,0x2b,0x2c,0x27,0x21,0x1f,0x22,0x25,0x28,0x2a,0x2c,0x2d,0x2e,0x2f,0x32,0x35,
+0x33,0x3b,0x3f,0x3f,0x44,0x4e,0x50,0x4b,0x5d,0x64,0x64,0x58,0x4a,0x42,0x3c,0x36,
+0x39,0x38,0x39,0x3a,0x38,0x35,0x37,0x3c,0x44,0x45,0x46,0x46,0x45,0x45,0x43,0x41,
+0x46,0x45,0x48,0x4e,0x53,0x56,0x59,0x5c,0x59,0x4e,0x43,0x41,0x44,0x4b,0x52,0x57,
+0x4c,0x4e,0x53,0x5b,0x63,0x63,0x57,0x4b,0x49,0x4a,0x4d,0x52,0x59,0x5b,0x5b,0x5d,
+0x6f,0x79,0x86,0x8e,0x8b,0x80,0x71,0x65,0x6e,0x74,0x7c,0x81,0x83,0x86,0x89,0x8b,
+0x91,0x93,0x96,0x99,0x9a,0x9b,0x9c,0x9e,0x9f,0xa0,0xa3,0xa5,0xa6,0xa6,0xa5,0xa5,
+0xa3,0xa3,0xa3,0xa3,0xa3,0xa1,0x9e,0x9c,0x9e,0x9d,0x9c,0x9a,0x97,0x95,0x94,0x93,
+0x8f,0x8f,0x8d,0x8b,0x8a,0x8a,0x8a,0x8b,0x8c,0x8d,0x8e,0x8e,0x8f,0x8f,0x8f,0x8f,
+0x8d,0x8e,0x8d,0x8a,0x88,0x86,0x82,0x7d,0x78,0x73,0x6c,0x67,0x64,0x61,0x5c,0x58,
+0x55,0x54,0x54,0x55,0x56,0x58,0x5a,0x5b,0x61,0x62,0x63,0x64,0x66,0x69,0x6d,0x70,
+0x70,0x73,0x75,0x76,0x76,0x75,0x76,0x77,0x79,0x77,0x75,0x75,0x77,0x78,0x78,0x78,
+0x78,0x77,0x75,0x73,0x72,0x71,0x71,0x71,0x6e,0x6d,0x6c,0x6e,0x71,0x73,0x72,0x71,
+0x71,0x72,0x74,0x76,0x77,0x78,0x79,0x79,0x79,0x7c,0x7d,0x7d,0x7a,0x7a,0x7c,0x7e,
+0x7f,0x81,0x83,0x83,0x82,0x82,0x82,0x83,0x82,0x82,0x83,0x83,0x82,0x7f,0x7a,0x77,
+0x74,0x71,0x6d,0x6b,0x69,0x67,0x63,0x60,0x5c,0x5b,0x59,0x58,0x56,0x53,0x50,0x4e,
+0x46,0x45,0x41,0x3a,0x35,0x33,0x33,0x33,0x2c,0x2c,0x29,0x23,0x20,0x1f,0x1f,0x1e,
+0x1b,0x24,0x32,0x3e,0x43,0x3c,0x2e,0x24,0x1f,0x21,0x26,0x2b,0x32,0x3d,0x4a,0x54,
+0x58,0x59,0x5a,0x57,0x50,0x49,0x49,0x4b,0x4c,0x5b,0x68,0x6c,0x6e,0x71,0x70,0x6a,
+0x5b,0x54,0x4f,0x4f,0x4c,0x41,0x35,0x2f,0x3d,0x41,0x4b,0x54,0x51,0x43,0x38,0x35,
+0x2e,0x2b,0x27,0x28,0x34,0x41,0x43,0x3c,0x2b,0x26,0x20,0x1f,0x25,0x2c,0x32,0x34,
+0x3c,0x45,0x48,0x43,0x41,0x46,0x4a,0x4b,0x4d,0x53,0x52,0x40,0x2c,0x2a,0x2a,0x21,
+0x22,0x26,0x37,0x39,0x31,0x2c,0x33,0x4b,0x44,0x42,0x42,0x47,0x4f,0x53,0x4f,0x47,
+0x43,0x4d,0x54,0x52,0x39,0x2a,0x1d,0x32,0x4a,0x55,0x4f,0x4b,0x44,0x35,0x2e,0x29,
+0x2c,0x3d,0x4c,0x4e,0x4b,0x46,0x39,0x2c,0x2d,0x2c,0x31,0x3a,0x3b,0x39,0x42,0x4f,
+0x54,0x50,0x49,0x40,0x3f,0x4b,0x4e,0x44,0x46,0x51,0x55,0x54,0x58,0x5c,0x5b,0x59,
+0x5f,0x6c,0x6e,0x66,0x69,0x71,0x65,0x4d,0x45,0x30,0x21,0x28,0x38,0x44,0x46,0x41,
+0x48,0x47,0x46,0x43,0x3f,0x3f,0x4a,0x58,0x5b,0x51,0x40,0x33,0x33,0x3b,0x3b,0x35,
+0x1f,0x22,0x22,0x1d,0x1c,0x1e,0x1e,0x1b,0x1d,0x1e,0x22,0x23,0x20,0x1d,0x1e,0x21,
+0x23,0x21,0x20,0x22,0x26,0x25,0x1f,0x1a,0x1c,0x1c,0x1b,0x1b,0x1b,0x1d,0x1f,0x20,
+0x1d,0x1e,0x1f,0x22,0x24,0x24,0x22,0x1f,0x20,0x1e,0x20,0x28,0x33,0x38,0x34,0x2f,
+0x27,0x25,0x23,0x20,0x1d,0x1d,0x1e,0x20,0x21,0x25,0x28,0x27,0x26,0x26,0x25,0x23,
+0x27,0x27,0x27,0x27,0x26,0x24,0x24,0x24,0x23,0x22,0x20,0x1e,0x1d,0x1e,0x20,0x20,
+0x20,0x1e,0x1b,0x1b,0x1c,0x1d,0x1c,0x1b,0x1a,0x1f,0x26,0x2d,0x2e,0x2f,0x34,0x3a,
+0x3d,0x3c,0x39,0x32,0x28,0x22,0x21,0x22,0x20,0x1e,0x1d,0x1d,0x1b,0x1a,0x1e,0x24,
+0x28,0x2d,0x31,0x33,0x38,0x3e,0x43,0x45,0x44,0x3c,0x31,0x26,0x20,0x1f,0x21,0x22,
+0x21,0x26,0x2b,0x2d,0x2d,0x2d,0x2f,0x31,0x31,0x31,0x29,0x23,0x22,0x22,0x28,0x34,
+0x44,0x4c,0x55,0x59,0x5d,0x64,0x6b,0x6e,0x7b,0x7b,0x78,0x75,0x72,0x6f,0x66,0x5d,
+0x45,0x34,0x2a,0x27,0x22,0x23,0x29,0x2a,0x34,0x2e,0x2d,0x33,0x37,0x32,0x2a,0x24,
+0x24,0x23,0x22,0x20,0x20,0x22,0x23,0x24,0x1d,0x1c,0x1b,0x1b,0x19,0x19,0x1d,0x23,
+0x27,0x2e,0x32,0x2c,0x23,0x22,0x26,0x29,0x2a,0x2b,0x2c,0x2e,0x31,0x34,0x37,0x39,
+0x42,0x43,0x3d,0x37,0x3e,0x51,0x61,0x66,0x63,0x69,0x6b,0x66,0x63,0x65,0x66,0x65,
+0x53,0x4b,0x45,0x46,0x4b,0x4e,0x4f,0x4e,0x54,0x51,0x4c,0x46,0x3f,0x3c,0x3e,0x40,
+0x3c,0x3a,0x3a,0x3f,0x45,0x4c,0x55,0x5d,0x5d,0x53,0x4a,0x4c,0x54,0x5a,0x5c,0x5d,
+0x5b,0x5c,0x5d,0x60,0x65,0x64,0x5a,0x4e,0x4a,0x48,0x4f,0x59,0x5e,0x5e,0x5c,0x5a,
+0x64,0x6e,0x7b,0x84,0x87,0x82,0x74,0x68,0x6c,0x73,0x7c,0x81,0x84,0x86,0x8a,0x8d,
+0x90,0x93,0x96,0x98,0x99,0x9a,0x9b,0x9c,0x9e,0xa0,0xa2,0xa4,0xa5,0xa5,0xa3,0xa2,
+0xa0,0xa0,0xa0,0xa1,0xa1,0x9f,0x9c,0x99,0x98,0x97,0x95,0x92,0x90,0x8d,0x8b,0x8a,
+0x8c,0x8a,0x88,0x86,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x88,0x89,0x89,0x89,
+0x8b,0x8c,0x8b,0x89,0x87,0x86,0x83,0x7e,0x7b,0x76,0x6f,0x6a,0x67,0x64,0x5e,0x5a,
+0x57,0x56,0x55,0x55,0x55,0x57,0x59,0x5a,0x5e,0x5f,0x61,0x62,0x65,0x68,0x6c,0x6f,
+0x70,0x72,0x73,0x74,0x74,0x74,0x74,0x75,0x76,0x76,0x76,0x77,0x78,0x77,0x76,0x74,
+0x76,0x75,0x72,0x70,0x6e,0x6d,0x6d,0x6c,0x6a,0x68,0x67,0x67,0x69,0x6a,0x69,0x67,
+0x68,0x69,0x6a,0x6c,0x6d,0x6e,0x6f,0x6f,0x70,0x73,0x75,0x73,0x70,0x6e,0x70,0x72,
+0x73,0x76,0x7a,0x7d,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,0x7e,0x7c,0x79,0x76,
+0x74,0x72,0x6f,0x6c,0x6b,0x69,0x65,0x63,0x5f,0x5d,0x5b,0x59,0x58,0x55,0x51,0x4e,
+0x49,0x44,0x3e,0x39,0x36,0x33,0x30,0x2f,0x2f,0x2c,0x26,0x20,0x20,0x22,0x20,0x1b,
+0x1b,0x2e,0x47,0x59,0x5a,0x4b,0x37,0x28,0x27,0x33,0x43,0x4f,0x52,0x50,0x4a,0x46,
+0x45,0x45,0x49,0x4c,0x4c,0x4b,0x4e,0x53,0x69,0x78,0x80,0x76,0x6b,0x67,0x65,0x62,
+0x5b,0x5a,0x58,0x5b,0x63,0x64,0x59,0x4a,0x40,0x3e,0x42,0x48,0x45,0x39,0x2f,0x2b,
+0x29,0x26,0x21,0x22,0x2d,0x39,0x3a,0x34,0x25,0x23,0x21,0x20,0x23,0x29,0x31,0x37,
+0x44,0x48,0x4c,0x4c,0x46,0x42,0x45,0x4b,0x55,0x50,0x47,0x35,0x24,0x23,0x27,0x23,
+0x2b,0x37,0x50,0x54,0x46,0x39,0x33,0x41,0x3c,0x3e,0x43,0x49,0x4b,0x44,0x39,0x32,
+0x42,0x50,0x5b,0x58,0x3f,0x32,0x27,0x3d,0x4e,0x5b,0x56,0x52,0x4b,0x3f,0x3d,0x3c,
+0x46,0x4d,0x51,0x4f,0x4c,0x47,0x39,0x2b,0x2d,0x2d,0x32,0x39,0x3c,0x3e,0x46,0x51,
+0x57,0x56,0x4e,0x40,0x40,0x4e,0x48,0x30,0x3e,0x4e,0x52,0x50,0x56,0x5a,0x56,0x54,
+0x55,0x58,0x5a,0x5f,0x6b,0x72,0x68,0x59,0x50,0x50,0x47,0x3b,0x34,0x32,0x35,0x3a,
+0x3e,0x45,0x48,0x41,0x36,0x35,0x44,0x55,0x5f,0x56,0x49,0x3f,0x40,0x43,0x3d,0x34,
+0x1f,0x23,0x22,0x1b,0x19,0x1f,0x20,0x1c,0x1e,0x1d,0x1d,0x1e,0x1d,0x1b,0x1d,0x22,
+0x26,0x23,0x22,0x26,0x2a,0x29,0x23,0x1c,0x1d,0x1d,0x1c,0x1a,0x19,0x18,0x19,0x1a,
+0x1c,0x1c,0x1c,0x1f,0x22,0x24,0x22,0x20,0x21,0x1e,0x1d,0x23,0x2d,0x35,0x36,0x35,
+0x2c,0x2a,0x27,0x24,0x23,0x23,0x24,0x26,0x22,0x25,0x27,0x26,0x25,0x26,0x26,0x24,
+0x22,0x22,0x23,0x24,0x24,0x20,0x1f,0x1f,0x1d,0x20,0x21,0x20,0x20,0x22,0x23,0x22,
+0x21,0x1f,0x1d,0x1b,0x1b,0x1a,0x1a,0x19,0x1c,0x20,0x26,0x2a,0x2a,0x2b,0x30,0x37,
+0x3a,0x39,0x34,0x2c,0x23,0x1e,0x1f,0x21,0x20,0x1f,0x1d,0x1c,0x1a,0x18,0x1b,0x20,
+0x28,0x2c,0x30,0x32,0x35,0x3b,0x40,0x42,0x38,0x32,0x29,0x22,0x20,0x21,0x24,0x26,
+0x24,0x26,0x28,0x2a,0x2c,0x2d,0x2e,0x2f,0x2d,0x2e,0x28,0x22,0x21,0x21,0x28,0x35,
+0x50,0x59,0x61,0x65,0x65,0x67,0x68,0x67,0x67,0x6b,0x6d,0x6c,0x6b,0x6a,0x62,0x59,
+0x4c,0x3d,0x36,0x35,0x30,0x2e,0x2e,0x2c,0x2e,0x2c,0x2e,0x35,0x35,0x2d,0x24,0x21,
+0x20,0x21,0x23,0x24,0x24,0x22,0x20,0x1f,0x1a,0x19,0x19,0x1a,0x1a,0x19,0x1d,0x21,
+0x25,0x2d,0x31,0x2c,0x27,0x29,0x2d,0x2e,0x27,0x26,0x27,0x2a,0x30,0x36,0x3b,0x3d,
+0x3d,0x3d,0x3a,0x35,0x3a,0x49,0x56,0x5c,0x4b,0x49,0x48,0x4b,0x53,0x5f,0x6c,0x74,
+0x6f,0x61,0x53,0x52,0x5b,0x64,0x65,0x62,0x58,0x5a,0x5e,0x61,0x5e,0x57,0x53,0x52,
+0x47,0x40,0x3a,0x39,0x3e,0x48,0x54,0x5e,0x50,0x49,0x45,0x48,0x4d,0x4e,0x4b,0x49,
+0x5d,0x5f,0x60,0x61,0x65,0x65,0x5b,0x4e,0x4a,0x46,0x50,0x5e,0x61,0x61,0x5f,0x5a,
+0x5b,0x64,0x6f,0x77,0x7f,0x80,0x78,0x6e,0x6a,0x72,0x7b,0x81,0x83,0x85,0x8a,0x8e,
+0x8f,0x91,0x94,0x97,0x98,0x99,0x9a,0x9b,0x9d,0x9f,0xa2,0xa4,0xa4,0xa3,0xa1,0x9f,
+0x9f,0x9e,0x9e,0x9e,0x9d,0x9b,0x98,0x96,0x92,0x91,0x8f,0x8c,0x89,0x86,0x84,0x83,
+0x85,0x83,0x80,0x7e,0x7e,0x7e,0x7f,0x7e,0x80,0x81,0x82,0x82,0x83,0x84,0x85,0x86,
+0x87,0x88,0x87,0x85,0x85,0x85,0x82,0x7e,0x7c,0x78,0x72,0x6d,0x6a,0x66,0x61,0x5d,
+0x5a,0x59,0x57,0x56,0x56,0x57,0x58,0x59,0x5b,0x5d,0x60,0x62,0x65,0x67,0x6b,0x6d,
+0x70,0x70,0x71,0x72,0x73,0x73,0x74,0x74,0x74,0x75,0x76,0x77,0x77,0x75,0x73,0x72,
+0x73,0x71,0x6f,0x6c,0x6a,0x68,0x68,0x67,0x66,0x65,0x64,0x63,0x63,0x62,0x61,0x60,
+0x60,0x61,0x62,0x64,0x65,0x66,0x67,0x67,0x6b,0x6d,0x6f,0x6e,0x6b,0x6a,0x6b,0x6d,
+0x6b,0x6e,0x72,0x76,0x78,0x77,0x76,0x75,0x76,0x76,0x77,0x78,0x79,0x78,0x76,0x74,
+0x72,0x72,0x71,0x6f,0x6c,0x6a,0x68,0x67,0x62,0x60,0x5d,0x5b,0x5a,0x57,0x52,0x4f,
+0x4c,0x43,0x3a,0x35,0x33,0x2e,0x29,0x26,0x2f,0x2b,0x25,0x21,0x25,0x2a,0x26,0x1e,
+0x19,0x23,0x30,0x37,0x37,0x32,0x2f,0x2d,0x2c,0x3b,0x4d,0x55,0x55,0x53,0x51,0x51,
+0x41,0x3f,0x41,0x45,0x45,0x45,0x4a,0x52,0x6f,0x7f,0x89,0x82,0x73,0x67,0x5c,0x54,
+0x54,0x5a,0x5c,0x5a,0x5c,0x60,0x5c,0x53,0x3e,0x39,0x36,0x35,0x33,0x30,0x2d,0x2c,
+0x27,0x22,0x1d,0x1d,0x24,0x2c,0x2c,0x28,0x21,0x20,0x20,0x22,0x26,0x2e,0x3b,0x45,
+0x47,0x46,0x46,0x45,0x41,0x40,0x4a,0x57,0x56,0x47,0x37,0x28,0x1b,0x1d,0x28,0x2c,
+0x33,0x3f,0x53,0x51,0x46,0x41,0x3e,0x47,0x4b,0x44,0x43,0x4c,0x54,0x56,0x54,0x53,
+0x44,0x57,0x64,0x5c,0x3b,0x2b,0x21,0x39,0x4e,0x5c,0x56,0x4f,0x49,0x3f,0x3f,0x3c,
+0x44,0x4a,0x4c,0x47,0x41,0x3b,0x32,0x28,0x32,0x35,0x3e,0x48,0x4f,0x52,0x55,0x59,
+0x5c,0x59,0x4c,0x43,0x4e,0x5b,0x4f,0x39,0x3c,0x4d,0x4e,0x4c,0x59,0x5f,0x58,0x55,
+0x51,0x4e,0x52,0x61,0x6f,0x70,0x66,0x5c,0x46,0x4e,0x3c,0x22,0x25,0x36,0x35,0x2a,
+0x37,0x46,0x4f,0x43,0x30,0x2f,0x44,0x59,0x5d,0x51,0x43,0x3f,0x43,0x44,0x3f,0x38,
+0x1e,0x1e,0x1c,0x1a,0x1b,0x1e,0x20,0x21,0x1f,0x1c,0x1b,0x1b,0x1b,0x1b,0x1d,0x21,
+0x23,0x23,0x24,0x27,0x29,0x27,0x21,0x1c,0x1f,0x1f,0x1f,0x1d,0x1b,0x19,0x1a,0x1c,
+0x1d,0x1b,0x1b,0x1d,0x21,0x23,0x22,0x20,0x20,0x1e,0x1c,0x1d,0x22,0x2b,0x34,0x39,
+0x3b,0x38,0x34,0x34,0x34,0x32,0x2c,0x26,0x21,0x25,0x27,0x26,0x26,0x28,0x28,0x27,
+0x21,0x1f,0x1f,0x21,0x21,0x1d,0x1b,0x1b,0x1a,0x1f,0x21,0x1f,0x1e,0x20,0x20,0x1f,
+0x1d,0x1d,0x1c,0x1a,0x19,0x18,0x18,0x19,0x1d,0x1f,0x23,0x29,0x2d,0x2f,0x32,0x37,
+0x35,0x35,0x33,0x2c,0x24,0x1e,0x1d,0x1e,0x1e,0x1e,0x1f,0x20,0x1e,0x1b,0x1c,0x20,
+0x2b,0x2d,0x2e,0x30,0x35,0x3b,0x3d,0x3c,0x35,0x2f,0x27,0x22,0x21,0x23,0x25,0x26,
+0x27,0x27,0x28,0x2a,0x2b,0x2b,0x2a,0x28,0x25,0x27,0x22,0x1e,0x1e,0x20,0x28,0x36,
+0x4e,0x5a,0x68,0x6f,0x6f,0x6c,0x66,0x61,0x59,0x5e,0x60,0x5c,0x5a,0x5a,0x55,0x4e,
+0x4c,0x3f,0x3b,0x3d,0x3a,0x36,0x33,0x2e,0x2c,0x2b,0x2e,0x33,0x30,0x26,0x20,0x21,
+0x1f,0x20,0x22,0x23,0x23,0x21,0x1e,0x1c,0x1b,0x1a,0x1b,0x1d,0x1c,0x1b,0x1c,0x1f,
+0x24,0x29,0x2b,0x2a,0x2e,0x35,0x36,0x33,0x27,0x25,0x24,0x27,0x2e,0x36,0x3c,0x3f,
+0x3f,0x40,0x41,0x42,0x44,0x48,0x4d,0x51,0x4f,0x43,0x39,0x36,0x38,0x3d,0x48,0x53,
+0x5b,0x4f,0x42,0x3f,0x47,0x50,0x53,0x52,0x4f,0x55,0x63,0x74,0x7e,0x7b,0x74,0x6f,
+0x64,0x58,0x4c,0x46,0x49,0x52,0x60,0x6a,0x61,0x57,0x4a,0x41,0x3d,0x3e,0x45,0x4d,
+0x41,0x46,0x4b,0x50,0x5a,0x63,0x60,0x57,0x4a,0x45,0x52,0x62,0x63,0x62,0x62,0x5c,
+0x57,0x5f,0x67,0x6d,0x75,0x7b,0x77,0x6f,0x6b,0x73,0x7b,0x80,0x81,0x83,0x88,0x8d,
+0x8e,0x90,0x93,0x96,0x97,0x98,0x9a,0x9b,0x9d,0x9f,0xa1,0xa3,0xa3,0xa1,0x9e,0x9c,
+0x9b,0x99,0x97,0x96,0x94,0x92,0x8f,0x8d,0x8a,0x88,0x86,0x83,0x80,0x7d,0x7b,0x7a,
+0x7a,0x77,0x73,0x71,0x72,0x73,0x73,0x72,0x76,0x77,0x78,0x79,0x7b,0x7d,0x7f,0x80,
+0x7e,0x80,0x80,0x7f,0x80,0x81,0x7f,0x7c,0x79,0x76,0x73,0x6e,0x69,0x65,0x61,0x5f,
+0x5d,0x5b,0x59,0x57,0x56,0x56,0x58,0x59,0x5a,0x5d,0x60,0x63,0x65,0x67,0x69,0x6b,
+0x6e,0x6e,0x6f,0x70,0x72,0x74,0x74,0x74,0x73,0x74,0x75,0x75,0x74,0x72,0x71,0x71,
+0x6f,0x6e,0x6b,0x68,0x65,0x64,0x63,0x62,0x62,0x62,0x62,0x60,0x5e,0x5c,0x5c,0x5c,
+0x5b,0x5b,0x5d,0x5f,0x61,0x62,0x63,0x63,0x67,0x6a,0x6c,0x6c,0x6b,0x6a,0x6b,0x6c,
+0x6c,0x6d,0x6f,0x71,0x73,0x74,0x73,0x72,0x73,0x73,0x72,0x73,0x74,0x74,0x73,0x71,
+0x70,0x72,0x73,0x72,0x6e,0x6a,0x6a,0x6a,0x65,0x62,0x5f,0x5d,0x5b,0x58,0x53,0x4e,
+0x4a,0x41,0x39,0x35,0x33,0x2e,0x2a,0x29,0x25,0x27,0x27,0x29,0x32,0x3b,0x39,0x30,
+0x2c,0x34,0x3c,0x3d,0x37,0x2e,0x29,0x28,0x25,0x2c,0x33,0x37,0x3c,0x44,0x4c,0x4f,
+0x42,0x40,0x40,0x41,0x3f,0x3f,0x49,0x57,0x67,0x71,0x7b,0x7e,0x7b,0x71,0x62,0x56,
+0x5f,0x65,0x69,0x65,0x5c,0x55,0x52,0x51,0x4e,0x4c,0x44,0x3a,0x31,0x2e,0x2c,0x2b,
+0x27,0x20,0x1d,0x20,0x26,0x29,0x2a,0x2a,0x28,0x23,0x1f,0x1f,0x1f,0x21,0x27,0x2e,
+0x2e,0x37,0x3f,0x40,0x3e,0x3e,0x42,0x45,0x4b,0x40,0x38,0x2e,0x21,0x1e,0x24,0x26,
+0x31,0x3b,0x48,0x42,0x40,0x4a,0x4e,0x55,0x4a,0x41,0x3e,0x46,0x4f,0x52,0x57,0x5c,
+0x4c,0x56,0x58,0x4c,0x2f,0x24,0x1c,0x32,0x4d,0x5a,0x52,0x49,0x47,0x43,0x40,0x36,
+0x48,0x4d,0x52,0x52,0x50,0x4c,0x42,0x38,0x2d,0x33,0x3f,0x4a,0x52,0x56,0x59,0x5a,
+0x5a,0x4e,0x3d,0x41,0x58,0x5a,0x46,0x3a,0x40,0x4d,0x47,0x47,0x5f,0x6b,0x5f,0x59,
+0x4e,0x4d,0x52,0x5f,0x69,0x68,0x5f,0x58,0x55,0x37,0x18,0x1c,0x31,0x35,0x34,0x3f,
+0x42,0x4a,0x49,0x3a,0x2f,0x37,0x4d,0x5f,0x58,0x48,0x3e,0x44,0x4f,0x4e,0x45,0x3e,
+0x1e,0x18,0x17,0x1c,0x1e,0x1d,0x21,0x27,0x23,0x20,0x1e,0x1f,0x20,0x20,0x22,0x24,
+0x1d,0x20,0x24,0x25,0x24,0x21,0x1d,0x1b,0x20,0x21,0x21,0x21,0x1f,0x1e,0x20,0x22,
+0x1f,0x1c,0x1b,0x1d,0x20,0x23,0x22,0x21,0x21,0x22,0x20,0x1d,0x1c,0x24,0x33,0x3f,
+0x51,0x4b,0x45,0x44,0x44,0x3c,0x2b,0x1e,0x21,0x24,0x27,0x26,0x27,0x29,0x2b,0x2a,
+0x24,0x20,0x1f,0x20,0x1f,0x1b,0x18,0x19,0x1a,0x1e,0x1f,0x1b,0x19,0x1a,0x19,0x17,
+0x18,0x19,0x1a,0x19,0x18,0x17,0x19,0x1b,0x1e,0x1d,0x21,0x2a,0x33,0x37,0x39,0x3a,
+0x37,0x39,0x39,0x34,0x2c,0x24,0x20,0x1f,0x1f,0x21,0x25,0x28,0x27,0x23,0x22,0x25,
+0x2f,0x2e,0x2d,0x2f,0x36,0x3c,0x3c,0x38,0x38,0x32,0x29,0x23,0x21,0x21,0x21,0x21,
+0x28,0x27,0x26,0x28,0x29,0x28,0x23,0x1f,0x22,0x24,0x20,0x1c,0x1d,0x20,0x2a,0x39,
+0x48,0x53,0x5f,0x67,0x6b,0x6d,0x6d,0x6b,0x71,0x74,0x72,0x68,0x62,0x60,0x5c,0x56,
+0x44,0x38,0x36,0x3a,0x38,0x34,0x30,0x2a,0x2e,0x2d,0x30,0x33,0x2d,0x23,0x22,0x27,
+0x21,0x21,0x20,0x1f,0x1e,0x1e,0x1e,0x1e,0x1e,0x1d,0x1d,0x20,0x20,0x1d,0x1c,0x1d,
+0x25,0x26,0x27,0x29,0x34,0x3f,0x3e,0x36,0x31,0x2d,0x2a,0x2b,0x32,0x3a,0x40,0x43,
+0x43,0x3e,0x3a,0x39,0x39,0x3b,0x44,0x4c,0x50,0x41,0x36,0x33,0x31,0x2f,0x38,0x46,
+0x4b,0x46,0x3f,0x3d,0x42,0x49,0x4c,0x4c,0x4b,0x4a,0x53,0x68,0x7b,0x83,0x82,0x81,
+0x6b,0x5d,0x4c,0x44,0x46,0x50,0x5d,0x67,0x70,0x73,0x76,0x74,0x6a,0x5f,0x5b,0x5c,
+0x59,0x5a,0x58,0x57,0x5d,0x64,0x61,0x59,0x4c,0x46,0x54,0x65,0x65,0x64,0x64,0x5f,
+0x59,0x5f,0x64,0x66,0x6d,0x75,0x74,0x6d,0x6c,0x74,0x7c,0x80,0x80,0x82,0x87,0x8c,
+0x8d,0x8f,0x93,0x95,0x97,0x98,0x9a,0x9b,0x9c,0x9e,0xa1,0xa3,0xa2,0xa0,0x9c,0x9a,
+0x95,0x93,0x90,0x8d,0x8b,0x88,0x85,0x83,0x7f,0x7e,0x7c,0x79,0x75,0x72,0x70,0x6f,
+0x6f,0x6c,0x68,0x67,0x67,0x68,0x68,0x68,0x69,0x6a,0x6b,0x6d,0x70,0x73,0x75,0x76,
+0x77,0x78,0x79,0x79,0x7b,0x7d,0x7c,0x79,0x75,0x74,0x71,0x6d,0x67,0x63,0x60,0x5f,
+0x5e,0x5c,0x59,0x57,0x56,0x56,0x57,0x58,0x5a,0x5d,0x61,0x64,0x65,0x66,0x67,0x68,
+0x6c,0x6c,0x6d,0x6f,0x72,0x74,0x75,0x75,0x74,0x74,0x73,0x72,0x71,0x70,0x70,0x71,
+0x6d,0x6b,0x68,0x65,0x62,0x60,0x5f,0x5f,0x5e,0x5f,0x5f,0x5d,0x5a,0x58,0x59,0x5a,
+0x58,0x59,0x5b,0x5d,0x5f,0x60,0x61,0x61,0x63,0x64,0x67,0x68,0x69,0x69,0x6a,0x6b,
+0x71,0x70,0x70,0x70,0x71,0x72,0x73,0x73,0x72,0x71,0x70,0x70,0x71,0x71,0x70,0x70,
+0x6e,0x72,0x75,0x73,0x6f,0x6b,0x6b,0x6c,0x67,0x64,0x60,0x5d,0x5c,0x58,0x53,0x4e,
+0x46,0x3f,0x3a,0x39,0x37,0x34,0x32,0x34,0x3b,0x3d,0x3d,0x3b,0x3e,0x40,0x39,0x2d,
+0x22,0x2b,0x34,0x37,0x32,0x2c,0x28,0x28,0x2d,0x2b,0x2a,0x2e,0x39,0x42,0x41,0x3a,
+0x36,0x37,0x3a,0x3c,0x3a,0x3e,0x50,0x64,0x6e,0x6e,0x71,0x7a,0x81,0x7f,0x71,0x63,
+0x5d,0x5f,0x64,0x66,0x5b,0x4a,0x43,0x45,0x48,0x4c,0x4a,0x3d,0x33,0x2f,0x2d,0x2a,
+0x25,0x1f,0x1d,0x24,0x2a,0x2c,0x2e,0x31,0x25,0x20,0x1f,0x24,0x27,0x28,0x2a,0x2e,
+0x36,0x42,0x48,0x43,0x3f,0x44,0x46,0x42,0x4d,0x4d,0x50,0x4b,0x3c,0x30,0x2a,0x22,
+0x2a,0x37,0x48,0x45,0x47,0x54,0x53,0x52,0x51,0x4d,0x4d,0x4f,0x49,0x40,0x3f,0x45,
+0x52,0x4d,0x41,0x37,0x29,0x2c,0x26,0x38,0x4d,0x5b,0x52,0x4c,0x51,0x53,0x4e,0x3f,
+0x47,0x49,0x4e,0x56,0x5e,0x5d,0x4d,0x3c,0x2f,0x36,0x41,0x4b,0x53,0x59,0x5e,0x61,
+0x66,0x52,0x3c,0x47,0x5f,0x4f,0x2f,0x2a,0x41,0x4a,0x40,0x41,0x62,0x71,0x63,0x59,
+0x46,0x49,0x4f,0x57,0x5e,0x61,0x5d,0x59,0x55,0x43,0x24,0x19,0x29,0x36,0x3e,0x4d,
+0x53,0x4a,0x38,0x2a,0x2d,0x41,0x55,0x5f,0x4d,0x3e,0x3a,0x4b,0x5b,0x56,0x45,0x3a,
+0x1f,0x1c,0x1a,0x1b,0x1d,0x1d,0x1c,0x1b,0x21,0x1f,0x1e,0x1d,0x1a,0x19,0x1e,0x24,
+0x1d,0x1f,0x23,0x25,0x23,0x20,0x21,0x25,0x21,0x22,0x26,0x29,0x2c,0x2d,0x30,0x34,
+0x25,0x22,0x1d,0x1c,0x20,0x27,0x2e,0x32,0x35,0x33,0x30,0x2b,0x28,0x2b,0x33,0x39,
+0x3e,0x37,0x31,0x31,0x32,0x2d,0x25,0x20,0x26,0x26,0x28,0x2a,0x2b,0x2a,0x28,0x26,
+0x28,0x24,0x22,0x22,0x22,0x21,0x21,0x23,0x23,0x26,0x28,0x28,0x24,0x1e,0x19,0x17,
+0x16,0x16,0x15,0x17,0x19,0x1a,0x1b,0x1b,0x1d,0x1d,0x1e,0x22,0x29,0x32,0x39,0x3e,
+0x3c,0x40,0x41,0x39,0x2b,0x21,0x1f,0x22,0x22,0x24,0x29,0x2e,0x2d,0x27,0x25,0x27,
+0x2b,0x2f,0x32,0x34,0x36,0x38,0x36,0x33,0x32,0x35,0x34,0x2f,0x27,0x23,0x25,0x29,
+0x2b,0x2b,0x2a,0x29,0x27,0x25,0x25,0x25,0x21,0x22,0x22,0x1f,0x1c,0x21,0x30,0x3f,
+0x4a,0x4e,0x52,0x57,0x5d,0x62,0x62,0x60,0x68,0x6f,0x74,0x74,0x73,0x6f,0x62,0x53,
+0x40,0x35,0x35,0x39,0x33,0x2d,0x2d,0x2d,0x30,0x38,0x3d,0x37,0x29,0x1f,0x20,0x24,
+0x21,0x1f,0x1d,0x1d,0x1e,0x1e,0x1d,0x1b,0x1d,0x1e,0x1f,0x1e,0x1d,0x1d,0x1d,0x1e,
+0x23,0x22,0x23,0x27,0x2f,0x37,0x3b,0x3d,0x37,0x31,0x2c,0x2d,0x2f,0x33,0x37,0x3b,
+0x3d,0x40,0x41,0x3f,0x3c,0x3a,0x3b,0x3d,0x42,0x3b,0x34,0x32,0x30,0x30,0x35,0x3b,
+0x41,0x3e,0x3e,0x45,0x4f,0x51,0x4a,0x41,0x3d,0x3e,0x3e,0x43,0x53,0x66,0x6e,0x6c,
+0x53,0x4b,0x46,0x45,0x45,0x43,0x47,0x4e,0x48,0x4a,0x4e,0x51,0x52,0x54,0x59,0x5e,
+0x5a,0x60,0x62,0x60,0x62,0x66,0x62,0x5a,0x4e,0x4f,0x5c,0x69,0x69,0x66,0x64,0x60,
+0x5e,0x5f,0x60,0x63,0x68,0x6d,0x6f,0x6e,0x6b,0x74,0x7c,0x7e,0x7e,0x82,0x88,0x8c,
+0x8c,0x8e,0x91,0x94,0x95,0x96,0x98,0x99,0x9a,0x9d,0x9f,0x9f,0x9f,0x9e,0x9a,0x95,
+0x90,0x8d,0x89,0x86,0x83,0x7f,0x7a,0x76,0x76,0x73,0x6f,0x6a,0x66,0x63,0x61,0x61,
+0x61,0x5c,0x57,0x55,0x56,0x58,0x58,0x57,0x59,0x5b,0x5c,0x5e,0x61,0x66,0x6c,0x70,
+0x6b,0x71,0x74,0x73,0x74,0x76,0x76,0x73,0x70,0x6f,0x6c,0x68,0x66,0x65,0x61,0x5c,
+0x5c,0x5b,0x59,0x58,0x58,0x58,0x58,0x58,0x5b,0x5d,0x5f,0x61,0x64,0x66,0x68,0x69,
+0x6a,0x6b,0x6e,0x70,0x72,0x72,0x71,0x70,0x73,0x72,0x72,0x72,0x72,0x71,0x6e,0x6c,
+0x6b,0x69,0x66,0x64,0x62,0x60,0x5e,0x5c,0x5a,0x5a,0x5a,0x5a,0x5a,0x59,0x59,0x58,
+0x5b,0x5b,0x5b,0x5c,0x5d,0x5e,0x5f,0x60,0x5f,0x61,0x63,0x63,0x65,0x68,0x69,0x67,
+0x6c,0x6f,0x73,0x75,0x74,0x73,0x74,0x75,0x72,0x71,0x71,0x6f,0x6d,0x6b,0x6b,0x6c,
+0x6f,0x71,0x73,0x72,0x6f,0x6d,0x6f,0x71,0x6b,0x64,0x5d,0x5b,0x5d,0x5b,0x54,0x4d,
+0x45,0x3f,0x3a,0x37,0x2f,0x26,0x26,0x2c,0x40,0x48,0x4e,0x4d,0x48,0x41,0x38,0x2f,
+0x28,0x2e,0x27,0x20,0x29,0x33,0x31,0x2c,0x2c,0x2e,0x2e,0x31,0x3c,0x45,0x42,0x38,
+0x35,0x3b,0x41,0x40,0x3e,0x46,0x59,0x6b,0x7a,0x6e,0x6c,0x69,0x5f,0x5d,0x60,0x5a,
+0x58,0x52,0x53,0x57,0x52,0x45,0x3d,0x3e,0x40,0x41,0x3c,0x33,0x2f,0x31,0x30,0x2c,
+0x23,0x24,0x27,0x2b,0x32,0x35,0x32,0x2c,0x25,0x24,0x26,0x2a,0x2c,0x2a,0x26,0x24,
+0x2a,0x2b,0x33,0x3f,0x42,0x3f,0x40,0x46,0x48,0x40,0x36,0x37,0x3d,0x38,0x2d,0x2c,
+0x2f,0x32,0x3a,0x43,0x49,0x4b,0x4f,0x55,0x52,0x46,0x4d,0x54,0x45,0x3a,0x43,0x4c,
+0x52,0x45,0x3e,0x36,0x33,0x2e,0x2b,0x3c,0x53,0x50,0x47,0x43,0x49,0x49,0x45,0x44,
+0x4d,0x4d,0x52,0x5a,0x5b,0x52,0x42,0x36,0x2f,0x31,0x3d,0x50,0x5d,0x60,0x63,0x69,
+0x68,0x45,0x3d,0x4d,0x57,0x46,0x29,0x24,0x44,0x43,0x49,0x5a,0x69,0x62,0x53,0x4f,
+0x4f,0x53,0x59,0x5b,0x55,0x4e,0x4e,0x52,0x45,0x3f,0x35,0x31,0x39,0x46,0x4c,0x4c,
+0x4b,0x4f,0x4b,0x40,0x41,0x4d,0x52,0x4e,0x3c,0x34,0x3b,0x50,0x57,0x48,0x3a,0x38,
+0x2b,0x24,0x1d,0x19,0x1a,0x1b,0x1c,0x1d,0x1c,0x1b,0x1b,0x1c,0x1b,0x19,0x1b,0x1e,
+0x1d,0x1f,0x22,0x25,0x23,0x20,0x22,0x25,0x25,0x28,0x2b,0x2d,0x2e,0x30,0x30,0x31,
+0x2c,0x27,0x21,0x1f,0x20,0x24,0x27,0x29,0x33,0x33,0x31,0x2d,0x29,0x29,0x2d,0x30,
+0x2d,0x2a,0x2a,0x2d,0x2f,0x2c,0x28,0x26,0x27,0x26,0x28,0x2c,0x31,0x32,0x2e,0x2a,
+0x28,0x24,0x20,0x21,0x23,0x24,0x26,0x28,0x2b,0x2d,0x2f,0x2e,0x2a,0x24,0x1f,0x1d,
+0x17,0x16,0x15,0x16,0x17,0x18,0x18,0x18,0x1b,0x1b,0x1d,0x21,0x28,0x30,0x37,0x3b,
+0x35,0x38,0x39,0x34,0x2c,0x25,0x21,0x21,0x20,0x21,0x24,0x26,0x26,0x23,0x23,0x24,
+0x29,0x2f,0x34,0x36,0x39,0x3c,0x3c,0x3b,0x3e,0x3d,0x3b,0x35,0x2e,0x2a,0x2c,0x2e,
+0x2f,0x2e,0x2e,0x30,0x30,0x2c,0x23,0x1c,0x25,0x24,0x23,0x23,0x26,0x2f,0x3f,0x4d,
+0x56,0x5a,0x5e,0x63,0x68,0x6b,0x69,0x64,0x5f,0x62,0x61,0x5f,0x61,0x62,0x5a,0x50,
+0x4b,0x3c,0x36,0x39,0x34,0x2d,0x29,0x26,0x2b,0x30,0x33,0x2f,0x25,0x1f,0x1f,0x22,
+0x20,0x1e,0x1d,0x1c,0x1c,0x1c,0x1c,0x1b,0x19,0x1a,0x1d,0x1f,0x1f,0x1f,0x1f,0x1e,
+0x21,0x22,0x24,0x27,0x2d,0x34,0x3c,0x42,0x48,0x40,0x37,0x33,0x31,0x31,0x33,0x37,
+0x43,0x42,0x3f,0x3c,0x3a,0x39,0x38,0x38,0x39,0x36,0x34,0x34,0x33,0x31,0x33,0x37,
+0x37,0x37,0x39,0x40,0x48,0x4c,0x49,0x45,0x42,0x41,0x3c,0x39,0x3f,0x49,0x4b,0x46,
+0x3f,0x48,0x4b,0x42,0x3a,0x3b,0x3e,0x3f,0x40,0x3f,0x42,0x4a,0x50,0x50,0x48,0x42,
+0x48,0x48,0x4c,0x57,0x64,0x6b,0x6a,0x66,0x52,0x54,0x60,0x6b,0x69,0x65,0x64,0x61,
+0x60,0x61,0x63,0x65,0x68,0x6c,0x6e,0x6f,0x6d,0x75,0x7c,0x7e,0x7f,0x83,0x88,0x8b,
+0x8d,0x8f,0x92,0x94,0x95,0x95,0x97,0x98,0x9a,0x9c,0x9c,0x9c,0x9c,0x9b,0x95,0x8f,
+0x8b,0x86,0x80,0x7b,0x78,0x74,0x70,0x6c,0x65,0x64,0x62,0x60,0x5d,0x59,0x55,0x52,
+0x4c,0x49,0x44,0x42,0x42,0x42,0x42,0x41,0x48,0x48,0x49,0x4b,0x4d,0x51,0x56,0x59,
+0x62,0x67,0x6a,0x6b,0x6c,0x6e,0x6f,0x6d,0x6a,0x6a,0x68,0x65,0x63,0x62,0x5f,0x5a,
+0x5b,0x5a,0x59,0x58,0x58,0x58,0x59,0x5a,0x5b,0x5c,0x5d,0x60,0x63,0x66,0x68,0x69,
+0x6c,0x6e,0x70,0x72,0x74,0x74,0x74,0x74,0x72,0x72,0x71,0x72,0x72,0x70,0x6e,0x6c,
+0x6b,0x68,0x64,0x60,0x5f,0x5e,0x5d,0x5c,0x59,0x59,0x59,0x59,0x59,0x59,0x58,0x58,
+0x5a,0x5a,0x5a,0x5b,0x5d,0x5f,0x60,0x61,0x61,0x64,0x66,0x67,0x6a,0x6e,0x6f,0x6e,
+0x70,0x73,0x76,0x78,0x77,0x77,0x77,0x78,0x77,0x77,0x75,0x73,0x70,0x6d,0x69,0x67,
+0x6c,0x70,0x73,0x73,0x71,0x6f,0x6e,0x6f,0x6a,0x65,0x60,0x5e,0x5e,0x5b,0x55,0x50,
+0x47,0x42,0x41,0x40,0x37,0x27,0x1c,0x19,0x2d,0x3a,0x45,0x48,0x44,0x40,0x3c,0x38,
+0x33,0x38,0x33,0x32,0x40,0x48,0x40,0x34,0x35,0x3b,0x44,0x4a,0x49,0x42,0x3c,0x39,
+0x34,0x3c,0x3e,0x3d,0x47,0x5b,0x68,0x6b,0x7f,0x80,0x7e,0x72,0x5f,0x59,0x5f,0x64,
+0x5f,0x55,0x4e,0x4f,0x51,0x4f,0x4b,0x49,0x43,0x39,0x2c,0x27,0x2b,0x30,0x2d,0x27,
+0x29,0x28,0x28,0x28,0x2b,0x2c,0x2a,0x27,0x21,0x23,0x26,0x2c,0x31,0x30,0x28,0x21,
+0x24,0x21,0x25,0x2f,0x35,0x35,0x37,0x3b,0x38,0x31,0x28,0x28,0x2e,0x2c,0x29,0x2e,
+0x33,0x36,0x3a,0x40,0x45,0x4b,0x51,0x54,0x48,0x3f,0x49,0x52,0x45,0x3c,0x45,0x4e,
+0x4d,0x5c,0x67,0x50,0x31,0x1e,0x1f,0x39,0x66,0x58,0x50,0x5a,0x5e,0x4c,0x40,0x48,
+0x47,0x4a,0x52,0x5a,0x5d,0x56,0x48,0x3d,0x34,0x3a,0x47,0x58,0x63,0x68,0x6c,0x70,
+0x65,0x4a,0x49,0x59,0x5d,0x48,0x2e,0x2d,0x42,0x55,0x61,0x62,0x64,0x60,0x56,0x51,
+0x4c,0x51,0x59,0x5c,0x57,0x4d,0x47,0x45,0x45,0x3d,0x34,0x30,0x36,0x40,0x48,0x4b,
+0x56,0x51,0x54,0x57,0x4b,0x37,0x31,0x3a,0x34,0x3c,0x49,0x52,0x50,0x48,0x42,0x41,
+0x3e,0x36,0x2a,0x20,0x1a,0x1a,0x1c,0x1d,0x1b,0x1a,0x1d,0x22,0x23,0x20,0x1c,0x1b,
+0x1b,0x1c,0x1f,0x22,0x21,0x1f,0x21,0x24,0x27,0x2b,0x2d,0x2a,0x2a,0x2f,0x30,0x2f,
+0x2b,0x27,0x23,0x22,0x25,0x29,0x29,0x29,0x2f,0x30,0x2f,0x2d,0x29,0x27,0x27,0x28,
+0x28,0x25,0x24,0x26,0x26,0x24,0x24,0x26,0x29,0x26,0x25,0x2a,0x31,0x35,0x33,0x30,
+0x27,0x21,0x1c,0x1c,0x1f,0x21,0x23,0x25,0x26,0x28,0x29,0x28,0x25,0x20,0x1c,0x19,
+0x17,0x16,0x15,0x15,0x16,0x17,0x17,0x17,0x1a,0x1b,0x1e,0x22,0x28,0x2e,0x34,0x37,
+0x33,0x33,0x33,0x32,0x2e,0x29,0x24,0x20,0x1f,0x20,0x21,0x20,0x21,0x23,0x25,0x24,
+0x29,0x2f,0x35,0x37,0x38,0x3d,0x41,0x43,0x45,0x41,0x3b,0x34,0x30,0x2e,0x2e,0x2f,
+0x2b,0x2a,0x2c,0x32,0x37,0x35,0x2b,0x23,0x23,0x22,0x23,0x26,0x2c,0x34,0x42,0x4d,
+0x54,0x58,0x5e,0x64,0x6b,0x6f,0x6c,0x67,0x67,0x66,0x63,0x62,0x67,0x6c,0x68,0x60,
+0x56,0x42,0x38,0x39,0x36,0x2f,0x2a,0x25,0x2e,0x30,0x30,0x2d,0x27,0x22,0x20,0x20,
+0x20,0x20,0x20,0x1f,0x1e,0x1e,0x1f,0x21,0x25,0x26,0x27,0x28,0x27,0x25,0x21,0x1e,
+0x20,0x24,0x27,0x27,0x29,0x2f,0x39,0x42,0x43,0x3c,0x34,0x30,0x2f,0x30,0x34,0x38,
+0x3f,0x41,0x47,0x4d,0x51,0x4e,0x46,0x3f,0x39,0x39,0x39,0x39,0x36,0x33,0x33,0x35,
+0x41,0x46,0x4e,0x54,0x57,0x56,0x54,0x52,0x49,0x48,0x42,0x3c,0x3b,0x3f,0x3e,0x3a,
+0x40,0x4f,0x5c,0x5a,0x50,0x4b,0x4e,0x54,0x55,0x50,0x4b,0x4d,0x52,0x53,0x4d,0x46,
+0x4b,0x43,0x45,0x56,0x66,0x69,0x65,0x63,0x58,0x5a,0x65,0x6c,0x67,0x63,0x63,0x61,
+0x62,0x62,0x63,0x63,0x63,0x65,0x6a,0x6f,0x70,0x76,0x7c,0x7e,0x80,0x85,0x88,0x89,
+0x8d,0x8f,0x92,0x94,0x94,0x95,0x96,0x97,0x99,0x9a,0x99,0x98,0x98,0x96,0x8f,0x87,
+0x85,0x7d,0x74,0x6f,0x6d,0x6c,0x69,0x66,0x62,0x60,0x5c,0x57,0x52,0x4d,0x47,0x43,
+0x49,0x47,0x45,0x43,0x42,0x41,0x41,0x41,0x3a,0x3a,0x3a,0x3a,0x3b,0x3e,0x42,0x45,
+0x4c,0x51,0x57,0x5a,0x5e,0x64,0x67,0x68,0x65,0x66,0x65,0x63,0x62,0x61,0x5e,0x5a,
+0x59,0x59,0x58,0x58,0x58,0x59,0x5b,0x5c,0x5b,0x5c,0x5d,0x5f,0x62,0x65,0x68,0x6a,
+0x6e,0x6f,0x71,0x72,0x74,0x75,0x75,0x75,0x72,0x71,0x70,0x70,0x70,0x6f,0x6d,0x6b,
+0x6a,0x67,0x61,0x5d,0x5b,0x5b,0x5b,0x5b,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,
+0x59,0x59,0x5a,0x5b,0x5d,0x61,0x63,0x65,0x65,0x69,0x6c,0x6e,0x71,0x75,0x77,0x76,
+0x77,0x79,0x7b,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7b,0x79,0x78,0x75,0x71,0x6b,0x66,
+0x6a,0x6e,0x72,0x74,0x72,0x70,0x6f,0x6f,0x6c,0x69,0x64,0x61,0x5e,0x5a,0x55,0x51,
+0x4b,0x40,0x36,0x32,0x30,0x2d,0x2e,0x32,0x31,0x33,0x36,0x3c,0x42,0x42,0x38,0x2d,
+0x35,0x3b,0x35,0x2d,0x32,0x3a,0x3e,0x41,0x36,0x36,0x3b,0x40,0x3d,0x35,0x34,0x3b,
+0x37,0x3a,0x3e,0x44,0x51,0x61,0x6a,0x6a,0x5e,0x6d,0x7b,0x83,0x86,0x7d,0x69,0x5a,
+0x5d,0x55,0x4b,0x4a,0x52,0x5a,0x58,0x51,0x46,0x38,0x2b,0x2a,0x31,0x36,0x37,0x35,
+0x2b,0x29,0x27,0x26,0x27,0x29,0x2c,0x2d,0x2f,0x2c,0x27,0x26,0x2b,0x31,0x2f,0x28,
+0x25,0x1f,0x1e,0x24,0x2c,0x30,0x35,0x3a,0x37,0x2f,0x22,0x1c,0x1f,0x21,0x27,0x35,
+0x36,0x39,0x3b,0x3b,0x42,0x4d,0x53,0x53,0x51,0x49,0x54,0x5c,0x4d,0x42,0x49,0x50,
+0x53,0x4b,0x40,0x2c,0x28,0x2a,0x27,0x30,0x4f,0x50,0x50,0x54,0x5a,0x51,0x41,0x3b,
+0x3d,0x43,0x4d,0x57,0x5a,0x55,0x4a,0x41,0x30,0x3c,0x4a,0x56,0x5f,0x66,0x69,0x69,
+0x5a,0x47,0x4d,0x5a,0x55,0x3b,0x23,0x29,0x38,0x3c,0x46,0x5a,0x69,0x61,0x52,0x4e,
+0x4c,0x4b,0x4c,0x4d,0x4a,0x45,0x43,0x43,0x47,0x34,0x26,0x2e,0x43,0x52,0x54,0x4f,
+0x50,0x58,0x54,0x42,0x33,0x2d,0x27,0x20,0x25,0x41,0x5d,0x68,0x6c,0x70,0x6d,0x65,
+0x3f,0x3d,0x36,0x2a,0x1f,0x1b,0x1c,0x1d,0x1d,0x1d,0x22,0x2a,0x2e,0x2a,0x23,0x1f,
+0x18,0x18,0x1b,0x1e,0x1e,0x1d,0x1e,0x21,0x27,0x2b,0x2a,0x24,0x24,0x2b,0x2e,0x2d,
+0x25,0x22,0x20,0x22,0x28,0x2b,0x2b,0x2a,0x29,0x2a,0x2c,0x2c,0x2d,0x2f,0x32,0x34,
+0x38,0x30,0x28,0x23,0x21,0x1f,0x1f,0x21,0x29,0x26,0x22,0x23,0x28,0x2d,0x30,0x30,
+0x27,0x20,0x1a,0x1a,0x1c,0x1c,0x1c,0x1c,0x22,0x24,0x27,0x27,0x25,0x22,0x20,0x1f,
+0x1c,0x1b,0x1a,0x1a,0x1c,0x1c,0x1c,0x1c,0x1c,0x1d,0x20,0x24,0x28,0x2c,0x31,0x34,
+0x37,0x36,0x34,0x31,0x2e,0x29,0x25,0x22,0x1f,0x22,0x23,0x21,0x23,0x28,0x2a,0x28,
+0x2c,0x32,0x36,0x34,0x34,0x39,0x40,0x46,0x42,0x3b,0x32,0x2d,0x2c,0x2c,0x2c,0x2b,
+0x28,0x29,0x2b,0x2e,0x31,0x31,0x2e,0x2c,0x1f,0x21,0x25,0x29,0x2b,0x2f,0x39,0x42,
+0x45,0x48,0x4c,0x52,0x5b,0x63,0x64,0x62,0x6a,0x6a,0x6a,0x6e,0x75,0x79,0x75,0x6d,
+0x53,0x40,0x36,0x37,0x34,0x2f,0x2d,0x29,0x36,0x36,0x35,0x31,0x2a,0x24,0x20,0x1e,
+0x1f,0x21,0x21,0x21,0x1f,0x20,0x23,0x26,0x2f,0x2e,0x2d,0x2c,0x2a,0x27,0x22,0x1e,
+0x22,0x25,0x27,0x27,0x27,0x2b,0x33,0x3a,0x33,0x2e,0x2b,0x2b,0x2d,0x30,0x36,0x3b,
+0x39,0x3f,0x4a,0x54,0x59,0x56,0x4c,0x45,0x3f,0x40,0x41,0x3e,0x39,0x35,0x33,0x34,
+0x3f,0x4a,0x58,0x5d,0x59,0x52,0x4d,0x4c,0x4c,0x4d,0x4b,0x47,0x47,0x4b,0x4b,0x4a,
+0x42,0x47,0x57,0x65,0x60,0x50,0x50,0x5d,0x64,0x65,0x65,0x65,0x68,0x6f,0x75,0x78,
+0x64,0x5c,0x5b,0x67,0x70,0x6f,0x69,0x65,0x5c,0x5f,0x68,0x6c,0x65,0x61,0x63,0x61,
+0x60,0x5f,0x5e,0x5c,0x5a,0x5c,0x64,0x6d,0x71,0x77,0x7c,0x7f,0x81,0x85,0x88,0x87,
+0x8c,0x8e,0x91,0x93,0x94,0x95,0x96,0x97,0x99,0x99,0x97,0x96,0x96,0x94,0x8c,0x84,
+0x7b,0x71,0x65,0x5e,0x5b,0x5a,0x58,0x55,0x50,0x4d,0x48,0x45,0x45,0x44,0x43,0x42,
+0x39,0x39,0x38,0x36,0x34,0x32,0x32,0x33,0x32,0x32,0x32,0x31,0x31,0x34,0x37,0x3a,
+0x3a,0x3e,0x43,0x48,0x4d,0x53,0x58,0x5b,0x5c,0x5f,0x5f,0x5e,0x5d,0x5d,0x5b,0x57,
+0x57,0x57,0x56,0x56,0x58,0x5a,0x5c,0x5e,0x5d,0x5e,0x5f,0x60,0x63,0x66,0x69,0x6b,
+0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6c,0x6a,
+0x69,0x66,0x61,0x5e,0x5c,0x5b,0x5a,0x59,0x58,0x58,0x58,0x58,0x58,0x59,0x59,0x59,
+0x5b,0x5b,0x5c,0x5e,0x61,0x65,0x69,0x6b,0x6d,0x71,0x74,0x76,0x79,0x7d,0x7f,0x7d,
+0x7d,0x7f,0x80,0x81,0x81,0x81,0x81,0x81,0x80,0x7d,0x7b,0x7a,0x7a,0x77,0x71,0x6d,
+0x6c,0x6f,0x72,0x73,0x72,0x71,0x70,0x70,0x6e,0x6c,0x68,0x64,0x5f,0x59,0x54,0x51,
+0x4a,0x43,0x3b,0x38,0x34,0x30,0x2e,0x2f,0x29,0x28,0x2a,0x33,0x3d,0x3e,0x35,0x2b,
+0x2c,0x31,0x2e,0x2a,0x2e,0x30,0x2e,0x2f,0x32,0x2d,0x2d,0x33,0x38,0x3a,0x3b,0x3e,
+0x39,0x35,0x3c,0x4d,0x56,0x55,0x5c,0x6a,0x70,0x70,0x64,0x60,0x72,0x7b,0x73,0x6e,
+0x5e,0x5f,0x5b,0x54,0x56,0x5b,0x56,0x4a,0x3b,0x32,0x2c,0x2c,0x2c,0x2a,0x2e,0x33,
+0x2b,0x28,0x26,0x25,0x25,0x27,0x2e,0x34,0x3e,0x3a,0x30,0x27,0x28,0x30,0x32,0x2d,
+0x2b,0x25,0x21,0x23,0x27,0x2e,0x37,0x3e,0x43,0x3a,0x28,0x1b,0x19,0x1a,0x26,0x39,
+0x40,0x43,0x41,0x3d,0x41,0x4c,0x4f,0x4a,0x48,0x42,0x4e,0x56,0x47,0x3f,0x48,0x4f,
+0x5c,0x52,0x49,0x3e,0x3d,0x3a,0x2d,0x31,0x52,0x5c,0x5e,0x5b,0x5c,0x54,0x40,0x31,
+0x3b,0x43,0x4d,0x54,0x56,0x51,0x47,0x3d,0x31,0x42,0x51,0x59,0x60,0x68,0x6a,0x66,
+0x54,0x44,0x4b,0x53,0x46,0x29,0x15,0x20,0x3b,0x4b,0x60,0x73,0x75,0x61,0x4e,0x4c,
+0x39,0x37,0x37,0x38,0x38,0x39,0x3e,0x44,0x40,0x2d,0x20,0x2b,0x3f,0x48,0x43,0x3a,
+0x36,0x30,0x37,0x47,0x46,0x34,0x2b,0x30,0x40,0x56,0x65,0x63,0x5f,0x5c,0x4f,0x3e,
+0x2b,0x33,0x37,0x30,0x25,0x1f,0x1e,0x1e,0x1d,0x1e,0x23,0x2c,0x31,0x2d,0x25,0x20,
+0x17,0x17,0x18,0x1b,0x1c,0x1b,0x1c,0x1f,0x25,0x2a,0x2b,0x28,0x27,0x29,0x29,0x26,
+0x21,0x1f,0x1e,0x21,0x25,0x28,0x28,0x27,0x2a,0x2a,0x2b,0x2e,0x32,0x39,0x40,0x45,
+0x42,0x38,0x2d,0x29,0x28,0x25,0x22,0x20,0x24,0x24,0x24,0x23,0x23,0x23,0x25,0x27,
+0x24,0x1e,0x1b,0x1c,0x1c,0x1b,0x18,0x18,0x1c,0x1e,0x22,0x24,0x24,0x24,0x24,0x24,
+0x25,0x24,0x22,0x21,0x21,0x21,0x20,0x1f,0x1c,0x1e,0x21,0x24,0x26,0x29,0x2d,0x30,
+0x38,0x38,0x36,0x30,0x29,0x26,0x26,0x27,0x20,0x23,0x26,0x27,0x28,0x2c,0x2d,0x2d,
+0x32,0x36,0x37,0x32,0x2f,0x34,0x3d,0x43,0x40,0x37,0x2d,0x29,0x2b,0x2e,0x2e,0x2c,
+0x2c,0x30,0x32,0x2e,0x26,0x21,0x21,0x23,0x20,0x23,0x27,0x28,0x27,0x2a,0x35,0x41,
+0x3f,0x40,0x41,0x42,0x48,0x50,0x54,0x54,0x55,0x56,0x58,0x5d,0x65,0x68,0x63,0x5c,
+0x4a,0x3a,0x33,0x33,0x2f,0x2c,0x2e,0x2f,0x36,0x38,0x37,0x32,0x2a,0x22,0x1e,0x1c,
+0x1c,0x1d,0x1e,0x1e,0x1e,0x1f,0x23,0x26,0x29,0x28,0x27,0x26,0x25,0x23,0x21,0x1f,
+0x22,0x23,0x25,0x28,0x2b,0x2f,0x32,0x34,0x31,0x2d,0x2c,0x2d,0x2e,0x30,0x35,0x3a,
+0x3f,0x40,0x41,0x42,0x41,0x3e,0x3b,0x39,0x40,0x44,0x47,0x46,0x42,0x3d,0x38,0x35,
+0x36,0x43,0x51,0x55,0x50,0x4a,0x4a,0x4e,0x4a,0x4b,0x49,0x45,0x42,0x41,0x3f,0x3e,
+0x43,0x41,0x4c,0x5c,0x5e,0x52,0x4c,0x50,0x52,0x56,0x58,0x58,0x5a,0x5f,0x62,0x62,
+0x5b,0x5e,0x62,0x67,0x6c,0x6f,0x6d,0x6a,0x5e,0x61,0x69,0x6a,0x62,0x60,0x61,0x5e,
+0x5d,0x5a,0x57,0x54,0x52,0x54,0x5f,0x6a,0x71,0x76,0x7c,0x7e,0x81,0x85,0x87,0x86,
+0x8a,0x8c,0x8f,0x92,0x94,0x95,0x97,0x98,0x99,0x99,0x97,0x96,0x96,0x95,0x90,0x89,
+0x7a,0x71,0x64,0x5b,0x56,0x53,0x50,0x4d,0x49,0x43,0x3c,0x37,0x32,0x2e,0x28,0x24,
+0x29,0x29,0x29,0x28,0x27,0x27,0x28,0x2a,0x29,0x29,0x28,0x27,0x27,0x28,0x2c,0x2e,
+0x30,0x31,0x34,0x38,0x3b,0x3f,0x44,0x47,0x50,0x54,0x57,0x57,0x57,0x57,0x56,0x53,
+0x55,0x54,0x54,0x54,0x56,0x59,0x5c,0x5e,0x61,0x61,0x62,0x63,0x65,0x67,0x6a,0x6b,
+0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x6e,0x6d,0x6d,0x6d,0x6c,0x6a,0x69,
+0x67,0x65,0x63,0x61,0x5f,0x5d,0x5b,0x59,0x59,0x59,0x59,0x59,0x59,0x5a,0x5b,0x5c,
+0x5f,0x5f,0x61,0x64,0x68,0x6d,0x71,0x73,0x78,0x7b,0x7e,0x80,0x82,0x85,0x85,0x84,
+0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,0x80,0x7c,0x7b,0x7c,0x7b,0x78,0x74,
+0x71,0x71,0x72,0x72,0x71,0x71,0x72,0x73,0x6d,0x6c,0x69,0x65,0x60,0x5a,0x56,0x53,
+0x49,0x44,0x3e,0x39,0x33,0x2e,0x2b,0x2b,0x2c,0x36,0x41,0x46,0x40,0x38,0x33,0x32,
+0x3e,0x36,0x2b,0x31,0x43,0x46,0x36,0x28,0x2c,0x32,0x39,0x3e,0x43,0x45,0x3f,0x36,
+0x39,0x34,0x3c,0x51,0x5d,0x5d,0x61,0x6b,0x7b,0x87,0x84,0x77,0x70,0x65,0x5b,0x5c,
+0x68,0x74,0x74,0x63,0x55,0x51,0x4b,0x40,0x3a,0x34,0x31,0x31,0x2c,0x24,0x21,0x24,
+0x2b,0x28,0x25,0x24,0x23,0x23,0x29,0x31,0x3d,0x3f,0x3c,0x35,0x32,0x33,0x31,0x2c,
+0x2e,0x2a,0x24,0x20,0x1e,0x22,0x2c,0x36,0x40,0x3b,0x2e,0x23,0x1e,0x1b,0x23,0x34,
+0x43,0x46,0x44,0x3e,0x40,0x46,0x44,0x3d,0x3b,0x36,0x43,0x4d,0x42,0x40,0x4f,0x59,
+0x53,0x4b,0x4b,0x47,0x3d,0x2a,0x1a,0x26,0x46,0x48,0x50,0x5c,0x5c,0x48,0x38,0x3b,
+0x49,0x4f,0x55,0x56,0x54,0x4c,0x40,0x34,0x2d,0x3f,0x50,0x58,0x5f,0x68,0x6a,0x64,
+0x5a,0x49,0x4d,0x50,0x41,0x26,0x17,0x25,0x39,0x4c,0x4e,0x4a,0x5b,0x6d,0x61,0x4a,
+0x32,0x33,0x36,0x36,0x32,0x2b,0x29,0x2a,0x1f,0x24,0x31,0x42,0x51,0x5a,0x61,0x65,
+0x56,0x4a,0x47,0x4b,0x40,0x2a,0x25,0x2f,0x4f,0x59,0x5c,0x55,0x51,0x53,0x53,0x4f,
+0x23,0x2f,0x37,0x33,0x2b,0x25,0x21,0x1d,0x1b,0x1b,0x20,0x27,0x2b,0x27,0x20,0x1c,
+0x18,0x17,0x18,0x1b,0x1c,0x1b,0x1c,0x1e,0x23,0x28,0x2f,0x32,0x30,0x2a,0x23,0x1f,
+0x1f,0x1e,0x1f,0x22,0x26,0x2a,0x2d,0x2e,0x35,0x33,0x30,0x2e,0x30,0x34,0x38,0x3c,
+0x38,0x30,0x29,0x2a,0x2c,0x29,0x23,0x1f,0x1e,0x22,0x27,0x27,0x23,0x1f,0x1c,0x1b,
+0x1b,0x19,0x18,0x1a,0x1a,0x18,0x18,0x18,0x17,0x1a,0x1e,0x21,0x22,0x24,0x25,0x26,
+0x29,0x27,0x23,0x21,0x1f,0x1d,0x1b,0x19,0x1b,0x1d,0x20,0x21,0x22,0x25,0x2a,0x2d,
+0x34,0x35,0x33,0x2c,0x24,0x21,0x25,0x2a,0x21,0x23,0x27,0x2a,0x2a,0x29,0x2a,0x2e,
+0x35,0x39,0x39,0x34,0x30,0x33,0x3b,0x40,0x41,0x38,0x2e,0x2c,0x30,0x35,0x35,0x33,
+0x2a,0x31,0x36,0x32,0x26,0x1d,0x1a,0x1b,0x20,0x22,0x24,0x23,0x21,0x26,0x37,0x47,
+0x48,0x4a,0x48,0x45,0x44,0x47,0x4b,0x4c,0x49,0x48,0x49,0x4c,0x50,0x52,0x4f,0x4c,
+0x47,0x39,0x35,0x36,0x30,0x2d,0x32,0x36,0x34,0x34,0x33,0x2e,0x28,0x23,0x21,0x20,
+0x1d,0x1d,0x1d,0x1d,0x1e,0x21,0x24,0x26,0x2a,0x2a,0x29,0x26,0x22,0x20,0x1f,0x1f,
+0x21,0x20,0x22,0x28,0x2f,0x34,0x35,0x33,0x32,0x2f,0x2e,0x2f,0x2f,0x31,0x36,0x3c,
+0x43,0x42,0x41,0x3d,0x39,0x36,0x34,0x33,0x3e,0x45,0x4c,0x4f,0x50,0x4c,0x45,0x3e,
+0x3c,0x45,0x4f,0x50,0x4d,0x4f,0x59,0x62,0x61,0x5e,0x58,0x50,0x47,0x3e,0x36,0x32,
+0x45,0x4b,0x51,0x57,0x61,0x67,0x5f,0x51,0x4c,0x4a,0x44,0x40,0x44,0x4c,0x4c,0x47,
+0x4a,0x54,0x5c,0x60,0x61,0x64,0x67,0x68,0x61,0x63,0x69,0x68,0x60,0x5e,0x5f,0x59,
+0x5a,0x56,0x53,0x51,0x4e,0x4f,0x59,0x64,0x6e,0x75,0x7b,0x7e,0x80,0x83,0x85,0x86,
+0x88,0x8b,0x8e,0x91,0x93,0x95,0x97,0x99,0x99,0x9a,0x9a,0x99,0x99,0x9b,0x99,0x96,
+0x90,0x8b,0x84,0x7f,0x7d,0x7c,0x7b,0x7a,0x7b,0x75,0x6c,0x62,0x56,0x47,0x37,0x2c,
+0x2b,0x2a,0x28,0x27,0x28,0x2b,0x2f,0x31,0x23,0x22,0x21,0x1f,0x1e,0x1f,0x22,0x24,
+0x24,0x24,0x26,0x2a,0x2d,0x31,0x36,0x3c,0x43,0x49,0x4f,0x51,0x53,0x55,0x54,0x53,
+0x52,0x52,0x51,0x52,0x54,0x58,0x5b,0x5d,0x62,0x62,0x64,0x66,0x68,0x6a,0x6b,0x6c,
+0x71,0x71,0x71,0x71,0x71,0x70,0x6f,0x6f,0x70,0x6f,0x6d,0x6c,0x6c,0x6c,0x6a,0x69,
+0x66,0x65,0x64,0x63,0x62,0x60,0x5d,0x5b,0x5b,0x5b,0x5b,0x5b,0x5c,0x5d,0x5e,0x5f,
+0x63,0x65,0x67,0x6b,0x70,0x74,0x78,0x7a,0x80,0x84,0x86,0x87,0x89,0x8a,0x8a,0x87,
+0x85,0x85,0x85,0x85,0x86,0x86,0x85,0x84,0x85,0x83,0x7f,0x7e,0x7d,0x7c,0x7a,0x78,
+0x76,0x75,0x74,0x73,0x72,0x72,0x73,0x73,0x6b,0x6a,0x68,0x66,0x62,0x5e,0x5a,0x57,
+0x4a,0x44,0x3c,0x37,0x36,0x36,0x35,0x34,0x34,0x39,0x43,0x49,0x47,0x3e,0x34,0x30,
+0x40,0x3d,0x3c,0x4a,0x5b,0x55,0x3e,0x2e,0x39,0x45,0x4e,0x4b,0x48,0x47,0x42,0x3a,
+0x40,0x41,0x45,0x53,0x6a,0x7b,0x7b,0x72,0x79,0x80,0x7c,0x6d,0x5c,0x50,0x50,0x5a,
+0x68,0x77,0x79,0x63,0x4e,0x47,0x45,0x41,0x42,0x3c,0x39,0x39,0x38,0x32,0x29,0x23,
+0x28,0x25,0x25,0x28,0x28,0x27,0x2b,0x33,0x3a,0x3a,0x39,0x37,0x34,0x33,0x34,0x35,
+0x30,0x2e,0x27,0x1d,0x16,0x16,0x1e,0x26,0x30,0x32,0x30,0x2e,0x2d,0x25,0x24,0x2e,
+0x30,0x35,0x38,0x38,0x3a,0x3e,0x3d,0x39,0x46,0x41,0x4c,0x51,0x43,0x41,0x51,0x5b,
+0x5c,0x4c,0x49,0x4d,0x4c,0x38,0x22,0x2a,0x2c,0x3c,0x4a,0x53,0x54,0x49,0x42,0x46,
+0x55,0x59,0x5a,0x56,0x51,0x48,0x39,0x2b,0x27,0x39,0x4b,0x57,0x61,0x6a,0x6a,0x65,
+0x57,0x46,0x4b,0x4f,0x40,0x27,0x1c,0x2d,0x49,0x43,0x33,0x35,0x56,0x6b,0x53,0x2f,
+0x21,0x22,0x25,0x28,0x26,0x21,0x1d,0x1c,0x25,0x33,0x44,0x50,0x57,0x59,0x58,0x55,
+0x51,0x52,0x48,0x33,0x25,0x2a,0x3c,0x4a,0x47,0x50,0x53,0x49,0x3d,0x3a,0x3e,0x42,
+0x23,0x2c,0x32,0x30,0x2e,0x2d,0x29,0x22,0x1f,0x1e,0x1f,0x24,0x25,0x21,0x1c,0x1a,
+0x19,0x17,0x17,0x19,0x1b,0x1a,0x1b,0x1c,0x1f,0x22,0x2b,0x34,0x33,0x29,0x21,0x21,
+0x21,0x21,0x23,0x24,0x26,0x2a,0x2f,0x32,0x36,0x35,0x32,0x30,0x2e,0x2e,0x2e,0x2e,
+0x31,0x2a,0x24,0x24,0x24,0x22,0x1f,0x1d,0x1e,0x21,0x25,0x26,0x23,0x1d,0x18,0x15,
+0x16,0x15,0x16,0x17,0x17,0x16,0x18,0x1c,0x1e,0x20,0x23,0x25,0x27,0x28,0x2a,0x2b,
+0x26,0x24,0x21,0x1e,0x1c,0x1a,0x17,0x16,0x18,0x1b,0x1e,0x20,0x21,0x24,0x2a,0x2e,
+0x30,0x31,0x30,0x2a,0x22,0x1f,0x22,0x26,0x23,0x22,0x26,0x2b,0x28,0x21,0x23,0x2d,
+0x31,0x36,0x38,0x36,0x34,0x36,0x3a,0x3d,0x3f,0x36,0x2e,0x2c,0x31,0x36,0x36,0x34,
+0x28,0x2c,0x32,0x34,0x31,0x2c,0x27,0x25,0x20,0x21,0x21,0x21,0x20,0x25,0x32,0x40,
+0x4b,0x51,0x56,0x54,0x52,0x52,0x54,0x55,0x57,0x57,0x57,0x57,0x57,0x55,0x52,0x50,
+0x46,0x39,0x36,0x38,0x34,0x32,0x38,0x3d,0x34,0x30,0x2a,0x26,0x25,0x25,0x25,0x25,
+0x21,0x1f,0x1e,0x1d,0x1f,0x21,0x23,0x24,0x2b,0x2d,0x2e,0x2a,0x23,0x1e,0x1c,0x1d,
+0x1f,0x1f,0x20,0x26,0x2d,0x33,0x34,0x34,0x31,0x2e,0x2c,0x2c,0x2e,0x32,0x39,0x41,
+0x45,0x44,0x43,0x43,0x44,0x43,0x41,0x3e,0x40,0x45,0x4a,0x4e,0x53,0x55,0x50,0x49,
+0x44,0x49,0x4b,0x47,0x44,0x48,0x54,0x5f,0x71,0x6c,0x66,0x60,0x58,0x4e,0x45,0x3f,
+0x40,0x49,0x4f,0x53,0x60,0x6d,0x66,0x54,0x57,0x57,0x53,0x51,0x58,0x66,0x6e,0x6e,
+0x5e,0x63,0x6a,0x6c,0x66,0x5e,0x60,0x67,0x65,0x66,0x6a,0x68,0x60,0x5e,0x5c,0x54,
+0x56,0x52,0x50,0x51,0x4e,0x4b,0x51,0x5a,0x6b,0x73,0x7b,0x7d,0x7e,0x80,0x84,0x85,
+0x88,0x8b,0x8e,0x91,0x93,0x94,0x96,0x97,0x98,0x9c,0x9d,0x9d,0x9e,0xa2,0xa5,0xa5,
+0xa9,0xa9,0xa9,0xaa,0xab,0xad,0xaf,0xb0,0xb1,0xae,0xaa,0xa6,0xa1,0x96,0x88,0x7e,
+0x54,0x4c,0x41,0x38,0x32,0x2f,0x2d,0x2b,0x25,0x24,0x22,0x1f,0x1d,0x1d,0x1f,0x21,
+0x1e,0x1d,0x1e,0x21,0x24,0x26,0x2b,0x31,0x35,0x3c,0x45,0x4a,0x4e,0x51,0x53,0x52,
+0x50,0x4f,0x4f,0x4f,0x52,0x56,0x59,0x5c,0x60,0x61,0x64,0x68,0x6a,0x6c,0x6d,0x6e,
+0x71,0x72,0x73,0x74,0x74,0x73,0x72,0x71,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6c,0x6b,
+0x67,0x66,0x64,0x63,0x63,0x62,0x60,0x5e,0x5d,0x5d,0x5d,0x5d,0x5e,0x60,0x62,0x63,
+0x67,0x69,0x6d,0x72,0x76,0x7a,0x7d,0x7f,0x82,0x86,0x88,0x89,0x8a,0x8b,0x8a,0x87,
+0x86,0x85,0x84,0x85,0x86,0x86,0x85,0x83,0x83,0x83,0x82,0x81,0x80,0x7e,0x7c,0x7a,
+0x7a,0x79,0x77,0x76,0x75,0x74,0x73,0x72,0x6d,0x6b,0x69,0x67,0x65,0x61,0x5b,0x58,
+0x4a,0x47,0x45,0x4a,0x51,0x51,0x48,0x3d,0x39,0x2e,0x29,0x35,0x44,0x48,0x40,0x37,
+0x30,0x3a,0x47,0x56,0x5b,0x4b,0x35,0x2d,0x49,0x4b,0x4b,0x4a,0x49,0x4b,0x4e,0x50,
+0x4b,0x4e,0x51,0x5a,0x6f,0x82,0x80,0x73,0x5f,0x57,0x56,0x58,0x53,0x50,0x52,0x55,
+0x61,0x6e,0x6e,0x5b,0x47,0x41,0x43,0x43,0x44,0x43,0x41,0x3c,0x39,0x34,0x2d,0x26,
+0x27,0x25,0x28,0x2e,0x2f,0x2c,0x2d,0x32,0x35,0x30,0x2f,0x32,0x34,0x32,0x35,0x3b,
+0x33,0x31,0x2a,0x1f,0x17,0x16,0x1a,0x1e,0x28,0x2c,0x2e,0x32,0x34,0x2c,0x26,0x2b,
+0x24,0x29,0x2f,0x35,0x38,0x3a,0x3b,0x3c,0x47,0x43,0x4d,0x50,0x41,0x3f,0x4e,0x58,
+0x54,0x53,0x5c,0x5e,0x54,0x39,0x1d,0x21,0x41,0x5f,0x6e,0x64,0x5a,0x54,0x4e,0x4b,
+0x58,0x5a,0x59,0x55,0x51,0x4b,0x3d,0x2e,0x31,0x3f,0x52,0x61,0x6d,0x74,0x72,0x6e,
+0x4c,0x3f,0x48,0x4e,0x40,0x26,0x1c,0x2f,0x43,0x45,0x48,0x4f,0x4d,0x35,0x1b,0x13,
+0x20,0x1f,0x24,0x2e,0x36,0x35,0x2f,0x2a,0x2f,0x3e,0x4f,0x5c,0x68,0x6d,0x63,0x54,
+0x4e,0x3d,0x36,0x37,0x2c,0x1c,0x25,0x3c,0x38,0x46,0x4e,0x49,0x43,0x43,0x43,0x41,
+0x1d,0x22,0x24,0x26,0x2d,0x35,0x34,0x2d,0x25,0x23,0x23,0x24,0x23,0x1f,0x1c,0x1b,
+0x18,0x16,0x15,0x18,0x19,0x18,0x19,0x1a,0x1c,0x1b,0x22,0x2e,0x2f,0x26,0x22,0x27,
+0x26,0x27,0x26,0x23,0x20,0x21,0x25,0x29,0x2d,0x2e,0x30,0x32,0x34,0x34,0x33,0x31,
+0x38,0x2f,0x26,0x1f,0x1b,0x19,0x1a,0x1d,0x22,0x21,0x20,0x1f,0x1f,0x1d,0x19,0x16,
+0x18,0x18,0x18,0x18,0x17,0x16,0x1a,0x20,0x1a,0x1c,0x1f,0x20,0x21,0x22,0x23,0x24,
+0x26,0x24,0x21,0x20,0x1f,0x1e,0x1c,0x1b,0x18,0x1b,0x1e,0x20,0x21,0x26,0x2c,0x32,
+0x30,0x30,0x2e,0x29,0x22,0x1e,0x1f,0x20,0x26,0x22,0x25,0x2b,0x25,0x1b,0x1e,0x2c,
+0x2a,0x31,0x36,0x37,0x37,0x39,0x3b,0x3b,0x3a,0x32,0x2a,0x28,0x2d,0x32,0x32,0x31,
+0x2c,0x2c,0x2e,0x34,0x3b,0x3c,0x37,0x31,0x23,0x23,0x24,0x25,0x25,0x26,0x2c,0x33,
+0x44,0x50,0x5c,0x60,0x60,0x61,0x63,0x64,0x68,0x69,0x6b,0x6c,0x68,0x61,0x5b,0x58,
+0x42,0x35,0x32,0x35,0x34,0x34,0x3a,0x3d,0x34,0x2b,0x20,0x1c,0x20,0x24,0x25,0x24,
+0x21,0x1e,0x1b,0x1b,0x1c,0x1f,0x1f,0x1f,0x1f,0x24,0x28,0x26,0x20,0x1b,0x1a,0x1c,
+0x1f,0x1e,0x1f,0x23,0x28,0x2e,0x31,0x32,0x36,0x32,0x2e,0x2c,0x2d,0x31,0x3b,0x44,
+0x4c,0x44,0x3b,0x3a,0x40,0x47,0x4a,0x4b,0x42,0x43,0x43,0x44,0x4b,0x52,0x52,0x4d,
+0x4d,0x4e,0x4c,0x44,0x3c,0x3c,0x45,0x4d,0x54,0x51,0x4f,0x4f,0x4d,0x48,0x42,0x3e,
+0x40,0x44,0x4a,0x53,0x5d,0x60,0x5a,0x51,0x50,0x5b,0x62,0x5f,0x5c,0x61,0x67,0x68,
+0x71,0x6e,0x72,0x74,0x67,0x54,0x52,0x5d,0x68,0x69,0x6b,0x68,0x60,0x5d,0x5a,0x50,
+0x53,0x4f,0x4f,0x51,0x4e,0x49,0x4b,0x51,0x69,0x72,0x7b,0x7d,0x7d,0x7f,0x83,0x85,
+0x89,0x8c,0x8f,0x91,0x92,0x93,0x95,0x96,0x98,0x9d,0xa0,0xa0,0xa1,0xa6,0xac,0xaf,
+0xb0,0xb3,0xb6,0xb8,0xb8,0xb9,0xbb,0xbc,0xc1,0xbe,0xbb,0xba,0xb9,0xb4,0xab,0xa4,
+0xa4,0x95,0x7e,0x66,0x53,0x44,0x38,0x31,0x29,0x27,0x25,0x21,0x1e,0x1d,0x1e,0x20,
+0x25,0x21,0x1f,0x1f,0x1d,0x1b,0x1e,0x23,0x27,0x2f,0x39,0x40,0x46,0x4b,0x4e,0x4e,
+0x4f,0x4e,0x4d,0x4e,0x50,0x54,0x58,0x5b,0x5d,0x60,0x64,0x68,0x6c,0x6e,0x6f,0x6f,
+0x6f,0x71,0x73,0x75,0x75,0x75,0x73,0x72,0x73,0x71,0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,
+0x68,0x66,0x64,0x62,0x62,0x62,0x62,0x61,0x5f,0x5f,0x5e,0x5f,0x60,0x62,0x64,0x65,
+0x68,0x6b,0x70,0x75,0x7a,0x7e,0x80,0x81,0x80,0x84,0x87,0x87,0x88,0x89,0x88,0x85,
+0x87,0x85,0x84,0x84,0x85,0x85,0x84,0x82,0x7f,0x81,0x83,0x83,0x82,0x7f,0x7e,0x7d,
+0x7b,0x7a,0x7a,0x79,0x78,0x75,0x72,0x70,0x72,0x6f,0x6c,0x69,0x66,0x61,0x5a,0x55,
+0x4d,0x43,0x3d,0x46,0x5c,0x70,0x75,0x71,0x62,0x4e,0x3d,0x3c,0x44,0x49,0x47,0x45,
+0x4e,0x42,0x32,0x2e,0x34,0x36,0x38,0x41,0x3c,0x31,0x2e,0x37,0x43,0x49,0x4d,0x50,
+0x51,0x51,0x55,0x5e,0x68,0x6c,0x6d,0x6c,0x69,0x59,0x5a,0x64,0x61,0x5f,0x62,0x60,
+0x63,0x6c,0x6a,0x58,0x47,0x40,0x3f,0x3e,0x4f,0x56,0x55,0x46,0x37,0x30,0x2d,0x2b,
+0x2b,0x28,0x2a,0x30,0x30,0x29,0x25,0x27,0x28,0x24,0x29,0x37,0x3c,0x35,0x30,0x32,
+0x34,0x31,0x2a,0x21,0x1c,0x1b,0x1c,0x1d,0x29,0x2b,0x2b,0x2e,0x31,0x2a,0x24,0x28,
+0x2f,0x31,0x36,0x3b,0x3c,0x39,0x39,0x3c,0x38,0x38,0x47,0x50,0x48,0x4b,0x5f,0x6a,
+0x5f,0x55,0x51,0x4d,0x4e,0x44,0x2f,0x2d,0x46,0x5a,0x6a,0x6a,0x5b,0x45,0x40,0x4c,
+0x56,0x59,0x58,0x56,0x56,0x55,0x48,0x3a,0x34,0x3f,0x51,0x62,0x6e,0x71,0x6e,0x6a,
+0x47,0x3e,0x4c,0x53,0x43,0x27,0x1d,0x30,0x45,0x4b,0x49,0x43,0x45,0x4c,0x59,0x68,
+0x64,0x62,0x65,0x6d,0x6d,0x5c,0x41,0x2d,0x2c,0x44,0x58,0x5e,0x60,0x62,0x58,0x49,
+0x44,0x39,0x2a,0x20,0x21,0x29,0x2e,0x2e,0x3e,0x47,0x49,0x44,0x49,0x54,0x53,0x47,
+0x1e,0x1e,0x1c,0x1d,0x27,0x31,0x30,0x27,0x20,0x23,0x29,0x2c,0x29,0x1f,0x18,0x15,
+0x14,0x1b,0x21,0x22,0x1f,0x1b,0x1c,0x1e,0x1d,0x1d,0x20,0x21,0x20,0x1e,0x22,0x27,
+0x28,0x29,0x28,0x25,0x23,0x25,0x26,0x25,0x26,0x27,0x2a,0x30,0x39,0x41,0x46,0x48,
+0x45,0x3d,0x31,0x24,0x1c,0x1a,0x1b,0x1d,0x20,0x21,0x1f,0x1d,0x1c,0x1b,0x18,0x14,
+0x15,0x17,0x19,0x1c,0x1d,0x1e,0x1e,0x1d,0x17,0x18,0x19,0x18,0x16,0x18,0x1c,0x21,
+0x28,0x23,0x20,0x1e,0x1c,0x19,0x19,0x1a,0x1b,0x1d,0x20,0x23,0x27,0x2b,0x30,0x33,
+0x32,0x34,0x34,0x2e,0x25,0x1f,0x1d,0x1e,0x22,0x26,0x29,0x26,0x21,0x20,0x26,0x2b,
+0x2d,0x2f,0x35,0x3b,0x41,0x42,0x3f,0x3c,0x36,0x32,0x2c,0x28,0x28,0x29,0x29,0x29,
+0x2b,0x2b,0x29,0x28,0x2d,0x34,0x36,0x32,0x27,0x29,0x27,0x26,0x28,0x28,0x30,0x40,
+0x43,0x45,0x49,0x4e,0x52,0x54,0x53,0x52,0x55,0x50,0x52,0x5b,0x61,0x5e,0x59,0x56,
+0x40,0x2e,0x27,0x2b,0x2f,0x31,0x30,0x2b,0x23,0x22,0x21,0x21,0x22,0x23,0x23,0x23,
+0x1d,0x1b,0x1c,0x20,0x21,0x1e,0x1e,0x20,0x25,0x2b,0x2e,0x29,0x20,0x1a,0x1b,0x1f,
+0x1f,0x1f,0x1f,0x20,0x25,0x2c,0x2e,0x2e,0x33,0x32,0x32,0x34,0x36,0x39,0x40,0x47,
+0x49,0x48,0x47,0x46,0x4a,0x4f,0x50,0x4d,0x44,0x3f,0x40,0x49,0x51,0x53,0x51,0x51,
+0x4f,0x4a,0x47,0x45,0x42,0x3e,0x3d,0x3f,0x41,0x48,0x4b,0x47,0x45,0x47,0x47,0x44,
+0x48,0x48,0x4b,0x51,0x56,0x56,0x4f,0x48,0x3c,0x3e,0x42,0x45,0x47,0x49,0x4b,0x4d,
+0x53,0x56,0x5d,0x60,0x58,0x4f,0x51,0x5b,0x69,0x69,0x6a,0x6a,0x66,0x5f,0x57,0x54,
+0x4f,0x4c,0x4c,0x4e,0x4c,0x48,0x48,0x4c,0x64,0x75,0x7d,0x7c,0x7e,0x81,0x82,0x85,
+0x88,0x8c,0x90,0x93,0x94,0x95,0x97,0x99,0x9a,0x9d,0xa1,0xa5,0xa9,0xae,0xb2,0xb5,
+0xb7,0xb9,0xba,0xba,0xb9,0xb9,0xba,0xbc,0xbc,0xbf,0xc1,0xc2,0xc1,0xbf,0xbf,0xc0,
+0xb7,0xb4,0xac,0xa2,0x95,0x80,0x61,0x48,0x33,0x2f,0x29,0x26,0x25,0x22,0x1e,0x1a,
+0x21,0x1f,0x1d,0x1e,0x1f,0x20,0x1f,0x1d,0x21,0x28,0x31,0x38,0x3f,0x47,0x4d,0x50,
+0x51,0x4e,0x4d,0x4f,0x51,0x52,0x56,0x5a,0x5f,0x62,0x65,0x69,0x6d,0x6f,0x71,0x71,
+0x70,0x71,0x72,0x73,0x73,0x72,0x72,0x71,0x6f,0x6f,0x70,0x71,0x71,0x6f,0x6c,0x69,
+0x65,0x67,0x66,0x62,0x63,0x65,0x64,0x61,0x5f,0x5f,0x5e,0x5f,0x60,0x62,0x64,0x64,
+0x6a,0x6c,0x6f,0x73,0x77,0x7b,0x7d,0x7e,0x7e,0x7e,0x7f,0x81,0x82,0x83,0x83,0x83,
+0x81,0x82,0x83,0x82,0x81,0x80,0x80,0x80,0x80,0x80,0x81,0x82,0x82,0x80,0x7f,0x7e,
+0x80,0x7e,0x7b,0x78,0x77,0x76,0x74,0x73,0x71,0x6e,0x6a,0x68,0x69,0x67,0x5d,0x52,
+0x4d,0x42,0x48,0x68,0x87,0x90,0x8d,0x8a,0x81,0x74,0x60,0x47,0x32,0x32,0x3d,0x41,
+0x4a,0x40,0x36,0x33,0x3a,0x41,0x42,0x3e,0x32,0x2f,0x30,0x31,0x34,0x3c,0x3d,0x35,
+0x42,0x58,0x67,0x67,0x67,0x66,0x63,0x65,0x64,0x65,0x69,0x68,0x65,0x6c,0x71,0x6d,
+0x72,0x6d,0x62,0x50,0x4a,0x3f,0x31,0x3a,0x3b,0x3c,0x3c,0x3d,0x41,0x42,0x3a,0x30,
+0x30,0x2d,0x2a,0x2a,0x2c,0x2c,0x2a,0x28,0x24,0x22,0x21,0x23,0x27,0x2c,0x2e,0x2f,
+0x2a,0x2a,0x2a,0x29,0x21,0x1a,0x1c,0x23,0x29,0x22,0x1e,0x25,0x29,0x1e,0x1a,0x23,
+0x2b,0x34,0x43,0x45,0x41,0x36,0x28,0x2e,0x2d,0x31,0x42,0x52,0x46,0x48,0x65,0x6d,
+0x5e,0x4c,0x40,0x3f,0x38,0x29,0x25,0x2c,0x47,0x5b,0x69,0x65,0x53,0x3f,0x3e,0x4d,
+0x54,0x5d,0x54,0x4e,0x4f,0x50,0x4c,0x36,0x3b,0x49,0x5d,0x69,0x6f,0x75,0x6e,0x5d,
+0x40,0x41,0x63,0x5d,0x4c,0x1a,0x29,0x3a,0x4a,0x4d,0x53,0x59,0x60,0x64,0x67,0x68,
+0x69,0x67,0x72,0x6e,0x55,0x48,0x42,0x2f,0x3c,0x42,0x53,0x63,0x68,0x67,0x5a,0x48,
+0x36,0x27,0x1d,0x20,0x26,0x2a,0x32,0x3d,0x4b,0x59,0x5e,0x56,0x51,0x54,0x51,0x47,
+0x25,0x1d,0x18,0x1c,0x24,0x29,0x29,0x26,0x22,0x23,0x26,0x2b,0x2b,0x24,0x1c,0x17,
+0x16,0x1d,0x25,0x28,0x25,0x21,0x20,0x20,0x20,0x20,0x22,0x23,0x21,0x1e,0x20,0x24,
+0x26,0x27,0x25,0x22,0x22,0x26,0x28,0x29,0x26,0x27,0x2a,0x30,0x39,0x42,0x48,0x4b,
+0x46,0x3f,0x35,0x2a,0x22,0x1e,0x1e,0x1e,0x21,0x23,0x21,0x1b,0x18,0x18,0x19,0x19,
+0x1c,0x1d,0x1e,0x1f,0x1f,0x1d,0x1b,0x1a,0x14,0x16,0x18,0x18,0x18,0x19,0x1c,0x1f,
+0x20,0x20,0x21,0x22,0x1e,0x1a,0x1a,0x1c,0x29,0x29,0x2a,0x2a,0x2a,0x2a,0x2b,0x2c,
+0x33,0x35,0x35,0x2f,0x26,0x1f,0x1c,0x1d,0x20,0x23,0x25,0x23,0x20,0x21,0x28,0x2e,
+0x34,0x36,0x3a,0x3d,0x3e,0x3b,0x37,0x33,0x30,0x2d,0x2a,0x29,0x29,0x2a,0x28,0x27,
+0x26,0x28,0x27,0x24,0x25,0x29,0x2b,0x2a,0x27,0x27,0x24,0x24,0x29,0x2d,0x38,0x49,
+0x58,0x5d,0x63,0x67,0x65,0x60,0x5c,0x59,0x4c,0x4a,0x4a,0x4f,0x55,0x55,0x50,0x4b,
+0x35,0x2b,0x2a,0x2e,0x2b,0x2a,0x2d,0x2d,0x27,0x24,0x1f,0x1d,0x1d,0x1e,0x1e,0x1e,
+0x19,0x18,0x19,0x1d,0x1e,0x1c,0x1d,0x1f,0x20,0x23,0x25,0x25,0x21,0x1f,0x1f,0x20,
+0x21,0x22,0x24,0x26,0x2b,0x31,0x33,0x32,0x31,0x2f,0x2d,0x30,0x33,0x38,0x40,0x48,
+0x49,0x49,0x47,0x46,0x4a,0x4e,0x4f,0x4c,0x40,0x40,0x44,0x49,0x4b,0x4b,0x4d,0x51,
+0x59,0x59,0x53,0x46,0x38,0x32,0x35,0x3a,0x37,0x3c,0x3d,0x3a,0x39,0x3e,0x46,0x4c,
+0x51,0x4e,0x4c,0x4d,0x50,0x50,0x4d,0x4a,0x3a,0x3c,0x3e,0x3f,0x40,0x3f,0x3f,0x3e,
+0x48,0x4a,0x50,0x57,0x58,0x57,0x5d,0x66,0x6f,0x6f,0x70,0x70,0x6c,0x63,0x5a,0x54,
+0x4f,0x4d,0x4c,0x4c,0x49,0x46,0x46,0x49,0x65,0x76,0x7e,0x7d,0x80,0x82,0x82,0x85,
+0x89,0x8d,0x91,0x94,0x95,0x96,0x99,0x9b,0x9a,0x9d,0xa2,0xa6,0xaa,0xae,0xb2,0xb5,
+0xb6,0xb7,0xb9,0xb8,0xb7,0xb7,0xb8,0xb9,0xb9,0xbb,0xbd,0xbd,0xbc,0xbc,0xbc,0xbd,
+0xb8,0xb7,0xb4,0xb0,0xae,0xa7,0x97,0x88,0x6d,0x5c,0x44,0x31,0x27,0x24,0x24,0x24,
+0x22,0x20,0x1e,0x1e,0x21,0x22,0x21,0x20,0x1f,0x24,0x2a,0x30,0x38,0x42,0x4c,0x52,
+0x50,0x4d,0x4d,0x4f,0x51,0x53,0x57,0x5b,0x5f,0x61,0x65,0x69,0x6d,0x6f,0x71,0x71,
+0x74,0x74,0x75,0x76,0x76,0x75,0x74,0x74,0x71,0x71,0x70,0x70,0x70,0x6f,0x6d,0x6c,
+0x67,0x68,0x67,0x64,0x64,0x65,0x63,0x5f,0x5c,0x5d,0x5f,0x5f,0x5e,0x5f,0x62,0x65,
+0x6a,0x6b,0x6d,0x70,0x73,0x76,0x79,0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7e,0x7f,0x7f,
+0x7a,0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x81,0x82,0x82,0x82,0x81,0x80,0x7f,0x7e,
+0x81,0x7f,0x7c,0x79,0x78,0x76,0x74,0x73,0x71,0x6e,0x6a,0x69,0x6a,0x67,0x5d,0x52,
+0x52,0x55,0x62,0x77,0x85,0x87,0x86,0x88,0x7b,0x73,0x6a,0x5a,0x44,0x3b,0x3c,0x3b,
+0x3b,0x34,0x29,0x28,0x38,0x49,0x49,0x3d,0x40,0x37,0x32,0x36,0x38,0x32,0x30,0x35,
+0x41,0x5e,0x77,0x80,0x80,0x77,0x6b,0x66,0x62,0x57,0x54,0x5a,0x5f,0x68,0x6e,0x6d,
+0x5a,0x60,0x5d,0x4a,0x42,0x38,0x24,0x24,0x2c,0x31,0x36,0x39,0x3c,0x3c,0x35,0x2c,
+0x2c,0x2b,0x2b,0x2d,0x2f,0x2f,0x2c,0x2a,0x29,0x26,0x24,0x26,0x2b,0x30,0x32,0x32,
+0x31,0x2a,0x27,0x2b,0x2e,0x2b,0x28,0x27,0x25,0x22,0x21,0x26,0x2a,0x20,0x19,0x1e,
+0x24,0x28,0x32,0x2f,0x2b,0x24,0x1b,0x27,0x30,0x30,0x36,0x43,0x40,0x43,0x5a,0x60,
+0x63,0x4f,0x41,0x40,0x3a,0x29,0x20,0x21,0x44,0x5d,0x6c,0x64,0x4e,0x3c,0x40,0x52,
+0x57,0x5b,0x51,0x4e,0x4e,0x4d,0x4d,0x3f,0x35,0x42,0x57,0x67,0x6f,0x74,0x6a,0x55,
+0x40,0x47,0x64,0x5a,0x41,0x19,0x28,0x39,0x5b,0x54,0x55,0x5f,0x66,0x65,0x64,0x67,
+0x5c,0x5a,0x64,0x61,0x4d,0x47,0x45,0x38,0x3b,0x43,0x55,0x66,0x6b,0x68,0x59,0x46,
+0x2c,0x22,0x1d,0x22,0x27,0x2a,0x34,0x40,0x58,0x64,0x68,0x60,0x57,0x52,0x4b,0x43,
+0x2f,0x20,0x17,0x1c,0x23,0x25,0x26,0x2a,0x25,0x23,0x24,0x29,0x2b,0x26,0x1e,0x19,
+0x18,0x1f,0x26,0x29,0x26,0x20,0x1c,0x1a,0x1d,0x1e,0x20,0x22,0x20,0x1d,0x1e,0x21,
+0x24,0x24,0x22,0x1f,0x20,0x24,0x27,0x27,0x24,0x24,0x26,0x2b,0x32,0x3a,0x40,0x43,
+0x3a,0x36,0x2f,0x28,0x23,0x20,0x20,0x20,0x22,0x26,0x26,0x21,0x1c,0x1c,0x1e,0x20,
+0x1f,0x20,0x21,0x21,0x20,0x1d,0x1a,0x19,0x14,0x15,0x17,0x19,0x1a,0x1b,0x1c,0x1d,
+0x18,0x1c,0x21,0x24,0x21,0x1c,0x1b,0x1d,0x27,0x29,0x2c,0x2d,0x2e,0x2e,0x2f,0x30,
+0x32,0x35,0x35,0x30,0x27,0x1f,0x1c,0x1d,0x20,0x22,0x23,0x22,0x20,0x22,0x28,0x2e,
+0x35,0x37,0x3a,0x3a,0x36,0x31,0x2c,0x29,0x2b,0x2a,0x29,0x2b,0x2c,0x2c,0x29,0x27,
+0x25,0x28,0x2a,0x27,0x26,0x28,0x2c,0x2e,0x2c,0x2b,0x28,0x29,0x30,0x33,0x3c,0x4c,
+0x58,0x5f,0x66,0x69,0x69,0x69,0x6b,0x6e,0x69,0x6a,0x66,0x62,0x5f,0x5c,0x52,0x46,
+0x30,0x28,0x29,0x2e,0x2c,0x2b,0x2d,0x2c,0x25,0x20,0x1c,0x1a,0x1c,0x1d,0x1c,0x1a,
+0x1a,0x19,0x1a,0x1d,0x1f,0x1e,0x1e,0x20,0x1e,0x1d,0x1e,0x20,0x22,0x23,0x22,0x21,
+0x20,0x23,0x25,0x28,0x2c,0x32,0x33,0x32,0x2c,0x29,0x28,0x2b,0x30,0x35,0x3a,0x3f,
+0x43,0x45,0x48,0x4b,0x4f,0x53,0x51,0x4d,0x5c,0x5e,0x5e,0x57,0x4a,0x43,0x47,0x4f,
+0x61,0x6a,0x68,0x54,0x3c,0x31,0x32,0x35,0x34,0x36,0x38,0x38,0x35,0x37,0x41,0x4b,
+0x4b,0x49,0x49,0x4b,0x4f,0x52,0x52,0x51,0x46,0x48,0x4b,0x50,0x54,0x58,0x5a,0x5a,
+0x5a,0x57,0x56,0x55,0x53,0x50,0x55,0x5c,0x6a,0x6b,0x6e,0x70,0x6f,0x69,0x5f,0x58,
+0x55,0x53,0x50,0x4e,0x4b,0x47,0x47,0x4a,0x68,0x77,0x7f,0x7f,0x81,0x82,0x81,0x84,
+0x89,0x8d,0x92,0x95,0x97,0x98,0x9b,0x9d,0x9b,0x9e,0xa4,0xa8,0xac,0xaf,0xb2,0xb4,
+0xb5,0xb5,0xb6,0xb5,0xb4,0xb3,0xb4,0xb4,0xb4,0xb4,0xb5,0xb5,0xb4,0xb4,0xb6,0xb7,
+0xb6,0xb4,0xb2,0xb1,0xb4,0xb6,0xb3,0xaf,0xa1,0x8f,0x76,0x5e,0x4d,0x3f,0x33,0x2b,
+0x22,0x20,0x1e,0x1e,0x21,0x23,0x23,0x23,0x24,0x26,0x29,0x2c,0x32,0x3c,0x4a,0x54,
+0x52,0x50,0x4f,0x51,0x54,0x55,0x59,0x5d,0x60,0x62,0x66,0x6a,0x6e,0x70,0x72,0x73,
+0x75,0x75,0x76,0x76,0x76,0x75,0x74,0x73,0x74,0x72,0x71,0x70,0x70,0x70,0x6f,0x6e,
+0x6a,0x6a,0x69,0x66,0x64,0x64,0x61,0x5d,0x5b,0x5e,0x60,0x5f,0x5c,0x5c,0x5f,0x63,
+0x65,0x65,0x66,0x68,0x6b,0x6e,0x71,0x73,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x78,
+0x76,0x78,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
+0x82,0x80,0x7d,0x7a,0x78,0x77,0x75,0x73,0x6f,0x6d,0x6b,0x6a,0x6a,0x67,0x5d,0x53,
+0x53,0x61,0x72,0x7f,0x84,0x84,0x83,0x83,0x78,0x6f,0x69,0x5f,0x4b,0x3e,0x3e,0x40,
+0x3b,0x35,0x2c,0x2f,0x48,0x61,0x60,0x4f,0x48,0x39,0x2c,0x31,0x34,0x23,0x22,0x39,
+0x4a,0x5e,0x6e,0x79,0x84,0x88,0x85,0x85,0x73,0x5d,0x51,0x55,0x5a,0x5e,0x60,0x5d,
+0x4d,0x4e,0x4f,0x45,0x3f,0x37,0x26,0x28,0x21,0x29,0x32,0x37,0x38,0x35,0x2f,0x29,
+0x2b,0x2d,0x30,0x32,0x33,0x31,0x2e,0x2c,0x2c,0x28,0x23,0x24,0x2a,0x2e,0x30,0x2f,
+0x2d,0x26,0x24,0x2a,0x2e,0x2c,0x28,0x28,0x2a,0x2b,0x27,0x27,0x28,0x22,0x1b,0x1d,
+0x1e,0x20,0x26,0x22,0x1f,0x1b,0x18,0x28,0x35,0x40,0x46,0x4b,0x44,0x43,0x5c,0x6e,
+0x6b,0x53,0x3f,0x3b,0x38,0x2d,0x28,0x2b,0x40,0x5d,0x6e,0x62,0x4a,0x38,0x3d,0x4f,
+0x5d,0x5a,0x4f,0x4f,0x4d,0x48,0x4d,0x4b,0x45,0x52,0x62,0x65,0x5e,0x5b,0x52,0x43,
+0x3a,0x4f,0x67,0x5b,0x37,0x21,0x2f,0x41,0x55,0x49,0x4a,0x5a,0x66,0x63,0x5f,0x61,
+0x5a,0x58,0x5f,0x5e,0x4d,0x46,0x41,0x33,0x39,0x41,0x53,0x61,0x64,0x60,0x53,0x42,
+0x3e,0x36,0x31,0x31,0x30,0x2e,0x34,0x3f,0x47,0x50,0x59,0x5b,0x57,0x53,0x50,0x4d,
+0x33,0x26,0x1b,0x1c,0x23,0x27,0x2a,0x2c,0x26,0x24,0x23,0x26,0x27,0x22,0x1c,0x19,
+0x1d,0x21,0x26,0x27,0x24,0x1e,0x19,0x17,0x17,0x18,0x1c,0x1f,0x20,0x1f,0x1f,0x22,
+0x23,0x23,0x21,0x1e,0x1e,0x21,0x22,0x21,0x20,0x20,0x21,0x24,0x28,0x2d,0x31,0x34,
+0x31,0x2e,0x28,0x23,0x1f,0x1e,0x1e,0x1f,0x20,0x25,0x28,0x26,0x22,0x21,0x1f,0x1e,
+0x1a,0x1c,0x1e,0x1f,0x20,0x1e,0x1d,0x1b,0x17,0x17,0x17,0x19,0x1b,0x1c,0x1d,0x1d,
+0x17,0x19,0x1f,0x23,0x21,0x1d,0x1a,0x1b,0x1b,0x1f,0x25,0x2a,0x2d,0x30,0x33,0x34,
+0x31,0x34,0x35,0x30,0x27,0x20,0x1d,0x1e,0x21,0x23,0x24,0x23,0x22,0x23,0x28,0x2c,
+0x2f,0x32,0x35,0x35,0x32,0x2e,0x2b,0x2a,0x2b,0x2b,0x2b,0x2e,0x30,0x30,0x2d,0x2b,
+0x27,0x2a,0x2c,0x2d,0x2e,0x31,0x35,0x38,0x33,0x33,0x30,0x33,0x38,0x38,0x3b,0x45,
+0x48,0x4a,0x4d,0x51,0x57,0x61,0x6d,0x76,0x7c,0x80,0x7c,0x71,0x6c,0x69,0x5c,0x4c,
+0x36,0x27,0x24,0x2b,0x30,0x32,0x2f,0x28,0x1d,0x1a,0x18,0x19,0x1c,0x1d,0x1b,0x18,
+0x1c,0x1b,0x1c,0x1d,0x1e,0x1e,0x1e,0x1f,0x20,0x1e,0x1c,0x1c,0x1f,0x22,0x23,0x22,
+0x23,0x25,0x26,0x27,0x2a,0x2e,0x30,0x30,0x2c,0x29,0x29,0x2d,0x32,0x34,0x35,0x37,
+0x39,0x40,0x48,0x50,0x55,0x57,0x52,0x4c,0x4f,0x58,0x61,0x5e,0x53,0x4c,0x50,0x57,
+0x55,0x64,0x67,0x56,0x3f,0x32,0x2b,0x27,0x2f,0x30,0x36,0x3d,0x3d,0x39,0x3c,0x42,
+0x4d,0x4d,0x4e,0x4f,0x4f,0x4c,0x46,0x41,0x3f,0x3f,0x40,0x43,0x45,0x46,0x46,0x44,
+0x50,0x50,0x50,0x4d,0x49,0x4b,0x56,0x63,0x68,0x6b,0x6f,0x71,0x70,0x6c,0x64,0x5c,
+0x5d,0x5b,0x58,0x54,0x50,0x4e,0x4e,0x4f,0x6b,0x78,0x7f,0x7f,0x82,0x81,0x80,0x84,
+0x89,0x8d,0x92,0x96,0x97,0x99,0x9b,0x9e,0x9c,0xa0,0xa6,0xab,0xae,0xb0,0xb2,0xb3,
+0xb2,0xb2,0xb2,0xb1,0xb0,0xaf,0xaf,0xaf,0xad,0xac,0xac,0xab,0xaa,0xab,0xac,0xad,
+0xac,0xaa,0xa7,0xa5,0xa6,0xa8,0xaa,0xaa,0xae,0xa6,0x9b,0x90,0x83,0x70,0x5b,0x4b,
+0x39,0x35,0x30,0x2c,0x2a,0x28,0x25,0x23,0x27,0x29,0x2a,0x2a,0x2b,0x35,0x48,0x59,
+0x58,0x55,0x54,0x56,0x58,0x58,0x5b,0x5f,0x62,0x64,0x67,0x6b,0x6f,0x72,0x74,0x75,
+0x76,0x76,0x77,0x77,0x76,0x75,0x74,0x73,0x75,0x74,0x73,0x72,0x72,0x71,0x70,0x6f,
+0x6b,0x6a,0x68,0x66,0x64,0x61,0x5d,0x59,0x59,0x5b,0x5c,0x5c,0x5a,0x59,0x5b,0x5c,
+0x5e,0x5d,0x5d,0x5e,0x61,0x64,0x68,0x6a,0x6b,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x71,
+0x71,0x73,0x76,0x78,0x77,0x77,0x77,0x77,0x78,0x79,0x79,0x7b,0x7c,0x7e,0x80,0x81,
+0x81,0x7f,0x7d,0x7b,0x79,0x77,0x75,0x73,0x6e,0x6d,0x6b,0x6a,0x6b,0x68,0x5f,0x55,
+0x58,0x65,0x73,0x7c,0x84,0x88,0x82,0x78,0x75,0x69,0x64,0x5f,0x4e,0x42,0x44,0x48,
+0x36,0x2d,0x27,0x30,0x4a,0x5f,0x5d,0x4f,0x4b,0x40,0x30,0x33,0x39,0x2a,0x2d,0x4e,
+0x77,0x7a,0x75,0x72,0x78,0x7f,0x82,0x86,0x75,0x5f,0x4f,0x4b,0x50,0x5c,0x66,0x67,
+0x5b,0x4c,0x49,0x45,0x3f,0x31,0x1e,0x20,0x20,0x28,0x32,0x37,0x38,0x37,0x36,0x35,
+0x32,0x34,0x37,0x37,0x36,0x33,0x30,0x2f,0x2f,0x28,0x20,0x1e,0x21,0x26,0x27,0x27,
+0x24,0x24,0x26,0x26,0x20,0x1b,0x1f,0x27,0x32,0x34,0x2c,0x24,0x24,0x22,0x1e,0x1f,
+0x1b,0x1d,0x26,0x25,0x24,0x20,0x1e,0x2f,0x33,0x46,0x4c,0x4e,0x48,0x45,0x5c,0x72,
+0x5e,0x52,0x4f,0x54,0x50,0x3d,0x2d,0x27,0x42,0x5a,0x65,0x57,0x43,0x39,0x42,0x54,
+0x5f,0x59,0x4e,0x50,0x4b,0x41,0x49,0x4f,0x4f,0x5a,0x60,0x4e,0x32,0x27,0x2a,0x2b,
+0x34,0x54,0x67,0x5a,0x2e,0x2a,0x3b,0x50,0x58,0x51,0x52,0x61,0x6d,0x6d,0x68,0x66,
+0x60,0x5b,0x5c,0x59,0x51,0x4d,0x47,0x39,0x33,0x3c,0x4e,0x59,0x57,0x53,0x4d,0x42,
+0x39,0x33,0x2f,0x31,0x31,0x31,0x37,0x40,0x4d,0x4e,0x52,0x57,0x58,0x55,0x52,0x52,
+0x32,0x2e,0x25,0x20,0x23,0x2b,0x2e,0x2b,0x27,0x26,0x25,0x25,0x21,0x1c,0x19,0x19,
+0x22,0x24,0x26,0x28,0x28,0x26,0x23,0x22,0x18,0x18,0x1c,0x21,0x23,0x23,0x24,0x26,
+0x23,0x23,0x21,0x1f,0x20,0x22,0x21,0x1f,0x21,0x22,0x24,0x25,0x27,0x29,0x2b,0x2c,
+0x32,0x2f,0x2a,0x24,0x21,0x20,0x20,0x21,0x24,0x26,0x25,0x22,0x20,0x1e,0x1a,0x15,
+0x16,0x18,0x1b,0x1d,0x1f,0x1f,0x1f,0x1f,0x1d,0x1b,0x19,0x19,0x1a,0x1c,0x1d,0x1e,
+0x1c,0x1a,0x1b,0x1e,0x20,0x1c,0x19,0x17,0x18,0x1c,0x21,0x26,0x29,0x2b,0x2d,0x2e,
+0x30,0x33,0x35,0x30,0x28,0x21,0x1f,0x20,0x1f,0x21,0x24,0x26,0x27,0x28,0x2b,0x2d,
+0x2d,0x30,0x33,0x33,0x32,0x30,0x30,0x31,0x30,0x2f,0x2f,0x31,0x33,0x33,0x31,0x2f,
+0x2a,0x29,0x2a,0x2c,0x2e,0x30,0x32,0x34,0x33,0x34,0x32,0x34,0x3a,0x39,0x3c,0x46,
+0x4a,0x4a,0x4a,0x4d,0x53,0x5b,0x62,0x66,0x5f,0x64,0x61,0x59,0x58,0x5e,0x5a,0x4e,
+0x38,0x29,0x24,0x2b,0x30,0x31,0x2f,0x29,0x23,0x1f,0x1a,0x19,0x1a,0x1c,0x1b,0x1a,
+0x1d,0x1d,0x1c,0x1b,0x1a,0x1a,0x1a,0x19,0x1e,0x1d,0x1b,0x19,0x1a,0x1d,0x21,0x24,
+0x2a,0x2b,0x2a,0x27,0x28,0x2d,0x30,0x30,0x32,0x2f,0x2d,0x30,0x35,0x37,0x3a,0x3c,
+0x3d,0x44,0x4c,0x51,0x54,0x54,0x4f,0x49,0x50,0x5b,0x65,0x65,0x5b,0x52,0x4e,0x4e,
+0x55,0x5e,0x5e,0x50,0x42,0x3a,0x33,0x2c,0x2e,0x2e,0x35,0x40,0x45,0x41,0x3e,0x3f,
+0x42,0x44,0x47,0x4c,0x4e,0x4b,0x44,0x3e,0x33,0x39,0x44,0x4f,0x58,0x5c,0x5d,0x5d,
+0x4b,0x51,0x54,0x50,0x49,0x4d,0x60,0x72,0x6f,0x74,0x78,0x77,0x75,0x71,0x69,0x62,
+0x62,0x62,0x61,0x5e,0x5b,0x5b,0x5c,0x5d,0x6e,0x79,0x7e,0x7e,0x81,0x80,0x7f,0x83,
+0x89,0x8d,0x92,0x95,0x97,0x98,0x9b,0x9d,0x9e,0xa2,0xa7,0xab,0xae,0xaf,0xb0,0xb1,
+0xaf,0xae,0xad,0xac,0xac,0xab,0xaa,0xa9,0xa6,0xa5,0xa2,0xa0,0xa0,0xa0,0xa0,0xa1,
+0x9f,0x9e,0x9e,0x9e,0x9e,0x9e,0x9f,0xa1,0xa5,0xa2,0xa0,0x9f,0x9f,0x98,0x8d,0x84,
+0x6d,0x66,0x5c,0x52,0x4a,0x42,0x3a,0x35,0x33,0x32,0x2f,0x29,0x25,0x2e,0x48,0x60,
+0x5f,0x5c,0x5b,0x5c,0x5c,0x5b,0x5d,0x60,0x64,0x66,0x68,0x6c,0x6f,0x72,0x74,0x75,
+0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x73,0x70,0x6d,
+0x6c,0x69,0x66,0x64,0x61,0x5d,0x59,0x56,0x56,0x55,0x54,0x56,0x57,0x57,0x56,0x53,
+0x56,0x54,0x53,0x52,0x53,0x55,0x58,0x5a,0x5b,0x5b,0x5c,0x5e,0x60,0x63,0x65,0x67,
+0x64,0x67,0x6a,0x6d,0x6e,0x6f,0x70,0x71,0x74,0x74,0x75,0x77,0x79,0x7c,0x7e,0x7f,
+0x80,0x7e,0x7c,0x7a,0x79,0x77,0x75,0x73,0x6f,0x6e,0x6c,0x6b,0x6b,0x69,0x61,0x59,
+0x63,0x6f,0x78,0x7c,0x82,0x86,0x7e,0x70,0x6e,0x64,0x62,0x61,0x52,0x43,0x3f,0x3f,
+0x2d,0x22,0x1f,0x2d,0x3f,0x46,0x43,0x41,0x38,0x3a,0x31,0x32,0x3c,0x37,0x3b,0x54,
+0x76,0x80,0x80,0x76,0x6c,0x62,0x5e,0x63,0x6f,0x64,0x55,0x48,0x48,0x5d,0x71,0x74,
+0x61,0x52,0x4d,0x49,0x4b,0x4c,0x3b,0x30,0x28,0x2d,0x34,0x3a,0x3c,0x3e,0x42,0x46,
+0x3d,0x3d,0x3d,0x3b,0x37,0x34,0x32,0x31,0x36,0x2d,0x22,0x1c,0x1c,0x20,0x22,0x23,
+0x26,0x26,0x26,0x23,0x19,0x14,0x1c,0x28,0x31,0x35,0x2f,0x26,0x25,0x24,0x20,0x21,
+0x1d,0x1d,0x24,0x25,0x26,0x22,0x20,0x33,0x3b,0x47,0x47,0x4d,0x50,0x4e,0x5a,0x63,
+0x5e,0x58,0x58,0x5a,0x51,0x3d,0x30,0x2d,0x4c,0x5b,0x5e,0x50,0x43,0x3f,0x4a,0x5c,
+0x61,0x5c,0x51,0x52,0x4b,0x40,0x48,0x4e,0x4f,0x52,0x4f,0x38,0x1c,0x17,0x25,0x2e,
+0x3e,0x5a,0x60,0x4f,0x22,0x2c,0x43,0x5d,0x68,0x66,0x64,0x64,0x69,0x6c,0x69,0x63,
+0x5c,0x56,0x52,0x52,0x53,0x55,0x4e,0x42,0x2a,0x39,0x4f,0x5a,0x55,0x51,0x4f,0x48,
+0x3b,0x34,0x30,0x30,0x32,0x33,0x37,0x3c,0x4c,0x47,0x46,0x4d,0x55,0x57,0x57,0x57,
+0x32,0x35,0x32,0x2b,0x2c,0x32,0x33,0x2e,0x2a,0x28,0x26,0x24,0x20,0x1b,0x1a,0x1c,
+0x20,0x21,0x23,0x27,0x2a,0x2d,0x2e,0x2d,0x1f,0x1f,0x21,0x25,0x27,0x27,0x27,0x29,
+0x23,0x23,0x21,0x20,0x22,0x25,0x25,0x22,0x25,0x27,0x2b,0x2d,0x2d,0x2c,0x2b,0x2b,
+0x2b,0x29,0x27,0x25,0x25,0x27,0x29,0x2b,0x2e,0x2b,0x24,0x1d,0x1a,0x19,0x16,0x12,
+0x17,0x18,0x1a,0x1b,0x1d,0x1e,0x1f,0x1f,0x1f,0x1e,0x1c,0x1a,0x1a,0x1b,0x1d,0x1f,
+0x22,0x1d,0x1a,0x1c,0x1d,0x1b,0x17,0x14,0x17,0x1a,0x1f,0x24,0x26,0x28,0x2a,0x2b,
+0x32,0x34,0x34,0x2f,0x27,0x21,0x1f,0x21,0x1d,0x1e,0x22,0x26,0x2a,0x2e,0x31,0x32,
+0x30,0x30,0x30,0x30,0x2f,0x2f,0x30,0x31,0x34,0x32,0x31,0x31,0x32,0x32,0x30,0x2e,
+0x2e,0x2b,0x29,0x2a,0x29,0x27,0x26,0x27,0x2d,0x2e,0x2b,0x2e,0x35,0x39,0x42,0x51,
+0x5b,0x5d,0x60,0x64,0x66,0x65,0x61,0x5e,0x54,0x55,0x4f,0x45,0x44,0x4c,0x4c,0x45,
+0x32,0x29,0x29,0x2d,0x2b,0x2b,0x2d,0x2d,0x35,0x2e,0x25,0x1e,0x1b,0x1c,0x1f,0x22,
+0x20,0x21,0x1f,0x1c,0x1a,0x1a,0x19,0x17,0x18,0x19,0x18,0x17,0x17,0x1a,0x1f,0x24,
+0x2a,0x2a,0x29,0x26,0x26,0x2a,0x2e,0x30,0x34,0x2f,0x2c,0x2d,0x31,0x36,0x3d,0x43,
+0x4d,0x51,0x53,0x53,0x53,0x53,0x50,0x4c,0x46,0x4b,0x4f,0x50,0x54,0x5c,0x65,0x6a,
+0x60,0x5f,0x57,0x4a,0x42,0x42,0x43,0x43,0x44,0x42,0x42,0x47,0x4b,0x4a,0x46,0x43,
+0x35,0x36,0x3a,0x43,0x4d,0x51,0x4f,0x4b,0x4f,0x55,0x5e,0x63,0x62,0x5d,0x58,0x54,
+0x60,0x63,0x60,0x54,0x47,0x45,0x51,0x5f,0x69,0x73,0x7b,0x7c,0x7a,0x79,0x75,0x70,
+0x6c,0x6f,0x6f,0x6d,0x6d,0x6e,0x70,0x6f,0x72,0x7b,0x7d,0x7d,0x80,0x7e,0x7e,0x84,
+0x89,0x8d,0x92,0x95,0x96,0x97,0x9a,0x9c,0x9e,0xa2,0xa6,0xaa,0xab,0xac,0xac,0xad,
+0xac,0xaa,0xa9,0xa8,0xa8,0xa7,0xa6,0xa4,0xa0,0x9e,0x9a,0x98,0x96,0x96,0x95,0x94,
+0x92,0x92,0x94,0x97,0x97,0x95,0x95,0x96,0x98,0x97,0x97,0x9b,0x9f,0xa0,0x9d,0x9a,
+0x92,0x8d,0x84,0x7c,0x75,0x6d,0x65,0x60,0x59,0x53,0x4a,0x3d,0x33,0x36,0x4c,0x64,
+0x66,0x63,0x62,0x62,0x62,0x60,0x61,0x64,0x67,0x68,0x6a,0x6d,0x70,0x72,0x74,0x75,
+0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x79,0x79,0x78,0x78,0x77,0x74,0x70,0x6c,
+0x6b,0x67,0x64,0x62,0x5f,0x5a,0x56,0x56,0x56,0x54,0x52,0x53,0x55,0x54,0x50,0x4b,
+0x45,0x43,0x40,0x3d,0x3c,0x3d,0x3e,0x3f,0x40,0x41,0x42,0x44,0x47,0x4a,0x4d,0x4f,
+0x52,0x55,0x5a,0x5e,0x62,0x66,0x69,0x6c,0x6f,0x70,0x72,0x74,0x76,0x78,0x7a,0x7b,
+0x7d,0x7c,0x7a,0x79,0x78,0x77,0x74,0x73,0x70,0x6f,0x6d,0x6b,0x6b,0x6a,0x64,0x5d,
+0x65,0x74,0x7f,0x7f,0x7e,0x7f,0x7a,0x70,0x65,0x5a,0x55,0x52,0x45,0x3a,0x34,0x2f,
+0x2a,0x21,0x21,0x2f,0x36,0x31,0x2f,0x34,0x22,0x2f,0x32,0x32,0x3c,0x41,0x44,0x4f,
+0x57,0x6f,0x7e,0x7a,0x69,0x57,0x52,0x5b,0x66,0x6a,0x6b,0x62,0x5e,0x6c,0x76,0x70,
+0x5a,0x4e,0x44,0x37,0x45,0x66,0x64,0x50,0x36,0x36,0x37,0x3b,0x3d,0x3e,0x40,0x44,
+0x41,0x40,0x3d,0x3b,0x38,0x37,0x35,0x34,0x3b,0x33,0x28,0x21,0x1f,0x21,0x24,0x26,
+0x2b,0x24,0x1e,0x1d,0x1b,0x1a,0x20,0x28,0x2d,0x34,0x33,0x30,0x31,0x2c,0x26,0x25,
+0x25,0x1f,0x21,0x22,0x24,0x23,0x23,0x36,0x41,0x4d,0x52,0x54,0x4c,0x47,0x57,0x5e,
+0x5e,0x54,0x4a,0x43,0x38,0x2f,0x33,0x3e,0x52,0x62,0x69,0x61,0x51,0x41,0x40,0x4d,
+0x67,0x67,0x5c,0x59,0x52,0x4b,0x52,0x54,0x51,0x4a,0x40,0x32,0x26,0x2d,0x3d,0x43,
+0x55,0x5e,0x54,0x41,0x1e,0x2d,0x48,0x61,0x69,0x69,0x64,0x5c,0x5c,0x63,0x64,0x5f,
+0x56,0x56,0x55,0x57,0x57,0x4f,0x3c,0x2b,0x29,0x39,0x53,0x60,0x5c,0x59,0x55,0x4d,
+0x46,0x40,0x3b,0x3a,0x39,0x38,0x38,0x39,0x3c,0x39,0x3b,0x47,0x56,0x60,0x64,0x65,
+0x2b,0x30,0x35,0x37,0x36,0x36,0x35,0x34,0x2e,0x2a,0x26,0x25,0x24,0x21,0x21,0x23,
+0x21,0x20,0x20,0x23,0x27,0x2a,0x2a,0x29,0x22,0x21,0x21,0x25,0x27,0x27,0x27,0x29,
+0x27,0x25,0x20,0x1d,0x1f,0x24,0x25,0x23,0x24,0x29,0x2e,0x30,0x2e,0x29,0x25,0x22,
+0x21,0x22,0x23,0x25,0x28,0x2b,0x2d,0x2f,0x2d,0x2c,0x25,0x1d,0x17,0x16,0x16,0x15,
+0x17,0x17,0x17,0x18,0x19,0x1b,0x1d,0x1e,0x1c,0x1d,0x1e,0x1c,0x1b,0x1b,0x1d,0x1f,
+0x25,0x20,0x1d,0x1d,0x1c,0x18,0x15,0x14,0x14,0x17,0x1d,0x22,0x27,0x2b,0x2e,0x30,
+0x35,0x36,0x35,0x2f,0x26,0x1f,0x1f,0x20,0x1e,0x1e,0x1f,0x23,0x29,0x30,0x34,0x37,
+0x34,0x32,0x2e,0x2c,0x2b,0x2c,0x2d,0x2d,0x33,0x31,0x2f,0x2f,0x2f,0x2d,0x29,0x26,
+0x2d,0x2b,0x2a,0x29,0x25,0x1f,0x1f,0x22,0x28,0x2a,0x29,0x2c,0x34,0x39,0x44,0x56,
+0x5c,0x60,0x65,0x68,0x69,0x68,0x66,0x64,0x67,0x66,0x5f,0x54,0x4e,0x4c,0x47,0x3f,
+0x2f,0x27,0x29,0x2f,0x2d,0x2c,0x2e,0x2d,0x34,0x30,0x29,0x21,0x1d,0x1d,0x21,0x24,
+0x23,0x24,0x22,0x1d,0x1b,0x1c,0x1b,0x18,0x15,0x16,0x17,0x18,0x19,0x1a,0x1d,0x1f,
+0x21,0x24,0x24,0x22,0x23,0x28,0x2d,0x2e,0x2f,0x2c,0x2b,0x2c,0x2e,0x32,0x38,0x3f,
+0x4b,0x50,0x54,0x55,0x55,0x55,0x52,0x4f,0x50,0x4d,0x45,0x3d,0x3d,0x45,0x4e,0x51,
+0x52,0x51,0x4c,0x43,0x3c,0x3c,0x43,0x4a,0x57,0x54,0x50,0x4b,0x4a,0x4a,0x48,0x43,
+0x43,0x3f,0x3f,0x45,0x4e,0x51,0x4c,0x46,0x47,0x4c,0x52,0x56,0x58,0x5b,0x61,0x65,
+0x64,0x61,0x58,0x4c,0x43,0x41,0x45,0x49,0x59,0x6a,0x7a,0x7f,0x80,0x82,0x81,0x7d,
+0x7b,0x7e,0x7f,0x7b,0x7a,0x7a,0x7a,0x78,0x77,0x7d,0x7d,0x7d,0x80,0x7e,0x7e,0x85,
+0x8a,0x8e,0x92,0x95,0x96,0x97,0x9a,0x9c,0x9e,0xa0,0xa4,0xa6,0xa7,0xa7,0xa7,0xa8,
+0xa9,0xa7,0xa5,0xa5,0xa5,0xa4,0xa3,0xa1,0x9c,0x99,0x95,0x92,0x90,0x8d,0x8b,0x89,
+0x88,0x86,0x87,0x8a,0x89,0x86,0x85,0x87,0x89,0x8b,0x8d,0x90,0x92,0x93,0x91,0x8f,
+0x94,0x92,0x8e,0x8c,0x8a,0x87,0x83,0x7f,0x7c,0x76,0x6f,0x68,0x5e,0x59,0x61,0x6d,
+0x6f,0x6c,0x6b,0x6b,0x6b,0x69,0x6a,0x6c,0x6d,0x6e,0x6f,0x71,0x73,0x76,0x78,0x79,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x7d,0x7c,0x7a,0x79,0x77,0x74,0x70,0x6d,
+0x6c,0x66,0x62,0x60,0x5d,0x58,0x56,0x56,0x58,0x55,0x52,0x4f,0x4b,0x46,0x3f,0x3a,
+0x2f,0x2d,0x2a,0x28,0x26,0x26,0x26,0x26,0x28,0x28,0x29,0x2b,0x2e,0x32,0x35,0x37,
+0x3e,0x41,0x46,0x4b,0x51,0x57,0x5c,0x60,0x65,0x67,0x6a,0x6e,0x72,0x75,0x77,0x78,
+0x7a,0x79,0x78,0x78,0x77,0x76,0x74,0x72,0x71,0x70,0x6e,0x6b,0x6b,0x6b,0x66,0x61,
+0x66,0x73,0x7c,0x7c,0x78,0x75,0x6c,0x62,0x56,0x4e,0x4b,0x49,0x43,0x3d,0x35,0x2a,
+0x23,0x1f,0x23,0x2b,0x2b,0x24,0x22,0x27,0x29,0x35,0x3d,0x3e,0x46,0x53,0x5c,0x5e,
+0x65,0x74,0x7d,0x7d,0x78,0x6d,0x67,0x6d,0x60,0x66,0x6e,0x70,0x70,0x78,0x79,0x70,
+0x54,0x3e,0x31,0x24,0x2f,0x50,0x53,0x42,0x33,0x30,0x31,0x37,0x3c,0x3c,0x3a,0x3a,
+0x3d,0x3b,0x39,0x38,0x3a,0x3a,0x39,0x38,0x37,0x32,0x2c,0x25,0x22,0x23,0x26,0x28,
+0x28,0x1e,0x17,0x18,0x1b,0x1c,0x20,0x25,0x2d,0x33,0x36,0x37,0x37,0x2f,0x27,0x28,
+0x29,0x20,0x20,0x23,0x2a,0x2a,0x2a,0x3e,0x3e,0x4d,0x58,0x53,0x38,0x33,0x4f,0x5b,
+0x4c,0x48,0x46,0x42,0x39,0x2f,0x30,0x38,0x52,0x64,0x70,0x6b,0x52,0x36,0x34,0x46,
+0x69,0x6f,0x65,0x5c,0x57,0x58,0x60,0x5b,0x50,0x43,0x37,0x2e,0x2c,0x3a,0x4b,0x50,
+0x5e,0x52,0x40,0x32,0x23,0x32,0x49,0x5b,0x5d,0x5c,0x5c,0x5d,0x61,0x66,0x66,0x63,
+0x59,0x5c,0x5a,0x55,0x50,0x42,0x2f,0x23,0x34,0x3e,0x51,0x5c,0x5b,0x5a,0x55,0x4b,
+0x34,0x35,0x38,0x3b,0x3b,0x3b,0x3b,0x3d,0x49,0x4c,0x51,0x58,0x62,0x68,0x69,0x66,
+0x1f,0x24,0x2f,0x3a,0x39,0x33,0x33,0x38,0x32,0x2b,0x26,0x26,0x28,0x29,0x28,0x29,
+0x26,0x24,0x23,0x23,0x24,0x24,0x20,0x1d,0x1f,0x1d,0x1d,0x21,0x24,0x24,0x26,0x28,
+0x2b,0x27,0x1f,0x1a,0x1b,0x20,0x22,0x20,0x21,0x26,0x2b,0x2d,0x28,0x21,0x1a,0x16,
+0x24,0x25,0x27,0x28,0x29,0x29,0x28,0x28,0x22,0x25,0x24,0x1e,0x17,0x15,0x15,0x15,
+0x15,0x14,0x14,0x14,0x16,0x18,0x1b,0x1d,0x19,0x1c,0x1e,0x1e,0x1b,0x1b,0x1d,0x1f,
+0x25,0x22,0x21,0x20,0x1c,0x17,0x14,0x15,0x14,0x18,0x1d,0x22,0x27,0x2b,0x2f,0x32,
+0x37,0x38,0x36,0x2e,0x25,0x1e,0x1d,0x1f,0x21,0x1f,0x1e,0x21,0x27,0x2e,0x35,0x38,
+0x3a,0x35,0x2f,0x2c,0x2b,0x2d,0x2e,0x2e,0x30,0x2f,0x2d,0x2d,0x2c,0x29,0x23,0x1f,
+0x26,0x27,0x29,0x28,0x22,0x1c,0x1e,0x25,0x26,0x2b,0x2d,0x31,0x37,0x39,0x43,0x53,
+0x51,0x53,0x55,0x55,0x55,0x5a,0x61,0x68,0x6d,0x6f,0x6d,0x67,0x5f,0x57,0x4a,0x40,
+0x31,0x24,0x23,0x2e,0x34,0x35,0x30,0x28,0x22,0x23,0x22,0x1f,0x1b,0x1a,0x1c,0x1f,
+0x22,0x23,0x21,0x1b,0x19,0x1a,0x19,0x16,0x16,0x17,0x19,0x1b,0x1d,0x1c,0x1b,0x19,
+0x1b,0x1f,0x22,0x22,0x24,0x29,0x2e,0x2f,0x2b,0x2c,0x2f,0x32,0x32,0x31,0x33,0x37,
+0x39,0x42,0x4c,0x52,0x56,0x56,0x52,0x4d,0x4a,0x4d,0x4c,0x47,0x44,0x43,0x3f,0x3a,
+0x43,0x48,0x4d,0x4c,0x43,0x3e,0x44,0x4e,0x50,0x51,0x4d,0x45,0x42,0x44,0x43,0x3f,
+0x46,0x43,0x43,0x4c,0x56,0x58,0x51,0x48,0x3b,0x3d,0x3e,0x3e,0x43,0x51,0x64,0x72,
+0x74,0x6a,0x5d,0x53,0x50,0x50,0x4d,0x48,0x55,0x69,0x7d,0x85,0x85,0x87,0x85,0x81,
+0x83,0x86,0x86,0x80,0x7c,0x7a,0x77,0x73,0x7a,0x7e,0x7e,0x7d,0x80,0x7e,0x7f,0x87,
+0x8b,0x8f,0x93,0x96,0x96,0x97,0x99,0x9c,0x9d,0x9f,0xa2,0xa3,0xa4,0xa4,0xa4,0xa5,
+0xa7,0xa5,0xa3,0xa3,0xa3,0xa3,0xa1,0x9f,0x9a,0x97,0x92,0x8f,0x8c,0x89,0x85,0x82,
+0x81,0x7e,0x7d,0x80,0x80,0x7e,0x7e,0x80,0x7e,0x7f,0x80,0x82,0x84,0x86,0x89,0x8b,
+0x8a,0x89,0x87,0x88,0x89,0x88,0x84,0x81,0x85,0x83,0x86,0x8a,0x87,0x7e,0x79,0x7b,
+0x75,0x73,0x72,0x73,0x72,0x71,0x72,0x74,0x73,0x73,0x74,0x76,0x78,0x7a,0x7c,0x7d,
+0x7e,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x7e,0x7b,0x78,0x76,0x73,0x71,0x6f,
+0x6c,0x66,0x61,0x5f,0x5c,0x58,0x56,0x58,0x56,0x54,0x4f,0x47,0x3d,0x33,0x2a,0x26,
+0x21,0x20,0x1e,0x1d,0x1c,0x1d,0x1d,0x1e,0x1e,0x1e,0x1f,0x20,0x23,0x26,0x29,0x2b,
+0x2f,0x32,0x35,0x3a,0x40,0x46,0x4c,0x51,0x5a,0x5d,0x63,0x69,0x6f,0x73,0x76,0x77,
+0x78,0x77,0x77,0x77,0x77,0x76,0x74,0x72,0x72,0x71,0x6e,0x6b,0x6b,0x6b,0x68,0x63,
+0x6d,0x72,0x75,0x75,0x72,0x69,0x58,0x48,0x46,0x48,0x51,0x59,0x59,0x53,0x43,0x2e,
+0x20,0x23,0x28,0x2b,0x29,0x24,0x22,0x23,0x32,0x37,0x3e,0x40,0x46,0x59,0x6a,0x6b,
+0x6b,0x6b,0x6a,0x74,0x84,0x87,0x7f,0x7b,0x79,0x6e,0x66,0x63,0x60,0x64,0x67,0x63,
+0x46,0x28,0x26,0x2f,0x39,0x44,0x3f,0x37,0x21,0x1f,0x24,0x31,0x3c,0x3f,0x3d,0x3b,
+0x36,0x34,0x34,0x36,0x3b,0x3d,0x3c,0x3a,0x2e,0x2d,0x2a,0x26,0x22,0x22,0x24,0x27,
+0x23,0x1d,0x19,0x19,0x19,0x19,0x1e,0x25,0x2f,0x32,0x33,0x33,0x33,0x29,0x22,0x27,
+0x27,0x1e,0x21,0x27,0x31,0x33,0x31,0x43,0x49,0x4f,0x56,0x50,0x35,0x35,0x54,0x5b,
+0x56,0x50,0x4a,0x44,0x39,0x30,0x32,0x3a,0x53,0x60,0x67,0x5b,0x3f,0x29,0x38,0x5c,
+0x65,0x6f,0x65,0x58,0x55,0x5c,0x65,0x5d,0x55,0x49,0x3e,0x34,0x32,0x41,0x58,0x62,
+0x55,0x3d,0x2b,0x27,0x29,0x36,0x46,0x50,0x4a,0x49,0x4f,0x5d,0x66,0x65,0x60,0x5d,
+0x60,0x5e,0x50,0x41,0x3d,0x3c,0x3e,0x43,0x41,0x42,0x4b,0x52,0x53,0x54,0x4f,0x44,
+0x35,0x3a,0x40,0x41,0x3d,0x37,0x36,0x37,0x4a,0x53,0x5c,0x62,0x66,0x68,0x66,0x62,
+0x1c,0x23,0x2c,0x33,0x39,0x3b,0x37,0x32,0x34,0x30,0x2d,0x2f,0x37,0x3c,0x39,0x33,
+0x2f,0x30,0x30,0x2c,0x27,0x24,0x20,0x1c,0x16,0x19,0x1f,0x24,0x24,0x1f,0x1c,0x1d,
+0x22,0x25,0x25,0x20,0x1d,0x1e,0x22,0x25,0x26,0x27,0x28,0x2b,0x2c,0x2b,0x29,0x27,
+0x2a,0x29,0x27,0x27,0x27,0x27,0x27,0x27,0x24,0x22,0x21,0x20,0x1c,0x17,0x14,0x15,
+0x14,0x13,0x13,0x16,0x17,0x18,0x1d,0x22,0x1e,0x1e,0x1d,0x1d,0x1c,0x1d,0x1d,0x1e,
+0x20,0x23,0x25,0x22,0x1d,0x18,0x15,0x16,0x15,0x15,0x1b,0x24,0x29,0x2b,0x2e,0x31,
+0x35,0x39,0x38,0x31,0x27,0x22,0x1f,0x1e,0x21,0x1e,0x1c,0x1e,0x23,0x28,0x2e,0x32,
+0x34,0x36,0x33,0x2b,0x26,0x28,0x2c,0x2e,0x2c,0x2b,0x2b,0x2c,0x2d,0x2b,0x26,0x22,
+0x22,0x23,0x2a,0x32,0x33,0x2b,0x24,0x21,0x21,0x22,0x26,0x2c,0x33,0x3b,0x46,0x50,
+0x46,0x46,0x45,0x45,0x47,0x4c,0x54,0x5b,0x57,0x5a,0x5a,0x59,0x60,0x63,0x55,0x40,
+0x2c,0x25,0x22,0x23,0x26,0x2c,0x2b,0x20,0x1c,0x1a,0x18,0x18,0x19,0x1b,0x1d,0x1e,
+0x21,0x22,0x21,0x1e,0x1b,0x19,0x19,0x1a,0x19,0x18,0x16,0x17,0x19,0x1a,0x18,0x17,
+0x1d,0x1f,0x22,0x24,0x22,0x21,0x28,0x2f,0x2e,0x2e,0x2e,0x2f,0x31,0x35,0x3a,0x3e,
+0x47,0x41,0x40,0x48,0x53,0x57,0x56,0x53,0x53,0x54,0x55,0x56,0x53,0x4e,0x46,0x41,
+0x4d,0x57,0x53,0x4d,0x52,0x54,0x56,0x60,0x54,0x48,0x43,0x48,0x4a,0x45,0x44,0x4a,
+0x4e,0x52,0x54,0x56,0x5d,0x65,0x63,0x5d,0x5d,0x58,0x54,0x53,0x53,0x59,0x66,0x73,
+0x7a,0x74,0x69,0x5b,0x4f,0x49,0x47,0x46,0x53,0x69,0x7a,0x81,0x8a,0x8d,0x88,0x84,
+0x89,0x89,0x86,0x83,0x7d,0x70,0x6e,0x79,0x7e,0x7d,0x7e,0x80,0x80,0x80,0x84,0x88,
+0x8e,0x8f,0x92,0x93,0x94,0x96,0x98,0x9a,0x9b,0x9d,0x9e,0xa0,0xa1,0xa1,0xa0,0xa0,
+0xa0,0xa0,0xa0,0xa0,0x9f,0x9d,0x9c,0x9b,0x9b,0x96,0x91,0x8d,0x89,0x84,0x7d,0x78,
+0x78,0x76,0x74,0x73,0x73,0x73,0x73,0x72,0x78,0x77,0x78,0x79,0x7b,0x7d,0x7d,0x7d,
+0x81,0x7f,0x7f,0x81,0x82,0x81,0x81,0x82,0x81,0x84,0x89,0x8c,0x8a,0x86,0x80,0x7c,
+0x7c,0x7e,0x7d,0x7b,0x7b,0x7d,0x7d,0x7b,0x78,0x79,0x7b,0x7b,0x7b,0x7c,0x7f,0x82,
+0x82,0x81,0x82,0x83,0x84,0x85,0x84,0x83,0x80,0x7f,0x7c,0x7a,0x77,0x74,0x70,0x6d,
+0x68,0x66,0x63,0x61,0x5f,0x5c,0x59,0x56,0x50,0x58,0x4b,0x35,0x27,0x1a,0x14,0x1b,
+0x15,0x16,0x18,0x1a,0x1b,0x1a,0x1a,0x19,0x18,0x1d,0x1e,0x1c,0x1f,0x26,0x27,0x23,
+0x23,0x28,0x2f,0x35,0x38,0x3b,0x3e,0x40,0x4d,0x52,0x59,0x60,0x66,0x6a,0x6e,0x70,
+0x73,0x78,0x79,0x73,0x72,0x76,0x77,0x74,0x75,0x6d,0x6b,0x6c,0x69,0x6a,0x6d,0x6a,
+0x68,0x74,0x74,0x6a,0x5e,0x4d,0x3e,0x38,0x40,0x49,0x50,0x4f,0x4a,0x45,0x3e,0x36,
+0x2a,0x24,0x21,0x25,0x29,0x29,0x29,0x2b,0x3d,0x3f,0x36,0x32,0x41,0x4c,0x55,0x63,
+0x73,0x74,0x76,0x72,0x6c,0x75,0x82,0x85,0x86,0x73,0x61,0x54,0x4f,0x52,0x55,0x4f,
+0x3b,0x37,0x37,0x3c,0x42,0x43,0x40,0x3f,0x2b,0x1e,0x1a,0x2d,0x34,0x2d,0x2f,0x2b,
+0x21,0x22,0x25,0x29,0x2a,0x28,0x29,0x2c,0x27,0x28,0x28,0x27,0x28,0x2a,0x2a,0x28,
+0x27,0x2a,0x2f,0x30,0x2a,0x22,0x20,0x22,0x2a,0x21,0x1e,0x23,0x27,0x26,0x25,0x27,
+0x20,0x1a,0x1d,0x27,0x2c,0x2c,0x31,0x3a,0x4c,0x52,0x56,0x4a,0x3b,0x41,0x54,0x5d,
+0x52,0x52,0x52,0x43,0x33,0x29,0x2a,0x41,0x4e,0x5b,0x5c,0x58,0x42,0x2d,0x3f,0x5c,
+0x72,0x6b,0x61,0x5c,0x5e,0x62,0x63,0x61,0x56,0x48,0x39,0x2c,0x3d,0x61,0x6c,0x6d,
+0x70,0x73,0x61,0x43,0x34,0x32,0x2e,0x2b,0x24,0x44,0x64,0x6e,0x6d,0x6a,0x61,0x57,
+0x53,0x53,0x4a,0x47,0x4a,0x43,0x43,0x54,0x4f,0x43,0x3e,0x46,0x4d,0x4b,0x45,0x41,
+0x3c,0x44,0x49,0x3a,0x2d,0x29,0x2b,0x3e,0x4d,0x5d,0x5e,0x5e,0x5e,0x61,0x64,0x57,
+0x1d,0x1f,0x20,0x23,0x2a,0x33,0x38,0x38,0x2f,0x2d,0x2b,0x2b,0x2d,0x30,0x30,0x2f,
+0x2d,0x2c,0x29,0x28,0x29,0x2a,0x26,0x20,0x17,0x16,0x16,0x19,0x19,0x18,0x18,0x1a,
+0x1d,0x1e,0x1c,0x19,0x1a,0x1e,0x22,0x23,0x20,0x21,0x24,0x27,0x2a,0x2b,0x29,0x28,
+0x23,0x23,0x24,0x27,0x29,0x29,0x27,0x24,0x23,0x20,0x1f,0x1f,0x1c,0x17,0x14,0x14,
+0x16,0x14,0x14,0x16,0x16,0x17,0x1a,0x1f,0x1f,0x1e,0x1d,0x1b,0x1b,0x1a,0x1b,0x1b,
+0x20,0x23,0x25,0x24,0x1f,0x1a,0x16,0x14,0x14,0x14,0x17,0x1f,0x24,0x27,0x2b,0x2f,
+0x35,0x37,0x36,0x2e,0x27,0x23,0x22,0x21,0x21,0x20,0x20,0x24,0x28,0x2c,0x2e,0x2f,
+0x2b,0x2d,0x2c,0x28,0x25,0x28,0x2a,0x2a,0x2f,0x30,0x31,0x33,0x33,0x2f,0x2a,0x25,
+0x25,0x24,0x27,0x2d,0x2f,0x2b,0x26,0x24,0x26,0x24,0x24,0x26,0x2a,0x31,0x3c,0x46,
+0x51,0x58,0x61,0x66,0x64,0x5f,0x59,0x56,0x4d,0x46,0x43,0x4b,0x52,0x50,0x4a,0x47,
+0x38,0x2b,0x24,0x22,0x21,0x23,0x23,0x1b,0x1c,0x1b,0x1a,0x1b,0x1c,0x1e,0x20,0x20,
+0x24,0x25,0x25,0x22,0x1e,0x1b,0x1b,0x1c,0x19,0x18,0x17,0x18,0x19,0x1a,0x1a,0x19,
+0x1c,0x1d,0x20,0x22,0x22,0x22,0x28,0x2f,0x2f,0x2f,0x2f,0x30,0x33,0x37,0x3c,0x3f,
+0x40,0x3c,0x3f,0x4d,0x5e,0x67,0x69,0x68,0x55,0x53,0x52,0x52,0x52,0x50,0x4b,0x46,
+0x5a,0x61,0x59,0x4e,0x51,0x53,0x59,0x65,0x71,0x67,0x5a,0x4e,0x46,0x45,0x4a,0x4f,
+0x57,0x59,0x58,0x55,0x52,0x4f,0x4b,0x47,0x4f,0x4f,0x53,0x59,0x5b,0x5c,0x5f,0x64,
+0x64,0x61,0x5a,0x4f,0x45,0x3e,0x38,0x34,0x44,0x5d,0x74,0x80,0x8a,0x90,0x90,0x90,
+0x8b,0x89,0x82,0x7c,0x75,0x6b,0x6e,0x7d,0x80,0x7f,0x7f,0x81,0x81,0x81,0x83,0x87,
+0x8b,0x8d,0x8f,0x91,0x92,0x93,0x96,0x97,0x9a,0x9b,0x9c,0x9e,0x9f,0x9f,0x9e,0x9e,
+0x9e,0x9f,0x9f,0x9f,0x9f,0x9e,0x9d,0x9c,0x9d,0x9a,0x96,0x92,0x8e,0x87,0x7e,0x77,
+0x72,0x6f,0x6b,0x69,0x68,0x68,0x69,0x68,0x68,0x68,0x6a,0x6c,0x6f,0x70,0x70,0x6f,
+0x75,0x74,0x76,0x7b,0x7d,0x7d,0x7d,0x7f,0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,
+0x84,0x86,0x85,0x83,0x83,0x85,0x85,0x83,0x7e,0x7f,0x80,0x80,0x7f,0x80,0x82,0x84,
+0x85,0x85,0x84,0x85,0x86,0x87,0x86,0x85,0x83,0x81,0x7f,0x7c,0x7a,0x76,0x72,0x6f,
+0x6c,0x6a,0x68,0x65,0x64,0x61,0x5f,0x5d,0x59,0x4f,0x3a,0x27,0x1d,0x16,0x14,0x17,
+0x19,0x19,0x19,0x18,0x18,0x17,0x16,0x16,0x18,0x1a,0x19,0x17,0x1b,0x23,0x24,0x21,
+0x1e,0x20,0x24,0x27,0x2b,0x30,0x36,0x3a,0x3d,0x42,0x4a,0x52,0x59,0x61,0x68,0x6c,
+0x6c,0x72,0x74,0x71,0x71,0x76,0x77,0x74,0x72,0x6d,0x6c,0x6c,0x67,0x68,0x6c,0x6a,
+0x68,0x6a,0x64,0x59,0x4b,0x3a,0x33,0x3a,0x45,0x46,0x43,0x3d,0x3a,0x39,0x32,0x2a,
+0x24,0x25,0x26,0x26,0x22,0x20,0x24,0x2a,0x2f,0x3a,0x33,0x2c,0x3f,0x58,0x67,0x6f,
+0x81,0x82,0x81,0x76,0x65,0x5e,0x5e,0x59,0x67,0x64,0x64,0x61,0x59,0x55,0x4e,0x41,
+0x42,0x3d,0x39,0x39,0x3a,0x39,0x38,0x39,0x2a,0x27,0x1e,0x1f,0x1f,0x22,0x2a,0x20,
+0x1b,0x1c,0x1f,0x22,0x21,0x1f,0x21,0x24,0x29,0x2a,0x2b,0x2d,0x2f,0x2e,0x2a,0x26,
+0x2c,0x38,0x43,0x41,0x31,0x20,0x1c,0x20,0x26,0x23,0x23,0x25,0x26,0x25,0x24,0x25,
+0x1f,0x1e,0x27,0x34,0x3a,0x38,0x3b,0x43,0x4f,0x52,0x52,0x45,0x38,0x41,0x55,0x5f,
+0x59,0x53,0x4d,0x3e,0x31,0x26,0x23,0x35,0x45,0x5a,0x5e,0x55,0x3b,0x27,0x40,0x62,
+0x6f,0x6a,0x63,0x5f,0x5f,0x5f,0x5e,0x5b,0x51,0x3b,0x2e,0x31,0x54,0x79,0x78,0x6d,
+0x59,0x54,0x47,0x3e,0x3f,0x3c,0x36,0x35,0x41,0x52,0x61,0x64,0x63,0x63,0x5f,0x57,
+0x4c,0x55,0x53,0x4e,0x50,0x4b,0x48,0x50,0x40,0x3b,0x3a,0x40,0x41,0x38,0x2f,0x2c,
+0x3a,0x40,0x43,0x35,0x2e,0x2e,0x2d,0x3b,0x47,0x55,0x55,0x57,0x5b,0x5f,0x61,0x53,
+0x1d,0x1b,0x18,0x17,0x1e,0x2a,0x35,0x39,0x2b,0x2b,0x2b,0x28,0x27,0x28,0x2d,0x31,
+0x2f,0x2c,0x28,0x28,0x2f,0x34,0x30,0x28,0x1e,0x1a,0x18,0x18,0x18,0x17,0x18,0x1a,
+0x1b,0x1b,0x19,0x19,0x1e,0x25,0x29,0x29,0x2a,0x29,0x29,0x2a,0x2a,0x29,0x27,0x25,
+0x1c,0x1c,0x1c,0x1f,0x22,0x24,0x23,0x22,0x23,0x20,0x1d,0x1e,0x1d,0x19,0x15,0x14,
+0x18,0x16,0x15,0x16,0x15,0x15,0x17,0x1b,0x1e,0x1d,0x1b,0x1a,0x19,0x1a,0x1a,0x1b,
+0x1e,0x20,0x23,0x23,0x21,0x1c,0x17,0x14,0x15,0x15,0x18,0x1e,0x24,0x29,0x2f,0x34,
+0x36,0x36,0x32,0x2a,0x24,0x22,0x21,0x20,0x21,0x21,0x23,0x29,0x2f,0x32,0x31,0x2f,
+0x28,0x2a,0x2a,0x28,0x29,0x2b,0x2b,0x2a,0x2c,0x2f,0x33,0x34,0x32,0x2d,0x29,0x26,
+0x25,0x21,0x20,0x23,0x26,0x26,0x24,0x23,0x25,0x22,0x1f,0x1f,0x22,0x29,0x35,0x3f,
+0x47,0x4f,0x5b,0x66,0x6d,0x72,0x75,0x78,0x71,0x68,0x61,0x5f,0x5d,0x55,0x4f,0x4d,
+0x40,0x2e,0x23,0x20,0x1b,0x1a,0x1c,0x1a,0x1b,0x1b,0x1c,0x1d,0x1f,0x20,0x22,0x23,
+0x23,0x25,0x26,0x23,0x1e,0x1b,0x1b,0x1c,0x1a,0x19,0x19,0x19,0x1b,0x1c,0x1c,0x1c,
+0x1d,0x1c,0x1d,0x20,0x23,0x25,0x2a,0x30,0x2d,0x2d,0x2f,0x32,0x38,0x3f,0x46,0x4a,
+0x3a,0x38,0x3b,0x47,0x54,0x5a,0x5a,0x59,0x59,0x55,0x51,0x52,0x54,0x55,0x52,0x4f,
+0x62,0x66,0x5f,0x55,0x54,0x57,0x5e,0x69,0x6b,0x67,0x58,0x43,0x38,0x3d,0x47,0x4e,
+0x5c,0x5a,0x58,0x54,0x4e,0x48,0x47,0x48,0x47,0x45,0x46,0x4a,0x4e,0x52,0x57,0x5b,
+0x65,0x62,0x5b,0x51,0x4b,0x49,0x46,0x43,0x48,0x5f,0x77,0x83,0x87,0x8a,0x8b,0x8b,
+0x89,0x87,0x7e,0x76,0x6d,0x64,0x6b,0x7e,0x83,0x81,0x81,0x82,0x82,0x81,0x83,0x87,
+0x8c,0x8e,0x90,0x92,0x93,0x94,0x97,0x98,0x98,0x99,0x9a,0x9b,0x9c,0x9c,0x9c,0x9c,
+0x9c,0x9d,0x9e,0x9f,0xa0,0xa0,0x9f,0x9f,0xa0,0x9e,0x9d,0x9b,0x97,0x90,0x87,0x80,
+0x79,0x74,0x6d,0x66,0x62,0x5f,0x5d,0x5b,0x5d,0x5e,0x5f,0x62,0x65,0x67,0x67,0x67,
+0x6b,0x6b,0x6d,0x71,0x74,0x74,0x75,0x77,0x77,0x77,0x79,0x7c,0x80,0x86,0x8b,0x8e,
+0x8c,0x8d,0x8c,0x8a,0x8a,0x8c,0x8c,0x8a,0x87,0x88,0x88,0x87,0x86,0x85,0x86,0x87,
+0x89,0x88,0x88,0x88,0x89,0x89,0x88,0x87,0x87,0x85,0x82,0x80,0x7d,0x79,0x75,0x72,
+0x6f,0x6c,0x69,0x67,0x66,0x65,0x63,0x62,0x6a,0x4b,0x2e,0x1f,0x19,0x1a,0x1a,0x18,
+0x1b,0x1a,0x18,0x17,0x16,0x17,0x17,0x18,0x1f,0x1f,0x1d,0x1c,0x22,0x2b,0x2e,0x2c,
+0x23,0x22,0x21,0x21,0x23,0x27,0x2e,0x33,0x38,0x3e,0x46,0x4d,0x52,0x57,0x5d,0x61,
+0x65,0x6b,0x6f,0x6f,0x71,0x75,0x75,0x73,0x6f,0x6b,0x6c,0x6b,0x65,0x66,0x6a,0x68,
+0x65,0x5e,0x52,0x46,0x38,0x2a,0x2f,0x42,0x46,0x43,0x3c,0x36,0x38,0x3a,0x35,0x2b,
+0x2e,0x35,0x3b,0x38,0x2e,0x29,0x31,0x3d,0x43,0x47,0x3e,0x3f,0x61,0x85,0x8e,0x86,
+0x72,0x70,0x77,0x81,0x82,0x79,0x61,0x47,0x46,0x4f,0x5c,0x61,0x5f,0x5f,0x59,0x4b,
+0x41,0x38,0x2f,0x2a,0x29,0x2a,0x2d,0x32,0x30,0x2d,0x22,0x20,0x20,0x26,0x30,0x27,
+0x1a,0x1c,0x1f,0x20,0x1f,0x1f,0x24,0x2b,0x28,0x26,0x25,0x29,0x2d,0x2f,0x2b,0x27,
+0x2b,0x30,0x37,0x3a,0x34,0x29,0x20,0x1c,0x22,0x26,0x29,0x28,0x26,0x26,0x25,0x23,
+0x20,0x22,0x2b,0x39,0x3f,0x3f,0x43,0x4a,0x52,0x51,0x4d,0x41,0x37,0x42,0x56,0x5f,
+0x58,0x4c,0x43,0x36,0x2e,0x26,0x20,0x2e,0x36,0x50,0x57,0x51,0x3d,0x2e,0x42,0x5a,
+0x60,0x61,0x64,0x66,0x65,0x61,0x5c,0x59,0x45,0x38,0x35,0x35,0x46,0x5a,0x5a,0x59,
+0x57,0x4d,0x42,0x43,0x46,0x3f,0x3e,0x48,0x61,0x5f,0x59,0x53,0x52,0x56,0x57,0x57,
+0x51,0x57,0x50,0x43,0x3d,0x36,0x2f,0x2e,0x36,0x37,0x3b,0x40,0x3d,0x38,0x37,0x3b,
+0x46,0x45,0x3f,0x2d,0x2a,0x30,0x31,0x3d,0x44,0x4d,0x4b,0x50,0x59,0x5f,0x60,0x50,
+0x1c,0x1b,0x18,0x18,0x1d,0x27,0x2f,0x32,0x28,0x28,0x28,0x26,0x24,0x25,0x2c,0x34,
+0x33,0x30,0x2d,0x2e,0x34,0x37,0x33,0x2c,0x22,0x21,0x20,0x1f,0x1c,0x19,0x19,0x1b,
+0x1c,0x1f,0x20,0x22,0x26,0x2c,0x30,0x30,0x33,0x30,0x2c,0x29,0x27,0x26,0x25,0x24,
+0x21,0x20,0x1d,0x1a,0x19,0x1c,0x20,0x24,0x25,0x21,0x1e,0x20,0x20,0x1d,0x19,0x17,
+0x18,0x16,0x15,0x16,0x15,0x13,0x16,0x19,0x1b,0x1a,0x19,0x19,0x1a,0x1b,0x1d,0x1e,
+0x1b,0x1c,0x1d,0x1f,0x1e,0x1c,0x18,0x15,0x14,0x15,0x19,0x20,0x27,0x2e,0x34,0x38,
+0x3a,0x38,0x33,0x2b,0x25,0x22,0x20,0x1d,0x1f,0x20,0x23,0x28,0x31,0x37,0x37,0x35,
+0x2e,0x2d,0x2b,0x2a,0x2a,0x2b,0x2c,0x2b,0x27,0x2b,0x2f,0x30,0x2c,0x28,0x26,0x26,
+0x25,0x21,0x1e,0x1f,0x23,0x24,0x22,0x21,0x21,0x1e,0x1d,0x1f,0x24,0x2d,0x3b,0x46,
+0x4d,0x4f,0x51,0x53,0x57,0x5e,0x68,0x6e,0x68,0x6e,0x6d,0x65,0x62,0x64,0x5d,0x52,
+0x3d,0x2a,0x1f,0x1e,0x19,0x17,0x1b,0x1d,0x1a,0x1b,0x1d,0x1e,0x1f,0x20,0x22,0x23,
+0x22,0x24,0x26,0x24,0x20,0x1d,0x1d,0x1e,0x1b,0x1b,0x1b,0x1b,0x1c,0x1d,0x1e,0x1f,
+0x1f,0x1c,0x1c,0x20,0x24,0x28,0x2d,0x31,0x2d,0x2d,0x2e,0x32,0x39,0x41,0x47,0x4b,
+0x42,0x43,0x47,0x4e,0x52,0x52,0x51,0x52,0x5b,0x55,0x50,0x51,0x56,0x58,0x56,0x52,
+0x5c,0x62,0x62,0x5d,0x5b,0x5e,0x63,0x68,0x6e,0x6b,0x5f,0x4d,0x3f,0x3e,0x43,0x46,
+0x4e,0x48,0x46,0x4b,0x4f,0x4f,0x51,0x55,0x50,0x4e,0x4c,0x4c,0x4e,0x55,0x60,0x68,
+0x77,0x70,0x60,0x50,0x48,0x48,0x49,0x48,0x45,0x56,0x71,0x83,0x89,0x8e,0x91,0x91,
+0x87,0x86,0x7e,0x74,0x6a,0x62,0x6b,0x80,0x83,0x81,0x81,0x82,0x82,0x81,0x84,0x87,
+0x8c,0x8e,0x90,0x92,0x93,0x94,0x97,0x98,0x97,0x98,0x99,0x9a,0x9b,0x9b,0x9b,0x9b,
+0x9c,0x9d,0x9f,0xa0,0xa2,0xa2,0xa2,0xa2,0xa3,0xa3,0xa3,0xa3,0xa2,0x9e,0x97,0x93,
+0x8e,0x89,0x7f,0x75,0x6c,0x64,0x5d,0x5a,0x5b,0x5a,0x59,0x59,0x5b,0x5d,0x5e,0x5e,
+0x62,0x60,0x61,0x63,0x65,0x65,0x68,0x6c,0x6c,0x71,0x7a,0x84,0x8c,0x92,0x96,0x97,
+0x92,0x93,0x93,0x90,0x90,0x92,0x92,0x91,0x90,0x90,0x8f,0x8e,0x8c,0x8b,0x8a,0x8a,
+0x8a,0x89,0x89,0x8a,0x8b,0x8b,0x8a,0x89,0x89,0x87,0x85,0x82,0x7f,0x7b,0x77,0x74,
+0x71,0x6f,0x6b,0x6a,0x69,0x69,0x68,0x68,0x6d,0x46,0x2a,0x22,0x1f,0x20,0x21,0x19,
+0x1e,0x1d,0x1b,0x19,0x19,0x1b,0x1e,0x1f,0x1b,0x1b,0x1a,0x1c,0x24,0x2d,0x30,0x2e,
+0x2b,0x29,0x26,0x23,0x22,0x23,0x26,0x28,0x30,0x37,0x41,0x49,0x4d,0x52,0x58,0x5d,
+0x62,0x68,0x6d,0x6f,0x71,0x73,0x73,0x71,0x6e,0x6a,0x6a,0x68,0x64,0x66,0x68,0x63,
+0x5c,0x54,0x45,0x39,0x31,0x2c,0x35,0x47,0x46,0x44,0x41,0x3e,0x41,0x44,0x3e,0x34,
+0x33,0x3c,0x43,0x40,0x37,0x33,0x3b,0x45,0x41,0x3c,0x38,0x42,0x5d,0x73,0x76,0x71,
+0x67,0x5f,0x64,0x75,0x84,0x88,0x78,0x62,0x50,0x53,0x57,0x57,0x57,0x5e,0x5b,0x4d,
+0x3f,0x34,0x27,0x21,0x21,0x24,0x29,0x2d,0x2f,0x27,0x21,0x2b,0x2b,0x25,0x29,0x23,
+0x1d,0x1e,0x20,0x21,0x21,0x25,0x30,0x3b,0x31,0x27,0x1f,0x1e,0x23,0x27,0x27,0x26,
+0x21,0x1f,0x21,0x27,0x2b,0x29,0x24,0x20,0x23,0x29,0x2c,0x29,0x28,0x29,0x26,0x21,
+0x22,0x21,0x26,0x32,0x3c,0x42,0x4a,0x53,0x52,0x4f,0x4b,0x40,0x3a,0x46,0x57,0x5c,
+0x4d,0x41,0x3a,0x32,0x2f,0x2a,0x25,0x35,0x56,0x60,0x56,0x4b,0x44,0x42,0x52,0x5e,
+0x53,0x5b,0x65,0x6c,0x6a,0x62,0x5a,0x57,0x52,0x53,0x58,0x4b,0x3e,0x3e,0x46,0x5a,
+0x65,0x5f,0x53,0x49,0x3f,0x37,0x42,0x5a,0x66,0x64,0x64,0x64,0x63,0x5f,0x58,0x54,
+0x5c,0x59,0x50,0x46,0x3b,0x2d,0x1f,0x18,0x20,0x2b,0x3a,0x42,0x3f,0x3b,0x40,0x48,
+0x47,0x45,0x3f,0x2e,0x2d,0x34,0x33,0x3c,0x45,0x4b,0x48,0x4f,0x5a,0x60,0x60,0x4f,
+0x1c,0x1c,0x1a,0x1a,0x1e,0x26,0x2c,0x2d,0x27,0x24,0x22,0x22,0x20,0x20,0x26,0x2d,
+0x31,0x31,0x2f,0x2e,0x2e,0x2e,0x2a,0x24,0x1d,0x1e,0x1f,0x1e,0x19,0x16,0x19,0x1f,
+0x22,0x27,0x2b,0x2b,0x2a,0x2c,0x2e,0x2e,0x29,0x25,0x20,0x1e,0x1e,0x21,0x24,0x25,
+0x2f,0x2f,0x2c,0x24,0x1c,0x1a,0x1f,0x24,0x24,0x20,0x1e,0x20,0x22,0x1f,0x1b,0x19,
+0x17,0x15,0x15,0x16,0x15,0x13,0x15,0x19,0x1b,0x1b,0x1b,0x1b,0x1b,0x1c,0x1d,0x1e,
+0x1b,0x1a,0x19,0x19,0x18,0x17,0x15,0x14,0x12,0x15,0x1a,0x1f,0x26,0x2c,0x31,0x33,
+0x3a,0x39,0x35,0x2e,0x29,0x26,0x22,0x1f,0x1c,0x1e,0x1f,0x23,0x2c,0x36,0x3a,0x39,
+0x34,0x30,0x2b,0x28,0x26,0x26,0x27,0x28,0x28,0x2b,0x2e,0x2d,0x2a,0x27,0x28,0x2a,
+0x28,0x27,0x25,0x24,0x26,0x27,0x24,0x20,0x1d,0x1d,0x1f,0x25,0x2c,0x36,0x44,0x50,
+0x55,0x57,0x58,0x56,0x52,0x4f,0x4e,0x4e,0x52,0x5a,0x5d,0x58,0x57,0x58,0x51,0x45,
+0x34,0x24,0x1d,0x1f,0x1b,0x18,0x1d,0x20,0x1a,0x1b,0x1d,0x1e,0x1d,0x1e,0x1f,0x21,
+0x20,0x22,0x24,0x25,0x23,0x22,0x21,0x21,0x1b,0x1b,0x1a,0x1a,0x1b,0x1c,0x1e,0x1f,
+0x20,0x1c,0x1b,0x1f,0x24,0x28,0x2d,0x31,0x31,0x2f,0x2e,0x30,0x34,0x3a,0x3d,0x3f,
+0x40,0x47,0x50,0x57,0x58,0x57,0x5b,0x61,0x5a,0x55,0x51,0x52,0x56,0x58,0x55,0x51,
+0x57,0x5b,0x60,0x60,0x5d,0x60,0x64,0x65,0x65,0x60,0x5b,0x57,0x51,0x4d,0x4e,0x52,
+0x42,0x3b,0x3b,0x47,0x53,0x54,0x50,0x4e,0x4a,0x50,0x55,0x56,0x57,0x5a,0x61,0x66,
+0x63,0x60,0x55,0x48,0x43,0x48,0x4b,0x49,0x49,0x52,0x6c,0x83,0x8a,0x90,0x94,0x91,
+0x8b,0x88,0x7f,0x73,0x68,0x60,0x6c,0x83,0x81,0x80,0x80,0x82,0x82,0x81,0x84,0x88,
+0x89,0x8b,0x8d,0x8f,0x90,0x92,0x94,0x95,0x97,0x98,0x98,0x99,0x9a,0x9b,0x9b,0x9b,
+0x9d,0x9e,0xa0,0xa2,0xa4,0xa5,0xa6,0xa6,0xa7,0xa7,0xa7,0xa8,0xa8,0xa7,0xa5,0xa3,
+0xa1,0x9d,0x96,0x8d,0x84,0x7b,0x72,0x6d,0x64,0x60,0x5a,0x55,0x54,0x54,0x54,0x54,
+0x58,0x57,0x57,0x5a,0x5c,0x5f,0x66,0x6c,0x74,0x7b,0x85,0x90,0x98,0x9b,0x9b,0x9a,
+0x99,0x9a,0x9a,0x98,0x97,0x99,0x9a,0x98,0x97,0x96,0x95,0x93,0x92,0x90,0x8e,0x8d,
+0x8b,0x8a,0x8a,0x8b,0x8c,0x8d,0x8c,0x8b,0x8b,0x89,0x87,0x84,0x81,0x7d,0x79,0x76,
+0x76,0x74,0x71,0x6f,0x6f,0x70,0x6f,0x6f,0x64,0x46,0x35,0x35,0x33,0x33,0x31,0x29,
+0x25,0x23,0x1f,0x1d,0x1b,0x1b,0x1c,0x1d,0x22,0x22,0x23,0x26,0x2d,0x33,0x35,0x34,
+0x34,0x33,0x31,0x2f,0x2d,0x2a,0x28,0x27,0x29,0x2e,0x35,0x3c,0x42,0x4a,0x53,0x59,
+0x5d,0x63,0x69,0x6d,0x70,0x72,0x72,0x71,0x70,0x69,0x66,0x65,0x64,0x68,0x66,0x5b,
+0x4f,0x4c,0x3e,0x31,0x31,0x35,0x3b,0x44,0x49,0x4a,0x48,0x45,0x45,0x46,0x41,0x3a,
+0x3f,0x43,0x45,0x44,0x40,0x3f,0x41,0x43,0x43,0x3e,0x47,0x55,0x53,0x4d,0x59,0x6d,
+0x78,0x6a,0x5f,0x59,0x57,0x5f,0x6a,0x6d,0x68,0x61,0x5b,0x55,0x52,0x52,0x47,0x31,
+0x39,0x2f,0x28,0x28,0x2c,0x2d,0x2d,0x2c,0x2f,0x36,0x3d,0x44,0x37,0x27,0x26,0x1e,
+0x1d,0x1d,0x1d,0x1d,0x1d,0x24,0x32,0x40,0x3b,0x2d,0x1f,0x1b,0x1d,0x1f,0x20,0x21,
+0x1c,0x1f,0x22,0x24,0x21,0x1f,0x22,0x28,0x27,0x2b,0x2b,0x28,0x28,0x2b,0x29,0x23,
+0x26,0x21,0x21,0x2c,0x3a,0x45,0x50,0x58,0x52,0x4d,0x49,0x43,0x41,0x4c,0x56,0x55,
+0x46,0x3d,0x3c,0x37,0x33,0x2c,0x2a,0x3d,0x60,0x66,0x58,0x50,0x4e,0x48,0x4a,0x47,
+0x51,0x58,0x64,0x69,0x64,0x5b,0x58,0x5b,0x66,0x66,0x6c,0x5e,0x4d,0x49,0x51,0x66,
+0x69,0x68,0x59,0x43,0x34,0x32,0x42,0x59,0x62,0x62,0x62,0x63,0x63,0x63,0x65,0x67,
+0x5d,0x50,0x4c,0x50,0x4a,0x37,0x24,0x1b,0x19,0x2b,0x42,0x4c,0x47,0x40,0x41,0x47,
+0x41,0x43,0x44,0x3a,0x38,0x39,0x32,0x3a,0x4b,0x52,0x4e,0x55,0x5f,0x64,0x64,0x56,
+0x1e,0x1d,0x19,0x17,0x1b,0x23,0x2a,0x2c,0x29,0x25,0x22,0x22,0x1f,0x1c,0x1f,0x25,
+0x2a,0x2b,0x2a,0x25,0x21,0x1e,0x1b,0x18,0x17,0x17,0x18,0x17,0x15,0x15,0x1d,0x26,
+0x29,0x2f,0x32,0x2f,0x2a,0x28,0x28,0x27,0x20,0x1c,0x18,0x16,0x18,0x1c,0x20,0x22,
+0x30,0x34,0x35,0x30,0x26,0x1e,0x1c,0x1e,0x20,0x1d,0x1c,0x1f,0x20,0x1d,0x1b,0x1a,
+0x17,0x15,0x15,0x16,0x15,0x14,0x15,0x19,0x1d,0x1d,0x1d,0x1d,0x1d,0x1c,0x1b,0x1a,
+0x1b,0x1a,0x18,0x16,0x13,0x12,0x11,0x11,0x14,0x18,0x1c,0x20,0x25,0x2b,0x2e,0x2e,
+0x32,0x34,0x32,0x2c,0x27,0x24,0x22,0x20,0x1b,0x1f,0x20,0x21,0x28,0x32,0x37,0x36,
+0x39,0x33,0x2d,0x28,0x25,0x24,0x27,0x2b,0x2b,0x2d,0x2e,0x2c,0x29,0x27,0x29,0x2b,
+0x27,0x29,0x2a,0x29,0x29,0x28,0x24,0x20,0x1a,0x1a,0x1e,0x24,0x2c,0x36,0x43,0x4e,
+0x4f,0x55,0x5b,0x60,0x61,0x61,0x61,0x62,0x6b,0x64,0x5e,0x5c,0x55,0x47,0x39,0x32,
+0x2d,0x22,0x20,0x21,0x1d,0x1c,0x20,0x21,0x1c,0x1e,0x1e,0x1d,0x1b,0x1a,0x1c,0x1e,
+0x1d,0x1d,0x1f,0x21,0x23,0x22,0x20,0x1e,0x1a,0x1b,0x1a,0x1a,0x19,0x1a,0x1d,0x1f,
+0x21,0x1d,0x1b,0x1e,0x22,0x26,0x2c,0x31,0x31,0x2f,0x2e,0x30,0x36,0x3c,0x40,0x41,
+0x42,0x4a,0x54,0x58,0x55,0x53,0x58,0x60,0x5e,0x5a,0x57,0x57,0x5b,0x5c,0x59,0x56,
+0x5c,0x5b,0x5e,0x5d,0x5a,0x5e,0x63,0x60,0x4d,0x49,0x4a,0x50,0x54,0x54,0x56,0x5b,
+0x52,0x50,0x52,0x5b,0x60,0x5b,0x4e,0x44,0x43,0x49,0x4d,0x4e,0x4f,0x53,0x59,0x5d,
+0x67,0x6d,0x6d,0x67,0x64,0x68,0x68,0x63,0x4e,0x50,0x69,0x82,0x88,0x8d,0x93,0x8e,
+0x8e,0x8a,0x7e,0x70,0x63,0x5c,0x67,0x7e,0x81,0x80,0x80,0x82,0x82,0x82,0x84,0x88,
+0x8a,0x8b,0x8d,0x8f,0x90,0x92,0x94,0x95,0x98,0x98,0x99,0x99,0x9a,0x9b,0x9c,0x9c,
+0x9e,0xa0,0xa2,0xa4,0xa6,0xa7,0xa7,0xa7,0xaa,0xaa,0xa9,0xa9,0xa9,0xa9,0xaa,0xaa,
+0xa9,0xa7,0xa4,0xa1,0x9c,0x96,0x90,0x8b,0x7f,0x79,0x70,0x68,0x63,0x61,0x5f,0x5f,
+0x60,0x60,0x62,0x65,0x6a,0x6f,0x79,0x81,0x8c,0x8f,0x94,0x98,0x9b,0x9c,0x9c,0x9b,
+0x9d,0x9e,0x9e,0x9c,0x9b,0x9d,0x9e,0x9c,0x9d,0x9c,0x9a,0x99,0x98,0x96,0x93,0x91,
+0x8e,0x8e,0x8d,0x8e,0x8f,0x8f,0x8e,0x8d,0x8d,0x8b,0x89,0x87,0x84,0x81,0x7d,0x7a,
+0x79,0x77,0x75,0x74,0x74,0x74,0x74,0x73,0x6a,0x5e,0x5a,0x5e,0x5e,0x5c,0x59,0x54,
+0x4a,0x47,0x43,0x3e,0x3a,0x37,0x35,0x35,0x3d,0x3e,0x3f,0x42,0x46,0x49,0x4a,0x4a,
+0x4f,0x4f,0x50,0x50,0x50,0x4d,0x49,0x46,0x4a,0x48,0x45,0x41,0x40,0x43,0x47,0x4b,
+0x56,0x5c,0x63,0x6a,0x6f,0x71,0x72,0x73,0x71,0x6a,0x65,0x63,0x64,0x68,0x64,0x55,
+0x45,0x45,0x38,0x2e,0x32,0x39,0x3d,0x41,0x4f,0x51,0x4f,0x4a,0x49,0x4d,0x4d,0x4a,
+0x51,0x51,0x50,0x4e,0x4d,0x4d,0x4a,0x46,0x44,0x3c,0x49,0x5c,0x56,0x4c,0x5b,0x72,
+0x74,0x67,0x5f,0x5b,0x56,0x55,0x56,0x53,0x55,0x50,0x53,0x59,0x5a,0x54,0x40,0x28,
+0x23,0x21,0x24,0x2d,0x34,0x35,0x32,0x2f,0x32,0x50,0x5f,0x57,0x3e,0x33,0x36,0x2a,
+0x1f,0x1d,0x1c,0x1b,0x1b,0x21,0x2e,0x3a,0x33,0x26,0x1b,0x1b,0x1f,0x20,0x20,0x21,
+0x22,0x21,0x22,0x24,0x24,0x23,0x23,0x25,0x2b,0x2a,0x27,0x24,0x26,0x2a,0x2b,0x2a,
+0x30,0x29,0x24,0x29,0x33,0x3e,0x48,0x4f,0x53,0x4c,0x47,0x43,0x44,0x4f,0x56,0x50,
+0x49,0x43,0x46,0x42,0x3b,0x30,0x2c,0x42,0x4f,0x57,0x4e,0x49,0x47,0x3f,0x3f,0x3e,
+0x4d,0x53,0x5c,0x60,0x5a,0x55,0x5c,0x68,0x6a,0x6b,0x70,0x63,0x53,0x4f,0x51,0x60,
+0x68,0x66,0x54,0x3c,0x32,0x34,0x3c,0x46,0x59,0x5f,0x63,0x62,0x63,0x6a,0x72,0x78,
+0x69,0x51,0x47,0x4d,0x47,0x38,0x2d,0x28,0x2a,0x38,0x47,0x4b,0x47,0x45,0x4c,0x55,
+0x53,0x4c,0x48,0x3d,0x39,0x37,0x35,0x44,0x58,0x60,0x5e,0x61,0x64,0x64,0x66,0x5c,
+0x22,0x1f,0x1a,0x16,0x18,0x1f,0x25,0x27,0x29,0x26,0x25,0x25,0x21,0x1b,0x1c,0x23,
+0x28,0x28,0x24,0x1d,0x18,0x17,0x16,0x14,0x18,0x16,0x16,0x18,0x1b,0x1d,0x22,0x27,
+0x29,0x2b,0x2b,0x27,0x23,0x22,0x21,0x20,0x1d,0x1b,0x18,0x17,0x18,0x19,0x1b,0x1c,
+0x22,0x28,0x2f,0x31,0x2d,0x26,0x20,0x1d,0x1d,0x1b,0x1b,0x1e,0x1d,0x1b,0x1a,0x1a,
+0x18,0x16,0x16,0x17,0x16,0x14,0x15,0x18,0x1d,0x1d,0x1e,0x1f,0x1e,0x1c,0x1a,0x18,
+0x19,0x19,0x19,0x17,0x13,0x11,0x11,0x11,0x17,0x1a,0x1d,0x1f,0x25,0x2c,0x31,0x31,
+0x2e,0x31,0x2f,0x28,0x22,0x20,0x21,0x21,0x1f,0x26,0x29,0x27,0x29,0x2e,0x30,0x2d,
+0x38,0x33,0x2e,0x2b,0x27,0x26,0x2a,0x31,0x30,0x31,0x31,0x2f,0x2b,0x28,0x28,0x28,
+0x25,0x2a,0x2e,0x2c,0x2a,0x28,0x25,0x21,0x1b,0x1a,0x1d,0x22,0x29,0x32,0x3e,0x48,
+0x55,0x56,0x58,0x59,0x5c,0x62,0x69,0x6f,0x6e,0x64,0x5e,0x5e,0x5b,0x4e,0x3e,0x34,
+0x2a,0x25,0x25,0x24,0x20,0x21,0x25,0x22,0x21,0x22,0x21,0x1e,0x1a,0x18,0x1a,0x1d,
+0x1d,0x1c,0x1c,0x20,0x24,0x24,0x20,0x1b,0x1d,0x1d,0x1d,0x1c,0x1a,0x1b,0x1e,0x20,
+0x23,0x20,0x1e,0x1f,0x22,0x26,0x2c,0x32,0x30,0x2e,0x2f,0x34,0x3d,0x45,0x4b,0x4d,
+0x52,0x57,0x5c,0x5e,0x59,0x54,0x56,0x5c,0x62,0x5f,0x5c,0x5c,0x5d,0x5f,0x5e,0x5d,
+0x62,0x5c,0x5d,0x5e,0x59,0x5e,0x62,0x5b,0x56,0x58,0x59,0x59,0x59,0x59,0x56,0x53,
+0x63,0x68,0x6c,0x6a,0x64,0x5b,0x51,0x4a,0x50,0x4f,0x4b,0x49,0x4d,0x57,0x60,0x63,
+0x69,0x6f,0x6b,0x5d,0x52,0x4f,0x4c,0x46,0x41,0x43,0x60,0x7e,0x85,0x8d,0x9a,0x98,
+0x91,0x8e,0x84,0x77,0x69,0x5d,0x62,0x74,0x84,0x82,0x82,0x83,0x83,0x82,0x84,0x88,
+0x8a,0x8c,0x8e,0x90,0x91,0x92,0x95,0x96,0x98,0x98,0x98,0x99,0x9a,0x9b,0x9c,0x9c,
+0x9f,0xa1,0xa2,0xa4,0xa6,0xa7,0xa7,0xa7,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0xac,0xad,
+0xac,0xab,0xaa,0xaa,0xa9,0xa8,0xa5,0xa2,0x9c,0x97,0x90,0x8a,0x85,0x82,0x80,0x7f,
+0x7c,0x7d,0x80,0x83,0x86,0x8a,0x91,0x99,0x9e,0x9e,0x9e,0x9e,0x9f,0xa0,0xa1,0xa1,
+0xa1,0xa2,0xa2,0xa0,0x9f,0xa1,0xa1,0xa0,0xa2,0xa0,0x9f,0x9e,0x9e,0x9c,0x99,0x97,
+0x94,0x93,0x92,0x92,0x92,0x91,0x90,0x8e,0x90,0x8f,0x8d,0x8b,0x89,0x86,0x82,0x7f,
+0x7c,0x7b,0x79,0x79,0x79,0x79,0x77,0x76,0x78,0x7c,0x7d,0x7e,0x80,0x7e,0x7a,0x7b,
+0x79,0x78,0x76,0x73,0x6f,0x6c,0x69,0x67,0x60,0x61,0x63,0x65,0x66,0x68,0x6c,0x6f,
+0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x79,0x77,0x7c,0x77,0x6f,0x67,0x5f,0x57,0x50,0x4b,
+0x55,0x5a,0x61,0x69,0x6e,0x71,0x73,0x74,0x71,0x6b,0x67,0x63,0x62,0x66,0x61,0x53,
+0x46,0x42,0x37,0x31,0x36,0x3d,0x45,0x50,0x5e,0x5f,0x5b,0x56,0x56,0x5c,0x5d,0x5b,
+0x59,0x5a,0x59,0x55,0x54,0x53,0x4f,0x4a,0x4f,0x4b,0x5a,0x6d,0x70,0x72,0x79,0x79,
+0x61,0x58,0x5c,0x6b,0x72,0x6e,0x5d,0x49,0x43,0x42,0x4d,0x5b,0x5a,0x50,0x42,0x34,
+0x21,0x22,0x27,0x2e,0x31,0x31,0x30,0x31,0x35,0x4e,0x55,0x49,0x34,0x32,0x3b,0x2f,
+0x25,0x23,0x21,0x21,0x22,0x25,0x2e,0x36,0x2a,0x1f,0x18,0x1c,0x22,0x23,0x25,0x28,
+0x28,0x21,0x1d,0x21,0x27,0x29,0x26,0x23,0x2d,0x28,0x23,0x21,0x21,0x24,0x2b,0x33,
+0x36,0x2e,0x26,0x23,0x28,0x35,0x47,0x53,0x58,0x4d,0x43,0x3f,0x42,0x50,0x56,0x4f,
+0x4d,0x4a,0x4f,0x4e,0x45,0x37,0x31,0x46,0x5e,0x5a,0x43,0x39,0x3a,0x3e,0x4f,0x5b,
+0x4b,0x52,0x5c,0x60,0x58,0x53,0x5d,0x6c,0x6d,0x6f,0x74,0x65,0x57,0x56,0x56,0x61,
+0x68,0x64,0x51,0x3e,0x38,0x38,0x39,0x3d,0x4f,0x64,0x78,0x7f,0x7f,0x7d,0x76,0x6e,
+0x6e,0x56,0x4c,0x4d,0x45,0x3e,0x3c,0x38,0x31,0x3a,0x41,0x42,0x42,0x47,0x53,0x5d,
+0x57,0x47,0x3d,0x36,0x37,0x37,0x3b,0x52,0x62,0x6c,0x69,0x65,0x5c,0x54,0x55,0x4f,
+0x25,0x22,0x1d,0x18,0x18,0x1d,0x20,0x20,0x24,0x23,0x24,0x26,0x20,0x18,0x1b,0x23,
+0x2b,0x28,0x22,0x1b,0x18,0x19,0x19,0x18,0x19,0x17,0x18,0x1e,0x23,0x24,0x22,0x21,
+0x20,0x20,0x1d,0x1a,0x1a,0x1c,0x1c,0x1a,0x18,0x17,0x17,0x18,0x1a,0x1b,0x1b,0x1b,
+0x16,0x1c,0x24,0x2d,0x31,0x2f,0x29,0x23,0x1b,0x1a,0x1c,0x1e,0x1d,0x1a,0x1a,0x1c,
+0x19,0x18,0x17,0x18,0x16,0x13,0x14,0x17,0x19,0x1b,0x1d,0x1f,0x1f,0x1d,0x1b,0x19,
+0x14,0x17,0x1a,0x19,0x16,0x13,0x14,0x15,0x14,0x18,0x1a,0x1c,0x23,0x2d,0x34,0x35,
+0x33,0x35,0x32,0x29,0x21,0x1f,0x22,0x24,0x25,0x2e,0x33,0x30,0x2d,0x2e,0x2b,0x26,
+0x32,0x2f,0x2d,0x2b,0x28,0x26,0x2c,0x34,0x35,0x36,0x36,0x34,0x30,0x2c,0x29,0x27,
+0x26,0x2d,0x32,0x30,0x2c,0x2b,0x29,0x26,0x20,0x1f,0x20,0x24,0x2a,0x32,0x3f,0x4a,
+0x52,0x51,0x4f,0x4c,0x4c,0x50,0x58,0x5e,0x60,0x62,0x60,0x5c,0x5f,0x5e,0x4d,0x36,
+0x28,0x26,0x27,0x25,0x21,0x25,0x29,0x25,0x25,0x25,0x23,0x1f,0x1a,0x18,0x1a,0x1c,
+0x23,0x21,0x20,0x24,0x2a,0x2a,0x24,0x1d,0x20,0x21,0x21,0x1f,0x1d,0x1e,0x21,0x23,
+0x27,0x24,0x22,0x22,0x24,0x27,0x2e,0x34,0x32,0x30,0x30,0x36,0x3f,0x48,0x4d,0x4f,
+0x53,0x55,0x59,0x5c,0x5b,0x59,0x5a,0x5e,0x61,0x5e,0x5b,0x5a,0x5a,0x5c,0x5e,0x5f,
+0x62,0x5b,0x5e,0x61,0x5c,0x61,0x62,0x57,0x57,0x63,0x69,0x64,0x62,0x65,0x60,0x56,
+0x5e,0x69,0x6d,0x63,0x56,0x51,0x52,0x52,0x55,0x51,0x4c,0x4a,0x52,0x5e,0x62,0x60,
+0x6a,0x6d,0x63,0x4f,0x43,0x45,0x49,0x49,0x45,0x45,0x62,0x7e,0x7e,0x84,0x91,0x92,
+0x94,0x95,0x90,0x86,0x78,0x65,0x62,0x6e,0x86,0x84,0x84,0x84,0x83,0x82,0x84,0x88,
+0x88,0x8a,0x8c,0x8e,0x8f,0x90,0x92,0x94,0x98,0x98,0x98,0x99,0x99,0x9b,0x9b,0x9c,
+0xa0,0xa1,0xa3,0xa4,0xa6,0xa6,0xa6,0xa6,0xa7,0xa8,0xaa,0xab,0xac,0xad,0xae,0xb0,
+0xb0,0xaf,0xae,0xad,0xae,0xad,0xac,0xab,0xa9,0xa7,0xa3,0xa0,0x9e,0x9c,0x99,0x98,
+0x95,0x96,0x99,0x9b,0x9a,0x99,0x9d,0xa3,0xa3,0xa3,0xa3,0xa3,0xa5,0xa7,0xa8,0xa9,
+0xa7,0xa8,0xa8,0xa5,0xa5,0xa7,0xa7,0xa6,0xa5,0xa4,0xa2,0xa2,0xa2,0xa0,0x9d,0x9b,
+0x99,0x98,0x96,0x96,0x95,0x93,0x91,0x8f,0x93,0x91,0x90,0x8e,0x8c,0x89,0x86,0x83,
+0x81,0x80,0x7f,0x7f,0x7f,0x7f,0x7d,0x7b,0x7a,0x86,0x86,0x82,0x86,0x83,0x7e,0x83,
+0x81,0x82,0x83,0x83,0x82,0x81,0x7f,0x7e,0x83,0x84,0x87,0x89,0x8a,0x8d,0x94,0x9a,
+0x97,0x95,0x93,0x93,0x95,0x96,0x96,0x95,0x91,0x90,0x8e,0x8b,0x85,0x7a,0x6b,0x61,
+0x59,0x5c,0x63,0x6b,0x6f,0x70,0x72,0x74,0x70,0x6c,0x69,0x64,0x61,0x64,0x60,0x52,
+0x4b,0x42,0x38,0x37,0x3c,0x41,0x4e,0x63,0x6f,0x6f,0x6a,0x64,0x63,0x65,0x63,0x5c,
+0x60,0x65,0x66,0x62,0x5e,0x5d,0x5b,0x58,0x4e,0x5c,0x72,0x7a,0x78,0x7f,0x80,0x6f,
+0x63,0x5a,0x5c,0x68,0x6d,0x6d,0x67,0x5d,0x57,0x52,0x57,0x5a,0x4d,0x3e,0x37,0x33,
+0x3b,0x39,0x37,0x33,0x2d,0x29,0x2c,0x32,0x47,0x46,0x3e,0x39,0x30,0x2e,0x36,0x2f,
+0x28,0x27,0x27,0x28,0x2a,0x2c,0x31,0x36,0x32,0x26,0x1e,0x20,0x24,0x25,0x27,0x2c,
+0x29,0x28,0x26,0x24,0x21,0x20,0x25,0x2c,0x2d,0x26,0x21,0x1f,0x1c,0x1e,0x2b,0x39,
+0x33,0x2c,0x22,0x1d,0x22,0x37,0x53,0x69,0x5c,0x4d,0x40,0x3a,0x3f,0x4f,0x56,0x50,
+0x4e,0x4b,0x53,0x54,0x4d,0x3e,0x38,0x4c,0x5c,0x55,0x42,0x42,0x48,0x46,0x4b,0x4e,
+0x51,0x5a,0x66,0x68,0x5c,0x50,0x54,0x61,0x6d,0x68,0x66,0x5c,0x5d,0x67,0x66,0x69,
+0x64,0x5f,0x50,0x41,0x3b,0x38,0x3b,0x44,0x5a,0x6b,0x77,0x74,0x72,0x74,0x71,0x6a,
+0x4a,0x42,0x48,0x4f,0x4a,0x47,0x45,0x3a,0x32,0x3d,0x49,0x4e,0x4f,0x51,0x55,0x57,
+0x3a,0x2c,0x2c,0x34,0x3e,0x3e,0x3e,0x54,0x63,0x6e,0x69,0x5f,0x4c,0x3d,0x3d,0x38,
+0x30,0x26,0x1f,0x1e,0x1c,0x19,0x1c,0x22,0x22,0x1f,0x20,0x22,0x21,0x1b,0x19,0x1a,
+0x25,0x25,0x23,0x1e,0x18,0x16,0x17,0x1a,0x22,0x20,0x1f,0x20,0x20,0x1e,0x1d,0x1f,
+0x1d,0x1a,0x17,0x18,0x1c,0x1e,0x1e,0x1c,0x1d,0x1c,0x1b,0x1b,0x1c,0x1d,0x1d,0x1c,
+0x1c,0x19,0x19,0x1d,0x23,0x28,0x27,0x24,0x1f,0x1f,0x20,0x20,0x1f,0x1f,0x1e,0x1e,
+0x1f,0x1c,0x1a,0x1a,0x1a,0x1a,0x19,0x17,0x17,0x1a,0x1c,0x1d,0x1e,0x1e,0x1a,0x14,
+0x14,0x14,0x14,0x15,0x16,0x16,0x16,0x15,0x17,0x18,0x1a,0x1c,0x1f,0x24,0x2b,0x30,
+0x37,0x3a,0x37,0x2b,0x23,0x24,0x25,0x23,0x2a,0x30,0x37,0x3c,0x3b,0x36,0x2e,0x29,
+0x2c,0x2d,0x2d,0x2a,0x26,0x25,0x26,0x29,0x2d,0x2d,0x2f,0x33,0x36,0x36,0x31,0x2d,
+0x2e,0x2e,0x2c,0x2a,0x2b,0x2e,0x2e,0x2b,0x21,0x20,0x1f,0x21,0x25,0x31,0x44,0x54,
+0x63,0x5e,0x57,0x52,0x4f,0x52,0x59,0x60,0x59,0x55,0x54,0x59,0x5c,0x54,0x44,0x38,
+0x25,0x28,0x28,0x25,0x25,0x28,0x27,0x24,0x22,0x22,0x23,0x23,0x22,0x21,0x1f,0x1e,
+0x1b,0x1e,0x24,0x2a,0x2d,0x2b,0x24,0x1f,0x1e,0x26,0x27,0x20,0x1c,0x22,0x2b,0x2f,
+0x2a,0x27,0x23,0x20,0x21,0x27,0x2f,0x34,0x32,0x36,0x39,0x3f,0x4a,0x56,0x55,0x4d,
+0x53,0x59,0x60,0x61,0x5c,0x58,0x58,0x59,0x59,0x58,0x5a,0x5d,0x61,0x62,0x5f,0x5c,
+0x5e,0x60,0x63,0x63,0x61,0x60,0x62,0x65,0x64,0x61,0x61,0x65,0x67,0x64,0x61,0x62,
+0x62,0x61,0x5e,0x57,0x50,0x4a,0x44,0x3f,0x3a,0x38,0x3c,0x46,0x50,0x51,0x4d,0x4a,
+0x53,0x5d,0x64,0x62,0x58,0x49,0x44,0x4c,0x4c,0x47,0x59,0x7b,0x87,0x7d,0x7f,0x91,
+0x99,0xa0,0x9e,0x9d,0xa1,0x95,0x84,0x81,0x89,0x85,0x82,0x83,0x86,0x88,0x87,0x85,
+0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x91,0x93,0x93,0x95,0x97,0x99,0x9a,0x9a,0x9c,0x9d,
+0xa2,0xa1,0xa0,0xa0,0xa2,0xa3,0xa5,0xa5,0xa7,0xa8,0xa9,0xac,0xae,0xb0,0xb1,0xb2,
+0xb1,0xb2,0xb4,0xb5,0xb5,0xb3,0xb1,0xaf,0xae,0xad,0xab,0xa8,0xa6,0xa5,0xa5,0xa5,
+0xa4,0xa3,0xa4,0xa6,0xa8,0xaa,0xaa,0xaa,0xa8,0xa8,0xa8,0xa9,0xa9,0xaa,0xaa,0xaa,
+0xab,0xab,0xaa,0xaa,0xaa,0xab,0xac,0xac,0xaa,0xaa,0xaa,0xa9,0xa7,0xa4,0xa2,0xa0,
+0x9d,0x9b,0x9a,0x99,0x99,0x98,0x97,0x95,0x98,0x96,0x93,0x91,0x90,0x8f,0x8d,0x8c,
+0x89,0x86,0x84,0x84,0x85,0x85,0x81,0x7e,0x7d,0x7d,0x7e,0x80,0x82,0x81,0x7f,0x7d,
+0x87,0x87,0x8a,0x8e,0x93,0x96,0x96,0x94,0x96,0x97,0x97,0x97,0x97,0x97,0x99,0x9a,
+0x9d,0x9d,0x9e,0x9f,0xa1,0xa2,0xa1,0xa1,0x9e,0x9c,0x99,0x97,0x93,0x8c,0x82,0x7a,
+0x72,0x70,0x6e,0x6f,0x71,0x72,0x72,0x70,0x70,0x6d,0x66,0x61,0x64,0x67,0x5d,0x4f,
+0x45,0x3f,0x36,0x3c,0x47,0x47,0x56,0x77,0x71,0x6f,0x6e,0x6f,0x70,0x70,0x6f,0x6d,
+0x6e,0x70,0x72,0x71,0x6d,0x67,0x60,0x5c,0x64,0x71,0x7f,0x7e,0x71,0x61,0x57,0x54,
+0x65,0x65,0x5d,0x5b,0x63,0x64,0x68,0x76,0x7d,0x77,0x5e,0x47,0x41,0x3a,0x36,0x3e,
+0x47,0x3d,0x33,0x2d,0x2b,0x2c,0x32,0x39,0x40,0x42,0x34,0x36,0x37,0x35,0x3e,0x36,
+0x2c,0x22,0x29,0x32,0x2e,0x2e,0x34,0x32,0x2c,0x2a,0x27,0x25,0x28,0x2c,0x2c,0x29,
+0x2b,0x2b,0x27,0x23,0x24,0x29,0x2b,0x29,0x2c,0x28,0x23,0x1f,0x1c,0x1c,0x21,0x27,
+0x25,0x26,0x1a,0x14,0x24,0x35,0x48,0x5c,0x59,0x53,0x48,0x45,0x49,0x48,0x47,0x4c,
+0x4e,0x4b,0x4a,0x45,0x35,0x29,0x36,0x4d,0x5c,0x4c,0x30,0x27,0x38,0x42,0x44,0x4b,
+0x4a,0x53,0x67,0x6e,0x5c,0x4c,0x51,0x5c,0x68,0x64,0x59,0x51,0x52,0x52,0x57,0x63,
+0x66,0x58,0x4d,0x4b,0x46,0x40,0x43,0x4d,0x61,0x6d,0x75,0x70,0x6e,0x79,0x77,0x65,
+0x4f,0x47,0x3f,0x3f,0x42,0x43,0x40,0x3c,0x3b,0x4d,0x56,0x56,0x5d,0x5e,0x51,0x44,
+0x34,0x3d,0x4e,0x4e,0x45,0x3c,0x40,0x5d,0x73,0x71,0x6f,0x64,0x49,0x2c,0x20,0x23,
+0x38,0x2d,0x23,0x21,0x20,0x1f,0x23,0x2a,0x28,0x24,0x21,0x20,0x1e,0x1b,0x1c,0x1f,
+0x22,0x23,0x24,0x21,0x1e,0x1c,0x1d,0x20,0x22,0x21,0x20,0x21,0x20,0x1e,0x1e,0x21,
+0x22,0x20,0x1e,0x1e,0x21,0x23,0x24,0x24,0x1f,0x1e,0x1f,0x20,0x22,0x23,0x22,0x21,
+0x21,0x1d,0x19,0x18,0x1b,0x20,0x25,0x28,0x24,0x22,0x20,0x1e,0x1e,0x1d,0x1b,0x19,
+0x1a,0x1a,0x19,0x1a,0x1a,0x1b,0x1b,0x1a,0x1a,0x1c,0x1e,0x1f,0x21,0x21,0x1c,0x16,
+0x15,0x15,0x15,0x15,0x16,0x16,0x16,0x15,0x16,0x19,0x1d,0x21,0x24,0x27,0x2b,0x2e,
+0x32,0x35,0x32,0x28,0x23,0x28,0x2d,0x2e,0x30,0x32,0x37,0x3c,0x3f,0x3c,0x36,0x31,
+0x29,0x2b,0x2b,0x28,0x24,0x23,0x24,0x26,0x28,0x29,0x2c,0x2f,0x31,0x32,0x31,0x30,
+0x37,0x34,0x2f,0x2b,0x2c,0x2e,0x2d,0x29,0x2c,0x31,0x39,0x3c,0x3b,0x3c,0x44,0x4d,
+0x49,0x4e,0x56,0x5e,0x63,0x67,0x6a,0x6d,0x66,0x68,0x6a,0x68,0x61,0x53,0x41,0x34,
+0x26,0x28,0x28,0x25,0x23,0x23,0x25,0x27,0x23,0x23,0x22,0x21,0x1f,0x1e,0x1e,0x1e,
+0x20,0x22,0x25,0x2a,0x2c,0x2a,0x25,0x20,0x22,0x29,0x2a,0x22,0x20,0x28,0x32,0x37,
+0x35,0x32,0x2d,0x29,0x27,0x28,0x2a,0x2c,0x30,0x34,0x3c,0x46,0x4f,0x54,0x56,0x58,
+0x55,0x58,0x5a,0x58,0x54,0x51,0x52,0x54,0x57,0x57,0x59,0x5c,0x60,0x61,0x61,0x60,
+0x60,0x5f,0x5d,0x59,0x58,0x5c,0x64,0x6a,0x6d,0x69,0x66,0x67,0x67,0x65,0x65,0x67,
+0x63,0x62,0x60,0x5b,0x55,0x4e,0x4b,0x4b,0x50,0x4a,0x45,0x47,0x4a,0x4e,0x52,0x56,
+0x63,0x66,0x63,0x5e,0x5a,0x51,0x4e,0x56,0x4b,0x48,0x58,0x77,0x84,0x7d,0x7c,0x86,
+0x93,0x9f,0xa2,0xa5,0xa9,0x9d,0x8c,0x88,0x88,0x86,0x84,0x84,0x86,0x87,0x87,0x87,
+0x89,0x8a,0x8b,0x8b,0x8c,0x8e,0x91,0x93,0x92,0x94,0x97,0x98,0x99,0x9a,0x9c,0x9d,
+0x9f,0x9f,0x9f,0xa0,0xa3,0xa5,0xa8,0xa9,0xac,0xad,0xae,0xb0,0xb2,0xb4,0xb6,0xb6,
+0xb6,0xb7,0xb8,0xb8,0xb8,0xb6,0xb4,0xb3,0xb2,0xb1,0xb0,0xae,0xac,0xab,0xaa,0xa9,
+0xaa,0xaa,0xaa,0xab,0xac,0xad,0xad,0xac,0xac,0xad,0xad,0xad,0xae,0xae,0xaf,0xaf,
+0xad,0xad,0xad,0xad,0xae,0xaf,0xaf,0xb0,0xae,0xae,0xae,0xad,0xab,0xa9,0xa7,0xa6,
+0xa1,0x9f,0x9d,0x9b,0x9a,0x99,0x98,0x96,0x98,0x96,0x95,0x93,0x93,0x92,0x91,0x90,
+0x8c,0x8a,0x88,0x87,0x88,0x88,0x85,0x82,0x81,0x7f,0x7c,0x7a,0x79,0x7a,0x7b,0x7c,
+0x7b,0x7b,0x7d,0x7f,0x83,0x85,0x87,0x87,0x8d,0x8f,0x90,0x91,0x92,0x93,0x95,0x97,
+0x9b,0x9b,0x9c,0x9d,0x9f,0xa0,0xa0,0xa0,0xa0,0x9e,0x9d,0x9c,0x9b,0x96,0x8f,0x89,
+0x81,0x7e,0x7a,0x78,0x77,0x76,0x73,0x70,0x6f,0x6c,0x65,0x61,0x64,0x65,0x5c,0x4e,
+0x48,0x3b,0x41,0x47,0x48,0x61,0x78,0x71,0x6f,0x6f,0x6f,0x71,0x73,0x75,0x75,0x74,
+0x68,0x6c,0x70,0x6f,0x6a,0x64,0x60,0x5f,0x63,0x6f,0x79,0x7d,0x7e,0x79,0x67,0x55,
+0x56,0x5c,0x66,0x6e,0x6b,0x64,0x6f,0x87,0x92,0x7f,0x61,0x4c,0x45,0x3f,0x3b,0x3e,
+0x4a,0x40,0x39,0x3b,0x40,0x3f,0x3b,0x37,0x3c,0x42,0x38,0x38,0x38,0x37,0x3e,0x37,
+0x37,0x30,0x33,0x35,0x2e,0x2e,0x33,0x31,0x33,0x35,0x36,0x32,0x2f,0x2f,0x2f,0x2f,
+0x2d,0x2c,0x2b,0x2b,0x30,0x35,0x35,0x31,0x2c,0x28,0x24,0x22,0x20,0x1e,0x20,0x24,
+0x21,0x24,0x1f,0x1b,0x22,0x32,0x48,0x5b,0x5c,0x51,0x4a,0x49,0x4a,0x4b,0x4d,0x4f,
+0x48,0x4d,0x53,0x50,0x3f,0x31,0x39,0x4a,0x4e,0x49,0x3b,0x33,0x3d,0x4a,0x4d,0x4c,
+0x48,0x55,0x66,0x66,0x55,0x4f,0x59,0x60,0x68,0x66,0x5c,0x52,0x4f,0x4e,0x55,0x62,
+0x73,0x65,0x59,0x52,0x49,0x44,0x4c,0x5a,0x75,0x6e,0x68,0x66,0x6a,0x72,0x6b,0x59,
+0x48,0x48,0x48,0x44,0x3e,0x3b,0x40,0x46,0x4d,0x5b,0x5c,0x55,0x55,0x55,0x4c,0x44,
+0x42,0x3c,0x47,0x4f,0x48,0x36,0x3b,0x61,0x6f,0x76,0x6d,0x53,0x47,0x54,0x66,0x6e,
+0x37,0x2d,0x25,0x24,0x24,0x23,0x24,0x28,0x27,0x23,0x20,0x1f,0x1d,0x1b,0x1c,0x1e,
+0x22,0x25,0x27,0x27,0x25,0x23,0x23,0x24,0x22,0x21,0x21,0x21,0x1f,0x1d,0x1e,0x22,
+0x24,0x24,0x23,0x22,0x22,0x24,0x27,0x2a,0x1e,0x1d,0x1e,0x20,0x22,0x23,0x22,0x21,
+0x22,0x1f,0x1a,0x16,0x17,0x1b,0x21,0x26,0x28,0x25,0x22,0x1f,0x1d,0x1b,0x17,0x14,
+0x16,0x17,0x19,0x1a,0x1a,0x1b,0x1c,0x1c,0x1b,0x1d,0x1e,0x20,0x22,0x23,0x1e,0x17,
+0x15,0x15,0x14,0x15,0x16,0x17,0x16,0x15,0x18,0x1a,0x1e,0x22,0x27,0x2c,0x30,0x34,
+0x2e,0x30,0x2b,0x22,0x1e,0x25,0x2c,0x30,0x34,0x33,0x34,0x38,0x3c,0x3c,0x37,0x32,
+0x2a,0x2b,0x2b,0x29,0x25,0x23,0x24,0x25,0x27,0x2a,0x2d,0x2e,0x2d,0x2e,0x31,0x34,
+0x39,0x35,0x2e,0x29,0x2a,0x2d,0x2d,0x2b,0x38,0x3c,0x42,0x44,0x42,0x44,0x50,0x5d,
+0x68,0x65,0x5e,0x56,0x4f,0x4f,0x52,0x56,0x68,0x6e,0x72,0x6f,0x69,0x5c,0x47,0x34,
+0x27,0x27,0x27,0x27,0x25,0x23,0x25,0x28,0x27,0x26,0x24,0x22,0x1f,0x1f,0x20,0x22,
+0x23,0x23,0x25,0x29,0x2b,0x2b,0x27,0x23,0x23,0x28,0x27,0x21,0x1e,0x26,0x31,0x37,
+0x38,0x37,0x35,0x33,0x32,0x31,0x2f,0x2e,0x30,0x33,0x3f,0x4c,0x4f,0x4e,0x52,0x5c,
+0x57,0x56,0x54,0x51,0x4e,0x4e,0x50,0x52,0x53,0x54,0x57,0x59,0x5a,0x5c,0x5d,0x5f,
+0x63,0x60,0x5b,0x56,0x55,0x59,0x62,0x69,0x60,0x5f,0x5f,0x60,0x5f,0x5e,0x5f,0x62,
+0x5d,0x5d,0x5f,0x5f,0x59,0x50,0x50,0x55,0x54,0x54,0x57,0x5a,0x5b,0x58,0x58,0x5a,
+0x62,0x61,0x5b,0x58,0x5a,0x55,0x50,0x53,0x51,0x50,0x5c,0x73,0x81,0x7f,0x7a,0x7a,
+0x89,0x96,0x9f,0xa4,0xa6,0x9b,0x8e,0x8a,0x87,0x86,0x86,0x85,0x86,0x87,0x87,0x88,
+0x89,0x8a,0x8b,0x8b,0x8b,0x8d,0x90,0x92,0x91,0x93,0x96,0x98,0x99,0x9a,0x9c,0x9d,
+0x9c,0x9d,0x9f,0xa2,0xa5,0xa9,0xac,0xae,0xb2,0xb3,0xb4,0xb6,0xb8,0xb9,0xbb,0xbb,
+0xba,0xbb,0xbb,0xbb,0xba,0xb9,0xb8,0xb8,0xb6,0xb6,0xb5,0xb4,0xb3,0xb1,0xb0,0xaf,
+0xb1,0xb0,0xaf,0xb0,0xb0,0xb1,0xb0,0xaf,0xb0,0xb0,0xb0,0xb1,0xb1,0xb1,0xb1,0xb1,
+0xae,0xaf,0xb0,0xb1,0xb2,0xb2,0xb3,0xb3,0xb2,0xb2,0xb2,0xb1,0xb0,0xae,0xad,0xac,
+0xa9,0xa6,0xa2,0x9f,0x9e,0x9c,0x9b,0x9a,0x9a,0x99,0x98,0x97,0x98,0x97,0x96,0x95,
+0x92,0x8f,0x8d,0x8d,0x8e,0x8d,0x8b,0x89,0x86,0x82,0x7a,0x73,0x70,0x70,0x74,0x77,
+0x78,0x79,0x7a,0x7a,0x7b,0x7d,0x7f,0x81,0x82,0x83,0x86,0x88,0x8a,0x8c,0x8f,0x91,
+0x96,0x96,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9d,0x9c,0x9b,0x9c,0x9c,0x9a,0x96,0x92,
+0x8e,0x8a,0x85,0x81,0x7e,0x7a,0x75,0x71,0x6e,0x6b,0x65,0x62,0x64,0x64,0x59,0x4c,
+0x42,0x45,0x43,0x48,0x5e,0x73,0x76,0x72,0x6f,0x6f,0x70,0x72,0x74,0x76,0x77,0x77,
+0x6c,0x71,0x75,0x74,0x6d,0x67,0x66,0x67,0x66,0x6a,0x69,0x68,0x74,0x84,0x83,0x77,
+0x64,0x5b,0x5e,0x68,0x69,0x70,0x86,0x9b,0x94,0x75,0x5a,0x51,0x4e,0x4c,0x49,0x45,
+0x41,0x40,0x40,0x3f,0x3c,0x3c,0x40,0x46,0x40,0x49,0x45,0x41,0x3e,0x3f,0x46,0x41,
+0x37,0x37,0x3a,0x38,0x32,0x36,0x40,0x40,0x3b,0x41,0x44,0x3e,0x35,0x30,0x31,0x32,
+0x2b,0x2a,0x2a,0x2d,0x35,0x3b,0x39,0x35,0x2c,0x29,0x26,0x25,0x24,0x22,0x21,0x22,
+0x22,0x24,0x26,0x24,0x25,0x36,0x4e,0x5b,0x4b,0x40,0x44,0x4e,0x4c,0x4d,0x4e,0x49,
+0x48,0x52,0x59,0x52,0x41,0x37,0x3d,0x4a,0x52,0x49,0x3b,0x2f,0x35,0x4c,0x57,0x4f,
+0x51,0x5d,0x6a,0x65,0x5a,0x5a,0x5d,0x59,0x5f,0x67,0x68,0x63,0x5a,0x4f,0x4f,0x59,
+0x6d,0x65,0x5b,0x51,0x44,0x40,0x4d,0x5e,0x69,0x62,0x65,0x6f,0x72,0x6c,0x58,0x41,
+0x41,0x41,0x3f,0x3a,0x33,0x31,0x3a,0x44,0x5f,0x71,0x76,0x6e,0x6a,0x64,0x59,0x51,
+0x49,0x41,0x43,0x40,0x38,0x30,0x3d,0x65,0x79,0x73,0x5a,0x3b,0x3b,0x58,0x6a,0x68,
+0x30,0x2a,0x26,0x27,0x28,0x24,0x21,0x20,0x21,0x21,0x21,0x21,0x20,0x1e,0x1d,0x1c,
+0x23,0x26,0x29,0x29,0x27,0x24,0x22,0x22,0x22,0x21,0x20,0x1f,0x1c,0x1a,0x1c,0x20,
+0x1f,0x21,0x22,0x20,0x1e,0x1f,0x25,0x29,0x20,0x1f,0x1d,0x1e,0x1e,0x1f,0x1e,0x1e,
+0x1e,0x1c,0x1a,0x19,0x1a,0x1c,0x1d,0x1e,0x27,0x27,0x26,0x23,0x1f,0x1a,0x16,0x14,
+0x15,0x17,0x1a,0x1b,0x1a,0x19,0x1a,0x1b,0x1e,0x1f,0x20,0x22,0x24,0x25,0x21,0x1b,
+0x15,0x14,0x13,0x14,0x16,0x17,0x17,0x16,0x1a,0x1a,0x1c,0x1f,0x25,0x2e,0x36,0x3c,
+0x3b,0x3b,0x36,0x2c,0x27,0x2b,0x32,0x36,0x38,0x37,0x36,0x37,0x38,0x38,0x35,0x33,
+0x30,0x30,0x2f,0x2d,0x29,0x27,0x26,0x27,0x29,0x2c,0x2f,0x2d,0x29,0x29,0x2e,0x34,
+0x33,0x31,0x2c,0x27,0x26,0x2b,0x2f,0x30,0x37,0x36,0x36,0x36,0x38,0x41,0x53,0x62,
+0x67,0x6e,0x73,0x71,0x68,0x5e,0x54,0x4e,0x55,0x5a,0x5f,0x62,0x65,0x60,0x4c,0x37,
+0x2f,0x29,0x25,0x28,0x2a,0x28,0x26,0x27,0x29,0x29,0x29,0x26,0x24,0x23,0x24,0x26,
+0x22,0x22,0x24,0x28,0x2c,0x2c,0x29,0x26,0x25,0x29,0x28,0x23,0x20,0x24,0x2d,0x32,
+0x38,0x39,0x3a,0x3c,0x3c,0x3a,0x36,0x34,0x36,0x3b,0x45,0x4d,0x4e,0x4c,0x50,0x57,
+0x55,0x52,0x4f,0x4d,0x4d,0x4e,0x4f,0x51,0x52,0x55,0x59,0x59,0x58,0x58,0x5a,0x5c,
+0x63,0x62,0x61,0x5e,0x5c,0x5c,0x5e,0x60,0x5b,0x5f,0x63,0x65,0x64,0x62,0x61,0x62,
+0x60,0x60,0x60,0x5c,0x4d,0x3d,0x38,0x3e,0x41,0x3f,0x3e,0x42,0x47,0x4d,0x56,0x5d,
+0x64,0x61,0x59,0x55,0x59,0x5a,0x58,0x5c,0x5e,0x5e,0x63,0x70,0x7e,0x82,0x7c,0x73,
+0x81,0x8c,0x97,0x9e,0x9d,0x95,0x8c,0x88,0x86,0x86,0x86,0x86,0x85,0x86,0x87,0x88,
+0x88,0x89,0x8a,0x8b,0x8b,0x8d,0x8f,0x91,0x91,0x93,0x96,0x98,0x99,0x9b,0x9d,0x9e,
+0x9e,0xa0,0xa3,0xa6,0xa9,0xad,0xb1,0xb4,0xb5,0xb6,0xb7,0xb9,0xba,0xbc,0xbd,0xbd,
+0xbb,0xbb,0xba,0xba,0xba,0xbb,0xbb,0xbb,0xb8,0xb9,0xb9,0xb8,0xb7,0xb5,0xb4,0xb3,
+0xb4,0xb3,0xb2,0xb2,0xb2,0xb2,0xb1,0xb0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,0xb0,
+0xaf,0xb0,0xb1,0xb3,0xb4,0xb4,0xb3,0xb3,0xb4,0xb4,0xb4,0xb3,0xb3,0xb2,0xb1,0xb0,
+0xb1,0xae,0xa9,0xa6,0xa4,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9d,0x9d,0x9d,0x9b,0x9a,
+0x97,0x95,0x93,0x93,0x93,0x93,0x91,0x90,0x8a,0x85,0x7d,0x74,0x6c,0x69,0x6a,0x6b,
+0x6d,0x6f,0x70,0x70,0x70,0x70,0x73,0x76,0x77,0x79,0x7c,0x7e,0x81,0x84,0x87,0x8a,
+0x8e,0x8f,0x90,0x91,0x92,0x93,0x95,0x96,0x98,0x97,0x97,0x97,0x98,0x96,0x94,0x91,
+0x8f,0x8c,0x87,0x84,0x81,0x7d,0x77,0x73,0x6e,0x6b,0x66,0x63,0x64,0x62,0x57,0x4b,
+0x43,0x46,0x45,0x56,0x72,0x70,0x68,0x75,0x72,0x71,0x71,0x72,0x73,0x73,0x74,0x74,
+0x76,0x79,0x7b,0x79,0x74,0x6f,0x6e,0x6e,0x6e,0x69,0x5c,0x4d,0x4f,0x5f,0x6d,0x71,
+0x71,0x5d,0x4e,0x47,0x4f,0x71,0x95,0xa0,0x81,0x62,0x54,0x5a,0x5a,0x59,0x56,0x4d,
+0x46,0x4b,0x4d,0x49,0x40,0x3e,0x46,0x50,0x45,0x4d,0x4c,0x45,0x40,0x43,0x4a,0x4a,
+0x45,0x51,0x58,0x4e,0x3d,0x33,0x2f,0x2a,0x3a,0x41,0x44,0x3e,0x34,0x30,0x30,0x31,
+0x2c,0x2a,0x29,0x2a,0x2f,0x35,0x37,0x37,0x2f,0x2a,0x27,0x27,0x28,0x26,0x25,0x26,
+0x28,0x25,0x2a,0x2d,0x30,0x45,0x5b,0x5d,0x4d,0x3f,0x47,0x53,0x4e,0x4f,0x54,0x4c,
+0x4d,0x55,0x55,0x49,0x3a,0x37,0x40,0x49,0x52,0x3f,0x30,0x2b,0x35,0x51,0x5d,0x50,
+0x5a,0x63,0x6d,0x6d,0x65,0x64,0x5e,0x50,0x61,0x63,0x5b,0x4c,0x3f,0x3a,0x46,0x59,
+0x61,0x5f,0x5b,0x51,0x43,0x41,0x4f,0x61,0x72,0x69,0x63,0x5d,0x52,0x4c,0x48,0x3f,
+0x4d,0x42,0x39,0x3a,0x40,0x44,0x49,0x4d,0x53,0x67,0x70,0x6c,0x68,0x62,0x59,0x55,
+0x50,0x53,0x4a,0x2f,0x26,0x34,0x45,0x5c,0x72,0x60,0x4f,0x53,0x69,0x79,0x75,0x6a,
+0x30,0x2b,0x28,0x28,0x28,0x25,0x21,0x1f,0x20,0x21,0x21,0x21,0x22,0x22,0x21,0x21,
+0x24,0x26,0x28,0x29,0x28,0x25,0x22,0x21,0x22,0x20,0x1e,0x1c,0x19,0x16,0x18,0x1c,
+0x1c,0x1f,0x21,0x1f,0x1b,0x1c,0x21,0x27,0x28,0x25,0x23,0x20,0x1f,0x1f,0x1d,0x1c,
+0x1b,0x18,0x17,0x1a,0x1e,0x1f,0x1d,0x19,0x21,0x25,0x29,0x28,0x22,0x1b,0x18,0x17,
+0x19,0x1b,0x1e,0x1e,0x1b,0x19,0x19,0x19,0x21,0x22,0x23,0x23,0x25,0x26,0x24,0x20,
+0x15,0x13,0x12,0x13,0x16,0x18,0x18,0x16,0x19,0x19,0x19,0x1d,0x24,0x2c,0x34,0x38,
+0x3b,0x3b,0x37,0x2f,0x2a,0x2b,0x30,0x34,0x3c,0x3d,0x3e,0x3d,0x3a,0x38,0x39,0x3a,
+0x34,0x34,0x33,0x30,0x2d,0x2b,0x29,0x29,0x29,0x2c,0x2e,0x2c,0x28,0x28,0x2d,0x32,
+0x31,0x33,0x32,0x2b,0x27,0x29,0x2e,0x32,0x2e,0x2c,0x2b,0x2e,0x33,0x39,0x43,0x4b,
+0x59,0x61,0x68,0x69,0x69,0x6d,0x71,0x72,0x63,0x6b,0x72,0x75,0x75,0x72,0x66,0x59,
+0x44,0x36,0x28,0x26,0x2a,0x2b,0x29,0x25,0x26,0x28,0x2a,0x2a,0x27,0x24,0x25,0x26,
+0x22,0x23,0x25,0x2a,0x2d,0x2d,0x29,0x26,0x29,0x2c,0x2d,0x29,0x26,0x28,0x2d,0x31,
+0x38,0x3b,0x3f,0x41,0x40,0x3e,0x3b,0x3a,0x40,0x46,0x4b,0x4c,0x4e,0x52,0x53,0x51,
+0x52,0x50,0x4e,0x4e,0x4e,0x4e,0x4d,0x4c,0x51,0x56,0x5b,0x5c,0x5b,0x5a,0x5b,0x5e,
+0x60,0x62,0x64,0x64,0x61,0x5e,0x5b,0x5a,0x5e,0x62,0x66,0x66,0x65,0x64,0x63,0x63,
+0x67,0x67,0x65,0x5e,0x4e,0x40,0x40,0x47,0x48,0x46,0x47,0x4f,0x58,0x60,0x67,0x6b,
+0x68,0x67,0x5b,0x52,0x53,0x56,0x5b,0x64,0x64,0x64,0x64,0x6a,0x78,0x84,0x81,0x76,
+0x7c,0x85,0x94,0x9f,0x9f,0x99,0x91,0x89,0x85,0x86,0x86,0x86,0x85,0x86,0x87,0x88,
+0x88,0x89,0x8a,0x8b,0x8b,0x8d,0x8f,0x92,0x92,0x94,0x97,0x99,0x9b,0x9d,0x9f,0xa1,
+0xa4,0xa6,0xa9,0xab,0xad,0xb0,0xb4,0xb6,0xb5,0xb6,0xb7,0xb8,0xb9,0xbb,0xbb,0xbc,
+0xba,0xba,0xba,0xba,0xbb,0xbc,0xbd,0xbe,0xba,0xba,0xbb,0xbb,0xba,0xb8,0xb7,0xb6,
+0xb5,0xb4,0xb3,0xb3,0xb4,0xb4,0xb3,0xb2,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb0,0xb0,
+0xb1,0xb2,0xb3,0xb4,0xb5,0xb5,0xb4,0xb4,0xb5,0xb5,0xb6,0xb6,0xb6,0xb5,0xb5,0xb5,
+0xb7,0xb4,0xb0,0xad,0xab,0xab,0xaa,0xa9,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,0x9f,0x9d,
+0x9c,0x9b,0x99,0x98,0x98,0x98,0x97,0x96,0x90,0x8c,0x85,0x7b,0x70,0x67,0x60,0x5c,
+0x5e,0x60,0x63,0x65,0x65,0x67,0x6a,0x6c,0x6e,0x70,0x72,0x75,0x77,0x79,0x7d,0x7f,
+0x82,0x84,0x85,0x86,0x87,0x89,0x8c,0x8e,0x95,0x95,0x95,0x96,0x96,0x95,0x94,0x92,
+0x8f,0x8c,0x89,0x86,0x84,0x80,0x7a,0x76,0x70,0x6c,0x67,0x64,0x64,0x60,0x56,0x4b,
+0x4b,0x40,0x56,0x72,0x70,0x6c,0x73,0x74,0x75,0x75,0x74,0x73,0x73,0x72,0x73,0x74,
+0x79,0x78,0x77,0x77,0x76,0x75,0x73,0x72,0x69,0x62,0x59,0x52,0x4e,0x4e,0x55,0x5d,
+0x68,0x66,0x5c,0x4c,0x54,0x81,0x9f,0x98,0x6f,0x59,0x56,0x62,0x63,0x60,0x5c,0x53,
+0x50,0x51,0x52,0x52,0x52,0x4f,0x4b,0x48,0x4a,0x4c,0x4c,0x42,0x3d,0x42,0x48,0x4e,
+0x67,0x7b,0x86,0x7a,0x60,0x46,0x35,0x2d,0x33,0x35,0x35,0x31,0x2f,0x2f,0x31,0x31,
+0x33,0x31,0x2d,0x2a,0x28,0x2c,0x33,0x3a,0x33,0x2d,0x29,0x29,0x2a,0x2a,0x2a,0x2c,
+0x30,0x28,0x2a,0x32,0x3e,0x57,0x64,0x5c,0x53,0x40,0x43,0x4b,0x42,0x43,0x4d,0x4b,
+0x4e,0x53,0x51,0x45,0x39,0x37,0x3d,0x42,0x43,0x35,0x34,0x3e,0x49,0x59,0x5e,0x54,
+0x59,0x62,0x6f,0x6d,0x5f,0x57,0x57,0x54,0x62,0x61,0x54,0x42,0x36,0x34,0x43,0x59,
+0x65,0x65,0x60,0x53,0x47,0x4a,0x5c,0x6e,0x6c,0x69,0x67,0x5f,0x5a,0x66,0x75,0x78,
+0x52,0x43,0x39,0x3e,0x49,0x4d,0x4b,0x4a,0x44,0x54,0x59,0x53,0x51,0x50,0x4e,0x4f,
+0x52,0x54,0x49,0x2c,0x2e,0x42,0x42,0x40,0x31,0x32,0x41,0x5e,0x74,0x75,0x68,0x5e,
+0x33,0x2f,0x29,0x24,0x22,0x21,0x22,0x22,0x20,0x20,0x1e,0x1c,0x1d,0x21,0x24,0x25,
+0x28,0x29,0x2b,0x2d,0x2d,0x2c,0x2a,0x29,0x24,0x1f,0x1b,0x1a,0x18,0x16,0x17,0x1a,
+0x1d,0x21,0x23,0x21,0x1d,0x1d,0x21,0x27,0x2c,0x2a,0x28,0x26,0x24,0x21,0x1d,0x1b,
+0x1c,0x18,0x15,0x18,0x1d,0x20,0x1e,0x1b,0x1c,0x21,0x27,0x28,0x24,0x1f,0x1d,0x1d,
+0x1e,0x20,0x22,0x22,0x20,0x1d,0x1b,0x19,0x1d,0x20,0x21,0x1f,0x1f,0x20,0x22,0x21,
+0x19,0x15,0x13,0x14,0x17,0x19,0x18,0x16,0x15,0x16,0x1a,0x1f,0x25,0x2a,0x2d,0x2e,
+0x2d,0x2e,0x2c,0x27,0x24,0x25,0x2a,0x2f,0x3a,0x3d,0x41,0x40,0x3c,0x39,0x3a,0x3c,
+0x32,0x32,0x31,0x30,0x2e,0x2c,0x2b,0x2a,0x2b,0x2d,0x2f,0x2e,0x2d,0x2d,0x30,0x34,
+0x35,0x39,0x39,0x33,0x2c,0x2b,0x2d,0x2e,0x2a,0x26,0x25,0x29,0x31,0x38,0x40,0x46,
+0x4b,0x56,0x5f,0x5f,0x5c,0x5b,0x59,0x56,0x66,0x70,0x79,0x77,0x6b,0x60,0x5d,0x5e,
+0x59,0x4b,0x36,0x28,0x26,0x2a,0x2a,0x26,0x22,0x26,0x2a,0x2a,0x26,0x23,0x21,0x22,
+0x25,0x26,0x28,0x2c,0x2f,0x2f,0x2b,0x28,0x26,0x29,0x2a,0x29,0x27,0x27,0x2b,0x2f,
+0x34,0x39,0x3e,0x41,0x40,0x41,0x43,0x46,0x45,0x48,0x48,0x46,0x4b,0x54,0x53,0x4d,
+0x53,0x54,0x54,0x55,0x54,0x51,0x4e,0x4b,0x4b,0x4f,0x55,0x57,0x58,0x59,0x5b,0x5e,
+0x5e,0x5f,0x60,0x60,0x5f,0x5e,0x5c,0x5b,0x56,0x59,0x5a,0x5a,0x5d,0x62,0x67,0x68,
+0x6b,0x6d,0x6a,0x5f,0x51,0x4b,0x4e,0x55,0x53,0x54,0x59,0x62,0x68,0x66,0x62,0x5f,
+0x69,0x6f,0x6c,0x63,0x5f,0x5a,0x59,0x5d,0x60,0x62,0x61,0x63,0x71,0x82,0x85,0x7d,
+0x79,0x7e,0x90,0xa0,0xa3,0xa1,0x98,0x8b,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x88,0x89,0x8a,0x8b,0x8c,0x8e,0x91,0x93,0x94,0x96,0x99,0x9c,0x9e,0xa0,0xa2,0xa4,
+0xa8,0xab,0xae,0xaf,0xaf,0xb1,0xb3,0xb6,0xb4,0xb4,0xb5,0xb6,0xb7,0xb8,0xb8,0xb9,
+0xba,0xba,0xba,0xbb,0xbb,0xbc,0xbd,0xbe,0xbb,0xbb,0xbb,0xbb,0xba,0xb9,0xb8,0xb8,
+0xb5,0xb4,0xb3,0xb4,0xb5,0xb5,0xb4,0xb3,0xb4,0xb4,0xb3,0xb3,0xb2,0xb1,0xb1,0xb1,
+0xb1,0xb2,0xb3,0xb4,0xb5,0xb5,0xb6,0xb6,0xb9,0xb9,0xb9,0xb9,0xba,0xba,0xbb,0xbb,
+0xbc,0xb9,0xb6,0xb3,0xb2,0xb1,0xb0,0xaf,0xad,0xac,0xab,0xaa,0xa8,0xa6,0xa3,0xa1,
+0xa1,0xa0,0x9f,0x9d,0x9c,0x9c,0x9d,0x9d,0x97,0x94,0x8f,0x87,0x7c,0x6e,0x61,0x58,
+0x56,0x57,0x59,0x5a,0x5b,0x5e,0x61,0x63,0x64,0x65,0x67,0x69,0x6b,0x6e,0x71,0x73,
+0x74,0x77,0x7a,0x7c,0x7d,0x80,0x85,0x89,0x8f,0x90,0x92,0x94,0x95,0x95,0x94,0x94,
+0x91,0x8f,0x8c,0x8a,0x87,0x83,0x7c,0x78,0x71,0x6c,0x67,0x65,0x64,0x5e,0x54,0x4b,
+0x47,0x54,0x67,0x70,0x6e,0x70,0x76,0x77,0x75,0x75,0x75,0x74,0x73,0x73,0x74,0x76,
+0x77,0x74,0x72,0x73,0x76,0x78,0x77,0x75,0x64,0x5b,0x57,0x5c,0x5f,0x5a,0x57,0x59,
+0x5a,0x63,0x67,0x6a,0x82,0xa2,0x9b,0x77,0x5c,0x54,0x59,0x66,0x6a,0x66,0x60,0x5c,
+0x55,0x57,0x57,0x56,0x59,0x5e,0x62,0x63,0x59,0x51,0x4f,0x46,0x42,0x47,0x4a,0x56,
+0x5d,0x6a,0x6a,0x5b,0x4a,0x3a,0x34,0x3a,0x35,0x31,0x2b,0x28,0x2b,0x32,0x36,0x35,
+0x39,0x36,0x31,0x2b,0x25,0x25,0x2d,0x37,0x36,0x30,0x2b,0x2a,0x2a,0x2a,0x2d,0x30,
+0x38,0x32,0x31,0x3a,0x4e,0x63,0x65,0x56,0x3e,0x35,0x3f,0x4a,0x43,0x3d,0x41,0x43,
+0x4a,0x4f,0x50,0x48,0x3d,0x38,0x3a,0x3d,0x48,0x40,0x41,0x49,0x50,0x58,0x5e,0x5d,
+0x5c,0x67,0x70,0x60,0x43,0x3c,0x4c,0x5a,0x60,0x60,0x58,0x4d,0x46,0x41,0x47,0x54,
+0x69,0x65,0x58,0x48,0x41,0x4b,0x61,0x72,0x64,0x66,0x6a,0x65,0x5c,0x5a,0x57,0x4d,
+0x50,0x45,0x3c,0x3b,0x38,0x30,0x2e,0x31,0x49,0x56,0x5a,0x55,0x53,0x4d,0x46,0x43,
+0x3f,0x37,0x31,0x2f,0x3e,0x46,0x33,0x2a,0x2e,0x4a,0x68,0x72,0x6c,0x61,0x57,0x51,
+0x34,0x32,0x2c,0x24,0x1f,0x1f,0x21,0x23,0x22,0x22,0x20,0x1d,0x1e,0x23,0x27,0x27,
+0x2c,0x2c,0x2d,0x2e,0x2f,0x2f,0x2f,0x2e,0x25,0x1f,0x1a,0x19,0x1a,0x1a,0x1a,0x1c,
+0x20,0x23,0x26,0x24,0x20,0x1f,0x22,0x26,0x2a,0x2b,0x2c,0x2c,0x2a,0x26,0x1f,0x1b,
+0x1a,0x18,0x17,0x19,0x1d,0x1f,0x1f,0x1d,0x1b,0x1d,0x21,0x24,0x25,0x24,0x22,0x20,
+0x23,0x24,0x25,0x26,0x26,0x24,0x20,0x1d,0x1a,0x1e,0x1f,0x1b,0x18,0x1a,0x1f,0x22,
+0x1e,0x1a,0x16,0x16,0x19,0x1a,0x18,0x15,0x14,0x16,0x1a,0x21,0x27,0x2c,0x2e,0x2e,
+0x30,0x2f,0x2d,0x29,0x26,0x26,0x2c,0x31,0x35,0x38,0x3c,0x3c,0x39,0x35,0x32,0x31,
+0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2c,0x2b,0x2d,0x2d,0x2e,0x2f,0x30,0x30,0x30,0x2f,
+0x31,0x35,0x36,0x34,0x31,0x30,0x2e,0x2b,0x29,0x26,0x25,0x2b,0x36,0x42,0x50,0x5b,
+0x67,0x69,0x63,0x55,0x4d,0x50,0x58,0x5b,0x63,0x66,0x6c,0x6c,0x60,0x52,0x4f,0x55,
+0x5c,0x5a,0x4c,0x35,0x27,0x27,0x2a,0x28,0x24,0x29,0x2d,0x2c,0x27,0x22,0x21,0x21,
+0x28,0x28,0x2a,0x2e,0x32,0x34,0x33,0x31,0x2b,0x2b,0x2b,0x2a,0x27,0x27,0x2b,0x2f,
+0x32,0x38,0x3e,0x3f,0x3e,0x41,0x49,0x50,0x4b,0x46,0x42,0x42,0x48,0x4d,0x4e,0x4b,
+0x51,0x53,0x57,0x58,0x57,0x53,0x4e,0x4b,0x46,0x48,0x4b,0x4d,0x4f,0x52,0x57,0x5b,
+0x5e,0x5e,0x5c,0x5c,0x5b,0x5b,0x5a,0x5a,0x56,0x58,0x58,0x59,0x5f,0x68,0x6e,0x6f,
+0x6a,0x71,0x6d,0x5c,0x49,0x3f,0x3a,0x38,0x42,0x40,0x40,0x43,0x47,0x4a,0x4f,0x53,
+0x72,0x7d,0x7e,0x76,0x6f,0x66,0x5f,0x5f,0x5e,0x61,0x61,0x62,0x6e,0x80,0x87,0x83,
+0x7b,0x79,0x87,0x97,0x9d,0xa0,0x9a,0x8a,0x89,0x87,0x86,0x87,0x89,0x8a,0x89,0x87,
+0x87,0x88,0x8a,0x8b,0x8c,0x8f,0x92,0x94,0x96,0x98,0x9c,0x9f,0xa1,0xa3,0xa5,0xa7,
+0xaa,0xac,0xaf,0xb0,0xaf,0xaf,0xb1,0xb3,0xb2,0xb2,0xb3,0xb4,0xb4,0xb5,0xb6,0xb6,
+0xba,0xba,0xba,0xbb,0xbb,0xbb,0xbb,0xbb,0xb9,0xb9,0xb8,0xb8,0xb7,0xb7,0xb7,0xb7,
+0xb5,0xb4,0xb3,0xb3,0xb4,0xb4,0xb3,0xb2,0xb2,0xb2,0xb1,0xb0,0xaf,0xaf,0xae,0xae,
+0xaf,0xaf,0xb0,0xb1,0xb3,0xb5,0xb6,0xb7,0xbb,0xbc,0xbc,0xbd,0xbd,0xbe,0xbf,0xc0,
+0xbf,0xbd,0xba,0xb8,0xb7,0xb5,0xb3,0xb2,0xb1,0xb0,0xaf,0xae,0xad,0xaa,0xa7,0xa5,
+0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,0xa1,0xa2,0x9e,0x9b,0x98,0x94,0x8d,0x82,0x74,0x6a,
+0x5a,0x57,0x52,0x4f,0x4f,0x50,0x52,0x53,0x58,0x59,0x5c,0x5d,0x5f,0x62,0x65,0x67,
+0x67,0x6b,0x6f,0x73,0x76,0x7b,0x82,0x87,0x8a,0x8d,0x90,0x92,0x93,0x93,0x92,0x92,
+0x91,0x8f,0x8d,0x8b,0x88,0x83,0x7d,0x78,0x72,0x6c,0x66,0x64,0x62,0x5c,0x52,0x4b,
+0x4f,0x6f,0x70,0x62,0x6b,0x6f,0x6c,0x75,0x71,0x71,0x71,0x70,0x6e,0x6e,0x70,0x72,
+0x74,0x73,0x71,0x70,0x71,0x73,0x73,0x73,0x6d,0x65,0x5d,0x5b,0x5b,0x58,0x54,0x51,
+0x4f,0x51,0x57,0x74,0x9c,0xa3,0x7e,0x56,0x4f,0x58,0x64,0x72,0x7b,0x74,0x67,0x63,
+0x5f,0x61,0x5f,0x5a,0x5d,0x69,0x79,0x83,0x67,0x55,0x52,0x4c,0x4b,0x4d,0x4b,0x5b,
+0x63,0x61,0x51,0x41,0x3c,0x39,0x3f,0x4f,0x4a,0x41,0x33,0x2c,0x30,0x39,0x3e,0x3e,
+0x3c,0x39,0x34,0x30,0x29,0x26,0x2a,0x31,0x37,0x32,0x2e,0x2c,0x2a,0x29,0x2c,0x30,
+0x42,0x46,0x45,0x4b,0x5e,0x6a,0x61,0x53,0x37,0x3a,0x49,0x57,0x54,0x47,0x44,0x4a,
+0x4d,0x4f,0x4e,0x44,0x37,0x32,0x3c,0x48,0x59,0x4f,0x3e,0x39,0x48,0x59,0x61,0x64,
+0x65,0x6d,0x69,0x4c,0x2f,0x36,0x51,0x60,0x64,0x5c,0x4a,0x3e,0x3c,0x3f,0x49,0x57,
+0x65,0x5d,0x4d,0x3d,0x3c,0x4d,0x63,0x71,0x6b,0x67,0x68,0x67,0x5e,0x59,0x5b,0x5b,
+0x5f,0x53,0x46,0x3a,0x2b,0x21,0x27,0x35,0x52,0x5d,0x61,0x5e,0x5b,0x4f,0x3f,0x36,
+0x37,0x2c,0x2d,0x33,0x3e,0x3a,0x2b,0x30,0x4e,0x68,0x7c,0x79,0x6d,0x65,0x5d,0x53,
+0x34,0x34,0x31,0x2a,0x24,0x21,0x22,0x24,0x24,0x27,0x28,0x26,0x26,0x2a,0x2a,0x28,
+0x2b,0x2b,0x2a,0x2a,0x2b,0x2c,0x2b,0x2b,0x26,0x1f,0x19,0x19,0x1c,0x1d,0x1e,0x1e,
+0x20,0x23,0x26,0x25,0x22,0x20,0x22,0x25,0x29,0x2c,0x30,0x33,0x32,0x2c,0x23,0x1d,
+0x16,0x18,0x1b,0x1e,0x1f,0x1f,0x1d,0x1c,0x1d,0x1b,0x1b,0x1f,0x25,0x27,0x25,0x21,
+0x25,0x25,0x27,0x29,0x2b,0x29,0x25,0x22,0x1c,0x20,0x22,0x1d,0x18,0x1b,0x21,0x26,
+0x23,0x1e,0x19,0x18,0x1a,0x1a,0x18,0x14,0x16,0x17,0x19,0x20,0x28,0x30,0x35,0x37,
+0x34,0x31,0x2d,0x27,0x22,0x21,0x26,0x2c,0x34,0x35,0x37,0x38,0x36,0x31,0x2a,0x26,
+0x28,0x29,0x2a,0x2b,0x2d,0x2e,0x2d,0x2c,0x2c,0x2b,0x2a,0x2b,0x2d,0x2c,0x28,0x25,
+0x27,0x2a,0x2d,0x30,0x34,0x35,0x31,0x2b,0x26,0x28,0x2e,0x38,0x42,0x4e,0x5c,0x67,
+0x68,0x73,0x78,0x71,0x68,0x62,0x5c,0x56,0x50,0x4a,0x4b,0x52,0x52,0x47,0x41,0x42,
+0x53,0x5f,0x5c,0x43,0x2c,0x28,0x2a,0x2a,0x2a,0x2e,0x31,0x2f,0x29,0x24,0x23,0x24,
+0x29,0x28,0x2a,0x2e,0x34,0x3a,0x3c,0x3c,0x39,0x37,0x35,0x32,0x2e,0x2d,0x31,0x35,
+0x3a,0x3f,0x43,0x40,0x3b,0x3c,0x45,0x4e,0x52,0x47,0x41,0x44,0x48,0x48,0x49,0x4d,
+0x48,0x4c,0x52,0x54,0x53,0x50,0x4c,0x4a,0x49,0x48,0x48,0x48,0x4a,0x4f,0x54,0x58,
+0x5f,0x5e,0x5d,0x5c,0x5b,0x59,0x57,0x56,0x57,0x59,0x5a,0x5a,0x5e,0x64,0x65,0x62,
+0x5e,0x6c,0x71,0x63,0x53,0x48,0x3e,0x34,0x3a,0x41,0x4e,0x5c,0x64,0x69,0x70,0x76,
+0x76,0x7c,0x75,0x68,0x61,0x5e,0x5d,0x62,0x61,0x65,0x65,0x65,0x6f,0x7f,0x87,0x85,
+0x84,0x7a,0x80,0x8d,0x94,0x9c,0x9a,0x8b,0x8b,0x88,0x87,0x88,0x8b,0x8c,0x8a,0x88,
+0x87,0x88,0x8a,0x8b,0x8d,0x90,0x93,0x95,0x98,0x9a,0x9d,0xa0,0xa3,0xa5,0xa8,0xa9,
+0xa9,0xac,0xaf,0xaf,0xad,0xad,0xaf,0xb1,0xb1,0xb2,0xb2,0xb3,0xb4,0xb4,0xb5,0xb5,
+0xb9,0xba,0xba,0xba,0xb9,0xb9,0xb8,0xb7,0xb7,0xb6,0xb5,0xb4,0xb4,0xb4,0xb5,0xb5,
+0xb4,0xb3,0xb2,0xb2,0xb2,0xb1,0xb0,0xaf,0xae,0xae,0xad,0xac,0xab,0xaa,0xaa,0xa9,
+0xab,0xab,0xac,0xae,0xb0,0xb3,0xb6,0xb8,0xbc,0xbd,0xbd,0xbe,0xbf,0xc0,0xc1,0xc2,
+0xc1,0xbf,0xbc,0xba,0xb8,0xb6,0xb4,0xb2,0xb3,0xb2,0xb1,0xb0,0xaf,0xad,0xaa,0xa7,
+0xa8,0xa7,0xa6,0xa4,0xa3,0xa3,0xa4,0xa5,0xa2,0x9f,0x9c,0x9c,0x9b,0x94,0x88,0x7f,
+0x70,0x68,0x5e,0x55,0x52,0x51,0x52,0x52,0x4f,0x51,0x53,0x55,0x57,0x5a,0x5d,0x5f,
+0x5f,0x64,0x69,0x6e,0x72,0x79,0x81,0x87,0x8b,0x8d,0x91,0x92,0x92,0x91,0x90,0x8f,
+0x8d,0x8b,0x8a,0x89,0x87,0x83,0x7c,0x77,0x72,0x6b,0x65,0x62,0x60,0x5a,0x51,0x4b,
+0x6b,0x70,0x76,0x6b,0x5d,0x67,0x71,0x67,0x6d,0x6d,0x6c,0x6a,0x67,0x66,0x68,0x6a,
+0x72,0x72,0x70,0x6d,0x6a,0x69,0x6b,0x6d,0x6c,0x6e,0x6b,0x64,0x62,0x64,0x64,0x61,
+0x55,0x4f,0x55,0x7a,0x9d,0x91,0x6d,0x5d,0x51,0x66,0x76,0x84,0x8f,0x82,0x6b,0x63,
+0x61,0x5b,0x53,0x52,0x5d,0x6a,0x6e,0x6b,0x68,0x50,0x4d,0x4a,0x4a,0x4a,0x45,0x56,
+0x5d,0x59,0x4b,0x47,0x4f,0x50,0x53,0x63,0x62,0x55,0x43,0x36,0x36,0x3e,0x44,0x44,
+0x3f,0x3b,0x38,0x36,0x31,0x2c,0x2b,0x2e,0x36,0x34,0x31,0x2e,0x2a,0x27,0x2a,0x2e,
+0x4b,0x58,0x58,0x5b,0x6b,0x6e,0x5f,0x53,0x45,0x47,0x4d,0x53,0x4f,0x41,0x41,0x50,
+0x55,0x52,0x4a,0x3a,0x2a,0x2a,0x40,0x59,0x59,0x4c,0x2f,0x26,0x46,0x64,0x67,0x62,
+0x67,0x6b,0x5d,0x3d,0x2e,0x46,0x63,0x69,0x60,0x58,0x4a,0x43,0x46,0x47,0x4a,0x52,
+0x64,0x5d,0x4d,0x40,0x44,0x58,0x6c,0x76,0x73,0x6c,0x70,0x72,0x65,0x5c,0x68,0x77,
+0x68,0x57,0x44,0x33,0x26,0x25,0x38,0x4e,0x61,0x67,0x63,0x5d,0x5a,0x51,0x42,0x3b,
+0x47,0x45,0x46,0x3d,0x34,0x2e,0x2e,0x44,0x5e,0x61,0x65,0x6b,0x72,0x70,0x61,0x51,
+0x31,0x37,0x39,0x30,0x25,0x1f,0x22,0x25,0x2b,0x2a,0x28,0x28,0x29,0x2c,0x2f,0x31,
+0x2d,0x2a,0x29,0x2c,0x2b,0x26,0x23,0x23,0x24,0x20,0x1c,0x1a,0x1b,0x1d,0x1d,0x1d,
+0x21,0x20,0x1f,0x21,0x23,0x25,0x24,0x23,0x24,0x22,0x25,0x2b,0x2d,0x28,0x22,0x20,
+0x1c,0x19,0x1a,0x1f,0x23,0x22,0x1e,0x1c,0x18,0x1a,0x1b,0x1d,0x23,0x28,0x26,0x1f,
+0x25,0x21,0x23,0x2a,0x2e,0x2c,0x29,0x28,0x23,0x22,0x21,0x20,0x1d,0x1a,0x1d,0x21,
+0x24,0x21,0x1d,0x1a,0x17,0x15,0x12,0x10,0x11,0x14,0x18,0x1e,0x24,0x2a,0x31,0x35,
+0x37,0x38,0x34,0x2c,0x24,0x22,0x22,0x22,0x2d,0x2f,0x32,0x34,0x34,0x30,0x2c,0x29,
+0x27,0x2a,0x2a,0x29,0x2b,0x2f,0x2e,0x29,0x29,0x2b,0x2c,0x2b,0x2a,0x2a,0x2c,0x2e,
+0x2c,0x2e,0x31,0x34,0x35,0x32,0x2d,0x29,0x28,0x29,0x2a,0x31,0x40,0x50,0x58,0x58,
+0x54,0x59,0x60,0x67,0x6c,0x6e,0x70,0x70,0x67,0x5c,0x54,0x54,0x56,0x50,0x46,0x3f,
+0x43,0x48,0x45,0x3a,0x33,0x32,0x30,0x29,0x28,0x2d,0x30,0x2f,0x29,0x25,0x26,0x29,
+0x24,0x26,0x2a,0x32,0x39,0x3d,0x3c,0x39,0x3c,0x37,0x38,0x3d,0x3a,0x30,0x2e,0x34,
+0x3f,0x3f,0x40,0x40,0x40,0x40,0x40,0x3f,0x42,0x45,0x48,0x4a,0x49,0x48,0x47,0x47,
+0x46,0x48,0x4a,0x4b,0x4a,0x49,0x49,0x49,0x49,0x49,0x49,0x4a,0x4c,0x4e,0x50,0x52,
+0x57,0x5a,0x5b,0x58,0x58,0x5c,0x60,0x60,0x5a,0x5a,0x5b,0x5d,0x60,0x62,0x64,0x64,
+0x5d,0x5f,0x5d,0x57,0x4c,0x43,0x3e,0x3c,0x41,0x49,0x52,0x57,0x58,0x5a,0x61,0x67,
+0x65,0x6a,0x6f,0x6f,0x68,0x61,0x5d,0x5b,0x62,0x64,0x66,0x66,0x6a,0x73,0x81,0x8b,
+0x86,0x7e,0x7c,0x88,0x8a,0x8d,0x93,0x85,0x89,0x88,0x88,0x88,0x89,0x8a,0x8b,0x8c,
+0x8a,0x8a,0x8c,0x8d,0x90,0x92,0x94,0x95,0x97,0x9a,0x9e,0xa2,0xa5,0xa6,0xa6,0xa6,
+0xa9,0xaa,0xab,0xab,0xab,0xab,0xac,0xad,0xaf,0xaf,0xaf,0xaf,0xb0,0xb0,0xb1,0xb2,
+0xb3,0xb4,0xb4,0xb5,0xb6,0xb6,0xb6,0xb6,0xb4,0xb2,0xb0,0xaf,0xb0,0xb0,0xb1,0xb1,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xac,0xaa,0xa7,0xa6,0xa4,0xa3,0xa2,0xa2,0xa2,0xa2,
+0xa4,0xa5,0xa8,0xab,0xae,0xb3,0xb6,0xb8,0xbc,0xbe,0xc0,0xc1,0xc1,0xc1,0xc2,0xc4,
+0xc2,0xc1,0xbf,0xbd,0xbb,0xba,0xb9,0xb8,0xb6,0xb4,0xb2,0xb1,0xb0,0xaf,0xac,0xab,
+0xa7,0xa7,0xa8,0xa7,0xa7,0xa5,0xa4,0xa3,0xa4,0xa5,0xa6,0xa5,0xa0,0x9b,0x97,0x95,
+0x8a,0x84,0x7a,0x6f,0x64,0x5d,0x58,0x56,0x57,0x56,0x56,0x56,0x58,0x5a,0x5d,0x5f,
+0x64,0x68,0x6f,0x75,0x7a,0x80,0x86,0x8a,0x8e,0x8e,0x8e,0x8f,0x90,0x90,0x8e,0x8c,
+0x8d,0x8b,0x88,0x86,0x84,0x81,0x7c,0x78,0x73,0x6f,0x64,0x5f,0x62,0x58,0x51,0x5b,
+0x73,0x81,0x80,0x6d,0x61,0x66,0x6a,0x68,0x65,0x67,0x69,0x67,0x62,0x5e,0x62,0x69,
+0x6f,0x70,0x6f,0x6a,0x65,0x61,0x5c,0x58,0x56,0x5d,0x60,0x5a,0x50,0x4c,0x51,0x57,
+0x52,0x46,0x67,0x90,0x8e,0x7c,0x6a,0x53,0x5b,0x65,0x7e,0x95,0x93,0x7b,0x68,0x64,
+0x69,0x69,0x5f,0x56,0x5a,0x60,0x64,0x68,0x59,0x4c,0x42,0x4c,0x44,0x54,0x54,0x52,
+0x60,0x5c,0x53,0x4a,0x4a,0x51,0x57,0x58,0x52,0x46,0x3e,0x3c,0x3b,0x40,0x43,0x3f,
+0x42,0x41,0x52,0x54,0x4e,0x38,0x36,0x31,0x39,0x31,0x31,0x37,0x35,0x2a,0x27,0x2c,
+0x3e,0x58,0x6f,0x74,0x70,0x6b,0x60,0x53,0x4d,0x4e,0x56,0x4c,0x45,0x36,0x3f,0x48,
+0x4f,0x4a,0x3e,0x29,0x1c,0x2d,0x4d,0x60,0x69,0x47,0x2c,0x34,0x4f,0x62,0x65,0x62,
+0x64,0x65,0x60,0x50,0x49,0x57,0x66,0x66,0x62,0x60,0x5a,0x55,0x4c,0x3d,0x3c,0x4a,
+0x46,0x45,0x3c,0x31,0x33,0x45,0x55,0x5c,0x5a,0x53,0x45,0x3d,0x4a,0x5a,0x56,0x45,
+0x40,0x41,0x3c,0x30,0x2d,0x3a,0x4e,0x5b,0x65,0x71,0x74,0x6e,0x64,0x54,0x48,0x47,
+0x4f,0x51,0x4b,0x46,0x42,0x34,0x32,0x45,0x51,0x61,0x5e,0x59,0x51,0x48,0x4d,0x50,
+0x3b,0x38,0x36,0x33,0x2c,0x26,0x29,0x31,0x2a,0x2b,0x2b,0x2d,0x2f,0x31,0x33,0x35,
+0x34,0x33,0x34,0x34,0x30,0x28,0x23,0x23,0x21,0x1f,0x1c,0x1b,0x1c,0x1d,0x1f,0x1f,
+0x1f,0x20,0x20,0x20,0x20,0x21,0x23,0x25,0x23,0x20,0x1f,0x22,0x22,0x1f,0x1b,0x1a,
+0x1c,0x1a,0x1b,0x20,0x24,0x23,0x1f,0x1d,0x18,0x19,0x19,0x1a,0x1f,0x25,0x27,0x24,
+0x24,0x20,0x21,0x27,0x2b,0x2a,0x27,0x26,0x25,0x23,0x22,0x22,0x1f,0x1c,0x1d,0x1f,
+0x23,0x20,0x1d,0x1a,0x17,0x16,0x15,0x14,0x15,0x16,0x17,0x1a,0x1f,0x27,0x2f,0x35,
+0x35,0x34,0x30,0x29,0x23,0x20,0x1c,0x18,0x21,0x24,0x28,0x2c,0x2e,0x2e,0x2d,0x2c,
+0x2b,0x2b,0x2a,0x28,0x2b,0x31,0x33,0x31,0x29,0x2a,0x2c,0x2c,0x2c,0x2b,0x2b,0x2b,
+0x2d,0x2f,0x31,0x32,0x32,0x2f,0x2c,0x2a,0x2c,0x2e,0x32,0x37,0x41,0x49,0x4a,0x45,
+0x45,0x4f,0x5d,0x67,0x6a,0x6a,0x6a,0x6a,0x70,0x6b,0x6c,0x74,0x77,0x6b,0x57,0x48,
+0x43,0x43,0x3b,0x30,0x2b,0x2e,0x2d,0x29,0x29,0x2d,0x2f,0x2d,0x28,0x24,0x26,0x28,
+0x25,0x28,0x2e,0x35,0x3b,0x3f,0x3f,0x3e,0x3c,0x3a,0x3b,0x3e,0x3b,0x35,0x35,0x39,
+0x3c,0x3d,0x3f,0x40,0x41,0x40,0x3f,0x3e,0x42,0x44,0x47,0x48,0x48,0x47,0x46,0x46,
+0x47,0x47,0x47,0x46,0x47,0x48,0x49,0x4b,0x4a,0x49,0x48,0x47,0x48,0x4b,0x4e,0x51,
+0x54,0x57,0x59,0x57,0x57,0x5c,0x5f,0x60,0x5a,0x59,0x58,0x5b,0x60,0x62,0x61,0x5e,
+0x5c,0x5c,0x59,0x51,0x45,0x3b,0x36,0x34,0x3a,0x3d,0x41,0x43,0x46,0x4d,0x58,0x60,
+0x6b,0x6c,0x6b,0x67,0x61,0x60,0x65,0x6a,0x69,0x67,0x64,0x63,0x65,0x6e,0x7f,0x8f,
+0x8b,0x82,0x7b,0x81,0x80,0x83,0x8e,0x84,0x88,0x89,0x89,0x89,0x8a,0x8b,0x8b,0x8c,
+0x8b,0x8b,0x8c,0x8e,0x90,0x92,0x94,0x95,0x98,0x9a,0x9e,0xa1,0xa3,0xa4,0xa4,0xa3,
+0xa6,0xa7,0xa9,0xaa,0xaa,0xaa,0xab,0xac,0xa9,0xa9,0xaa,0xab,0xac,0xad,0xae,0xae,
+0xb0,0xb1,0xb2,0xb2,0xb3,0xb3,0xb3,0xb3,0xaf,0xae,0xab,0xaa,0xab,0xab,0xaa,0xa9,
+0xab,0xa9,0xa7,0xa6,0xa6,0xa5,0xa3,0xa2,0x9e,0x9d,0x9c,0x9a,0x99,0x98,0x98,0x98,
+0x9b,0x9e,0xa2,0xa7,0xab,0xb0,0xb6,0xb9,0xbd,0xbf,0xc2,0xc3,0xc3,0xc4,0xc4,0xc5,
+0xc4,0xc3,0xc1,0xbf,0xbd,0xbb,0xba,0xb9,0xb7,0xb5,0xb3,0xb2,0xb1,0xb0,0xad,0xac,
+0xa9,0xa9,0xa9,0xa9,0xa8,0xa7,0xa7,0xa6,0xa5,0xa7,0xa8,0xa6,0xa3,0x9f,0x9d,0x9b,
+0x9c,0x98,0x92,0x8b,0x84,0x7d,0x79,0x76,0x70,0x6f,0x6d,0x6c,0x6d,0x6f,0x72,0x74,
+0x79,0x7c,0x81,0x85,0x88,0x8b,0x8f,0x92,0x91,0x91,0x91,0x92,0x92,0x91,0x8f,0x8d,
+0x8e,0x8b,0x88,0x86,0x85,0x82,0x7d,0x79,0x74,0x70,0x68,0x63,0x60,0x59,0x5a,0x64,
+0x74,0x83,0x8a,0x7f,0x6b,0x60,0x61,0x65,0x5a,0x5c,0x5f,0x62,0x60,0x5f,0x62,0x68,
+0x6a,0x6b,0x6a,0x68,0x65,0x60,0x56,0x4d,0x48,0x56,0x5d,0x5b,0x5b,0x5e,0x59,0x4e,
+0x46,0x62,0x8d,0x98,0x7e,0x6a,0x61,0x51,0x63,0x6b,0x7d,0x8c,0x86,0x72,0x68,0x6c,
+0x71,0x69,0x58,0x51,0x5a,0x5f,0x59,0x54,0x55,0x4e,0x46,0x4e,0x48,0x53,0x51,0x50,
+0x5d,0x60,0x60,0x5b,0x57,0x56,0x55,0x53,0x49,0x43,0x42,0x42,0x3f,0x41,0x42,0x3d,
+0x3c,0x3b,0x54,0x66,0x6e,0x57,0x46,0x33,0x37,0x2d,0x28,0x2a,0x2c,0x29,0x2b,0x30,
+0x32,0x52,0x71,0x7d,0x79,0x6f,0x5f,0x4f,0x4d,0x49,0x4e,0x47,0x44,0x36,0x3e,0x47,
+0x53,0x4e,0x40,0x27,0x18,0x2e,0x5b,0x78,0x61,0x41,0x2b,0x36,0x4e,0x5a,0x58,0x54,
+0x6a,0x6c,0x5e,0x4a,0x47,0x57,0x63,0x65,0x64,0x6a,0x63,0x50,0x40,0x33,0x2e,0x31,
+0x1e,0x23,0x23,0x1f,0x24,0x32,0x3d,0x3f,0x37,0x2c,0x2a,0x3a,0x51,0x5d,0x5e,0x5a,
+0x4e,0x49,0x40,0x38,0x39,0x45,0x57,0x65,0x71,0x70,0x6b,0x6c,0x70,0x64,0x51,0x46,
+0x48,0x57,0x5d,0x5a,0x4b,0x30,0x2a,0x3d,0x64,0x67,0x60,0x6a,0x74,0x6a,0x5e,0x51,
+0x48,0x42,0x42,0x44,0x3d,0x2e,0x28,0x2b,0x29,0x2a,0x2c,0x2e,0x30,0x31,0x32,0x33,
+0x2d,0x2f,0x31,0x31,0x2d,0x26,0x23,0x23,0x21,0x21,0x20,0x1f,0x1e,0x1e,0x1f,0x20,
+0x21,0x22,0x23,0x21,0x20,0x21,0x25,0x29,0x27,0x22,0x1d,0x1d,0x1d,0x1b,0x1a,0x1a,
+0x1c,0x1a,0x1c,0x21,0x24,0x21,0x1e,0x1c,0x1b,0x1b,0x1a,0x18,0x1b,0x22,0x27,0x28,
+0x24,0x20,0x1e,0x21,0x24,0x25,0x23,0x22,0x22,0x1f,0x1e,0x1f,0x1e,0x1c,0x1b,0x1c,
+0x20,0x1f,0x1d,0x19,0x16,0x14,0x14,0x14,0x16,0x17,0x18,0x1a,0x1d,0x23,0x29,0x2e,
+0x33,0x33,0x31,0x2e,0x2d,0x2c,0x28,0x24,0x26,0x27,0x28,0x2a,0x2b,0x2c,0x2c,0x2c,
+0x29,0x29,0x28,0x28,0x2a,0x2f,0x31,0x30,0x2c,0x2d,0x2e,0x30,0x31,0x30,0x2e,0x2c,
+0x33,0x35,0x36,0x35,0x32,0x30,0x2f,0x2f,0x32,0x36,0x3b,0x43,0x4d,0x55,0x58,0x56,
+0x4c,0x51,0x56,0x58,0x58,0x5b,0x62,0x69,0x61,0x65,0x6e,0x76,0x73,0x63,0x4e,0x40,
+0x52,0x4a,0x3c,0x30,0x2f,0x34,0x35,0x32,0x2c,0x2f,0x31,0x2e,0x29,0x26,0x27,0x2a,
+0x27,0x2b,0x31,0x36,0x3a,0x3b,0x3c,0x3d,0x3c,0x3d,0x3e,0x3d,0x3d,0x3d,0x3e,0x3f,
+0x3c,0x3d,0x3f,0x41,0x41,0x3f,0x3d,0x3b,0x41,0x43,0x45,0x45,0x45,0x44,0x44,0x45,
+0x44,0x42,0x41,0x41,0x42,0x46,0x4a,0x4d,0x4b,0x4a,0x47,0x45,0x46,0x49,0x4c,0x4e,
+0x51,0x54,0x55,0x54,0x55,0x57,0x5a,0x5a,0x57,0x55,0x54,0x59,0x5f,0x62,0x5f,0x5b,
+0x4f,0x51,0x52,0x4f,0x4b,0x49,0x4a,0x4c,0x49,0x4a,0x4b,0x4d,0x50,0x58,0x62,0x6a,
+0x5f,0x60,0x5f,0x5b,0x59,0x5e,0x69,0x73,0x6d,0x68,0x66,0x66,0x65,0x69,0x7a,0x8d,
+0x8f,0x8a,0x82,0x82,0x7f,0x80,0x8b,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8c,0x8b,0x8b,
+0x8c,0x8c,0x8d,0x8e,0x90,0x92,0x94,0x95,0x98,0x9a,0x9d,0x9f,0xa1,0xa1,0xa1,0xa0,
+0xa3,0xa5,0xa7,0xa8,0xa7,0xa7,0xa6,0xa7,0xa5,0xa6,0xa7,0xa8,0xaa,0xab,0xac,0xad,
+0xad,0xad,0xae,0xae,0xaf,0xae,0xae,0xae,0xad,0xab,0xa9,0xa8,0xa7,0xa6,0xa4,0xa2,
+0xa5,0xa2,0x9f,0x9d,0x9c,0x9b,0x9a,0x9a,0x93,0x92,0x90,0x8f,0x8e,0x8e,0x8e,0x8e,
+0x93,0x98,0x9e,0xa3,0xa7,0xac,0xb3,0xb8,0xbd,0xbf,0xc3,0xc5,0xc6,0xc6,0xc6,0xc6,
+0xc6,0xc5,0xc4,0xc1,0xbf,0xbc,0xba,0xb9,0xb7,0xb5,0xb4,0xb2,0xb1,0xaf,0xad,0xab,
+0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa6,0xa8,0xa8,0xa8,0xa6,0xa4,0xa3,0xa3,
+0xa4,0xa3,0xa2,0xa0,0x9c,0x98,0x95,0x92,0x90,0x8e,0x8c,0x8a,0x89,0x8a,0x8c,0x8d,
+0x90,0x92,0x94,0x95,0x95,0x96,0x97,0x98,0x98,0x97,0x96,0x96,0x95,0x93,0x90,0x8d,
+0x8d,0x8b,0x88,0x86,0x85,0x82,0x7d,0x7a,0x73,0x6c,0x68,0x64,0x5b,0x59,0x62,0x69,
+0x6a,0x7a,0x8d,0x92,0x7f,0x67,0x62,0x6a,0x64,0x63,0x62,0x60,0x5d,0x5b,0x5f,0x64,
+0x6c,0x6a,0x66,0x65,0x66,0x63,0x59,0x4d,0x46,0x5c,0x69,0x66,0x6a,0x75,0x70,0x5e,
+0x6d,0x90,0xa2,0x8b,0x71,0x6b,0x64,0x55,0x66,0x6a,0x75,0x7a,0x71,0x63,0x64,0x70,
+0x72,0x6d,0x5d,0x50,0x50,0x50,0x4e,0x4f,0x4b,0x4f,0x4a,0x50,0x51,0x55,0x4e,0x4f,
+0x56,0x5f,0x66,0x64,0x5b,0x53,0x4c,0x49,0x44,0x44,0x47,0x45,0x3f,0x41,0x43,0x3e,
+0x37,0x35,0x54,0x76,0x8d,0x75,0x57,0x38,0x30,0x2e,0x2e,0x31,0x32,0x2e,0x29,0x26,
+0x3a,0x53,0x6d,0x75,0x71,0x6a,0x5f,0x56,0x58,0x4b,0x4c,0x4a,0x4c,0x3e,0x46,0x4f,
+0x59,0x4f,0x43,0x36,0x34,0x47,0x5e,0x65,0x53,0x39,0x2e,0x44,0x5f,0x65,0x61,0x60,
+0x6c,0x6d,0x55,0x3d,0x44,0x56,0x5e,0x61,0x61,0x67,0x60,0x4f,0x3c,0x2d,0x29,0x31,
+0x55,0x5c,0x5d,0x57,0x54,0x55,0x52,0x4b,0x36,0x36,0x41,0x52,0x5d,0x5f,0x5f,0x62,
+0x4d,0x43,0x3a,0x38,0x3a,0x41,0x50,0x5e,0x69,0x6f,0x74,0x7a,0x77,0x62,0x4c,0x45,
+0x4a,0x54,0x53,0x4b,0x3e,0x2a,0x2e,0x48,0x53,0x5d,0x61,0x74,0x7f,0x70,0x5c,0x4a,
+0x39,0x38,0x3a,0x3d,0x38,0x2e,0x28,0x29,0x2a,0x2b,0x2b,0x2c,0x2d,0x2e,0x2e,0x2e,
+0x2a,0x28,0x27,0x25,0x23,0x21,0x20,0x20,0x25,0x26,0x26,0x24,0x20,0x1e,0x1e,0x1f,
+0x22,0x22,0x22,0x22,0x22,0x23,0x25,0x26,0x28,0x23,0x1e,0x1c,0x1d,0x1e,0x1e,0x1e,
+0x1b,0x1b,0x1e,0x22,0x22,0x1e,0x1b,0x1a,0x1e,0x1e,0x1c,0x1a,0x1a,0x1e,0x24,0x28,
+0x27,0x22,0x1e,0x1e,0x21,0x23,0x23,0x23,0x22,0x1d,0x1a,0x1b,0x1d,0x1d,0x1d,0x1d,
+0x1f,0x20,0x1f,0x1d,0x19,0x16,0x14,0x14,0x14,0x17,0x1a,0x1d,0x1f,0x21,0x23,0x24,
+0x2c,0x2f,0x32,0x33,0x36,0x39,0x3b,0x3a,0x34,0x32,0x30,0x2e,0x2c,0x2b,0x2b,0x2b,
+0x26,0x28,0x2a,0x2d,0x2e,0x2f,0x2d,0x2c,0x2f,0x2e,0x2e,0x31,0x33,0x34,0x33,0x31,
+0x36,0x39,0x3b,0x39,0x35,0x32,0x31,0x33,0x38,0x38,0x3b,0x43,0x51,0x61,0x6e,0x73,
+0x80,0x7a,0x70,0x62,0x56,0x52,0x54,0x57,0x59,0x61,0x69,0x6b,0x63,0x5a,0x55,0x55,
+0x57,0x4a,0x3a,0x2f,0x2f,0x34,0x35,0x33,0x33,0x34,0x35,0x32,0x2d,0x2a,0x2c,0x2e,
+0x2e,0x32,0x37,0x39,0x38,0x37,0x37,0x38,0x3b,0x3f,0x3f,0x3c,0x3d,0x41,0x43,0x40,
+0x40,0x41,0x41,0x40,0x3f,0x3d,0x3b,0x39,0x40,0x41,0x43,0x43,0x43,0x43,0x43,0x44,
+0x41,0x3f,0x3d,0x3e,0x41,0x46,0x4a,0x4d,0x4c,0x4b,0x49,0x47,0x47,0x49,0x4a,0x4c,
+0x50,0x51,0x52,0x52,0x51,0x51,0x51,0x51,0x50,0x50,0x52,0x58,0x5e,0x61,0x5f,0x5d,
+0x52,0x53,0x51,0x4c,0x46,0x43,0x45,0x48,0x43,0x45,0x49,0x4d,0x51,0x55,0x58,0x5a,
+0x57,0x5b,0x5e,0x5d,0x5c,0x5e,0x65,0x6b,0x6a,0x66,0x68,0x6c,0x69,0x66,0x71,0x83,
+0x8c,0x90,0x8a,0x89,0x84,0x82,0x8a,0x88,0x88,0x89,0x8b,0x8d,0x8d,0x8d,0x8c,0x8b,
+0x8d,0x8d,0x8e,0x8f,0x91,0x92,0x94,0x95,0x97,0x99,0x9b,0x9e,0x9f,0xa0,0x9f,0x9f,
+0xa2,0xa4,0xa6,0xa6,0xa4,0xa1,0x9f,0x9f,0xa1,0xa2,0xa3,0xa5,0xa7,0xa9,0xaa,0xab,
+0xaa,0xaa,0xab,0xab,0xab,0xaa,0xaa,0xaa,0xa9,0xa8,0xa6,0xa4,0xa2,0xa0,0x9d,0x9a,
+0x9d,0x9a,0x97,0x95,0x93,0x91,0x90,0x8e,0x89,0x87,0x85,0x83,0x83,0x86,0x88,0x8a,
+0x91,0x97,0x9d,0xa1,0xa3,0xa7,0xae,0xb4,0xb9,0xbc,0xc1,0xc4,0xc6,0xc6,0xc7,0xc7,
+0xc7,0xc6,0xc5,0xc2,0xc0,0xbd,0xbb,0xba,0xb6,0xb5,0xb3,0xb2,0xb0,0xae,0xab,0xa8,
+0xa8,0xa8,0xa7,0xa7,0xa8,0xa8,0xa9,0xa9,0xa7,0xa8,0xa9,0xa8,0xa7,0xa6,0xa7,0xa8,
+0xa4,0xa5,0xa6,0xa6,0xa5,0xa4,0xa2,0xa0,0xa3,0xa2,0xa1,0xa0,0x9f,0x9e,0x9e,0x9e,
+0xa0,0xa0,0xa0,0xa0,0x9f,0x9e,0x9d,0x9d,0x9e,0x9d,0x9b,0x9a,0x98,0x95,0x92,0x8f,
+0x8d,0x8a,0x87,0x85,0x84,0x81,0x7d,0x79,0x73,0x68,0x67,0x66,0x5b,0x5d,0x68,0x69,
+0x61,0x6f,0x86,0x96,0x90,0x7b,0x6d,0x6a,0x71,0x6d,0x67,0x5f,0x58,0x55,0x5b,0x63,
+0x70,0x6b,0x64,0x61,0x63,0x65,0x61,0x59,0x71,0x80,0x80,0x6e,0x64,0x6d,0x72,0x6e,
+0x8a,0x9c,0x91,0x74,0x6c,0x72,0x6b,0x60,0x66,0x66,0x6a,0x6c,0x63,0x5b,0x62,0x71,
+0x75,0x70,0x5e,0x4e,0x4a,0x49,0x4b,0x52,0x46,0x51,0x4f,0x51,0x58,0x59,0x51,0x55,
+0x55,0x5f,0x66,0x63,0x57,0x4c,0x47,0x46,0x48,0x4a,0x4c,0x47,0x40,0x44,0x49,0x45,
+0x3c,0x38,0x59,0x81,0x9a,0x83,0x66,0x48,0x45,0x3b,0x2f,0x2b,0x2f,0x33,0x34,0x32,
+0x4d,0x5d,0x6c,0x6d,0x66,0x61,0x5f,0x5d,0x58,0x45,0x43,0x43,0x49,0x3b,0x42,0x4c,
+0x55,0x58,0x56,0x46,0x36,0x42,0x5e,0x6f,0x5b,0x43,0x3e,0x57,0x6c,0x6b,0x63,0x63,
+0x6c,0x69,0x49,0x34,0x47,0x5a,0x5b,0x5d,0x62,0x5c,0x53,0x4a,0x39,0x24,0x28,0x3f,
+0x53,0x5c,0x60,0x5d,0x5b,0x5c,0x57,0x4e,0x46,0x52,0x5d,0x60,0x63,0x63,0x5a,0x4e,
+0x45,0x3f,0x3f,0x44,0x44,0x45,0x52,0x63,0x6d,0x79,0x82,0x7f,0x6b,0x4d,0x3b,0x3e,
+0x4a,0x4d,0x49,0x47,0x45,0x37,0x35,0x48,0x5b,0x6c,0x6f,0x76,0x79,0x6e,0x64,0x58,
+0x64,0x62,0x56,0x42,0x32,0x2b,0x27,0x24,0x2c,0x2b,0x2b,0x2b,0x2b,0x2d,0x2e,0x2f,
+0x34,0x2f,0x27,0x21,0x20,0x21,0x22,0x21,0x28,0x29,0x29,0x27,0x23,0x21,0x20,0x21,
+0x22,0x20,0x20,0x23,0x26,0x27,0x24,0x20,0x20,0x1e,0x1b,0x1a,0x1c,0x1f,0x1f,0x1e,
+0x1e,0x1e,0x21,0x23,0x22,0x1d,0x1a,0x1a,0x1d,0x1d,0x1d,0x1c,0x1b,0x1c,0x21,0x25,
+0x29,0x26,0x23,0x23,0x28,0x2d,0x2e,0x2d,0x2a,0x23,0x1d,0x1d,0x1f,0x20,0x20,0x21,
+0x1e,0x20,0x22,0x22,0x20,0x1c,0x19,0x16,0x15,0x18,0x1a,0x1c,0x1d,0x1e,0x20,0x21,
+0x26,0x2d,0x31,0x31,0x31,0x36,0x3c,0x3f,0x3c,0x39,0x35,0x30,0x2d,0x2b,0x2a,0x2a,
+0x28,0x2b,0x2f,0x32,0x34,0x33,0x32,0x31,0x2e,0x2d,0x2c,0x2d,0x31,0x34,0x35,0x35,
+0x34,0x38,0x3b,0x3a,0x36,0x32,0x31,0x32,0x38,0x34,0x33,0x39,0x46,0x56,0x63,0x6b,
+0x67,0x67,0x67,0x67,0x67,0x65,0x62,0x60,0x52,0x54,0x54,0x52,0x52,0x56,0x5c,0x62,
+0x52,0x46,0x38,0x33,0x35,0x36,0x36,0x35,0x37,0x38,0x39,0x36,0x31,0x2f,0x30,0x32,
+0x35,0x39,0x3d,0x3d,0x3a,0x37,0x37,0x39,0x3b,0x3f,0x3f,0x3b,0x3c,0x42,0x43,0x3f,
+0x43,0x42,0x40,0x3e,0x3d,0x3c,0x3c,0x3c,0x41,0x42,0x44,0x45,0x44,0x45,0x46,0x47,
+0x45,0x43,0x41,0x41,0x44,0x47,0x48,0x49,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4a,0x4a,
+0x4e,0x4f,0x50,0x51,0x52,0x50,0x4f,0x4e,0x4d,0x50,0x54,0x58,0x5b,0x5c,0x5d,0x5e,
+0x5c,0x5a,0x55,0x4d,0x44,0x3f,0x3f,0x41,0x3d,0x40,0x46,0x4c,0x51,0x54,0x54,0x54,
+0x65,0x68,0x6b,0x69,0x63,0x5f,0x5d,0x5e,0x64,0x61,0x65,0x6b,0x67,0x61,0x69,0x77,
+0x89,0x94,0x90,0x8c,0x86,0x81,0x87,0x86,0x88,0x89,0x8b,0x8d,0x8e,0x8d,0x8c,0x8b,
+0x8d,0x8e,0x8e,0x8f,0x90,0x92,0x93,0x94,0x96,0x97,0x99,0x9c,0x9e,0x9e,0x9f,0x9f,
+0x9e,0xa0,0xa2,0xa1,0x9f,0x9d,0x9b,0x9b,0x9b,0x9d,0x9e,0xa1,0xa3,0xa4,0xa5,0xa5,
+0xa7,0xa8,0xa8,0xa8,0xa7,0xa7,0xa6,0xa6,0xa2,0xa1,0x9e,0x9b,0x99,0x96,0x92,0x90,
+0x91,0x8f,0x8d,0x8b,0x89,0x86,0x83,0x80,0x7e,0x7c,0x7a,0x7a,0x7c,0x82,0x88,0x8c,
+0x92,0x97,0x9d,0xa0,0xa1,0xa4,0xaa,0xaf,0xb4,0xb8,0xbd,0xc1,0xc4,0xc5,0xc6,0xc7,
+0xc7,0xc6,0xc5,0xc3,0xc1,0xbe,0xbc,0xbb,0xb6,0xb5,0xb3,0xb1,0xaf,0xac,0xa8,0xa6,
+0xa6,0xa5,0xa5,0xa4,0xa5,0xa6,0xa7,0xa8,0xa7,0xa8,0xa9,0xa9,0xa8,0xa9,0xaa,0xab,
+0xaa,0xaa,0xab,0xab,0xab,0xab,0xab,0xab,0xa9,0xaa,0xab,0xab,0xaa,0xa8,0xa6,0xa5,
+0xa9,0xa8,0xa8,0xa7,0xa7,0xa6,0xa5,0xa4,0xa2,0xa1,0x9f,0x9d,0x9b,0x97,0x93,0x90,
+0x8c,0x89,0x86,0x83,0x82,0x7f,0x7b,0x78,0x75,0x69,0x68,0x6a,0x65,0x68,0x6d,0x67,
+0x65,0x6c,0x7b,0x8d,0x97,0x8f,0x78,0x62,0x66,0x65,0x62,0x5c,0x54,0x53,0x5c,0x67,
+0x6e,0x69,0x61,0x5d,0x60,0x64,0x63,0x5f,0x66,0x71,0x76,0x71,0x68,0x65,0x65,0x64,
+0x6c,0x77,0x71,0x67,0x6b,0x6a,0x65,0x6b,0x65,0x63,0x64,0x66,0x63,0x60,0x68,0x74,
+0x7c,0x6d,0x56,0x4b,0x4f,0x51,0x4d,0x4e,0x54,0x5a,0x55,0x4e,0x57,0x5a,0x5b,0x62,
+0x5b,0x62,0x69,0x67,0x5c,0x50,0x4c,0x4d,0x4f,0x51,0x52,0x4b,0x47,0x50,0x55,0x4d,
+0x43,0x42,0x65,0x8a,0x9c,0x83,0x6f,0x5f,0x4a,0x3c,0x32,0x3e,0x59,0x6b,0x6a,0x5f,
+0x55,0x61,0x6e,0x70,0x68,0x5e,0x58,0x55,0x55,0x42,0x3f,0x40,0x47,0x39,0x41,0x4c,
+0x56,0x4e,0x47,0x43,0x47,0x57,0x63,0x62,0x5a,0x46,0x43,0x5b,0x6d,0x69,0x62,0x64,
+0x6b,0x62,0x42,0x35,0x4f,0x60,0x5a,0x57,0x64,0x5b,0x4c,0x3e,0x30,0x25,0x2f,0x49,
+0x50,0x56,0x59,0x56,0x58,0x5e,0x5d,0x57,0x4f,0x5a,0x60,0x61,0x65,0x67,0x5a,0x48,
+0x3b,0x3f,0x49,0x52,0x4e,0x49,0x57,0x6c,0x72,0x79,0x77,0x6a,0x56,0x3f,0x38,0x41,
+0x56,0x54,0x4b,0x48,0x47,0x3c,0x3b,0x4d,0x78,0x82,0x70,0x5c,0x50,0x46,0x40,0x33,
+0x4a,0x4f,0x4a,0x3a,0x31,0x32,0x31,0x2b,0x27,0x27,0x27,0x27,0x29,0x2b,0x2d,0x2f,
+0x36,0x32,0x2b,0x25,0x25,0x29,0x2c,0x2c,0x29,0x29,0x29,0x28,0x26,0x25,0x25,0x25,
+0x25,0x23,0x23,0x26,0x2b,0x2b,0x26,0x20,0x1b,0x1a,0x19,0x19,0x1c,0x20,0x20,0x1e,
+0x20,0x22,0x24,0x26,0x23,0x1f,0x1e,0x1f,0x1c,0x1c,0x1d,0x1e,0x1e,0x1d,0x1f,0x23,
+0x27,0x28,0x2a,0x2d,0x34,0x3b,0x3b,0x38,0x2f,0x27,0x21,0x20,0x21,0x20,0x20,0x21,
+0x1b,0x1c,0x1e,0x21,0x22,0x20,0x1b,0x18,0x1a,0x1a,0x19,0x18,0x19,0x1c,0x21,0x24,
+0x2e,0x34,0x38,0x35,0x30,0x32,0x37,0x3c,0x44,0x41,0x3b,0x35,0x2f,0x2a,0x27,0x25,
+0x2b,0x2c,0x2e,0x32,0x33,0x33,0x35,0x38,0x30,0x2f,0x2e,0x2f,0x32,0x36,0x38,0x3a,
+0x36,0x39,0x3c,0x3c,0x39,0x37,0x35,0x35,0x34,0x31,0x31,0x3a,0x46,0x4d,0x51,0x52,
+0x52,0x53,0x56,0x5b,0x5f,0x5e,0x59,0x55,0x59,0x52,0x4a,0x47,0x4d,0x53,0x52,0x4d,
+0x48,0x3f,0x39,0x3a,0x3b,0x39,0x38,0x39,0x38,0x3a,0x3a,0x38,0x34,0x32,0x32,0x33,
+0x35,0x39,0x3c,0x3d,0x3a,0x38,0x38,0x3a,0x3b,0x3d,0x3d,0x3b,0x3d,0x41,0x41,0x3d,
+0x41,0x40,0x3e,0x3c,0x3c,0x3e,0x40,0x41,0x42,0x44,0x46,0x48,0x48,0x48,0x49,0x4a,
+0x4d,0x4a,0x47,0x46,0x47,0x47,0x47,0x45,0x49,0x4a,0x4c,0x4d,0x4d,0x4c,0x4b,0x4a,
+0x4b,0x4b,0x4d,0x52,0x54,0x53,0x51,0x51,0x4f,0x53,0x57,0x58,0x57,0x57,0x59,0x5b,
+0x57,0x57,0x54,0x4d,0x47,0x44,0x47,0x4a,0x46,0x49,0x4c,0x52,0x58,0x5f,0x65,0x68,
+0x6c,0x6b,0x69,0x65,0x60,0x5c,0x5a,0x5a,0x60,0x5d,0x5e,0x62,0x60,0x5d,0x64,0x70,
+0x8d,0x9d,0x98,0x91,0x8b,0x84,0x87,0x88,0x88,0x89,0x8b,0x8d,0x8e,0x8d,0x8c,0x8b,
+0x8e,0x8e,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x97,0x99,0x9b,0x9c,0x9d,0x9d,
+0x97,0x99,0x9b,0x9c,0x9c,0x9b,0x9b,0x9b,0x9a,0x9b,0x9d,0x9f,0xa1,0xa2,0xa2,0xa2,
+0xa4,0xa4,0xa4,0xa3,0xa3,0xa2,0xa1,0xa0,0x9d,0x9a,0x97,0x94,0x91,0x8e,0x8a,0x88,
+0x88,0x86,0x85,0x83,0x81,0x7d,0x79,0x76,0x74,0x73,0x74,0x77,0x7d,0x85,0x8d,0x92,
+0x95,0x99,0x9f,0xa1,0xa3,0xa5,0xa9,0xad,0xb1,0xb4,0xb9,0xbd,0xbf,0xc1,0xc3,0xc4,
+0xc4,0xc4,0xc3,0xc2,0xc0,0xbe,0xbc,0xbb,0xb7,0xb5,0xb3,0xb1,0xae,0xaa,0xa5,0xa2,
+0xa2,0xa1,0x9f,0x9e,0x9f,0xa0,0xa2,0xa4,0xa4,0xa6,0xa7,0xa8,0xa9,0xaa,0xac,0xad,
+0xad,0xad,0xad,0xad,0xad,0xae,0xae,0xaf,0xab,0xac,0xae,0xaf,0xae,0xac,0xaa,0xa8,
+0xab,0xaa,0xa9,0xa9,0xa9,0xa9,0xa7,0xa6,0xa4,0xa2,0xa0,0x9f,0x9c,0x98,0x94,0x91,
+0x8d,0x89,0x85,0x83,0x81,0x7e,0x7a,0x77,0x74,0x6b,0x67,0x6a,0x6e,0x70,0x6d,0x65,
+0x68,0x69,0x6e,0x7e,0x94,0x9b,0x86,0x69,0x5c,0x5d,0x5d,0x5b,0x56,0x56,0x5e,0x67,
+0x6c,0x68,0x61,0x5e,0x62,0x67,0x66,0x63,0x4b,0x49,0x4c,0x55,0x5b,0x5c,0x5e,0x62,
+0x59,0x5a,0x58,0x60,0x69,0x61,0x5c,0x69,0x60,0x5d,0x5f,0x63,0x64,0x65,0x6c,0x76,
+0x75,0x6a,0x58,0x4f,0x52,0x52,0x50,0x54,0x69,0x64,0x5a,0x49,0x52,0x5a,0x68,0x6e,
+0x5b,0x62,0x6c,0x6e,0x67,0x5b,0x53,0x52,0x51,0x53,0x53,0x4f,0x53,0x61,0x64,0x56,
+0x41,0x43,0x68,0x88,0x8f,0x73,0x6b,0x68,0x5f,0x4d,0x46,0x59,0x74,0x79,0x64,0x4c,
+0x59,0x60,0x68,0x6a,0x63,0x57,0x4f,0x4d,0x4c,0x40,0x42,0x42,0x47,0x3c,0x47,0x52,
+0x45,0x4d,0x55,0x4f,0x44,0x4b,0x5c,0x64,0x56,0x46,0x46,0x5b,0x6a,0x68,0x64,0x68,
+0x62,0x53,0x3a,0x38,0x50,0x5c,0x55,0x51,0x5d,0x5f,0x4d,0x35,0x31,0x3f,0x51,0x5f,
+0x6d,0x6e,0x69,0x5f,0x5b,0x5d,0x5a,0x53,0x56,0x62,0x69,0x61,0x51,0x47,0x48,0x4c,
+0x43,0x47,0x50,0x54,0x4b,0x44,0x52,0x67,0x71,0x79,0x72,0x58,0x3b,0x27,0x26,0x34,
+0x4f,0x51,0x48,0x40,0x39,0x2e,0x36,0x51,0x63,0x79,0x74,0x63,0x55,0x4c,0x50,0x4d,
+0x3c,0x42,0x44,0x41,0x3d,0x39,0x31,0x29,0x25,0x25,0x26,0x27,0x29,0x2a,0x2b,0x2c,
+0x2e,0x31,0x31,0x2d,0x2b,0x2e,0x32,0x34,0x2a,0x29,0x28,0x27,0x27,0x27,0x26,0x26,
+0x26,0x25,0x25,0x28,0x2b,0x2b,0x27,0x24,0x1d,0x1d,0x1c,0x1b,0x1e,0x22,0x23,0x1f,
+0x21,0x22,0x25,0x27,0x24,0x21,0x22,0x25,0x24,0x22,0x22,0x23,0x22,0x1f,0x1f,0x22,
+0x22,0x27,0x2e,0x36,0x3d,0x40,0x3b,0x33,0x2c,0x28,0x24,0x25,0x25,0x23,0x22,0x22,
+0x1f,0x1d,0x1d,0x1f,0x21,0x20,0x1b,0x17,0x1a,0x1a,0x18,0x17,0x18,0x1c,0x22,0x26,
+0x32,0x38,0x3c,0x3b,0x38,0x39,0x3c,0x3e,0x45,0x42,0x3d,0x37,0x31,0x2b,0x27,0x24,
+0x2b,0x2b,0x2d,0x31,0x30,0x2e,0x2f,0x33,0x33,0x34,0x34,0x35,0x36,0x38,0x3a,0x3c,
+0x3a,0x3a,0x3b,0x3c,0x3b,0x3b,0x3a,0x3a,0x35,0x34,0x3b,0x4a,0x55,0x55,0x4d,0x46,
+0x45,0x46,0x4a,0x50,0x59,0x61,0x66,0x69,0x71,0x6d,0x67,0x63,0x64,0x60,0x53,0x45,
+0x3c,0x37,0x36,0x3a,0x39,0x33,0x30,0x33,0x39,0x3a,0x3b,0x3a,0x37,0x35,0x34,0x35,
+0x34,0x37,0x3a,0x3b,0x39,0x38,0x39,0x39,0x3c,0x3c,0x3c,0x3d,0x3f,0x41,0x40,0x3d,
+0x3e,0x3d,0x3c,0x3c,0x3c,0x3e,0x40,0x41,0x3f,0x42,0x46,0x48,0x49,0x49,0x4a,0x4a,
+0x4e,0x4b,0x47,0x46,0x47,0x48,0x47,0x46,0x48,0x48,0x49,0x4a,0x4b,0x4b,0x4b,0x4b,
+0x49,0x48,0x4b,0x52,0x55,0x54,0x51,0x51,0x51,0x53,0x55,0x55,0x55,0x56,0x57,0x57,
+0x53,0x52,0x4f,0x48,0x40,0x3d,0x3f,0x42,0x46,0x46,0x48,0x4b,0x51,0x5c,0x67,0x6f,
+0x6a,0x66,0x5f,0x5b,0x5b,0x5c,0x5d,0x5d,0x5d,0x5b,0x5b,0x5c,0x5d,0x5e,0x64,0x6b,
+0x8d,0xa3,0xa1,0x9d,0x99,0x8e,0x8c,0x8b,0x88,0x89,0x8b,0x8c,0x8d,0x8c,0x8c,0x8b,
+0x8e,0x8e,0x8e,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x97,0x98,0x98,0x99,0x99,
+0x94,0x95,0x97,0x98,0x98,0x98,0x99,0x9a,0x9a,0x9b,0x9d,0x9e,0x9f,0x9f,0x9f,0x9f,
+0x9f,0x9f,0x9f,0x9e,0x9d,0x9c,0x9b,0x9b,0x97,0x94,0x90,0x8c,0x89,0x86,0x83,0x81,
+0x81,0x7f,0x7c,0x79,0x77,0x74,0x71,0x6f,0x6f,0x72,0x77,0x7f,0x88,0x91,0x99,0x9d,
+0xa0,0xa2,0xa5,0xa6,0xa7,0xa7,0xa9,0xaa,0xad,0xb0,0xb3,0xb6,0xb8,0xb9,0xbb,0xbc,
+0xbc,0xbd,0xbd,0xbd,0xbc,0xbb,0xb9,0xb8,0xb5,0xb3,0xb1,0xae,0xab,0xa6,0xa0,0x9d,
+0x9a,0x99,0x97,0x95,0x96,0x97,0x99,0x9b,0x9d,0x9f,0xa2,0xa5,0xa7,0xa8,0xaa,0xac,
+0xac,0xac,0xac,0xad,0xae,0xae,0xaf,0xaf,0xae,0xae,0xaf,0xaf,0xae,0xad,0xac,0xac,
+0xab,0xaa,0xa8,0xa8,0xa9,0xa8,0xa6,0xa4,0xa4,0xa2,0xa1,0x9f,0x9d,0x99,0x95,0x92,
+0x8e,0x8b,0x86,0x83,0x80,0x7d,0x79,0x76,0x70,0x6d,0x67,0x6a,0x74,0x76,0x6d,0x68,
+0x68,0x65,0x66,0x73,0x8b,0x9a,0x91,0x7f,0x66,0x61,0x5c,0x59,0x58,0x5a,0x60,0x67,
+0x6e,0x66,0x5c,0x5b,0x64,0x6e,0x70,0x6c,0x6a,0x59,0x46,0x3e,0x3f,0x46,0x54,0x61,
+0x5a,0x56,0x54,0x5d,0x64,0x5d,0x57,0x5d,0x59,0x58,0x59,0x5d,0x60,0x64,0x6e,0x77,
+0x6e,0x68,0x59,0x50,0x50,0x52,0x5a,0x68,0x6d,0x61,0x5b,0x4a,0x51,0x5b,0x6f,0x6f,
+0x57,0x5c,0x66,0x6e,0x6b,0x61,0x57,0x53,0x50,0x4d,0x49,0x48,0x55,0x6d,0x71,0x5f,
+0x3c,0x3d,0x5d,0x75,0x75,0x58,0x58,0x60,0x6a,0x5f,0x5c,0x6a,0x79,0x7d,0x7b,0x7a,
+0x63,0x62,0x64,0x64,0x5d,0x51,0x4a,0x48,0x38,0x35,0x3d,0x3c,0x40,0x38,0x47,0x54,
+0x5f,0x57,0x4d,0x42,0x3f,0x4e,0x5e,0x62,0x5f,0x53,0x50,0x5b,0x63,0x5f,0x5a,0x5a,
+0x51,0x3e,0x31,0x3a,0x4c,0x54,0x53,0x52,0x5a,0x5e,0x4b,0x32,0x36,0x4e,0x61,0x68,
+0x6e,0x70,0x6b,0x62,0x5e,0x61,0x5d,0x55,0x58,0x69,0x6b,0x50,0x33,0x2f,0x3e,0x4c,
+0x57,0x54,0x51,0x4d,0x47,0x48,0x58,0x6b,0x76,0x78,0x64,0x40,0x25,0x1c,0x23,0x31,
+0x3c,0x48,0x4c,0x4a,0x41,0x2f,0x30,0x49,0x68,0x7b,0x79,0x6f,0x5d,0x4a,0x4d,0x53,
+0x2c,0x2a,0x2d,0x34,0x39,0x38,0x33,0x30,0x28,0x29,0x2b,0x2c,0x2d,0x2c,0x2b,0x2a,
+0x2b,0x35,0x3a,0x35,0x2e,0x2d,0x30,0x32,0x2e,0x2b,0x27,0x26,0x26,0x26,0x25,0x23,
+0x23,0x23,0x23,0x24,0x25,0x25,0x24,0x23,0x1f,0x20,0x1d,0x1b,0x1d,0x22,0x22,0x1f,
+0x1f,0x21,0x24,0x26,0x23,0x21,0x24,0x28,0x2f,0x2b,0x28,0x28,0x25,0x20,0x1e,0x20,
+0x1c,0x25,0x30,0x38,0x3e,0x3d,0x33,0x27,0x2a,0x28,0x28,0x2b,0x2b,0x29,0x28,0x28,
+0x2a,0x25,0x21,0x21,0x23,0x22,0x1d,0x18,0x17,0x18,0x19,0x1b,0x1c,0x1e,0x22,0x24,
+0x2b,0x31,0x37,0x3a,0x3d,0x41,0x43,0x43,0x39,0x38,0x37,0x34,0x31,0x2e,0x2b,0x29,
+0x2b,0x2c,0x31,0x35,0x33,0x2c,0x29,0x2a,0x32,0x34,0x36,0x37,0x36,0x36,0x38,0x3a,
+0x3a,0x39,0x37,0x37,0x39,0x3a,0x3b,0x3b,0x39,0x3a,0x44,0x56,0x61,0x5c,0x4e,0x42,
+0x46,0x48,0x4c,0x4f,0x53,0x57,0x5c,0x60,0x6b,0x71,0x75,0x71,0x68,0x5b,0x4c,0x40,
+0x41,0x3d,0x3f,0x43,0x3f,0x35,0x32,0x37,0x3a,0x3c,0x3d,0x3c,0x3a,0x38,0x36,0x36,
+0x37,0x39,0x3b,0x3c,0x3c,0x3b,0x3a,0x3a,0x3c,0x3b,0x3c,0x3f,0x42,0x41,0x40,0x3f,
+0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3d,0x3e,0x3c,0x3f,0x44,0x47,0x48,0x48,0x48,0x48,
+0x4b,0x47,0x42,0x42,0x45,0x48,0x49,0x49,0x46,0x47,0x47,0x47,0x48,0x4a,0x4b,0x4b,
+0x49,0x47,0x4a,0x51,0x54,0x51,0x4e,0x4e,0x51,0x51,0x50,0x52,0x55,0x57,0x57,0x56,
+0x50,0x50,0x4f,0x4a,0x46,0x45,0x48,0x4c,0x4f,0x50,0x50,0x52,0x58,0x62,0x6f,0x78,
+0x70,0x69,0x60,0x5c,0x5c,0x5f,0x60,0x60,0x5a,0x5b,0x5c,0x5e,0x60,0x63,0x66,0x67,
+0x86,0xa1,0xa6,0xa6,0xa4,0x96,0x8e,0x8a,0x88,0x89,0x8a,0x8b,0x8c,0x8c,0x8c,0x8b,
+0x8e,0x8e,0x8e,0x8e,0x8f,0x90,0x91,0x91,0x93,0x93,0x94,0x95,0x96,0x96,0x95,0x95,
+0x94,0x95,0x96,0x96,0x96,0x96,0x97,0x98,0x97,0x98,0x9a,0x9b,0x9c,0x9b,0x9a,0x9a,
+0x9c,0x9c,0x9b,0x9b,0x9a,0x98,0x97,0x97,0x90,0x8d,0x88,0x84,0x80,0x7e,0x7b,0x7a,
+0x7a,0x77,0x73,0x6f,0x6d,0x6b,0x69,0x68,0x6f,0x74,0x7e,0x89,0x94,0x9d,0xa4,0xa8,
+0xab,0xab,0xac,0xac,0xab,0xaa,0xa9,0xa8,0xaa,0xac,0xae,0xb0,0xb1,0xb2,0xb4,0xb5,
+0xb6,0xb6,0xb7,0xb8,0xb7,0xb6,0xb5,0xb4,0xb2,0xb1,0xae,0xab,0xa7,0xa1,0x9c,0x98,
+0x93,0x91,0x8f,0x8e,0x8e,0x8f,0x92,0x93,0x96,0x99,0x9d,0xa1,0xa4,0xa6,0xa8,0xaa,
+0xac,0xad,0xaf,0xb1,0xb2,0xb2,0xb2,0xb2,0xb1,0xb0,0xaf,0xae,0xad,0xad,0xae,0xae,
+0xae,0xac,0xaa,0xaa,0xaa,0xa9,0xa7,0xa4,0xa3,0xa2,0xa0,0x9f,0x9d,0x99,0x95,0x92,
+0x8f,0x8c,0x87,0x83,0x81,0x7e,0x79,0x76,0x70,0x72,0x6b,0x6c,0x7a,0x7b,0x71,0x6f,
+0x6c,0x67,0x66,0x70,0x83,0x91,0x93,0x8d,0x71,0x65,0x58,0x53,0x55,0x5c,0x65,0x6c,
+0x6e,0x61,0x53,0x52,0x61,0x72,0x78,0x75,0x68,0x69,0x68,0x61,0x56,0x4c,0x49,0x4c,
+0x4a,0x54,0x5f,0x62,0x5e,0x57,0x53,0x52,0x57,0x56,0x58,0x5b,0x5d,0x63,0x6f,0x7b,
+0x75,0x64,0x4d,0x47,0x52,0x5e,0x68,0x74,0x64,0x58,0x5a,0x4d,0x54,0x5e,0x72,0x6a,
+0x55,0x58,0x60,0x6a,0x6b,0x62,0x59,0x55,0x4f,0x47,0x3e,0x3c,0x51,0x71,0x79,0x67,
+0x3e,0x39,0x52,0x64,0x60,0x43,0x49,0x56,0x5e,0x63,0x6e,0x70,0x61,0x52,0x57,0x68,
+0x69,0x68,0x6b,0x6d,0x66,0x55,0x48,0x43,0x30,0x34,0x41,0x3f,0x43,0x3e,0x50,0x5d,
+0x56,0x59,0x5a,0x51,0x47,0x4e,0x5c,0x60,0x55,0x4c,0x4b,0x54,0x5c,0x5a,0x57,0x57,
+0x45,0x31,0x2d,0x3e,0x4a,0x50,0x56,0x5b,0x63,0x5d,0x46,0x31,0x32,0x3f,0x4a,0x53,
+0x61,0x65,0x63,0x5e,0x5d,0x60,0x5c,0x54,0x5d,0x6d,0x62,0x3f,0x34,0x4d,0x5f,0x5c,
+0x58,0x4d,0x41,0x3c,0x3f,0x4c,0x61,0x73,0x69,0x57,0x31,0x16,0x21,0x3f,0x58,0x64,
+0x56,0x59,0x53,0x4b,0x44,0x38,0x3d,0x58,0x6b,0x66,0x56,0x5a,0x5e,0x59,0x63,0x6f,
+0x33,0x2b,0x28,0x2e,0x33,0x32,0x33,0x36,0x32,0x2b,0x28,0x2b,0x2c,0x27,0x25,0x28,
+0x2c,0x32,0x3a,0x3b,0x37,0x31,0x2f,0x2f,0x2b,0x2a,0x29,0x29,0x26,0x23,0x23,0x26,
+0x27,0x23,0x20,0x20,0x24,0x25,0x24,0x21,0x1e,0x1d,0x1d,0x20,0x23,0x25,0x25,0x24,
+0x1f,0x23,0x27,0x27,0x25,0x24,0x25,0x27,0x29,0x2a,0x2d,0x2e,0x28,0x20,0x1e,0x22,
+0x1d,0x23,0x28,0x2b,0x30,0x35,0x31,0x29,0x2a,0x29,0x27,0x25,0x25,0x25,0x26,0x27,
+0x2a,0x2e,0x30,0x2c,0x28,0x25,0x22,0x1f,0x1e,0x1d,0x1d,0x1d,0x1f,0x20,0x21,0x21,
+0x24,0x29,0x30,0x35,0x36,0x34,0x31,0x2f,0x30,0x32,0x33,0x31,0x2d,0x2b,0x2d,0x2f,
+0x33,0x31,0x30,0x31,0x33,0x32,0x2e,0x2b,0x2c,0x2f,0x36,0x3b,0x3b,0x39,0x3a,0x3d,
+0x3b,0x3a,0x3b,0x3c,0x3b,0x39,0x3a,0x3d,0x3c,0x3c,0x40,0x4a,0x55,0x5d,0x5f,0x5d,
+0x64,0x61,0x5c,0x56,0x52,0x50,0x51,0x53,0x57,0x61,0x63,0x5c,0x58,0x58,0x50,0x43,
+0x47,0x49,0x49,0x46,0x45,0x44,0x3f,0x38,0x3c,0x3c,0x3d,0x3d,0x3c,0x3a,0x38,0x36,
+0x39,0x38,0x36,0x36,0x39,0x3b,0x3d,0x3d,0x3b,0x3b,0x3c,0x3e,0x3f,0x40,0x3f,0x3e,
+0x42,0x3d,0x3a,0x3d,0x3e,0x3c,0x3b,0x3c,0x3a,0x3e,0x44,0x48,0x4a,0x48,0x46,0x44,
+0x41,0x40,0x41,0x45,0x47,0x47,0x49,0x4b,0x49,0x4b,0x4c,0x4c,0x4b,0x49,0x49,0x4a,
+0x49,0x48,0x4b,0x51,0x55,0x55,0x54,0x54,0x55,0x58,0x59,0x58,0x59,0x5b,0x58,0x53,
+0x53,0x57,0x57,0x50,0x4d,0x50,0x55,0x57,0x54,0x57,0x59,0x58,0x56,0x56,0x59,0x5c,
+0x61,0x60,0x5e,0x5c,0x5b,0x5c,0x5d,0x5e,0x5d,0x5d,0x5c,0x5c,0x5f,0x63,0x62,0x5e,
+0x7b,0x99,0xab,0xab,0xa9,0xa3,0x92,0x84,0x86,0x87,0x89,0x8a,0x8b,0x8b,0x8b,0x8a,
+0x8e,0x8d,0x8d,0x8d,0x8d,0x8e,0x8f,0x8f,0x93,0x91,0x90,0x90,0x91,0x92,0x92,0x91,
+0x90,0x92,0x93,0x94,0x93,0x93,0x94,0x95,0x94,0x96,0x98,0x99,0x98,0x98,0x98,0x99,
+0x98,0x98,0x97,0x96,0x95,0x91,0x8d,0x8a,0x88,0x86,0x82,0x7f,0x7c,0x79,0x76,0x74,
+0x75,0x70,0x6d,0x6b,0x69,0x67,0x67,0x6a,0x71,0x7a,0x8a,0x98,0xa3,0xaa,0xad,0xaf,
+0xaf,0xb1,0xb1,0xb0,0xb0,0xaf,0xab,0xa6,0xa4,0xa5,0xa7,0xa9,0xab,0xac,0xac,0xac,
+0xb1,0xb1,0xb2,0xb2,0xb2,0xb2,0xb1,0xb1,0xaf,0xae,0xac,0xa8,0xa2,0x9c,0x97,0x93,
+0x93,0x8f,0x8a,0x87,0x85,0x84,0x85,0x87,0x8a,0x90,0x96,0x9a,0x9e,0xa3,0xa7,0xa8,
+0xaa,0xac,0xae,0xaf,0xae,0xaf,0xb3,0xb5,0xb2,0xb1,0xaf,0xae,0xad,0xae,0xaf,0xb0,
+0xad,0xac,0xac,0xac,0xac,0xaa,0xa8,0xa6,0xa6,0xa5,0xa3,0xa1,0x9e,0x9a,0x96,0x92,
+0x8f,0x8c,0x87,0x83,0x7f,0x7b,0x76,0x74,0x74,0x66,0x68,0x77,0x7e,0x7b,0x75,0x6d,
+0x6f,0x6a,0x66,0x6b,0x79,0x8b,0x94,0x96,0x7b,0x70,0x60,0x56,0x57,0x5e,0x68,0x6e,
+0x6d,0x66,0x59,0x57,0x62,0x65,0x5e,0x59,0x59,0x72,0x87,0x80,0x66,0x4f,0x46,0x45,
+0x4d,0x56,0x59,0x62,0x65,0x60,0x60,0x57,0x58,0x5b,0x62,0x60,0x56,0x5a,0x6c,0x78,
+0x76,0x66,0x4e,0x46,0x56,0x64,0x64,0x62,0x49,0x4f,0x55,0x54,0x56,0x66,0x70,0x6a,
+0x60,0x59,0x60,0x6d,0x6b,0x5f,0x54,0x4b,0x4f,0x53,0x4d,0x49,0x5b,0x76,0x78,0x68,
+0x43,0x35,0x42,0x4f,0x41,0x3a,0x46,0x4c,0x58,0x6a,0x73,0x6a,0x57,0x4a,0x51,0x64,
+0x67,0x6b,0x77,0x85,0x7d,0x5c,0x49,0x50,0x49,0x44,0x45,0x49,0x46,0x40,0x44,0x4f,
+0x5d,0x52,0x4b,0x41,0x38,0x46,0x59,0x5a,0x52,0x49,0x4c,0x58,0x5b,0x5a,0x57,0x52,
+0x49,0x3e,0x39,0x41,0x4e,0x54,0x55,0x56,0x56,0x55,0x48,0x35,0x32,0x3f,0x49,0x48,
+0x4e,0x5f,0x65,0x67,0x6e,0x68,0x5b,0x5a,0x5d,0x60,0x48,0x31,0x44,0x63,0x6a,0x65,
+0x4e,0x42,0x33,0x33,0x42,0x53,0x62,0x71,0x59,0x31,0x1f,0x37,0x5e,0x74,0x71,0x62,
+0x58,0x4e,0x43,0x40,0x40,0x3f,0x3b,0x38,0x39,0x37,0x3e,0x3a,0x35,0x4e,0x65,0x5c,
+0x31,0x2a,0x27,0x2c,0x30,0x31,0x33,0x38,0x31,0x2b,0x28,0x2a,0x29,0x23,0x21,0x24,
+0x29,0x2b,0x2f,0x32,0x32,0x2f,0x2b,0x28,0x2b,0x2c,0x2e,0x2e,0x2a,0x26,0x27,0x2b,
+0x26,0x23,0x21,0x23,0x26,0x28,0x27,0x25,0x28,0x25,0x23,0x23,0x25,0x29,0x2b,0x2c,
+0x2f,0x30,0x2f,0x2b,0x27,0x25,0x27,0x2a,0x2c,0x2d,0x2f,0x31,0x2e,0x27,0x25,0x28,
+0x24,0x25,0x27,0x28,0x2c,0x2f,0x2d,0x29,0x2b,0x2a,0x28,0x26,0x25,0x25,0x25,0x25,
+0x25,0x29,0x2c,0x2c,0x2b,0x2b,0x29,0x26,0x20,0x22,0x24,0x24,0x23,0x23,0x25,0x27,
+0x2f,0x33,0x3a,0x40,0x40,0x3c,0x35,0x30,0x2c,0x2e,0x2f,0x2e,0x2c,0x2c,0x2e,0x31,
+0x33,0x31,0x2f,0x30,0x31,0x31,0x2e,0x2b,0x2c,0x2f,0x34,0x38,0x38,0x37,0x39,0x3c,
+0x3b,0x3a,0x3a,0x3b,0x3b,0x39,0x3b,0x3f,0x40,0x3c,0x3a,0x42,0x51,0x60,0x69,0x6c,
+0x61,0x64,0x6a,0x73,0x78,0x75,0x6c,0x63,0x52,0x55,0x5a,0x5d,0x5b,0x52,0x47,0x40,
+0x3e,0x41,0x42,0x42,0x44,0x45,0x42,0x3d,0x3c,0x3d,0x3f,0x3f,0x3f,0x3c,0x3a,0x38,
+0x3a,0x39,0x38,0x39,0x3b,0x3d,0x3e,0x3e,0x40,0x40,0x41,0x41,0x41,0x40,0x40,0x40,
+0x45,0x42,0x42,0x45,0x44,0x40,0x3d,0x3d,0x3d,0x40,0x45,0x49,0x4a,0x49,0x47,0x46,
+0x45,0x45,0x47,0x4b,0x4d,0x4c,0x4d,0x4f,0x4b,0x4b,0x4c,0x4c,0x4d,0x4e,0x50,0x51,
+0x4d,0x4b,0x4b,0x4e,0x51,0x51,0x51,0x52,0x55,0x56,0x55,0x54,0x57,0x5a,0x58,0x54,
+0x57,0x56,0x50,0x46,0x3f,0x3f,0x42,0x43,0x42,0x4a,0x4e,0x4c,0x50,0x5a,0x60,0x60,
+0x67,0x64,0x5f,0x5b,0x59,0x58,0x5a,0x5b,0x5b,0x5a,0x59,0x59,0x5b,0x5d,0x5d,0x5d,
+0x78,0x96,0xa8,0xa8,0xa6,0xa1,0x92,0x85,0x86,0x87,0x89,0x8b,0x8c,0x8b,0x8b,0x8a,
+0x8c,0x8c,0x8c,0x8c,0x8d,0x8e,0x8f,0x90,0x8e,0x8d,0x8c,0x8d,0x8f,0x90,0x91,0x91,
+0x8f,0x90,0x91,0x91,0x90,0x8f,0x8f,0x90,0x92,0x94,0x96,0x96,0x95,0x95,0x95,0x95,
+0x95,0x94,0x93,0x91,0x90,0x8d,0x8a,0x87,0x83,0x80,0x7e,0x7b,0x78,0x75,0x72,0x6f,
+0x6e,0x6a,0x66,0x64,0x62,0x61,0x64,0x68,0x74,0x7f,0x8f,0x9e,0xa8,0xae,0xb2,0xb4,
+0xb3,0xb4,0xb4,0xb2,0xb1,0xb0,0xab,0xa6,0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa6,
+0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa9,0xa9,0xa8,0xa7,0xa4,0xa0,0x9c,0x96,0x92,0x90,
+0x8f,0x8d,0x8b,0x88,0x85,0x80,0x7c,0x7a,0x7e,0x84,0x8b,0x91,0x96,0x9b,0x9e,0xa0,
+0xa3,0xa7,0xab,0xad,0xad,0xae,0xb0,0xb3,0xb1,0xb0,0xaf,0xae,0xae,0xae,0xae,0xae,
+0xad,0xac,0xab,0xab,0xab,0xaa,0xa8,0xa6,0xa5,0xa4,0xa1,0x9f,0x9d,0x99,0x95,0x92,
+0x8e,0x8b,0x86,0x82,0x7d,0x79,0x75,0x72,0x71,0x65,0x69,0x79,0x80,0x7d,0x76,0x6e,
+0x70,0x6b,0x65,0x66,0x73,0x85,0x92,0x97,0x87,0x78,0x64,0x59,0x5b,0x64,0x6d,0x73,
+0x6d,0x6c,0x64,0x5d,0x5d,0x54,0x44,0x3c,0x47,0x48,0x49,0x4c,0x55,0x5d,0x5e,0x5b,
+0x5e,0x5a,0x4d,0x4f,0x54,0x59,0x65,0x66,0x66,0x63,0x62,0x5b,0x50,0x54,0x66,0x71,
+0x73,0x6d,0x5f,0x59,0x61,0x61,0x58,0x52,0x44,0x4d,0x57,0x59,0x5c,0x69,0x70,0x6a,
+0x62,0x5a,0x5f,0x69,0x69,0x61,0x56,0x4a,0x47,0x4a,0x49,0x4c,0x5f,0x76,0x75,0x65,
+0x46,0x33,0x37,0x40,0x34,0x33,0x43,0x4c,0x5c,0x6b,0x70,0x67,0x5c,0x54,0x58,0x65,
+0x65,0x69,0x6e,0x73,0x6e,0x58,0x46,0x45,0x45,0x45,0x4a,0x4f,0x4b,0x45,0x4b,0x58,
+0x5a,0x55,0x53,0x47,0x36,0x3d,0x54,0x5e,0x64,0x58,0x56,0x59,0x56,0x54,0x58,0x5b,
+0x47,0x3e,0x3a,0x41,0x4a,0x4f,0x52,0x56,0x53,0x44,0x36,0x36,0x3d,0x43,0x48,0x4a,
+0x4d,0x60,0x68,0x67,0x68,0x61,0x58,0x5a,0x6e,0x62,0x52,0x54,0x67,0x6b,0x65,0x67,
+0x4a,0x32,0x2e,0x48,0x5b,0x5d,0x65,0x75,0x55,0x39,0x38,0x55,0x63,0x5a,0x51,0x50,
+0x6d,0x68,0x61,0x5a,0x52,0x47,0x3c,0x35,0x31,0x2d,0x37,0x41,0x4b,0x61,0x68,0x55,
+0x2e,0x28,0x25,0x28,0x2c,0x2e,0x32,0x38,0x32,0x2f,0x2d,0x2d,0x29,0x23,0x21,0x24,
+0x26,0x26,0x27,0x2b,0x30,0x31,0x2d,0x29,0x2f,0x30,0x32,0x32,0x2d,0x26,0x25,0x26,
+0x28,0x26,0x25,0x27,0x29,0x2a,0x29,0x28,0x28,0x26,0x24,0x24,0x26,0x29,0x2b,0x2d,
+0x34,0x34,0x33,0x30,0x2b,0x28,0x27,0x28,0x2a,0x2b,0x2d,0x31,0x30,0x2d,0x2b,0x2b,
+0x27,0x23,0x22,0x25,0x2a,0x2d,0x2f,0x32,0x2d,0x2d,0x2b,0x2a,0x28,0x27,0x25,0x25,
+0x21,0x24,0x27,0x28,0x2c,0x30,0x30,0x2e,0x25,0x28,0x2b,0x2a,0x28,0x28,0x2b,0x2e,
+0x2f,0x33,0x39,0x41,0x47,0x47,0x43,0x40,0x32,0x33,0x32,0x2f,0x2c,0x2b,0x2d,0x2f,
+0x34,0x32,0x30,0x2f,0x31,0x31,0x30,0x2e,0x2d,0x2f,0x33,0x37,0x37,0x37,0x39,0x3d,
+0x3b,0x39,0x39,0x39,0x39,0x38,0x3b,0x3f,0x40,0x3e,0x3f,0x47,0x51,0x57,0x58,0x55,
+0x5a,0x5d,0x66,0x73,0x7e,0x7b,0x6e,0x61,0x5f,0x59,0x5e,0x6b,0x6a,0x58,0x4a,0x49,
+0x40,0x40,0x3f,0x3d,0x3d,0x3f,0x3e,0x3c,0x3d,0x3e,0x3f,0x40,0x3f,0x3d,0x3a,0x38,
+0x3d,0x3c,0x3d,0x3e,0x40,0x41,0x40,0x3f,0x43,0x44,0x45,0x43,0x40,0x3f,0x3f,0x40,
+0x49,0x48,0x49,0x49,0x47,0x43,0x40,0x41,0x3f,0x41,0x44,0x45,0x45,0x44,0x44,0x44,
+0x44,0x44,0x47,0x4c,0x4e,0x4c,0x4b,0x4c,0x49,0x48,0x48,0x48,0x4b,0x4d,0x4f,0x50,
+0x4f,0x4b,0x4a,0x4b,0x4e,0x4f,0x51,0x54,0x54,0x52,0x50,0x51,0x56,0x5a,0x59,0x55,
+0x4f,0x4b,0x42,0x38,0x34,0x36,0x39,0x3a,0x42,0x4e,0x55,0x56,0x61,0x74,0x7e,0x7b,
+0x6f,0x6a,0x63,0x5c,0x57,0x56,0x56,0x57,0x59,0x56,0x56,0x59,0x59,0x57,0x59,0x5e,
+0x74,0x92,0xa5,0xa5,0xa3,0x9e,0x91,0x87,0x87,0x88,0x89,0x8b,0x8c,0x8b,0x8b,0x8a,
+0x8a,0x8a,0x8b,0x8b,0x8c,0x8d,0x8e,0x8f,0x8b,0x8a,0x89,0x8a,0x8b,0x8c,0x8c,0x8c,
+0x8e,0x8f,0x8f,0x8f,0x8d,0x8c,0x8c,0x8c,0x8f,0x90,0x92,0x92,0x91,0x90,0x90,0x91,
+0x90,0x8f,0x8d,0x8b,0x8a,0x87,0x84,0x82,0x7d,0x7b,0x79,0x76,0x74,0x70,0x6c,0x69,
+0x68,0x65,0x61,0x5e,0x5c,0x5c,0x61,0x68,0x75,0x82,0x93,0xa2,0xaa,0xb0,0xb4,0xb8,
+0xb8,0xb9,0xb8,0xb5,0xb3,0xb1,0xac,0xa7,0x9f,0x9f,0x9f,0x9f,0xa0,0xa1,0xa2,0xa3,
+0xa3,0xa3,0xa4,0xa3,0xa3,0xa2,0xa2,0xa1,0xa3,0xa1,0x9f,0x9b,0x98,0x95,0x93,0x92,
+0x93,0x93,0x92,0x90,0x8b,0x83,0x79,0x72,0x72,0x77,0x7e,0x86,0x8d,0x92,0x97,0x9a,
+0x9d,0xa2,0xa8,0xac,0xad,0xae,0xb0,0xb1,0xb0,0xb0,0xb0,0xb0,0xaf,0xae,0xad,0xad,
+0xad,0xac,0xab,0xab,0xab,0xaa,0xa8,0xa6,0xa5,0xa3,0xa0,0x9d,0x9b,0x97,0x94,0x91,
+0x8c,0x89,0x85,0x80,0x7c,0x78,0x73,0x70,0x6d,0x64,0x6a,0x7a,0x80,0x7e,0x78,0x71,
+0x6e,0x6b,0x65,0x65,0x6f,0x7f,0x8c,0x92,0x8d,0x7d,0x69,0x5e,0x60,0x67,0x6e,0x71,
+0x69,0x6c,0x64,0x5b,0x59,0x55,0x4e,0x4d,0x40,0x3f,0x3d,0x3f,0x47,0x4f,0x52,0x50,
+0x53,0x58,0x59,0x66,0x6c,0x6d,0x7a,0x7f,0x6d,0x65,0x61,0x5c,0x53,0x55,0x62,0x6a,
+0x70,0x74,0x70,0x68,0x62,0x56,0x47,0x40,0x3e,0x49,0x58,0x5f,0x61,0x6a,0x6f,0x68,
+0x60,0x5a,0x5e,0x67,0x6a,0x68,0x5c,0x4b,0x41,0x40,0x42,0x4d,0x64,0x76,0x72,0x64,
+0x4a,0x37,0x35,0x38,0x2f,0x30,0x42,0x4e,0x65,0x6e,0x6d,0x65,0x62,0x61,0x61,0x66,
+0x5e,0x60,0x5a,0x57,0x59,0x56,0x4d,0x4a,0x44,0x47,0x4e,0x53,0x4d,0x48,0x4f,0x5d,
+0x5a,0x53,0x51,0x45,0x2f,0x32,0x49,0x56,0x5f,0x4a,0x42,0x4e,0x59,0x5e,0x5e,0x58,
+0x4e,0x47,0x42,0x46,0x4a,0x4d,0x51,0x57,0x60,0x4f,0x40,0x3f,0x47,0x4d,0x52,0x56,
+0x57,0x6b,0x74,0x70,0x6a,0x64,0x60,0x63,0x72,0x67,0x59,0x5b,0x66,0x5e,0x48,0x3c,
+0x2e,0x27,0x37,0x51,0x5c,0x62,0x69,0x67,0x4b,0x36,0x38,0x52,0x5f,0x64,0x76,0x8a,
+0x79,0x79,0x76,0x6f,0x62,0x52,0x44,0x3c,0x2e,0x25,0x2a,0x38,0x48,0x5e,0x62,0x50,
+0x2b,0x27,0x25,0x27,0x29,0x2b,0x2f,0x33,0x32,0x31,0x31,0x31,0x2c,0x26,0x25,0x28,
+0x29,0x28,0x29,0x2e,0x35,0x38,0x37,0x34,0x32,0x31,0x32,0x34,0x32,0x2c,0x27,0x26,
+0x2b,0x2b,0x2a,0x2a,0x2a,0x29,0x28,0x27,0x22,0x23,0x25,0x26,0x28,0x29,0x28,0x28,
+0x2c,0x30,0x35,0x37,0x34,0x2e,0x29,0x26,0x29,0x29,0x2b,0x2e,0x31,0x31,0x2f,0x2d,
+0x2c,0x25,0x22,0x27,0x2b,0x2d,0x30,0x36,0x2f,0x2f,0x2f,0x2e,0x2c,0x2b,0x29,0x28,
+0x22,0x23,0x23,0x24,0x2a,0x31,0x34,0x34,0x2d,0x2e,0x2e,0x2d,0x2c,0x2d,0x30,0x33,
+0x3c,0x3a,0x39,0x3b,0x3e,0x3f,0x3c,0x39,0x38,0x37,0x35,0x32,0x2f,0x2e,0x2f,0x31,
+0x35,0x33,0x31,0x30,0x31,0x32,0x32,0x31,0x2f,0x30,0x33,0x37,0x38,0x39,0x3c,0x40,
+0x3b,0x38,0x37,0x37,0x36,0x35,0x38,0x3c,0x3e,0x42,0x48,0x4e,0x51,0x4e,0x49,0x44,
+0x45,0x45,0x47,0x4d,0x55,0x58,0x57,0x54,0x58,0x4e,0x4f,0x5d,0x5e,0x4f,0x45,0x46,
+0x46,0x44,0x40,0x3d,0x3c,0x3d,0x3e,0x3e,0x42,0x42,0x42,0x41,0x40,0x3e,0x3c,0x3b,
+0x41,0x41,0x42,0x43,0x44,0x44,0x42,0x40,0x41,0x43,0x44,0x42,0x3e,0x3c,0x3e,0x40,
+0x4a,0x4a,0x4a,0x48,0x44,0x42,0x42,0x44,0x43,0x44,0x45,0x43,0x40,0x3f,0x3f,0x41,
+0x3f,0x3f,0x43,0x48,0x49,0x47,0x45,0x46,0x47,0x46,0x46,0x47,0x49,0x4a,0x4b,0x4a,
+0x4c,0x4a,0x49,0x4b,0x4d,0x4f,0x53,0x57,0x53,0x50,0x4e,0x51,0x58,0x5c,0x5a,0x55,
+0x52,0x4d,0x45,0x40,0x3f,0x42,0x45,0x46,0x50,0x55,0x57,0x56,0x5b,0x64,0x67,0x62,
+0x65,0x62,0x5e,0x59,0x56,0x56,0x57,0x58,0x58,0x55,0x58,0x5d,0x5b,0x55,0x56,0x5e,
+0x70,0x8d,0xa1,0xa3,0xa1,0x9c,0x90,0x88,0x87,0x88,0x8a,0x8b,0x8b,0x8b,0x8a,0x89,
+0x8a,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,0x8c,0x8b,0x8a,0x88,0x87,0x87,0x87,0x86,0x85,
+0x89,0x8a,0x8b,0x8a,0x89,0x88,0x87,0x88,0x8c,0x8d,0x8e,0x8e,0x8d,0x8c,0x8c,0x8c,
+0x8c,0x8a,0x88,0x86,0x84,0x83,0x80,0x7e,0x7a,0x78,0x75,0x73,0x70,0x6c,0x68,0x64,
+0x64,0x61,0x5e,0x5b,0x59,0x59,0x5f,0x66,0x71,0x7f,0x92,0xa0,0xa8,0xac,0xb1,0xb5,
+0xb8,0xb9,0xb7,0xb4,0xb1,0xae,0xa8,0xa3,0x9e,0x9d,0x9b,0x9a,0x9a,0x9c,0x9d,0x9f,
+0x9d,0x9d,0x9d,0x9d,0x9c,0x9c,0x9b,0x9a,0x9d,0x9b,0x99,0x98,0x97,0x97,0x98,0x98,
+0x9a,0x9c,0x9c,0x9a,0x94,0x8a,0x7c,0x72,0x6b,0x6c,0x71,0x79,0x81,0x88,0x8f,0x95,
+0x98,0x9d,0xa3,0xa7,0xa9,0xaa,0xac,0xae,0xaf,0xaf,0xb0,0xb0,0xb0,0xaf,0xad,0xac,
+0xad,0xac,0xac,0xac,0xac,0xaa,0xa8,0xa6,0xa5,0xa2,0x9f,0x9c,0x98,0x94,0x91,0x8e,
+0x8a,0x87,0x83,0x7f,0x7b,0x76,0x72,0x6e,0x6b,0x64,0x6a,0x78,0x7d,0x7e,0x7b,0x76,
+0x6c,0x6c,0x6a,0x6a,0x70,0x7b,0x85,0x89,0x89,0x7d,0x6d,0x62,0x60,0x64,0x68,0x6a,
+0x72,0x71,0x63,0x51,0x4a,0x46,0x43,0x43,0x46,0x52,0x5f,0x65,0x60,0x56,0x4c,0x46,
+0x3f,0x54,0x68,0x7c,0x77,0x67,0x6a,0x6d,0x6e,0x67,0x67,0x66,0x5d,0x58,0x5b,0x5b,
+0x65,0x6f,0x6f,0x65,0x5a,0x4c,0x41,0x40,0x3e,0x48,0x59,0x62,0x63,0x68,0x6b,0x65,
+0x5b,0x57,0x5c,0x66,0x6f,0x74,0x6b,0x58,0x44,0x3c,0x3a,0x4b,0x66,0x76,0x71,0x64,
+0x4b,0x3d,0x3a,0x3b,0x30,0x30,0x41,0x50,0x6a,0x70,0x6a,0x61,0x63,0x66,0x64,0x63,
+0x65,0x66,0x5f,0x5a,0x59,0x50,0x43,0x3f,0x48,0x49,0x4d,0x4f,0x4b,0x47,0x4f,0x5b,
+0x61,0x53,0x4d,0x46,0x38,0x3e,0x54,0x5e,0x52,0x3e,0x3c,0x50,0x62,0x66,0x5f,0x54,
+0x5d,0x53,0x4c,0x4d,0x50,0x51,0x54,0x59,0x51,0x4c,0x3d,0x2e,0x30,0x3f,0x4c,0x4f,
+0x62,0x73,0x7c,0x78,0x71,0x6e,0x6d,0x6d,0x72,0x69,0x65,0x6d,0x70,0x5d,0x3f,0x2c,
+0x1e,0x2b,0x4c,0x61,0x5b,0x5f,0x67,0x5f,0x5b,0x50,0x53,0x60,0x68,0x6f,0x74,0x74,
+0x7a,0x78,0x71,0x63,0x54,0x44,0x37,0x2f,0x25,0x21,0x29,0x3a,0x4b,0x5e,0x66,0x5f,
+0x2a,0x27,0x25,0x27,0x29,0x2a,0x2a,0x2b,0x2c,0x2e,0x31,0x32,0x2f,0x2b,0x2a,0x2b,
+0x2e,0x2f,0x31,0x35,0x38,0x3b,0x3d,0x3d,0x34,0x31,0x31,0x36,0x39,0x36,0x30,0x2c,
+0x2b,0x2b,0x2b,0x29,0x28,0x27,0x26,0x27,0x25,0x27,0x29,0x2b,0x2b,0x2c,0x2b,0x2b,
+0x2a,0x30,0x38,0x3c,0x3c,0x36,0x30,0x2c,0x2b,0x2b,0x2c,0x2f,0x32,0x34,0x32,0x30,
+0x34,0x2d,0x29,0x2c,0x2e,0x2c,0x2c,0x2f,0x2f,0x30,0x30,0x2f,0x2f,0x2e,0x2d,0x2d,
+0x2a,0x28,0x25,0x24,0x28,0x31,0x36,0x37,0x33,0x30,0x2d,0x2c,0x2f,0x32,0x34,0x35,
+0x3b,0x38,0x35,0x36,0x38,0x39,0x38,0x35,0x32,0x32,0x31,0x31,0x31,0x32,0x35,0x37,
+0x34,0x33,0x31,0x30,0x30,0x32,0x33,0x33,0x30,0x30,0x32,0x36,0x39,0x3a,0x3d,0x41,
+0x3d,0x3a,0x38,0x37,0x35,0x34,0x36,0x3a,0x3f,0x43,0x47,0x49,0x49,0x4c,0x50,0x54,
+0x58,0x57,0x52,0x4b,0x45,0x45,0x4b,0x51,0x51,0x49,0x46,0x4c,0x4f,0x49,0x44,0x45,
+0x44,0x45,0x46,0x48,0x49,0x49,0x49,0x49,0x4a,0x49,0x46,0x43,0x41,0x40,0x3f,0x3f,
+0x45,0x45,0x46,0x47,0x47,0x46,0x43,0x40,0x3f,0x41,0x43,0x42,0x3e,0x3d,0x3f,0x41,
+0x45,0x48,0x4a,0x49,0x46,0x43,0x42,0x42,0x49,0x4a,0x49,0x46,0x41,0x3e,0x3e,0x3f,
+0x3d,0x3e,0x41,0x45,0x46,0x44,0x42,0x43,0x46,0x47,0x49,0x4b,0x4c,0x4c,0x4b,0x4a,
+0x4a,0x49,0x4a,0x4d,0x4f,0x50,0x53,0x56,0x54,0x51,0x50,0x55,0x5c,0x5d,0x59,0x55,
+0x57,0x51,0x4a,0x46,0x44,0x44,0x43,0x42,0x43,0x42,0x45,0x4a,0x4d,0x4c,0x4c,0x4d,
+0x55,0x55,0x54,0x54,0x55,0x57,0x58,0x5a,0x56,0x55,0x5a,0x60,0x5d,0x55,0x56,0x5d,
+0x6c,0x87,0x9b,0x9f,0x9f,0x99,0x8e,0x87,0x88,0x88,0x8a,0x8b,0x8b,0x8a,0x89,0x88,
+0x89,0x89,0x89,0x89,0x88,0x88,0x87,0x87,0x88,0x87,0x86,0x85,0x85,0x84,0x82,0x81,
+0x82,0x83,0x84,0x84,0x84,0x83,0x84,0x84,0x88,0x8a,0x8b,0x8b,0x8a,0x89,0x89,0x89,
+0x89,0x87,0x85,0x83,0x81,0x7f,0x7d,0x7b,0x77,0x75,0x72,0x6f,0x6c,0x68,0x64,0x61,
+0x5e,0x5b,0x59,0x57,0x56,0x56,0x5a,0x5f,0x6d,0x7b,0x8e,0x9d,0xa4,0xa7,0xab,0xaf,
+0xb2,0xb2,0xb1,0xad,0xaa,0xa7,0xa1,0x9c,0x97,0x96,0x94,0x93,0x92,0x94,0x95,0x97,
+0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x92,0x94,0x93,0x93,0x93,0x95,0x98,0x9c,0x9e,
+0x9f,0xa1,0xa0,0x9c,0x97,0x8e,0x81,0x75,0x66,0x63,0x64,0x6a,0x73,0x7b,0x85,0x8d,
+0x92,0x96,0x9b,0x9e,0xa0,0xa3,0xa6,0xa9,0xad,0xae,0xaf,0xb0,0xb0,0xae,0xad,0xac,
+0xad,0xac,0xac,0xac,0xab,0xaa,0xa8,0xa6,0xa5,0xa3,0x9f,0x9b,0x97,0x92,0x8d,0x8a,
+0x88,0x85,0x82,0x7e,0x79,0x75,0x70,0x6c,0x6b,0x65,0x69,0x73,0x77,0x7a,0x7c,0x7a,
+0x71,0x72,0x71,0x70,0x73,0x7c,0x82,0x85,0x86,0x7e,0x71,0x64,0x5d,0x5e,0x63,0x69,
+0x7b,0x79,0x69,0x55,0x4d,0x46,0x3e,0x3a,0x44,0x4b,0x59,0x68,0x6f,0x69,0x59,0x4d,
+0x49,0x58,0x65,0x72,0x6d,0x63,0x6c,0x73,0x72,0x6c,0x6e,0x6f,0x63,0x56,0x51,0x4d,
+0x5a,0x66,0x68,0x5f,0x55,0x4b,0x47,0x4b,0x43,0x4a,0x59,0x63,0x64,0x66,0x68,0x65,
+0x5c,0x56,0x58,0x62,0x6f,0x7c,0x7c,0x70,0x53,0x42,0x3a,0x49,0x64,0x73,0x6f,0x65,
+0x4b,0x42,0x3e,0x3a,0x2f,0x2e,0x3f,0x53,0x6c,0x6f,0x68,0x5f,0x62,0x63,0x61,0x60,
+0x5c,0x61,0x68,0x71,0x6c,0x54,0x41,0x40,0x4e,0x49,0x46,0x46,0x47,0x48,0x50,0x59,
+0x4c,0x40,0x3c,0x36,0x2d,0x39,0x53,0x5f,0x57,0x4c,0x51,0x5f,0x61,0x5b,0x5a,0x59,
+0x61,0x55,0x4b,0x4c,0x52,0x55,0x57,0x5b,0x57,0x50,0x41,0x35,0x3a,0x4d,0x5c,0x62,
+0x66,0x71,0x7a,0x78,0x75,0x77,0x77,0x6f,0x6b,0x54,0x57,0x70,0x6a,0x41,0x24,0x21,
+0x21,0x29,0x50,0x6e,0x62,0x53,0x54,0x53,0x3f,0x3e,0x4d,0x64,0x70,0x71,0x69,0x5e,
+0x65,0x60,0x54,0x45,0x3a,0x35,0x31,0x2c,0x1f,0x26,0x36,0x49,0x57,0x60,0x5d,0x53,
+0x2d,0x2a,0x27,0x28,0x2a,0x2b,0x29,0x26,0x28,0x2c,0x31,0x36,0x36,0x34,0x32,0x30,
+0x32,0x34,0x37,0x38,0x38,0x39,0x3b,0x3e,0x3b,0x36,0x33,0x36,0x38,0x34,0x2e,0x2a,
+0x2a,0x2b,0x2b,0x29,0x27,0x27,0x29,0x2b,0x2d,0x2d,0x2d,0x2c,0x2b,0x2c,0x2e,0x30,
+0x2f,0x32,0x36,0x39,0x3a,0x38,0x35,0x33,0x2f,0x30,0x2f,0x2e,0x30,0x33,0x32,0x30,
+0x33,0x2f,0x2e,0x30,0x32,0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x31,0x31,
+0x32,0x30,0x2c,0x28,0x2a,0x31,0x36,0x38,0x35,0x31,0x2d,0x2e,0x32,0x36,0x36,0x34,
+0x2f,0x2f,0x32,0x36,0x3a,0x3c,0x3b,0x39,0x31,0x30,0x30,0x2f,0x30,0x31,0x32,0x34,
+0x32,0x32,0x30,0x30,0x30,0x31,0x33,0x33,0x31,0x30,0x32,0x36,0x39,0x3a,0x3b,0x3e,
+0x3f,0x3d,0x3b,0x3a,0x38,0x36,0x37,0x3a,0x3e,0x42,0x46,0x46,0x45,0x47,0x4c,0x52,
+0x64,0x67,0x67,0x61,0x58,0x55,0x5b,0x63,0x6a,0x64,0x5f,0x5d,0x5b,0x56,0x51,0x4f,
+0x46,0x4a,0x51,0x57,0x57,0x51,0x4d,0x4b,0x4a,0x48,0x45,0x42,0x40,0x3f,0x3f,0x3f,
+0x44,0x45,0x46,0x47,0x47,0x46,0x43,0x40,0x3f,0x41,0x43,0x44,0x42,0x41,0x42,0x43,
+0x43,0x48,0x4d,0x4d,0x4b,0x48,0x43,0x3e,0x47,0x49,0x4a,0x46,0x41,0x3d,0x3c,0x3d,
+0x3e,0x3d,0x3f,0x42,0x43,0x41,0x41,0x42,0x43,0x46,0x4a,0x4c,0x4c,0x4b,0x4b,0x4b,
+0x4a,0x4a,0x4b,0x4e,0x4f,0x4e,0x51,0x54,0x56,0x53,0x53,0x58,0x5d,0x5c,0x58,0x55,
+0x54,0x4e,0x49,0x46,0x43,0x3e,0x3b,0x3b,0x3a,0x39,0x40,0x4d,0x55,0x56,0x5b,0x62,
+0x59,0x58,0x57,0x56,0x55,0x55,0x54,0x54,0x56,0x56,0x5b,0x5f,0x5d,0x57,0x56,0x5a,
+0x65,0x7e,0x8f,0x94,0x98,0x95,0x8c,0x86,0x87,0x88,0x89,0x8a,0x8a,0x89,0x87,0x86,
+0x88,0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x83,0x82,0x82,0x82,0x83,0x83,0x82,0x81,
+0x7f,0x81,0x82,0x83,0x83,0x83,0x84,0x85,0x85,0x86,0x88,0x88,0x87,0x86,0x86,0x86,
+0x86,0x84,0x82,0x80,0x7f,0x7d,0x7a,0x78,0x73,0x70,0x6d,0x6a,0x67,0x64,0x61,0x5f,
+0x57,0x55,0x55,0x57,0x57,0x56,0x56,0x58,0x68,0x75,0x88,0x97,0x9f,0xa2,0xa4,0xa6,
+0xa9,0xaa,0xa9,0xa6,0xa3,0xa1,0x9b,0x96,0x90,0x8f,0x8d,0x8c,0x8c,0x8d,0x8e,0x8f,
+0x8d,0x8d,0x8d,0x8e,0x8e,0x8e,0x8d,0x8d,0x8e,0x8e,0x8f,0x91,0x95,0x9a,0x9f,0xa2,
+0xa1,0xa3,0xa1,0x9c,0x98,0x91,0x85,0x78,0x66,0x60,0x5c,0x61,0x68,0x70,0x7b,0x85,
+0x8c,0x90,0x95,0x98,0x9b,0x9e,0xa2,0xa6,0xa9,0xaa,0xac,0xad,0xad,0xad,0xac,0xab,
+0xac,0xab,0xaa,0xaa,0xaa,0xa9,0xa7,0xa5,0xa4,0xa2,0x9f,0x9b,0x97,0x91,0x8b,0x88,
+0x85,0x83,0x7f,0x7c,0x77,0x72,0x6d,0x6a,0x6a,0x64,0x67,0x6d,0x6e,0x73,0x79,0x79,
+0x79,0x78,0x75,0x72,0x75,0x7d,0x84,0x87,0x88,0x81,0x75,0x67,0x5d,0x5d,0x64,0x6c,
+0x7c,0x7b,0x6c,0x5c,0x5b,0x5e,0x5d,0x5c,0x54,0x4e,0x4b,0x51,0x58,0x59,0x54,0x4f,
+0x4a,0x4f,0x4a,0x4f,0x53,0x58,0x69,0x6e,0x6e,0x68,0x6b,0x6d,0x61,0x55,0x52,0x52,
+0x5f,0x69,0x6a,0x63,0x5b,0x51,0x49,0x49,0x49,0x4b,0x58,0x63,0x65,0x67,0x69,0x67,
+0x62,0x58,0x56,0x5e,0x6a,0x7a,0x84,0x82,0x69,0x57,0x49,0x51,0x64,0x70,0x6d,0x65,
+0x51,0x4a,0x40,0x38,0x31,0x32,0x46,0x5d,0x70,0x6f,0x67,0x63,0x65,0x64,0x62,0x64,
+0x53,0x56,0x60,0x6e,0x6a,0x52,0x48,0x55,0x4f,0x46,0x3f,0x3f,0x44,0x4c,0x54,0x5a,
+0x51,0x4d,0x4d,0x41,0x30,0x3c,0x58,0x64,0x55,0x46,0x47,0x54,0x56,0x54,0x58,0x5d,
+0x57,0x4b,0x42,0x45,0x4d,0x54,0x59,0x5d,0x5c,0x45,0x33,0x37,0x42,0x4b,0x54,0x5d,
+0x6b,0x72,0x7a,0x7c,0x7c,0x82,0x80,0x70,0x51,0x3b,0x3a,0x46,0x3d,0x27,0x1d,0x1f,
+0x2c,0x3d,0x5b,0x6c,0x66,0x5f,0x54,0x42,0x2f,0x29,0x3c,0x5c,0x64,0x5d,0x5b,0x60,
+0x5d,0x58,0x4b,0x3c,0x34,0x34,0x34,0x32,0x20,0x2d,0x3f,0x51,0x62,0x6a,0x63,0x58,
+0x32,0x2d,0x28,0x28,0x2c,0x2f,0x2c,0x27,0x25,0x2a,0x32,0x39,0x3d,0x3c,0x38,0x33,
+0x33,0x35,0x37,0x38,0x38,0x39,0x3b,0x3d,0x3c,0x38,0x36,0x35,0x33,0x2f,0x2c,0x2b,
+0x30,0x31,0x31,0x2e,0x2b,0x2a,0x2e,0x31,0x31,0x31,0x30,0x2d,0x2b,0x2a,0x2c,0x2e,
+0x32,0x32,0x33,0x35,0x36,0x37,0x37,0x37,0x36,0x36,0x34,0x30,0x30,0x33,0x33,0x31,
+0x32,0x33,0x33,0x34,0x38,0x3b,0x3a,0x37,0x34,0x33,0x33,0x32,0x33,0x33,0x34,0x35,
+0x35,0x35,0x32,0x2e,0x2e,0x31,0x35,0x37,0x33,0x32,0x32,0x34,0x37,0x38,0x36,0x34,
+0x37,0x38,0x38,0x38,0x37,0x34,0x31,0x2f,0x36,0x35,0x33,0x32,0x31,0x31,0x30,0x30,
+0x33,0x33,0x33,0x32,0x32,0x33,0x34,0x35,0x35,0x33,0x35,0x38,0x3a,0x39,0x3a,0x3b,
+0x3f,0x3d,0x3c,0x3c,0x3a,0x37,0x38,0x3b,0x3c,0x41,0x49,0x4f,0x50,0x4f,0x4e,0x4d,
+0x4e,0x54,0x5b,0x5e,0x5f,0x62,0x67,0x6c,0x6f,0x6b,0x6a,0x6a,0x65,0x5a,0x51,0x4e,
+0x4d,0x4e,0x53,0x56,0x53,0x4b,0x46,0x46,0x46,0x46,0x45,0x43,0x42,0x40,0x3e,0x3e,
+0x40,0x41,0x42,0x44,0x45,0x45,0x42,0x40,0x40,0x42,0x45,0x46,0x47,0x46,0x45,0x44,
+0x49,0x4c,0x4e,0x4c,0x4b,0x4a,0x45,0x3f,0x41,0x44,0x48,0x46,0x42,0x3e,0x3e,0x3f,
+0x41,0x3f,0x3f,0x41,0x41,0x40,0x41,0x44,0x42,0x46,0x4a,0x4a,0x48,0x46,0x47,0x49,
+0x49,0x48,0x4a,0x4c,0x4d,0x4d,0x51,0x55,0x59,0x55,0x54,0x58,0x5a,0x58,0x55,0x55,
+0x58,0x53,0x4e,0x4d,0x4a,0x45,0x44,0x45,0x46,0x47,0x4b,0x4f,0x52,0x54,0x59,0x5e,
+0x62,0x60,0x5c,0x58,0x55,0x53,0x52,0x51,0x58,0x5a,0x5c,0x5c,0x5b,0x59,0x5a,0x5b,
+0x5d,0x71,0x7f,0x85,0x8c,0x8e,0x89,0x86,0x87,0x88,0x89,0x89,0x89,0x87,0x86,0x85,
+0x85,0x85,0x85,0x85,0x84,0x83,0x82,0x81,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x80,0x7e,
+0x7e,0x7f,0x81,0x82,0x81,0x81,0x82,0x83,0x81,0x82,0x84,0x85,0x84,0x83,0x84,0x84,
+0x81,0x80,0x7f,0x7e,0x7c,0x7a,0x76,0x73,0x6f,0x6c,0x69,0x66,0x65,0x64,0x62,0x61,
+0x59,0x58,0x5a,0x60,0x63,0x61,0x5d,0x5b,0x61,0x6d,0x7f,0x8e,0x96,0x99,0x9a,0x9a,
+0x9c,0x9d,0x9d,0x9a,0x98,0x97,0x92,0x8d,0x87,0x87,0x86,0x85,0x85,0x85,0x86,0x87,
+0x86,0x86,0x87,0x88,0x88,0x88,0x88,0x88,0x88,0x89,0x8a,0x8e,0x93,0x99,0x9e,0xa1,
+0xa1,0xa3,0xa0,0x9b,0x97,0x92,0x85,0x78,0x66,0x5d,0x57,0x5b,0x61,0x66,0x70,0x7a,
+0x82,0x87,0x8e,0x93,0x96,0x9a,0x9d,0xa0,0xa5,0xa6,0xa7,0xa9,0xa9,0xaa,0xaa,0xa9,
+0xa9,0xa9,0xa8,0xa8,0xa8,0xa7,0xa5,0xa3,0xa1,0xa0,0x9e,0x9c,0x98,0x92,0x8b,0x87,
+0x82,0x80,0x7d,0x79,0x75,0x70,0x6a,0x67,0x67,0x62,0x64,0x67,0x67,0x6b,0x73,0x74,
+0x78,0x77,0x75,0x74,0x78,0x7f,0x84,0x84,0x85,0x81,0x78,0x6d,0x64,0x61,0x64,0x67,
+0x7d,0x7e,0x70,0x5f,0x5d,0x63,0x64,0x65,0x65,0x5d,0x56,0x51,0x4e,0x4d,0x4f,0x53,
+0x5f,0x68,0x63,0x5f,0x5a,0x5b,0x66,0x65,0x66,0x62,0x67,0x6b,0x60,0x57,0x5a,0x60,
+0x67,0x6e,0x6d,0x67,0x63,0x59,0x4b,0x45,0x48,0x47,0x52,0x61,0x66,0x68,0x6a,0x68,
+0x64,0x59,0x59,0x61,0x68,0x72,0x7e,0x82,0x80,0x74,0x67,0x64,0x6a,0x70,0x6d,0x67,
+0x5b,0x52,0x45,0x3d,0x3c,0x41,0x53,0x6a,0x6e,0x69,0x61,0x63,0x69,0x65,0x62,0x67,
+0x62,0x60,0x60,0x64,0x5a,0x43,0x40,0x53,0x4e,0x44,0x3c,0x3b,0x42,0x4c,0x55,0x5b,
+0x56,0x55,0x53,0x41,0x2e,0x38,0x4d,0x50,0x43,0x31,0x33,0x47,0x53,0x55,0x58,0x5a,
+0x4e,0x44,0x3e,0x42,0x4a,0x51,0x5a,0x62,0x66,0x4c,0x37,0x39,0x43,0x49,0x51,0x59,
+0x6e,0x72,0x7b,0x7e,0x7e,0x87,0x82,0x6d,0x41,0x39,0x3d,0x42,0x3f,0x43,0x46,0x3f,
+0x49,0x67,0x77,0x6d,0x69,0x72,0x66,0x4b,0x2b,0x2a,0x41,0x61,0x68,0x60,0x60,0x64,
+0x66,0x65,0x5b,0x47,0x37,0x30,0x2b,0x25,0x23,0x39,0x4c,0x55,0x64,0x72,0x76,0x76,
+0x36,0x2f,0x28,0x27,0x2d,0x31,0x2f,0x29,0x21,0x27,0x2f,0x38,0x3d,0x3e,0x38,0x32,
+0x32,0x33,0x34,0x37,0x3a,0x3c,0x3e,0x3e,0x35,0x35,0x36,0x36,0x34,0x32,0x34,0x38,
+0x39,0x3a,0x38,0x34,0x2f,0x2e,0x31,0x35,0x31,0x33,0x34,0x33,0x2f,0x2b,0x29,0x28,
+0x31,0x32,0x33,0x36,0x38,0x3a,0x3b,0x3a,0x3e,0x3f,0x3b,0x35,0x33,0x36,0x37,0x35,
+0x38,0x3b,0x3b,0x39,0x3b,0x40,0x3e,0x38,0x38,0x37,0x36,0x35,0x36,0x36,0x38,0x39,
+0x33,0x36,0x35,0x32,0x30,0x31,0x34,0x34,0x30,0x33,0x37,0x3a,0x3a,0x38,0x36,0x34,
+0x36,0x36,0x35,0x33,0x32,0x32,0x33,0x35,0x36,0x35,0x35,0x36,0x36,0x37,0x36,0x36,
+0x34,0x35,0x35,0x36,0x35,0x36,0x37,0x38,0x39,0x37,0x38,0x3b,0x3c,0x3a,0x39,0x3a,
+0x3d,0x3c,0x3c,0x3c,0x3a,0x38,0x38,0x3b,0x3c,0x41,0x4a,0x56,0x60,0x66,0x66,0x65,
+0x65,0x63,0x60,0x5f,0x5e,0x5c,0x5b,0x59,0x59,0x58,0x5f,0x69,0x67,0x57,0x4c,0x4c,
+0x4e,0x4c,0x4b,0x4b,0x47,0x42,0x42,0x46,0x46,0x47,0x48,0x49,0x48,0x45,0x42,0x41,
+0x3d,0x3d,0x3f,0x41,0x43,0x44,0x42,0x41,0x41,0x43,0x45,0x48,0x49,0x48,0x46,0x44,
+0x51,0x51,0x4c,0x47,0x46,0x49,0x48,0x43,0x3d,0x43,0x48,0x49,0x46,0x43,0x43,0x44,
+0x46,0x43,0x42,0x43,0x43,0x43,0x45,0x48,0x47,0x4a,0x4d,0x4a,0x45,0x42,0x45,0x48,
+0x46,0x45,0x47,0x4a,0x4c,0x4d,0x53,0x59,0x5a,0x56,0x54,0x56,0x57,0x54,0x53,0x54,
+0x57,0x51,0x4d,0x4a,0x47,0x42,0x41,0x44,0x44,0x49,0x4b,0x47,0x46,0x4d,0x53,0x55,
+0x5c,0x5a,0x57,0x54,0x53,0x53,0x55,0x56,0x5b,0x5d,0x5d,0x5a,0x59,0x5c,0x5d,0x5c,
+0x58,0x68,0x73,0x79,0x84,0x89,0x87,0x86,0x87,0x87,0x88,0x88,0x88,0x87,0x85,0x84,
+0x83,0x83,0x83,0x84,0x83,0x82,0x81,0x81,0x80,0x7f,0x7e,0x7f,0x7f,0x7e,0x7c,0x7a,
+0x79,0x7b,0x7c,0x7d,0x7c,0x7c,0x7d,0x7d,0x7e,0x80,0x82,0x83,0x82,0x82,0x82,0x83,
+0x7e,0x7e,0x7d,0x7c,0x7b,0x78,0x73,0x70,0x6d,0x6a,0x67,0x65,0x64,0x65,0x65,0x64,
+0x5f,0x5f,0x63,0x6b,0x70,0x6e,0x67,0x63,0x59,0x65,0x76,0x85,0x8e,0x91,0x91,0x90,
+0x8d,0x8f,0x8f,0x8d,0x8c,0x8a,0x86,0x81,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,
+0x7e,0x7f,0x80,0x80,0x81,0x82,0x82,0x82,0x81,0x82,0x84,0x88,0x8d,0x93,0x98,0x9b,
+0x9c,0x9f,0x9d,0x97,0x94,0x8f,0x82,0x73,0x61,0x57,0x52,0x55,0x5a,0x5e,0x66,0x6f,
+0x75,0x7c,0x84,0x8c,0x90,0x93,0x96,0x98,0xa2,0xa3,0xa4,0xa5,0xa7,0xa7,0xa8,0xa8,
+0xa8,0xa7,0xa6,0xa6,0xa6,0xa5,0xa3,0xa1,0x9f,0x9e,0x9e,0x9c,0x99,0x93,0x8c,0x88,
+0x80,0x7e,0x7b,0x77,0x73,0x6e,0x68,0x64,0x64,0x60,0x62,0x65,0x62,0x67,0x6e,0x70,
+0x70,0x72,0x74,0x76,0x7c,0x81,0x81,0x7d,0x7f,0x7c,0x78,0x72,0x6c,0x65,0x60,0x5e,
+0x76,0x7f,0x7a,0x6e,0x6a,0x69,0x63,0x5f,0x50,0x4b,0x4b,0x52,0x57,0x57,0x56,0x56,
+0x57,0x6f,0x77,0x70,0x62,0x5d,0x67,0x67,0x66,0x62,0x69,0x6d,0x61,0x57,0x5c,0x64,
+0x64,0x68,0x67,0x66,0x68,0x61,0x53,0x4b,0x44,0x41,0x4d,0x5e,0x65,0x68,0x6a,0x68,
+0x62,0x59,0x5d,0x68,0x6b,0x6c,0x73,0x78,0x90,0x8a,0x7f,0x76,0x72,0x71,0x6f,0x6a,
+0x5f,0x56,0x47,0x42,0x47,0x4d,0x5b,0x6e,0x67,0x5e,0x56,0x5d,0x66,0x62,0x5d,0x64,
+0x60,0x62,0x65,0x68,0x5e,0x47,0x42,0x50,0x4c,0x44,0x3c,0x3a,0x40,0x4a,0x53,0x59,
+0x5c,0x58,0x52,0x42,0x35,0x43,0x4f,0x47,0x38,0x32,0x40,0x55,0x58,0x52,0x53,0x58,
+0x4c,0x45,0x40,0x43,0x49,0x50,0x5c,0x67,0x67,0x5a,0x46,0x38,0x3b,0x4b,0x5a,0x61,
+0x68,0x6c,0x77,0x7a,0x78,0x80,0x7b,0x63,0x4a,0x3e,0x4d,0x63,0x5e,0x4c,0x40,0x38,
+0x5e,0x75,0x7b,0x6d,0x64,0x63,0x60,0x5b,0x57,0x53,0x59,0x61,0x61,0x60,0x5e,0x56,
+0x50,0x57,0x57,0x49,0x39,0x31,0x2b,0x26,0x2e,0x4e,0x60,0x59,0x51,0x52,0x56,0x5a,
+0x33,0x33,0x2e,0x27,0x24,0x28,0x2b,0x2b,0x2a,0x29,0x2a,0x31,0x39,0x3d,0x3a,0x35,
+0x32,0x35,0x36,0x36,0x35,0x35,0x39,0x3c,0x3b,0x37,0x33,0x32,0x35,0x37,0x37,0x36,
+0x36,0x39,0x3a,0x35,0x32,0x32,0x34,0x35,0x34,0x36,0x37,0x34,0x31,0x2e,0x2a,0x26,
+0x2d,0x30,0x32,0x33,0x33,0x32,0x32,0x33,0x37,0x3b,0x41,0x42,0x3d,0x37,0x38,0x3d,
+0x3d,0x39,0x34,0x33,0x39,0x3e,0x3e,0x3a,0x3e,0x3a,0x38,0x3d,0x44,0x47,0x42,0x3c,
+0x36,0x35,0x37,0x39,0x35,0x2e,0x2f,0x36,0x34,0x38,0x3b,0x3a,0x37,0x35,0x34,0x34,
+0x35,0x34,0x34,0x36,0x38,0x38,0x35,0x32,0x32,0x32,0x31,0x30,0x32,0x36,0x38,0x38,
+0x34,0x36,0x3b,0x40,0x3e,0x38,0x36,0x39,0x3a,0x3a,0x3c,0x3e,0x3b,0x36,0x37,0x3b,
+0x3c,0x3d,0x3d,0x3b,0x3a,0x39,0x3a,0x3b,0x3b,0x3d,0x44,0x4f,0x5e,0x69,0x6e,0x70,
+0x69,0x64,0x60,0x63,0x66,0x66,0x64,0x63,0x5b,0x5f,0x5d,0x54,0x4c,0x4a,0x4a,0x4a,
+0x4a,0x48,0x46,0x45,0x46,0x46,0x45,0x43,0x45,0x46,0x47,0x49,0x49,0x48,0x45,0x43,
+0x3e,0x3e,0x3e,0x3f,0x3f,0x40,0x40,0x40,0x42,0x48,0x4c,0x4d,0x4d,0x4e,0x4e,0x4d,
+0x49,0x4a,0x4a,0x48,0x47,0x46,0x48,0x4a,0x47,0x48,0x49,0x49,0x46,0x43,0x44,0x49,
+0x48,0x47,0x45,0x44,0x44,0x45,0x47,0x48,0x45,0x45,0x46,0x47,0x47,0x47,0x47,0x47,
+0x45,0x44,0x43,0x47,0x4d,0x52,0x53,0x53,0x58,0x54,0x50,0x4f,0x51,0x52,0x50,0x4e,
+0x4e,0x4d,0x4b,0x48,0x46,0x45,0x46,0x47,0x51,0x50,0x4c,0x48,0x4b,0x55,0x5e,0x62,
+0x66,0x5c,0x52,0x4d,0x50,0x56,0x5c,0x5e,0x5d,0x5a,0x55,0x54,0x58,0x5d,0x60,0x5f,
+0x59,0x57,0x5f,0x6b,0x73,0x7e,0x86,0x86,0x88,0x87,0x86,0x86,0x87,0x86,0x84,0x83,
+0x82,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7b,0x7a,0x79,
+0x7a,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7f,0x7f,0x7f,0x7f,0x80,0x81,
+0x7e,0x7c,0x79,0x77,0x76,0x74,0x73,0x72,0x6f,0x6c,0x68,0x63,0x5f,0x5e,0x5f,0x60,
+0x64,0x66,0x6c,0x74,0x7a,0x7a,0x76,0x71,0x62,0x5f,0x65,0x76,0x83,0x85,0x83,0x83,
+0x86,0x82,0x7f,0x7d,0x7d,0x7c,0x7a,0x78,0x71,0x72,0x73,0x75,0x75,0x75,0x75,0x75,
+0x77,0x78,0x79,0x79,0x79,0x79,0x78,0x77,0x7d,0x7d,0x7f,0x83,0x86,0x89,0x8e,0x93,
+0x94,0x94,0x94,0x94,0x90,0x87,0x7b,0x73,0x60,0x59,0x51,0x4f,0x51,0x56,0x5e,0x65,
+0x70,0x76,0x7f,0x85,0x89,0x8c,0x91,0x94,0x99,0x9b,0x9e,0xa1,0xa4,0xa4,0xa4,0xa4,
+0xa5,0xa6,0xa6,0xa5,0xa4,0xa3,0xa2,0xa1,0xa0,0x9e,0x9c,0x9a,0x98,0x93,0x8b,0x85,
+0x7f,0x79,0x74,0x72,0x71,0x6d,0x68,0x66,0x5b,0x71,0x79,0x6c,0x60,0x5e,0x65,0x6f,
+0x6d,0x6d,0x6d,0x71,0x7a,0x83,0x84,0x81,0x7c,0x7d,0x78,0x75,0x71,0x66,0x5b,0x5b,
+0x70,0x7d,0x7f,0x77,0x7a,0x87,0x8a,0x81,0x72,0x65,0x65,0x76,0x7d,0x73,0x6d,0x72,
+0x68,0x62,0x5d,0x60,0x64,0x66,0x66,0x65,0x60,0x60,0x65,0x69,0x65,0x5d,0x5f,0x67,
+0x67,0x61,0x5e,0x63,0x6e,0x71,0x63,0x50,0x46,0x4a,0x50,0x59,0x63,0x6a,0x69,0x64,
+0x61,0x5d,0x5c,0x61,0x6b,0x71,0x71,0x6f,0x7a,0x85,0x8f,0x8e,0x82,0x75,0x6e,0x6c,
+0x63,0x59,0x50,0x4d,0x51,0x59,0x66,0x71,0x65,0x58,0x50,0x55,0x5f,0x61,0x5f,0x5d,
+0x61,0x62,0x69,0x6a,0x56,0x3e,0x40,0x51,0x49,0x3b,0x3b,0x46,0x4c,0x50,0x59,0x5e,
+0x55,0x52,0x46,0x37,0x38,0x44,0x46,0x3e,0x2e,0x30,0x37,0x43,0x4c,0x4d,0x4a,0x48,
+0x45,0x4c,0x4c,0x4a,0x4f,0x53,0x59,0x61,0x5c,0x4a,0x3d,0x39,0x3d,0x4d,0x5e,0x64,
+0x61,0x60,0x6b,0x76,0x78,0x7b,0x6f,0x55,0x41,0x48,0x5b,0x57,0x5d,0x5a,0x60,0x55,
+0x57,0x6b,0x69,0x62,0x63,0x6a,0x67,0x50,0x44,0x3e,0x4c,0x64,0x6a,0x62,0x5b,0x58,
+0x5b,0x59,0x4e,0x3b,0x2d,0x2b,0x30,0x34,0x38,0x54,0x5d,0x49,0x39,0x37,0x3b,0x3f,
+0x33,0x31,0x2b,0x24,0x24,0x2a,0x2e,0x30,0x2d,0x2c,0x2d,0x33,0x39,0x3c,0x38,0x34,
+0x2e,0x32,0x38,0x3a,0x39,0x37,0x37,0x38,0x3a,0x39,0x39,0x38,0x37,0x35,0x31,0x2d,
+0x2f,0x34,0x38,0x38,0x36,0x35,0x35,0x34,0x34,0x34,0x33,0x32,0x33,0x35,0x33,0x2f,
+0x31,0x33,0x35,0x36,0x36,0x35,0x33,0x32,0x3b,0x3f,0x45,0x46,0x40,0x3b,0x3d,0x43,
+0x3e,0x3d,0x3a,0x36,0x38,0x3c,0x3f,0x3f,0x39,0x3c,0x40,0x42,0x41,0x3d,0x3a,0x38,
+0x3d,0x3e,0x3f,0x3e,0x3a,0x35,0x34,0x36,0x39,0x39,0x39,0x39,0x39,0x38,0x34,0x31,
+0x36,0x36,0x36,0x35,0x34,0x33,0x34,0x34,0x33,0x34,0x35,0x36,0x38,0x3b,0x3c,0x3b,
+0x3c,0x3c,0x40,0x46,0x45,0x3f,0x39,0x37,0x38,0x38,0x3a,0x3e,0x3f,0x3e,0x3f,0x43,
+0x3d,0x3d,0x3c,0x3b,0x3b,0x3c,0x40,0x42,0x40,0x3f,0x41,0x47,0x4f,0x58,0x5d,0x5f,
+0x5b,0x5b,0x5f,0x68,0x6e,0x6d,0x69,0x66,0x6d,0x71,0x70,0x65,0x57,0x4d,0x48,0x45,
+0x43,0x41,0x41,0x45,0x4b,0x4d,0x4a,0x46,0x42,0x44,0x47,0x49,0x4b,0x49,0x46,0x43,
+0x41,0x40,0x40,0x40,0x40,0x3f,0x3f,0x3f,0x40,0x46,0x4b,0x4d,0x4e,0x4f,0x4d,0x4a,
+0x45,0x47,0x49,0x49,0x4a,0x4b,0x4e,0x50,0x4c,0x4a,0x49,0x4c,0x4c,0x4a,0x49,0x49,
+0x4c,0x4c,0x4c,0x4c,0x4b,0x49,0x47,0x46,0x42,0x45,0x4a,0x4d,0x4e,0x4b,0x48,0x45,
+0x40,0x40,0x40,0x42,0x46,0x4c,0x50,0x53,0x59,0x55,0x4f,0x4d,0x4e,0x50,0x50,0x4f,
+0x4d,0x4c,0x4a,0x46,0x42,0x42,0x44,0x46,0x4f,0x52,0x56,0x59,0x5d,0x60,0x60,0x5d,
+0x61,0x59,0x51,0x4e,0x52,0x58,0x5c,0x5d,0x5c,0x58,0x54,0x53,0x56,0x5b,0x5e,0x5d,
+0x54,0x50,0x54,0x5c,0x62,0x70,0x7e,0x82,0x87,0x86,0x86,0x86,0x86,0x86,0x84,0x82,
+0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x7a,0x79,0x78,
+0x76,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7e,0x7e,
+0x7d,0x7b,0x78,0x76,0x75,0x74,0x72,0x71,0x6d,0x6c,0x6a,0x64,0x60,0x5f,0x63,0x68,
+0x6c,0x6f,0x74,0x7a,0x7e,0x80,0x7f,0x7d,0x73,0x69,0x61,0x63,0x6d,0x75,0x79,0x7b,
+0x6e,0x71,0x75,0x77,0x76,0x72,0x6d,0x6a,0x6b,0x6a,0x69,0x68,0x69,0x6c,0x6f,0x71,
+0x70,0x71,0x72,0x74,0x75,0x75,0x75,0x75,0x74,0x75,0x77,0x7c,0x7f,0x81,0x86,0x8a,
+0x89,0x89,0x8a,0x8b,0x89,0x7f,0x71,0x66,0x58,0x52,0x4d,0x4c,0x4e,0x52,0x59,0x5f,
+0x68,0x6e,0x77,0x7d,0x82,0x86,0x8a,0x8e,0x93,0x95,0x99,0x9d,0xa0,0xa2,0xa3,0xa4,
+0xa2,0xa2,0xa2,0xa3,0xa3,0xa2,0xa1,0xa1,0xa0,0x9e,0x9b,0x98,0x96,0x90,0x89,0x83,
+0x7e,0x78,0x73,0x71,0x6f,0x6a,0x66,0x64,0x5f,0x79,0x87,0x7e,0x6d,0x60,0x60,0x69,
+0x6f,0x6d,0x6a,0x6a,0x71,0x7b,0x81,0x82,0x7d,0x7e,0x79,0x75,0x72,0x65,0x59,0x58,
+0x6b,0x78,0x87,0x89,0x80,0x7e,0x8a,0x9a,0x94,0x86,0x78,0x70,0x6c,0x69,0x6a,0x6d,
+0x6c,0x63,0x5c,0x5c,0x62,0x67,0x6a,0x6d,0x5f,0x65,0x6b,0x6c,0x66,0x60,0x64,0x6b,
+0x66,0x62,0x60,0x66,0x71,0x75,0x6b,0x5d,0x57,0x55,0x53,0x57,0x60,0x68,0x68,0x63,
+0x61,0x5e,0x5d,0x62,0x6a,0x6f,0x6e,0x6c,0x6a,0x75,0x83,0x8a,0x87,0x7f,0x78,0x74,
+0x67,0x5e,0x56,0x56,0x5c,0x63,0x6b,0x72,0x66,0x5a,0x52,0x56,0x5f,0x62,0x63,0x64,
+0x5f,0x61,0x6b,0x6f,0x5f,0x48,0x42,0x4c,0x53,0x45,0x43,0x4a,0x4b,0x4c,0x52,0x55,
+0x54,0x53,0x4c,0x41,0x3b,0x3c,0x40,0x41,0x36,0x40,0x4e,0x57,0x54,0x4a,0x43,0x42,
+0x4a,0x4f,0x4b,0x48,0x50,0x58,0x5a,0x5c,0x56,0x4b,0x42,0x3c,0x3b,0x49,0x5e,0x69,
+0x6b,0x61,0x67,0x77,0x7e,0x7a,0x64,0x45,0x39,0x42,0x58,0x5a,0x61,0x5c,0x5f,0x56,
+0x60,0x5f,0x5d,0x6e,0x7a,0x71,0x5f,0x48,0x3d,0x3f,0x4f,0x62,0x66,0x63,0x5d,0x55,
+0x57,0x51,0x42,0x32,0x2d,0x30,0x33,0x31,0x44,0x51,0x61,0x6d,0x6a,0x50,0x38,0x32,
+0x40,0x3b,0x31,0x2a,0x29,0x2e,0x32,0x33,0x34,0x30,0x2c,0x2b,0x30,0x34,0x37,0x37,
+0x37,0x3b,0x3f,0x3f,0x3c,0x38,0x36,0x35,0x3c,0x3e,0x3f,0x3d,0x39,0x34,0x30,0x2e,
+0x32,0x37,0x3b,0x3a,0x38,0x37,0x36,0x34,0x34,0x32,0x2f,0x2e,0x33,0x39,0x39,0x37,
+0x35,0x36,0x38,0x3a,0x3b,0x3a,0x38,0x36,0x3e,0x43,0x49,0x49,0x43,0x3d,0x40,0x47,
+0x43,0x45,0x43,0x3d,0x39,0x3b,0x3f,0x42,0x3c,0x3e,0x41,0x41,0x3e,0x3a,0x37,0x36,
+0x3b,0x3e,0x41,0x40,0x41,0x42,0x40,0x3e,0x3c,0x39,0x38,0x3a,0x3d,0x3d,0x37,0x32,
+0x33,0x36,0x39,0x39,0x37,0x36,0x37,0x39,0x30,0x33,0x36,0x37,0x3a,0x3d,0x3e,0x3d,
+0x3c,0x3d,0x42,0x4a,0x4d,0x49,0x43,0x3e,0x40,0x3f,0x40,0x42,0x42,0x41,0x42,0x44,
+0x44,0x43,0x40,0x3e,0x3d,0x3e,0x42,0x45,0x48,0x49,0x4a,0x4a,0x49,0x45,0x41,0x3f,
+0x44,0x4c,0x59,0x63,0x66,0x64,0x66,0x6a,0x70,0x74,0x72,0x64,0x52,0x44,0x3c,0x39,
+0x3d,0x3b,0x3d,0x44,0x4d,0x50,0x4b,0x46,0x40,0x43,0x46,0x4a,0x4c,0x4b,0x47,0x43,
+0x41,0x41,0x41,0x41,0x40,0x40,0x40,0x40,0x41,0x44,0x46,0x47,0x49,0x4b,0x49,0x46,
+0x44,0x47,0x4a,0x4c,0x4e,0x50,0x52,0x53,0x4d,0x49,0x47,0x4b,0x50,0x4f,0x4b,0x48,
+0x4c,0x4c,0x4c,0x4b,0x4a,0x49,0x48,0x47,0x48,0x4b,0x4e,0x51,0x50,0x4c,0x48,0x44,
+0x41,0x41,0x41,0x40,0x41,0x46,0x4d,0x54,0x5b,0x55,0x4f,0x4b,0x4b,0x4d,0x4f,0x50,
+0x4a,0x4a,0x47,0x42,0x3f,0x3f,0x43,0x48,0x49,0x4a,0x4a,0x4c,0x50,0x56,0x58,0x57,
+0x5a,0x56,0x51,0x51,0x55,0x59,0x5a,0x5a,0x57,0x54,0x52,0x53,0x56,0x5a,0x5c,0x5c,
+0x56,0x50,0x4f,0x50,0x54,0x64,0x7a,0x83,0x86,0x85,0x85,0x85,0x86,0x85,0x83,0x81,
+0x7f,0x7e,0x7c,0x7a,0x79,0x79,0x7a,0x7a,0x79,0x78,0x77,0x77,0x77,0x77,0x76,0x75,
+0x72,0x73,0x75,0x76,0x77,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x79,0x7a,
+0x7b,0x79,0x77,0x75,0x74,0x73,0x71,0x70,0x6b,0x6c,0x6b,0x66,0x62,0x63,0x6b,0x72,
+0x75,0x78,0x7d,0x81,0x83,0x86,0x88,0x89,0x80,0x73,0x61,0x58,0x5c,0x67,0x6e,0x6f,
+0x6f,0x6f,0x6c,0x67,0x62,0x61,0x64,0x67,0x63,0x63,0x63,0x63,0x64,0x67,0x69,0x6a,
+0x6b,0x6c,0x6c,0x6d,0x6c,0x6b,0x6a,0x69,0x6c,0x6d,0x70,0x74,0x76,0x77,0x79,0x7d,
+0x7f,0x7f,0x80,0x80,0x7d,0x72,0x63,0x57,0x51,0x4d,0x49,0x49,0x4b,0x4e,0x54,0x59,
+0x60,0x66,0x6e,0x75,0x7a,0x7f,0x84,0x87,0x8d,0x8f,0x93,0x97,0x9b,0x9e,0x9f,0xa0,
+0x9d,0x9e,0x9f,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0x9d,0x99,0x95,0x92,0x8c,0x86,0x81,
+0x7c,0x77,0x72,0x6f,0x6d,0x68,0x63,0x62,0x5b,0x74,0x87,0x85,0x76,0x64,0x5e,0x66,
+0x70,0x6d,0x67,0x62,0x66,0x71,0x7c,0x81,0x7e,0x7f,0x7a,0x76,0x72,0x64,0x57,0x54,
+0x61,0x71,0x83,0x83,0x6f,0x61,0x6e,0x83,0x7a,0x7b,0x75,0x6c,0x6c,0x77,0x7f,0x80,
+0x6f,0x63,0x57,0x54,0x57,0x5d,0x62,0x66,0x68,0x72,0x78,0x73,0x69,0x66,0x6a,0x6f,
+0x66,0x64,0x63,0x69,0x73,0x79,0x75,0x6c,0x60,0x59,0x53,0x54,0x5f,0x69,0x6a,0x65,
+0x60,0x60,0x61,0x65,0x6a,0x6d,0x6c,0x6b,0x5d,0x66,0x75,0x83,0x8b,0x89,0x82,0x7c,
+0x6d,0x64,0x5c,0x5e,0x66,0x6c,0x6f,0x70,0x69,0x5f,0x58,0x5c,0x62,0x66,0x6b,0x6f,
+0x70,0x6b,0x67,0x64,0x56,0x46,0x44,0x4d,0x52,0x48,0x47,0x4d,0x4b,0x4c,0x52,0x56,
+0x52,0x54,0x52,0x49,0x3b,0x34,0x3a,0x45,0x51,0x52,0x54,0x56,0x54,0x52,0x54,0x57,
+0x58,0x60,0x5b,0x4f,0x50,0x57,0x59,0x59,0x5d,0x50,0x45,0x3d,0x3a,0x47,0x5a,0x62,
+0x62,0x5b,0x63,0x75,0x7a,0x6f,0x55,0x3a,0x40,0x4a,0x5a,0x57,0x52,0x42,0x3f,0x3b,
+0x59,0x6d,0x69,0x64,0x6e,0x7b,0x70,0x4a,0x33,0x3b,0x4b,0x58,0x5d,0x61,0x60,0x58,
+0x62,0x5b,0x49,0x34,0x2a,0x2c,0x2e,0x2b,0x3d,0x58,0x71,0x7e,0x81,0x75,0x66,0x61,
+0x3d,0x36,0x2c,0x27,0x27,0x2a,0x2c,0x2c,0x35,0x33,0x30,0x30,0x32,0x35,0x37,0x38,
+0x34,0x36,0x39,0x3a,0x3b,0x3c,0x3e,0x3f,0x3e,0x40,0x40,0x3d,0x38,0x35,0x35,0x36,
+0x3d,0x40,0x40,0x3c,0x38,0x36,0x34,0x32,0x34,0x32,0x2e,0x2c,0x2f,0x35,0x39,0x38,
+0x37,0x37,0x38,0x3b,0x3d,0x3f,0x3e,0x3d,0x3e,0x44,0x4a,0x4a,0x42,0x3c,0x3f,0x46,
+0x47,0x4b,0x4b,0x44,0x3e,0x3d,0x3f,0x40,0x41,0x3c,0x36,0x36,0x3a,0x3c,0x3a,0x36,
+0x38,0x3c,0x3f,0x3f,0x43,0x49,0x48,0x43,0x3d,0x3b,0x3a,0x3e,0x42,0x40,0x3c,0x38,
+0x33,0x37,0x3b,0x3d,0x3c,0x3a,0x39,0x38,0x31,0x36,0x38,0x37,0x39,0x3e,0x3f,0x3e,
+0x3d,0x3f,0x44,0x4a,0x4e,0x4c,0x48,0x44,0x48,0x49,0x49,0x47,0x43,0x41,0x41,0x44,
+0x4d,0x4b,0x48,0x43,0x40,0x3f,0x40,0x41,0x45,0x4c,0x54,0x57,0x52,0x47,0x3a,0x31,
+0x3c,0x46,0x51,0x52,0x4a,0x46,0x4e,0x5a,0x5e,0x61,0x61,0x57,0x4a,0x41,0x40,0x42,
+0x3c,0x3b,0x3d,0x42,0x49,0x4b,0x47,0x43,0x43,0x44,0x46,0x49,0x4b,0x4a,0x48,0x45,
+0x3e,0x3f,0x3f,0x40,0x41,0x42,0x42,0x43,0x46,0x46,0x44,0x43,0x45,0x48,0x48,0x45,
+0x47,0x49,0x4c,0x4e,0x4f,0x51,0x51,0x52,0x4d,0x48,0x47,0x4c,0x51,0x50,0x4c,0x49,
+0x4a,0x49,0x48,0x47,0x48,0x4b,0x4e,0x50,0x55,0x53,0x50,0x4d,0x4a,0x47,0x45,0x45,
+0x46,0x47,0x46,0x42,0x3e,0x41,0x4a,0x52,0x5a,0x56,0x50,0x4c,0x4c,0x4d,0x4f,0x4f,
+0x48,0x48,0x46,0x41,0x3e,0x40,0x46,0x4c,0x4e,0x4b,0x47,0x46,0x4c,0x56,0x5c,0x5d,
+0x58,0x56,0x54,0x54,0x57,0x58,0x57,0x55,0x51,0x50,0x50,0x54,0x57,0x58,0x58,0x59,
+0x58,0x52,0x4f,0x4b,0x4c,0x5f,0x7a,0x87,0x85,0x84,0x84,0x85,0x85,0x84,0x82,0x80,
+0x7f,0x7e,0x7b,0x79,0x78,0x78,0x79,0x7a,0x77,0x76,0x74,0x74,0x75,0x75,0x74,0x72,
+0x70,0x72,0x74,0x75,0x76,0x76,0x75,0x75,0x75,0x76,0x77,0x77,0x76,0x75,0x75,0x75,
+0x78,0x77,0x75,0x73,0x73,0x72,0x70,0x6f,0x6b,0x6b,0x69,0x67,0x66,0x6b,0x73,0x7a,
+0x7b,0x7f,0x83,0x86,0x86,0x87,0x8a,0x8d,0x82,0x7b,0x6c,0x5c,0x57,0x5a,0x5b,0x58,
+0x54,0x4e,0x44,0x3b,0x36,0x39,0x41,0x47,0x55,0x59,0x5e,0x63,0x66,0x66,0x64,0x62,
+0x66,0x66,0x66,0x66,0x65,0x64,0x63,0x62,0x68,0x69,0x6c,0x6f,0x70,0x6f,0x70,0x72,
+0x79,0x78,0x78,0x75,0x6e,0x64,0x59,0x52,0x53,0x4f,0x4c,0x4a,0x4a,0x4b,0x50,0x55,
+0x5c,0x61,0x68,0x70,0x76,0x7b,0x80,0x83,0x8a,0x8c,0x8f,0x93,0x96,0x98,0x99,0x9a,
+0x9b,0x9b,0x9c,0x9d,0x9e,0x9e,0x9f,0x9f,0x9d,0x9b,0x96,0x92,0x8e,0x89,0x84,0x81,
+0x7b,0x76,0x71,0x6e,0x6b,0x65,0x61,0x60,0x5a,0x6b,0x79,0x7f,0x7a,0x6a,0x60,0x63,
+0x6b,0x6b,0x66,0x61,0x61,0x6a,0x76,0x7c,0x7d,0x7d,0x78,0x75,0x71,0x63,0x54,0x50,
+0x63,0x77,0x84,0x7a,0x64,0x57,0x59,0x5e,0x6f,0x76,0x75,0x6b,0x67,0x6e,0x72,0x71,
+0x79,0x6d,0x62,0x5e,0x61,0x65,0x6a,0x6d,0x90,0x97,0x94,0x84,0x73,0x6e,0x6d,0x6b,
+0x67,0x66,0x67,0x6b,0x73,0x78,0x79,0x77,0x67,0x5f,0x56,0x56,0x60,0x6a,0x6a,0x64,
+0x60,0x61,0x64,0x68,0x6b,0x6d,0x6d,0x6c,0x61,0x64,0x6d,0x7c,0x89,0x8d,0x88,0x81,
+0x76,0x6b,0x61,0x61,0x69,0x6f,0x6f,0x6c,0x67,0x61,0x5d,0x60,0x64,0x66,0x6b,0x72,
+0x75,0x6c,0x61,0x56,0x4a,0x43,0x47,0x4f,0x4a,0x46,0x4a,0x4f,0x49,0x49,0x52,0x5a,
+0x54,0x58,0x56,0x48,0x38,0x34,0x40,0x4d,0x56,0x46,0x38,0x38,0x44,0x4f,0x55,0x57,
+0x5a,0x6a,0x67,0x52,0x49,0x50,0x59,0x5f,0x62,0x51,0x43,0x3d,0x3f,0x4c,0x56,0x54,
+0x4c,0x59,0x6e,0x7b,0x76,0x64,0x4c,0x3a,0x36,0x49,0x5a,0x57,0x4c,0x3d,0x40,0x4b,
+0x64,0x73,0x78,0x79,0x70,0x61,0x58,0x49,0x40,0x44,0x51,0x5e,0x62,0x68,0x6a,0x65,
+0x6c,0x69,0x58,0x3d,0x29,0x24,0x28,0x2b,0x35,0x46,0x55,0x65,0x75,0x71,0x55,0x3d,
+0x35,0x30,0x2a,0x2a,0x2c,0x2f,0x31,0x31,0x31,0x37,0x3e,0x42,0x42,0x3f,0x3b,0x38,
+0x3c,0x3c,0x3c,0x3b,0x39,0x37,0x37,0x37,0x39,0x3c,0x3e,0x3b,0x37,0x33,0x33,0x35,
+0x3c,0x3f,0x3f,0x3c,0x38,0x37,0x34,0x31,0x33,0x34,0x32,0x2d,0x2c,0x31,0x37,0x3a,
+0x39,0x38,0x38,0x38,0x3a,0x3c,0x3e,0x3e,0x3e,0x43,0x49,0x49,0x41,0x3a,0x3c,0x41,
+0x44,0x48,0x4a,0x47,0x43,0x41,0x3f,0x3d,0x3f,0x39,0x33,0x33,0x37,0x3a,0x3b,0x39,
+0x3c,0x3f,0x3f,0x3d,0x41,0x47,0x47,0x41,0x41,0x40,0x42,0x46,0x45,0x41,0x3d,0x3e,
+0x3a,0x3a,0x3c,0x3e,0x40,0x41,0x3f,0x3d,0x3c,0x40,0x40,0x3a,0x39,0x3d,0x3f,0x3d,
+0x44,0x47,0x4a,0x4a,0x49,0x47,0x46,0x45,0x49,0x4e,0x50,0x4c,0x45,0x42,0x44,0x48,
+0x4c,0x4b,0x49,0x46,0x42,0x40,0x40,0x40,0x49,0x51,0x5d,0x65,0x66,0x60,0x58,0x53,
+0x4f,0x4f,0x4e,0x48,0x3e,0x37,0x39,0x3f,0x41,0x46,0x4a,0x49,0x43,0x3f,0x42,0x47,
+0x3d,0x3e,0x40,0x42,0x44,0x45,0x45,0x44,0x46,0x46,0x46,0x47,0x49,0x49,0x48,0x47,
+0x3e,0x3e,0x3f,0x40,0x40,0x41,0x42,0x42,0x49,0x49,0x47,0x46,0x47,0x49,0x47,0x43,
+0x47,0x47,0x49,0x4b,0x4d,0x4e,0x4e,0x4d,0x4c,0x4b,0x4c,0x50,0x52,0x50,0x4e,0x4d,
+0x4c,0x4c,0x4c,0x4d,0x50,0x53,0x56,0x58,0x56,0x53,0x4e,0x48,0x45,0x43,0x43,0x43,
+0x4a,0x4b,0x4a,0x46,0x42,0x43,0x4b,0x53,0x5a,0x58,0x54,0x52,0x51,0x50,0x50,0x50,
+0x4b,0x4a,0x48,0x43,0x40,0x42,0x47,0x4c,0x4a,0x4c,0x4f,0x52,0x58,0x5e,0x5f,0x5e,
+0x5c,0x5a,0x59,0x59,0x59,0x57,0x54,0x51,0x4e,0x4d,0x50,0x55,0x56,0x53,0x51,0x51,
+0x4f,0x4c,0x49,0x44,0x46,0x5b,0x79,0x87,0x83,0x83,0x83,0x84,0x84,0x83,0x81,0x7f,
+0x7e,0x7c,0x79,0x77,0x76,0x77,0x78,0x78,0x75,0x74,0x72,0x72,0x72,0x72,0x71,0x70,
+0x70,0x71,0x73,0x74,0x75,0x74,0x73,0x72,0x72,0x73,0x74,0x75,0x74,0x73,0x74,0x74,
+0x75,0x74,0x72,0x72,0x71,0x70,0x6f,0x6d,0x6c,0x69,0x67,0x68,0x6c,0x73,0x79,0x7d,
+0x7d,0x83,0x88,0x8a,0x89,0x87,0x89,0x8b,0x81,0x81,0x79,0x67,0x59,0x50,0x4a,0x43,
+0x42,0x3f,0x3c,0x3a,0x3a,0x3b,0x3c,0x3b,0x41,0x47,0x50,0x59,0x5f,0x62,0x61,0x61,
+0x60,0x61,0x62,0x62,0x62,0x61,0x60,0x5f,0x5e,0x5e,0x60,0x64,0x65,0x65,0x66,0x6a,
+0x6d,0x6e,0x6d,0x68,0x61,0x5c,0x5a,0x5a,0x5d,0x58,0x53,0x4e,0x4a,0x49,0x4d,0x52,
+0x59,0x5d,0x64,0x6c,0x73,0x79,0x7e,0x81,0x86,0x87,0x8a,0x8e,0x91,0x94,0x95,0x96,
+0x99,0x99,0x9a,0x9a,0x9a,0x9b,0x9b,0x9b,0x99,0x96,0x93,0x8f,0x8b,0x87,0x84,0x81,
+0x7a,0x75,0x71,0x6e,0x6a,0x64,0x61,0x60,0x61,0x67,0x6d,0x77,0x7d,0x73,0x63,0x5d,
+0x66,0x69,0x69,0x66,0x65,0x6b,0x73,0x78,0x7a,0x7a,0x75,0x72,0x6f,0x62,0x52,0x4f,
+0x58,0x6c,0x7c,0x7b,0x70,0x69,0x6a,0x6d,0x65,0x66,0x63,0x5b,0x58,0x5c,0x65,0x6c,
+0x68,0x60,0x59,0x5b,0x60,0x64,0x67,0x69,0x69,0x71,0x72,0x6a,0x69,0x71,0x77,0x77,
+0x6a,0x69,0x69,0x6b,0x70,0x74,0x77,0x79,0x74,0x6a,0x5e,0x58,0x5e,0x65,0x66,0x62,
+0x5e,0x60,0x64,0x68,0x6b,0x6c,0x6d,0x6d,0x6c,0x6a,0x6b,0x74,0x81,0x89,0x89,0x86,
+0x7f,0x74,0x67,0x63,0x69,0x6e,0x6d,0x69,0x60,0x5d,0x5d,0x61,0x61,0x60,0x63,0x69,
+0x61,0x61,0x5f,0x59,0x51,0x4c,0x4b,0x4d,0x46,0x48,0x50,0x51,0x45,0x42,0x4e,0x57,
+0x56,0x5b,0x54,0x3f,0x33,0x3a,0x4a,0x52,0x46,0x37,0x2d,0x34,0x44,0x4c,0x49,0x43,
+0x53,0x60,0x5b,0x47,0x43,0x4e,0x5a,0x61,0x56,0x4c,0x46,0x44,0x46,0x4f,0x51,0x49,
+0x3a,0x58,0x74,0x79,0x6b,0x52,0x37,0x26,0x35,0x51,0x60,0x59,0x45,0x35,0x36,0x49,
+0x60,0x69,0x67,0x68,0x61,0x55,0x4f,0x43,0x42,0x41,0x4f,0x61,0x66,0x65,0x64,0x61,
+0x63,0x5c,0x4d,0x39,0x29,0x24,0x28,0x2e,0x3b,0x49,0x5b,0x67,0x5e,0x46,0x3e,0x4c,
+0x39,0x35,0x32,0x33,0x35,0x34,0x34,0x35,0x35,0x3a,0x40,0x43,0x41,0x40,0x3f,0x40,
+0x49,0x49,0x49,0x47,0x43,0x3e,0x39,0x36,0x37,0x3b,0x3f,0x3f,0x3a,0x34,0x31,0x30,
+0x35,0x38,0x3b,0x3b,0x3a,0x3a,0x37,0x34,0x34,0x37,0x37,0x32,0x2f,0x32,0x38,0x3b,
+0x3a,0x3a,0x39,0x37,0x36,0x36,0x38,0x3a,0x3e,0x42,0x48,0x49,0x42,0x3b,0x3a,0x3d,
+0x3c,0x41,0x45,0x46,0x46,0x46,0x42,0x3e,0x3d,0x3f,0x40,0x3e,0x3b,0x3b,0x3f,0x43,
+0x3e,0x3e,0x3c,0x3c,0x3f,0x45,0x47,0x45,0x46,0x46,0x49,0x4c,0x48,0x40,0x3d,0x40,
+0x3f,0x3d,0x3c,0x40,0x46,0x4d,0x50,0x50,0x45,0x49,0x47,0x3d,0x39,0x3b,0x3c,0x39,
+0x44,0x48,0x4a,0x48,0x46,0x47,0x49,0x4a,0x4e,0x53,0x56,0x51,0x49,0x45,0x46,0x48,
+0x44,0x45,0x45,0x45,0x43,0x43,0x44,0x45,0x42,0x45,0x4a,0x4f,0x53,0x56,0x58,0x58,
+0x60,0x58,0x51,0x51,0x53,0x4f,0x47,0x41,0x45,0x49,0x4e,0x4e,0x48,0x3f,0x3c,0x3d,
+0x3e,0x40,0x41,0x41,0x41,0x43,0x45,0x47,0x47,0x46,0x45,0x45,0x46,0x47,0x48,0x47,
+0x41,0x41,0x41,0x40,0x40,0x3f,0x3f,0x3f,0x42,0x45,0x47,0x47,0x48,0x47,0x43,0x3e,
+0x42,0x42,0x43,0x46,0x48,0x4a,0x4a,0x4a,0x49,0x49,0x4b,0x4e,0x4e,0x4b,0x4b,0x4d,
+0x4c,0x4f,0x52,0x55,0x56,0x56,0x54,0x53,0x4d,0x4c,0x4a,0x49,0x47,0x45,0x44,0x44,
+0x4f,0x51,0x51,0x4f,0x4d,0x4f,0x54,0x58,0x59,0x58,0x57,0x56,0x55,0x53,0x52,0x51,
+0x4e,0x4d,0x4a,0x46,0x44,0x44,0x47,0x49,0x43,0x48,0x4c,0x50,0x54,0x59,0x5b,0x5a,
+0x5f,0x5d,0x5b,0x59,0x58,0x56,0x53,0x51,0x4e,0x4c,0x4f,0x54,0x54,0x4e,0x4b,0x4c,
+0x48,0x48,0x47,0x43,0x45,0x5c,0x78,0x85,0x82,0x82,0x82,0x83,0x84,0x82,0x80,0x7d,
+0x7b,0x79,0x77,0x76,0x75,0x74,0x75,0x75,0x74,0x72,0x71,0x71,0x71,0x70,0x6f,0x6e,
+0x70,0x70,0x71,0x72,0x72,0x72,0x71,0x70,0x72,0x73,0x74,0x74,0x74,0x73,0x74,0x74,
+0x72,0x71,0x70,0x70,0x70,0x6f,0x6d,0x6c,0x6b,0x68,0x67,0x6a,0x71,0x78,0x7c,0x7e,
+0x80,0x85,0x8b,0x8d,0x8b,0x89,0x88,0x89,0x80,0x81,0x7d,0x71,0x62,0x56,0x4f,0x4b,
+0x42,0x3f,0x3d,0x3d,0x3e,0x3d,0x38,0x35,0x36,0x39,0x40,0x48,0x50,0x58,0x5d,0x60,
+0x5e,0x5e,0x5d,0x5b,0x58,0x55,0x52,0x51,0x48,0x47,0x49,0x4d,0x50,0x52,0x56,0x5b,
+0x5e,0x60,0x62,0x61,0x5f,0x60,0x64,0x69,0x69,0x64,0x5c,0x55,0x4d,0x48,0x4a,0x4f,
+0x56,0x5a,0x60,0x67,0x6f,0x75,0x7a,0x7c,0x7f,0x81,0x84,0x88,0x8d,0x90,0x93,0x94,
+0x96,0x96,0x95,0x95,0x95,0x95,0x96,0x96,0x93,0x92,0x90,0x8c,0x89,0x85,0x82,0x80,
+0x78,0x74,0x71,0x6e,0x69,0x63,0x60,0x61,0x61,0x62,0x63,0x6d,0x7c,0x79,0x69,0x5e,
+0x62,0x67,0x6c,0x6b,0x6b,0x6e,0x73,0x76,0x76,0x76,0x70,0x6e,0x6e,0x62,0x54,0x50,
+0x5b,0x63,0x6d,0x6b,0x57,0x42,0x3f,0x47,0x4d,0x4c,0x4d,0x50,0x54,0x5a,0x65,0x6f,
+0x6a,0x64,0x61,0x65,0x6a,0x6d,0x6d,0x6d,0x71,0x75,0x73,0x6b,0x68,0x6d,0x70,0x6e,
+0x6c,0x6a,0x69,0x6b,0x6c,0x6f,0x74,0x79,0x77,0x6f,0x63,0x5a,0x5b,0x61,0x64,0x64,
+0x5c,0x5e,0x62,0x66,0x69,0x6b,0x6c,0x6c,0x72,0x6e,0x6b,0x6e,0x77,0x81,0x87,0x8a,
+0x86,0x7e,0x73,0x6c,0x6d,0x70,0x6d,0x68,0x5d,0x5c,0x5e,0x62,0x61,0x5d,0x5e,0x63,
+0x5d,0x61,0x61,0x5c,0x57,0x54,0x4f,0x4a,0x42,0x46,0x50,0x50,0x45,0x43,0x4f,0x57,
+0x54,0x57,0x4c,0x35,0x2d,0x3b,0x4b,0x50,0x3e,0x39,0x3a,0x43,0x4d,0x50,0x4d,0x49,
+0x56,0x56,0x49,0x3c,0x45,0x53,0x57,0x57,0x4b,0x4d,0x51,0x4c,0x45,0x46,0x49,0x43,
+0x44,0x5d,0x70,0x6f,0x5f,0x41,0x25,0x19,0x28,0x4b,0x57,0x54,0x47,0x43,0x43,0x56,
+0x6b,0x78,0x72,0x6f,0x78,0x7f,0x6f,0x47,0x2e,0x32,0x48,0x5f,0x64,0x5f,0x5c,0x59,
+0x52,0x41,0x31,0x2c,0x2a,0x27,0x27,0x2b,0x3d,0x43,0x46,0x4b,0x51,0x4d,0x4a,0x4e,
+0x37,0x33,0x30,0x30,0x2e,0x2b,0x2b,0x2d,0x34,0x38,0x3c,0x3c,0x39,0x39,0x3d,0x41,
+0x40,0x41,0x44,0x47,0x4a,0x4c,0x4c,0x4b,0x42,0x45,0x48,0x47,0x44,0x3f,0x3c,0x3b,
+0x3c,0x3d,0x3c,0x3a,0x3a,0x3e,0x3f,0x3e,0x38,0x3b,0x3b,0x38,0x35,0x36,0x38,0x38,
+0x38,0x3b,0x3c,0x3a,0x36,0x34,0x35,0x37,0x3b,0x3f,0x45,0x48,0x44,0x3d,0x3a,0x3b,
+0x3a,0x40,0x45,0x47,0x47,0x47,0x45,0x42,0x43,0x45,0x46,0x43,0x40,0x42,0x47,0x4d,
+0x42,0x3d,0x3a,0x3a,0x3c,0x3f,0x44,0x48,0x47,0x47,0x4b,0x4f,0x4b,0x42,0x40,0x44,
+0x40,0x40,0x42,0x45,0x4a,0x4e,0x52,0x53,0x45,0x4c,0x4b,0x41,0x3c,0x3f,0x40,0x3c,
+0x40,0x43,0x44,0x43,0x45,0x4a,0x4d,0x4d,0x50,0x55,0x56,0x52,0x4f,0x4d,0x4b,0x48,
+0x45,0x45,0x45,0x44,0x44,0x46,0x48,0x4a,0x54,0x53,0x53,0x54,0x57,0x58,0x57,0x55,
+0x58,0x55,0x57,0x5e,0x65,0x65,0x5f,0x5b,0x63,0x63,0x63,0x60,0x56,0x48,0x3e,0x3c,
+0x3e,0x3e,0x3e,0x3f,0x41,0x42,0x44,0x44,0x43,0x42,0x42,0x43,0x45,0x46,0x46,0x46,
+0x43,0x43,0x42,0x41,0x40,0x3f,0x3f,0x3e,0x3e,0x42,0x44,0x44,0x43,0x43,0x42,0x40,
+0x42,0x41,0x41,0x43,0x46,0x48,0x48,0x48,0x47,0x46,0x47,0x49,0x49,0x48,0x48,0x49,
+0x4b,0x4d,0x50,0x53,0x53,0x50,0x4c,0x4a,0x48,0x49,0x4b,0x4c,0x4c,0x4c,0x4b,0x4b,
+0x54,0x54,0x55,0x56,0x57,0x57,0x57,0x57,0x56,0x56,0x55,0x54,0x53,0x51,0x50,0x50,
+0x4d,0x4a,0x48,0x47,0x47,0x48,0x48,0x47,0x49,0x4c,0x4d,0x4c,0x4e,0x55,0x5c,0x60,
+0x5b,0x59,0x57,0x54,0x53,0x52,0x51,0x51,0x4f,0x4c,0x4e,0x53,0x53,0x4f,0x4f,0x53,
+0x50,0x50,0x4f,0x49,0x49,0x5f,0x78,0x82,0x81,0x81,0x82,0x83,0x83,0x82,0x7f,0x7c,
+0x79,0x78,0x77,0x76,0x75,0x74,0x74,0x74,0x73,0x72,0x70,0x70,0x70,0x6f,0x6e,0x6d,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,0x71,0x73,0x73,0x73,0x72,0x71,0x71,0x72,
+0x70,0x6f,0x6f,0x6f,0x6f,0x6e,0x6c,0x6b,0x68,0x68,0x6a,0x6e,0x74,0x79,0x7c,0x7e,
+0x83,0x86,0x8a,0x8c,0x8c,0x8a,0x89,0x8a,0x85,0x81,0x7d,0x77,0x6d,0x63,0x5c,0x5a,
+0x52,0x4f,0x4a,0x45,0x42,0x3f,0x3e,0x3d,0x3a,0x39,0x39,0x3b,0x40,0x46,0x4c,0x50,
+0x50,0x4f,0x4d,0x4a,0x46,0x42,0x3e,0x3c,0x3b,0x39,0x39,0x3b,0x3e,0x42,0x48,0x4f,
+0x55,0x58,0x5d,0x63,0x69,0x6e,0x73,0x75,0x73,0x6e,0x67,0x5f,0x54,0x4c,0x4a,0x4d,
+0x54,0x57,0x5c,0x64,0x6b,0x72,0x76,0x78,0x7b,0x7c,0x7f,0x83,0x87,0x8b,0x8d,0x8f,
+0x90,0x8f,0x8f,0x8f,0x8f,0x90,0x91,0x91,0x8e,0x8e,0x8d,0x8a,0x86,0x81,0x7e,0x7d,
+0x76,0x73,0x70,0x6d,0x68,0x62,0x60,0x61,0x63,0x65,0x61,0x63,0x70,0x76,0x6d,0x66,
+0x5d,0x63,0x69,0x69,0x6a,0x6e,0x73,0x75,0x73,0x72,0x6d,0x6c,0x6d,0x63,0x57,0x54,
+0x57,0x5e,0x67,0x6a,0x65,0x61,0x64,0x6b,0x5e,0x5e,0x5e,0x5e,0x5e,0x5d,0x5c,0x5c,
+0x67,0x61,0x5d,0x5f,0x64,0x66,0x66,0x65,0x68,0x6d,0x6f,0x6b,0x68,0x69,0x6b,0x6c,
+0x6d,0x6a,0x69,0x6a,0x6c,0x6d,0x73,0x79,0x78,0x76,0x70,0x69,0x65,0x66,0x67,0x67,
+0x5d,0x5e,0x60,0x64,0x68,0x6b,0x6b,0x6a,0x6f,0x6d,0x6c,0x6b,0x6f,0x77,0x81,0x87,
+0x88,0x86,0x80,0x79,0x76,0x74,0x6f,0x68,0x5e,0x5d,0x5f,0x63,0x62,0x5d,0x5d,0x62,
+0x68,0x68,0x62,0x5a,0x58,0x5a,0x54,0x4a,0x3f,0x42,0x4b,0x4f,0x49,0x4b,0x55,0x5a,
+0x55,0x53,0x47,0x36,0x2f,0x39,0x46,0x4d,0x42,0x3e,0x3c,0x41,0x47,0x4c,0x4f,0x52,
+0x59,0x52,0x42,0x3c,0x4a,0x55,0x53,0x4f,0x4d,0x4d,0x4d,0x44,0x3a,0x41,0x4b,0x4b,
+0x5b,0x63,0x65,0x5f,0x4f,0x32,0x27,0x34,0x54,0x6d,0x64,0x59,0x50,0x53,0x4a,0x52,
+0x66,0x68,0x6e,0x85,0x8a,0x6f,0x52,0x37,0x33,0x41,0x59,0x69,0x68,0x65,0x64,0x60,
+0x45,0x2f,0x22,0x29,0x2e,0x28,0x28,0x2f,0x3a,0x5b,0x6b,0x62,0x59,0x56,0x4d,0x45,
+0x34,0x31,0x2f,0x30,0x2f,0x2c,0x2e,0x32,0x27,0x32,0x3e,0x43,0x40,0x39,0x35,0x34,
+0x41,0x3f,0x3d,0x3d,0x3e,0x41,0x43,0x45,0x51,0x51,0x51,0x4f,0x4d,0x4c,0x4d,0x4d,
+0x4e,0x49,0x41,0x39,0x38,0x3f,0x45,0x48,0x3e,0x3f,0x3e,0x3a,0x39,0x38,0x36,0x32,
+0x36,0x3b,0x40,0x3f,0x39,0x35,0x36,0x38,0x38,0x3b,0x42,0x46,0x45,0x3e,0x3a,0x39,
+0x3d,0x44,0x49,0x49,0x47,0x46,0x46,0x45,0x4a,0x44,0x3d,0x3c,0x41,0x48,0x4e,0x50,
+0x4b,0x42,0x3c,0x3a,0x38,0x37,0x3b,0x43,0x45,0x44,0x48,0x4e,0x4d,0x46,0x43,0x47,
+0x41,0x45,0x49,0x4a,0x46,0x42,0x3f,0x3e,0x44,0x4d,0x4f,0x47,0x44,0x48,0x49,0x44,
+0x41,0x42,0x42,0x41,0x44,0x49,0x49,0x45,0x4b,0x4e,0x50,0x51,0x55,0x58,0x55,0x50,
+0x4d,0x4b,0x49,0x46,0x45,0x46,0x49,0x4c,0x51,0x51,0x53,0x56,0x56,0x51,0x48,0x40,
+0x48,0x50,0x5b,0x62,0x62,0x61,0x64,0x6a,0x69,0x64,0x60,0x5c,0x52,0x45,0x3d,0x3c,
+0x3e,0x3c,0x3b,0x3d,0x40,0x41,0x40,0x3e,0x3e,0x3f,0x40,0x43,0x45,0x46,0x45,0x44,
+0x42,0x42,0x42,0x42,0x41,0x41,0x41,0x41,0x43,0x45,0x44,0x40,0x40,0x44,0x48,0x4b,
+0x46,0x44,0x43,0x43,0x45,0x47,0x47,0x47,0x4a,0x47,0x46,0x48,0x4a,0x49,0x48,0x49,
+0x4b,0x4c,0x4c,0x4d,0x4c,0x4a,0x48,0x47,0x4c,0x4d,0x4d,0x4e,0x50,0x51,0x52,0x53,
+0x54,0x53,0x53,0x55,0x58,0x57,0x52,0x4e,0x52,0x52,0x51,0x50,0x4e,0x4d,0x4d,0x4e,
+0x48,0x46,0x45,0x46,0x4a,0x4b,0x4a,0x48,0x45,0x4a,0x4d,0x4c,0x4c,0x51,0x57,0x5b,
+0x56,0x54,0x51,0x4e,0x4d,0x4e,0x4f,0x50,0x4f,0x4b,0x4d,0x53,0x55,0x54,0x57,0x5e,
+0x5c,0x5a,0x57,0x4f,0x4d,0x60,0x76,0x7e,0x80,0x81,0x81,0x83,0x83,0x81,0x7e,0x7c,
+0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x74,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x6d,0x6c,
+0x6b,0x6b,0x6c,0x6c,0x6d,0x6f,0x70,0x70,0x71,0x71,0x72,0x71,0x6f,0x6e,0x6e,0x6e,
+0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6c,0x6a,0x65,0x68,0x6d,0x71,0x74,0x78,0x7c,0x7e,
+0x84,0x86,0x89,0x8a,0x8b,0x8a,0x8a,0x8b,0x8e,0x85,0x7d,0x79,0x72,0x65,0x5b,0x58,
+0x4f,0x50,0x50,0x4d,0x48,0x44,0x42,0x42,0x40,0x3d,0x39,0x35,0x33,0x34,0x35,0x37,
+0x38,0x38,0x38,0x38,0x37,0x35,0x33,0x32,0x3d,0x3a,0x38,0x39,0x3a,0x3e,0x45,0x4b,
+0x55,0x58,0x5f,0x6a,0x76,0x7d,0x7d,0x7b,0x79,0x75,0x6f,0x67,0x5a,0x50,0x4c,0x4d,
+0x53,0x55,0x5b,0x62,0x6a,0x70,0x75,0x76,0x7a,0x7b,0x7d,0x80,0x83,0x85,0x87,0x88,
+0x8b,0x8a,0x8a,0x8a,0x8b,0x8c,0x8d,0x8e,0x8c,0x8c,0x8b,0x88,0x84,0x7f,0x7b,0x79,
+0x75,0x72,0x6f,0x6c,0x67,0x62,0x60,0x61,0x71,0x73,0x68,0x5e,0x64,0x6d,0x6d,0x6c,
+0x5a,0x5f,0x64,0x65,0x67,0x6c,0x71,0x74,0x71,0x70,0x6b,0x6b,0x6d,0x65,0x59,0x57,
+0x53,0x5d,0x60,0x5b,0x63,0x75,0x79,0x6f,0x6a,0x6b,0x6a,0x69,0x6d,0x75,0x76,0x73,
+0x68,0x61,0x5d,0x60,0x67,0x6b,0x6e,0x6f,0x6e,0x74,0x78,0x75,0x6e,0x69,0x6a,0x6c,
+0x6d,0x69,0x68,0x6a,0x6c,0x6e,0x73,0x7a,0x81,0x86,0x86,0x7f,0x76,0x6e,0x69,0x65,
+0x60,0x5f,0x60,0x64,0x69,0x6c,0x6b,0x6a,0x6a,0x6c,0x6c,0x6b,0x6b,0x70,0x7a,0x83,
+0x87,0x89,0x89,0x83,0x7d,0x78,0x6f,0x67,0x5e,0x5c,0x5d,0x61,0x60,0x5c,0x5c,0x60,
+0x66,0x66,0x61,0x5c,0x60,0x64,0x59,0x49,0x44,0x43,0x4a,0x4f,0x4d,0x50,0x56,0x57,
+0x5c,0x55,0x4a,0x40,0x39,0x3b,0x45,0x4f,0x50,0x47,0x40,0x41,0x48,0x4d,0x4f,0x50,
+0x4f,0x4b,0x40,0x3e,0x4b,0x53,0x52,0x52,0x50,0x47,0x3c,0x31,0x32,0x46,0x59,0x5c,
+0x58,0x53,0x49,0x3f,0x2d,0x15,0x22,0x4d,0x66,0x75,0x5d,0x50,0x52,0x62,0x57,0x5b,
+0x5a,0x6f,0x73,0x6f,0x69,0x66,0x68,0x5c,0x46,0x58,0x6d,0x6e,0x63,0x61,0x62,0x5c,
+0x3b,0x28,0x23,0x2f,0x32,0x29,0x2e,0x3e,0x63,0x6b,0x6d,0x6a,0x66,0x5a,0x4d,0x49,
+0x31,0x2e,0x2d,0x2d,0x2b,0x29,0x2c,0x31,0x2a,0x31,0x3a,0x3d,0x3b,0x36,0x34,0x34,
+0x3c,0x41,0x44,0x45,0x43,0x40,0x3d,0x3a,0x41,0x40,0x41,0x42,0x43,0x43,0x47,0x4b,
+0x56,0x5d,0x60,0x59,0x50,0x4c,0x4e,0x50,0x4e,0x4b,0x45,0x3d,0x39,0x39,0x3a,0x3a,
+0x3b,0x3e,0x3d,0x39,0x39,0x3c,0x3c,0x39,0x3b,0x40,0x43,0x41,0x3e,0x3d,0x3c,0x3b,
+0x3e,0x43,0x45,0x41,0x3f,0x40,0x43,0x43,0x46,0x4b,0x4b,0x46,0x42,0x45,0x49,0x4b,
+0x4d,0x49,0x4a,0x41,0x3c,0x3e,0x3b,0x41,0x3a,0x43,0x4c,0x4f,0x4d,0x4b,0x47,0x43,
+0x43,0x4c,0x54,0x53,0x4b,0x43,0x3e,0x3d,0x48,0x4d,0x4c,0x45,0x47,0x50,0x53,0x4e,
+0x44,0x44,0x45,0x48,0x4b,0x4d,0x4d,0x4c,0x4b,0x50,0x56,0x5c,0x60,0x5f,0x56,0x4d,
+0x4b,0x46,0x42,0x43,0x46,0x4c,0x55,0x5c,0x57,0x4f,0x4b,0x51,0x5e,0x66,0x63,0x5d,
+0x52,0x52,0x51,0x4e,0x4f,0x53,0x54,0x52,0x46,0x4a,0x4f,0x50,0x4c,0x45,0x41,0x40,
+0x3d,0x3c,0x3c,0x3e,0x41,0x42,0x40,0x3f,0x40,0x40,0x40,0x42,0x44,0x44,0x43,0x42,
+0x41,0x43,0x44,0x41,0x3e,0x3d,0x3f,0x42,0x45,0x44,0x41,0x40,0x4a,0x56,0x59,0x53,
+0x48,0x45,0x41,0x3f,0x40,0x43,0x46,0x47,0x4b,0x47,0x45,0x47,0x48,0x46,0x47,0x4a,
+0x4a,0x47,0x45,0x45,0x48,0x4a,0x48,0x45,0x47,0x49,0x4d,0x51,0x51,0x4e,0x4d,0x4e,
+0x56,0x54,0x55,0x57,0x57,0x55,0x54,0x56,0x56,0x52,0x4e,0x4c,0x4d,0x4d,0x4c,0x4a,
+0x49,0x49,0x47,0x47,0x4d,0x52,0x4f,0x48,0x45,0x46,0x49,0x4b,0x4d,0x51,0x54,0x57,
+0x55,0x55,0x52,0x4e,0x4e,0x51,0x52,0x4f,0x42,0x41,0x47,0x51,0x54,0x50,0x50,0x55,
+0x52,0x50,0x50,0x54,0x5a,0x63,0x73,0x81,0x7e,0x7f,0x81,0x82,0x82,0x7f,0x7c,0x7a,
+0x7a,0x79,0x76,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x6a,0x6b,0x6c,0x6d,0x6e,0x6e,0x6e,0x6e,0x6c,0x6c,0x6c,0x6e,0x70,0x71,0x70,0x6e,
+0x6c,0x6d,0x6e,0x6f,0x6e,0x6c,0x6a,0x68,0x63,0x66,0x6c,0x70,0x74,0x77,0x7a,0x7c,
+0x85,0x87,0x89,0x8c,0x8d,0x8e,0x90,0x92,0x90,0x8d,0x88,0x81,0x7a,0x73,0x6b,0x67,
+0x61,0x5c,0x56,0x51,0x4f,0x4c,0x49,0x46,0x46,0x43,0x40,0x3e,0x3d,0x3c,0x3b,0x3a,
+0x3d,0x3d,0x3b,0x3a,0x39,0x3b,0x3f,0x41,0x41,0x42,0x42,0x44,0x46,0x4c,0x52,0x56,
+0x5c,0x65,0x70,0x76,0x7a,0x7f,0x83,0x84,0x7e,0x78,0x72,0x6c,0x62,0x55,0x4b,0x49,
+0x4d,0x55,0x5d,0x61,0x67,0x6f,0x74,0x75,0x75,0x77,0x7a,0x7e,0x81,0x83,0x85,0x85,
+0x86,0x87,0x88,0x89,0x88,0x88,0x8a,0x8b,0x88,0x87,0x86,0x83,0x7f,0x7b,0x77,0x74,
+0x73,0x6e,0x6c,0x6d,0x68,0x60,0x5e,0x63,0x7a,0x7c,0x72,0x61,0x5b,0x65,0x6e,0x70,
+0x5f,0x58,0x5e,0x66,0x63,0x68,0x72,0x71,0x72,0x71,0x70,0x6f,0x6d,0x69,0x60,0x5a,
+0x59,0x63,0x71,0x7b,0x7f,0x82,0x87,0x8b,0x82,0x7a,0x6e,0x66,0x69,0x6f,0x6f,0x6a,
+0x55,0x57,0x5c,0x62,0x65,0x66,0x68,0x6b,0x70,0x6d,0x6e,0x73,0x70,0x67,0x65,0x68,
+0x6c,0x67,0x65,0x67,0x65,0x63,0x68,0x72,0x79,0x78,0x78,0x77,0x75,0x70,0x69,0x65,
+0x5c,0x5e,0x5f,0x62,0x67,0x6b,0x6a,0x66,0x6b,0x6e,0x6d,0x67,0x64,0x69,0x72,0x78,
+0x85,0x88,0x88,0x85,0x83,0x7f,0x75,0x6b,0x60,0x62,0x62,0x5f,0x5a,0x59,0x5c,0x61,
+0x6c,0x63,0x5c,0x60,0x66,0x62,0x54,0x49,0x44,0x45,0x46,0x44,0x44,0x48,0x51,0x58,
+0x5b,0x5e,0x53,0x3e,0x33,0x3e,0x4f,0x59,0x57,0x42,0x37,0x43,0x50,0x4f,0x48,0x47,
+0x48,0x4d,0x3e,0x3c,0x4a,0x57,0x5e,0x57,0x4c,0x3e,0x32,0x34,0x41,0x4f,0x59,0x5e,
+0x5e,0x56,0x45,0x2d,0x19,0x1b,0x34,0x4e,0x65,0x56,0x44,0x38,0x35,0x39,0x43,0x4c,
+0x6c,0x7b,0x79,0x73,0x7f,0x81,0x6f,0x62,0x59,0x58,0x62,0x69,0x6a,0x70,0x6a,0x54,
+0x32,0x2a,0x2a,0x2a,0x2f,0x32,0x37,0x4f,0x68,0x67,0x65,0x68,0x6a,0x5e,0x52,0x52,
+0x2f,0x2e,0x2e,0x2f,0x2c,0x28,0x2a,0x2e,0x32,0x38,0x3e,0x3e,0x39,0x33,0x31,0x31,
+0x35,0x39,0x3e,0x3f,0x3d,0x3c,0x3b,0x3b,0x3d,0x3f,0x44,0x47,0x45,0x40,0x3f,0x40,
+0x42,0x48,0x4e,0x4f,0x4e,0x50,0x51,0x51,0x5a,0x55,0x4e,0x48,0x46,0x47,0x43,0x3e,
+0x38,0x3c,0x3e,0x3d,0x3e,0x3f,0x3e,0x3b,0x3b,0x40,0x43,0x43,0x42,0x41,0x3e,0x3c,
+0x41,0x43,0x43,0x41,0x41,0x42,0x40,0x3c,0x43,0x49,0x4c,0x4a,0x47,0x49,0x4b,0x4c,
+0x56,0x54,0x59,0x54,0x50,0x4c,0x3f,0x3d,0x46,0x4c,0x52,0x55,0x52,0x4d,0x4a,0x48,
+0x48,0x4d,0x50,0x4e,0x4a,0x47,0x45,0x44,0x3e,0x44,0x46,0x47,0x50,0x5d,0x61,0x5b,
+0x4a,0x47,0x44,0x47,0x4c,0x50,0x50,0x4e,0x4d,0x52,0x57,0x5b,0x5d,0x5a,0x51,0x48,
+0x49,0x45,0x43,0x45,0x47,0x4b,0x51,0x57,0x4f,0x4f,0x4d,0x4a,0x48,0x4a,0x4f,0x54,
+0x58,0x5d,0x62,0x60,0x5b,0x53,0x4a,0x42,0x44,0x49,0x51,0x54,0x4f,0x46,0x42,0x43,
+0x3f,0x3d,0x3c,0x3d,0x40,0x43,0x43,0x43,0x44,0x43,0x43,0x43,0x44,0x43,0x41,0x3f,
+0x40,0x41,0x42,0x41,0x3f,0x40,0x43,0x46,0x45,0x47,0x46,0x47,0x51,0x5e,0x63,0x60,
+0x4f,0x4b,0x46,0x43,0x42,0x43,0x44,0x45,0x4c,0x49,0x48,0x49,0x48,0x45,0x45,0x47,
+0x46,0x44,0x43,0x45,0x48,0x4b,0x4d,0x4d,0x48,0x48,0x4b,0x4f,0x4f,0x4e,0x4f,0x52,
+0x59,0x58,0x58,0x58,0x58,0x57,0x54,0x52,0x51,0x53,0x56,0x56,0x54,0x50,0x4d,0x4a,
+0x4b,0x4b,0x49,0x49,0x4d,0x51,0x50,0x4b,0x48,0x48,0x49,0x4b,0x4e,0x51,0x54,0x56,
+0x56,0x56,0x52,0x4d,0x4c,0x50,0x53,0x53,0x4d,0x4c,0x51,0x5a,0x5b,0x52,0x49,0x46,
+0x4c,0x50,0x57,0x5f,0x65,0x6a,0x73,0x7d,0x7e,0x7f,0x80,0x81,0x80,0x7f,0x7c,0x7b,
+0x79,0x78,0x76,0x75,0x74,0x73,0x72,0x70,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x6b,0x6b,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6c,0x6b,0x6b,0x6c,0x6e,0x6f,0x6e,0x6d,
+0x6c,0x6c,0x6d,0x6d,0x6b,0x68,0x66,0x64,0x64,0x67,0x6b,0x6f,0x72,0x74,0x77,0x79,
+0x80,0x83,0x88,0x8c,0x8f,0x91,0x93,0x95,0x92,0x8f,0x8b,0x87,0x81,0x7a,0x73,0x6f,
+0x67,0x63,0x5e,0x59,0x57,0x54,0x51,0x4e,0x4e,0x4c,0x49,0x48,0x47,0x46,0x45,0x44,
+0x44,0x44,0x43,0x42,0x41,0x43,0x46,0x48,0x4e,0x4e,0x4f,0x50,0x53,0x58,0x5d,0x61,
+0x64,0x6c,0x75,0x79,0x7c,0x81,0x84,0x85,0x80,0x7b,0x75,0x70,0x66,0x59,0x50,0x4c,
+0x4d,0x55,0x5c,0x61,0x66,0x6e,0x73,0x74,0x76,0x78,0x7a,0x7d,0x7f,0x81,0x83,0x84,
+0x85,0x86,0x86,0x86,0x85,0x85,0x85,0x86,0x83,0x83,0x82,0x80,0x7d,0x79,0x75,0x73,
+0x71,0x6c,0x6a,0x6b,0x67,0x60,0x5e,0x62,0x73,0x78,0x75,0x67,0x5d,0x5f,0x68,0x6e,
+0x65,0x56,0x56,0x5e,0x5f,0x65,0x6e,0x70,0x6d,0x6e,0x6e,0x6c,0x6e,0x70,0x6c,0x64,
+0x5e,0x64,0x68,0x69,0x68,0x6f,0x7c,0x87,0x86,0x7e,0x6f,0x5e,0x56,0x58,0x5d,0x5f,
+0x5c,0x5e,0x63,0x67,0x66,0x64,0x64,0x67,0x6b,0x6a,0x6a,0x6b,0x6a,0x66,0x67,0x69,
+0x6a,0x68,0x69,0x6c,0x6a,0x64,0x65,0x6b,0x6f,0x70,0x71,0x70,0x6d,0x6a,0x68,0x67,
+0x6a,0x68,0x64,0x60,0x61,0x65,0x68,0x68,0x69,0x6b,0x6a,0x66,0x64,0x69,0x70,0x75,
+0x7f,0x84,0x87,0x84,0x81,0x7e,0x7a,0x75,0x6a,0x67,0x63,0x5f,0x5d,0x5d,0x5f,0x61,
+0x6e,0x6e,0x63,0x55,0x51,0x55,0x4c,0x3c,0x35,0x3a,0x3f,0x42,0x45,0x4a,0x53,0x59,
+0x52,0x50,0x43,0x31,0x2e,0x3e,0x51,0x5a,0x4b,0x3b,0x35,0x44,0x53,0x54,0x4e,0x4c,
+0x4f,0x52,0x45,0x47,0x55,0x59,0x58,0x4e,0x4b,0x46,0x3c,0x36,0x3e,0x4e,0x58,0x5a,
+0x5c,0x58,0x47,0x2e,0x1d,0x23,0x3d,0x53,0x5e,0x50,0x4c,0x54,0x56,0x51,0x57,0x65,
+0x69,0x68,0x64,0x71,0x86,0x81,0x6b,0x63,0x54,0x5b,0x69,0x6e,0x6a,0x6a,0x5e,0x45,
+0x3f,0x34,0x30,0x30,0x38,0x3b,0x3c,0x4f,0x59,0x65,0x71,0x79,0x76,0x65,0x59,0x5b,
+0x2e,0x2f,0x30,0x2f,0x2a,0x26,0x26,0x2a,0x2b,0x36,0x44,0x4a,0x45,0x3b,0x33,0x30,
+0x35,0x39,0x3e,0x3e,0x3b,0x39,0x3b,0x3e,0x3a,0x3e,0x44,0x47,0x44,0x3e,0x3b,0x3c,
+0x44,0x45,0x44,0x42,0x42,0x43,0x40,0x3c,0x3d,0x45,0x52,0x60,0x68,0x63,0x50,0x3e,
+0x3b,0x3e,0x3f,0x40,0x41,0x42,0x42,0x40,0x3b,0x3f,0x43,0x46,0x48,0x48,0x45,0x40,
+0x45,0x44,0x43,0x44,0x47,0x48,0x43,0x3b,0x44,0x48,0x49,0x45,0x42,0x42,0x44,0x46,
+0x51,0x4e,0x57,0x58,0x5c,0x5d,0x53,0x51,0x4b,0x4a,0x4d,0x50,0x4b,0x43,0x40,0x42,
+0x47,0x49,0x49,0x47,0x46,0x49,0x4b,0x4a,0x4c,0x50,0x52,0x56,0x62,0x6d,0x6c,0x63,
+0x53,0x4c,0x47,0x48,0x4e,0x53,0x52,0x4f,0x51,0x55,0x5a,0x5c,0x5d,0x5a,0x51,0x49,
+0x45,0x43,0x44,0x47,0x49,0x4a,0x4c,0x4f,0x4f,0x52,0x52,0x49,0x3d,0x37,0x3b,0x41,
+0x4c,0x50,0x54,0x54,0x53,0x52,0x50,0x4c,0x4a,0x4e,0x58,0x5f,0x58,0x49,0x41,0x43,
+0x44,0x40,0x3d,0x3d,0x3f,0x42,0x44,0x44,0x45,0x45,0x45,0x45,0x45,0x44,0x41,0x3f,
+0x42,0x41,0x40,0x40,0x41,0x42,0x45,0x46,0x46,0x49,0x49,0x49,0x50,0x5b,0x61,0x60,
+0x55,0x51,0x4a,0x45,0x43,0x43,0x43,0x43,0x46,0x46,0x47,0x48,0x45,0x42,0x41,0x44,
+0x45,0x44,0x43,0x44,0x47,0x4b,0x50,0x52,0x4b,0x4a,0x4a,0x4d,0x4e,0x4f,0x53,0x58,
+0x58,0x5a,0x58,0x56,0x58,0x5b,0x57,0x4f,0x4f,0x54,0x59,0x5b,0x57,0x51,0x4d,0x4c,
+0x4a,0x4a,0x49,0x48,0x4a,0x4d,0x4d,0x4b,0x4b,0x49,0x47,0x49,0x4c,0x50,0x52,0x52,
+0x54,0x54,0x51,0x4c,0x4a,0x4e,0x54,0x57,0x5f,0x56,0x50,0x51,0x54,0x52,0x52,0x53,
+0x58,0x59,0x5b,0x5e,0x60,0x66,0x72,0x7d,0x7e,0x7f,0x7f,0x7f,0x7f,0x7d,0x7c,0x7b,
+0x78,0x77,0x75,0x75,0x74,0x73,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x6b,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6b,0x6a,0x6b,0x6c,0x6d,0x6d,0x6c,
+0x6c,0x6c,0x6b,0x6a,0x67,0x64,0x62,0x60,0x63,0x66,0x69,0x6c,0x6f,0x73,0x77,0x79,
+0x7e,0x82,0x88,0x8e,0x91,0x94,0x96,0x97,0x93,0x92,0x90,0x8d,0x89,0x83,0x7d,0x79,
+0x72,0x6e,0x6a,0x66,0x64,0x60,0x5c,0x59,0x57,0x55,0x53,0x52,0x51,0x50,0x4f,0x4e,
+0x4e,0x4e,0x4f,0x4e,0x4e,0x4f,0x51,0x53,0x59,0x5a,0x5b,0x5c,0x5e,0x62,0x67,0x6a,
+0x6f,0x75,0x7b,0x7d,0x7f,0x83,0x85,0x86,0x83,0x7f,0x7a,0x75,0x6d,0x61,0x57,0x52,
+0x4e,0x54,0x5b,0x60,0x66,0x6d,0x71,0x72,0x77,0x78,0x79,0x7a,0x7c,0x7f,0x80,0x81,
+0x82,0x83,0x83,0x82,0x81,0x80,0x80,0x81,0x7e,0x7e,0x7d,0x7c,0x7a,0x76,0x73,0x72,
+0x6f,0x6b,0x69,0x68,0x65,0x5f,0x5e,0x62,0x69,0x71,0x76,0x6e,0x60,0x5a,0x60,0x69,
+0x6f,0x5b,0x52,0x57,0x5b,0x63,0x6d,0x72,0x70,0x71,0x6f,0x6c,0x6d,0x71,0x6f,0x69,
+0x65,0x61,0x5e,0x60,0x67,0x6c,0x6d,0x6c,0x7a,0x7d,0x7d,0x7a,0x76,0x70,0x68,0x62,
+0x63,0x63,0x64,0x65,0x63,0x60,0x61,0x64,0x69,0x69,0x66,0x61,0x5f,0x61,0x63,0x64,
+0x66,0x65,0x68,0x6b,0x69,0x63,0x63,0x67,0x6c,0x6f,0x70,0x6f,0x6b,0x68,0x67,0x68,
+0x7a,0x76,0x6e,0x66,0x62,0x64,0x66,0x66,0x6a,0x6b,0x6a,0x66,0x66,0x6a,0x6d,0x6f,
+0x77,0x80,0x88,0x89,0x86,0x83,0x82,0x81,0x75,0x6d,0x63,0x5e,0x5e,0x60,0x61,0x60,
+0x5c,0x65,0x65,0x57,0x4d,0x4b,0x42,0x35,0x3b,0x3e,0x41,0x43,0x46,0x4d,0x57,0x5f,
+0x57,0x4d,0x39,0x2a,0x2f,0x45,0x58,0x5e,0x4a,0x3d,0x39,0x44,0x51,0x54,0x50,0x4d,
+0x4f,0x4d,0x3f,0x46,0x54,0x53,0x4f,0x46,0x4f,0x4f,0x47,0x3a,0x3a,0x49,0x54,0x56,
+0x62,0x60,0x4f,0x35,0x28,0x35,0x4c,0x5b,0x56,0x50,0x50,0x57,0x55,0x4c,0x4b,0x51,
+0x51,0x6f,0x7e,0x7d,0x7d,0x70,0x59,0x4c,0x3d,0x4f,0x66,0x6f,0x6e,0x6c,0x5e,0x45,
+0x34,0x2f,0x34,0x37,0x3c,0x3c,0x3b,0x4e,0x78,0x7a,0x76,0x6d,0x5f,0x4c,0x43,0x48,
+0x33,0x33,0x31,0x2c,0x27,0x25,0x26,0x29,0x2b,0x36,0x44,0x4a,0x46,0x3d,0x36,0x33,
+0x3a,0x3e,0x41,0x40,0x3b,0x37,0x39,0x3e,0x38,0x3a,0x3d,0x40,0x3f,0x3d,0x3f,0x43,
+0x41,0x41,0x41,0x42,0x47,0x4e,0x50,0x4f,0x3e,0x41,0x45,0x4e,0x59,0x5f,0x5a,0x52,
+0x4e,0x4d,0x4a,0x47,0x44,0x44,0x43,0x43,0x3e,0x40,0x42,0x45,0x4a,0x4d,0x4a,0x45,
+0x45,0x44,0x45,0x49,0x4d,0x4d,0x47,0x41,0x45,0x45,0x42,0x3e,0x3b,0x3d,0x42,0x46,
+0x4b,0x46,0x4b,0x4b,0x52,0x5c,0x5c,0x62,0x58,0x53,0x53,0x56,0x51,0x47,0x43,0x48,
+0x4a,0x4d,0x4e,0x4b,0x4a,0x4f,0x51,0x51,0x58,0x59,0x59,0x5d,0x66,0x6d,0x65,0x59,
+0x53,0x4e,0x49,0x48,0x4c,0x4f,0x4f,0x4e,0x50,0x54,0x59,0x5b,0x5c,0x5a,0x54,0x4e,
+0x46,0x46,0x48,0x4d,0x4e,0x4d,0x4d,0x4e,0x54,0x54,0x53,0x4c,0x42,0x37,0x2f,0x2b,
+0x31,0x31,0x31,0x35,0x3e,0x49,0x50,0x51,0x46,0x4a,0x57,0x65,0x64,0x53,0x46,0x43,
+0x48,0x44,0x40,0x3e,0x3f,0x41,0x41,0x41,0x43,0x43,0x44,0x45,0x46,0x46,0x45,0x43,
+0x45,0x43,0x41,0x40,0x40,0x42,0x43,0x43,0x46,0x49,0x4a,0x4a,0x4e,0x56,0x5e,0x60,
+0x56,0x52,0x4b,0x46,0x43,0x42,0x42,0x42,0x40,0x43,0x47,0x47,0x44,0x42,0x42,0x44,
+0x48,0x46,0x44,0x43,0x44,0x48,0x4e,0x52,0x4f,0x4c,0x4b,0x4b,0x4c,0x4f,0x55,0x5b,
+0x59,0x5b,0x59,0x55,0x59,0x60,0x5d,0x54,0x51,0x53,0x54,0x54,0x52,0x4f,0x4e,0x4e,
+0x49,0x4a,0x4b,0x4b,0x4a,0x4b,0x4a,0x4a,0x4c,0x48,0x45,0x46,0x4a,0x4d,0x4e,0x4d,
+0x4f,0x50,0x50,0x4d,0x4a,0x4d,0x52,0x57,0x56,0x53,0x54,0x58,0x59,0x57,0x54,0x54,
+0x5c,0x5b,0x58,0x53,0x53,0x5c,0x6d,0x7c,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x77,0x76,0x75,0x74,0x74,0x73,0x70,0x6e,0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,0x6b,
+0x6b,0x6a,0x68,0x66,0x66,0x66,0x67,0x68,0x6c,0x6b,0x6a,0x6a,0x6a,0x6b,0x6c,0x6c,
+0x6d,0x6c,0x6a,0x68,0x65,0x62,0x60,0x5f,0x60,0x62,0x66,0x69,0x6e,0x73,0x79,0x7c,
+0x7d,0x82,0x88,0x8e,0x91,0x93,0x94,0x95,0x96,0x95,0x94,0x92,0x90,0x8b,0x85,0x81,
+0x7d,0x7a,0x76,0x73,0x71,0x6c,0x67,0x63,0x61,0x60,0x5d,0x5c,0x5b,0x59,0x57,0x56,
+0x55,0x56,0x58,0x59,0x5a,0x5b,0x5d,0x5e,0x61,0x62,0x63,0x64,0x66,0x69,0x6d,0x70,
+0x77,0x7c,0x80,0x81,0x82,0x85,0x87,0x87,0x85,0x82,0x7e,0x7a,0x73,0x68,0x5e,0x57,
+0x4f,0x54,0x5a,0x60,0x66,0x6c,0x6f,0x71,0x76,0x76,0x76,0x77,0x79,0x7c,0x7e,0x7f,
+0x7e,0x7f,0x80,0x7f,0x7d,0x7d,0x7d,0x7e,0x7b,0x7b,0x7b,0x79,0x77,0x74,0x71,0x70,
+0x6d,0x6a,0x67,0x66,0x63,0x5e,0x5f,0x62,0x61,0x69,0x72,0x72,0x65,0x58,0x59,0x62,
+0x6f,0x63,0x55,0x4f,0x53,0x60,0x6d,0x72,0x72,0x70,0x6f,0x6e,0x6b,0x67,0x68,0x6b,
+0x6f,0x79,0x7f,0x74,0x5f,0x51,0x52,0x5a,0x6c,0x6c,0x71,0x7b,0x86,0x87,0x7e,0x73,
+0x66,0x61,0x5d,0x5d,0x5f,0x5f,0x61,0x63,0x66,0x69,0x65,0x5c,0x5a,0x62,0x67,0x66,
+0x64,0x63,0x64,0x66,0x65,0x63,0x66,0x6b,0x70,0x71,0x72,0x71,0x6d,0x67,0x63,0x60,
+0x54,0x57,0x5a,0x5c,0x60,0x67,0x6b,0x6b,0x6c,0x6c,0x6a,0x67,0x67,0x6a,0x6b,0x69,
+0x67,0x72,0x7e,0x84,0x83,0x80,0x7e,0x7c,0x7a,0x71,0x66,0x5e,0x5d,0x5e,0x5e,0x5d,
+0x64,0x6a,0x6e,0x66,0x52,0x3c,0x32,0x30,0x3e,0x3c,0x39,0x37,0x3b,0x46,0x55,0x60,
+0x60,0x54,0x43,0x3b,0x46,0x55,0x5a,0x55,0x4c,0x43,0x3e,0x43,0x4d,0x52,0x51,0x4f,
+0x4a,0x43,0x32,0x3a,0x48,0x49,0x4c,0x4c,0x55,0x52,0x48,0x3b,0x38,0x42,0x50,0x57,
+0x5f,0x5c,0x4a,0x31,0x2c,0x3c,0x4c,0x51,0x48,0x4e,0x4e,0x47,0x44,0x48,0x49,0x44,
+0x5e,0x7b,0x84,0x7c,0x7b,0x6c,0x48,0x2b,0x44,0x57,0x6a,0x6d,0x69,0x62,0x4c,0x33,
+0x31,0x30,0x36,0x35,0x33,0x31,0x37,0x52,0x7a,0x71,0x60,0x55,0x54,0x53,0x56,0x60,
+0x3c,0x39,0x33,0x2c,0x28,0x29,0x2c,0x2f,0x3d,0x3f,0x40,0x3d,0x37,0x34,0x34,0x36,
+0x3b,0x3d,0x40,0x3f,0x39,0x33,0x35,0x3a,0x35,0x34,0x36,0x39,0x3a,0x3b,0x3f,0x44,
+0x49,0x4b,0x4c,0x4a,0x49,0x48,0x47,0x44,0x51,0x4c,0x45,0x40,0x42,0x4a,0x4f,0x50,
+0x59,0x57,0x53,0x4f,0x4b,0x45,0x42,0x41,0x42,0x42,0x41,0x42,0x46,0x4a,0x48,0x43,
+0x42,0x43,0x45,0x49,0x4b,0x4a,0x46,0x43,0x3f,0x3f,0x40,0x40,0x41,0x45,0x4b,0x50,
+0x4f,0x4a,0x4c,0x46,0x46,0x4d,0x4f,0x58,0x61,0x5c,0x5c,0x5f,0x5b,0x50,0x4c,0x50,
+0x59,0x60,0x62,0x5d,0x5a,0x5c,0x5d,0x5a,0x4e,0x4d,0x4d,0x51,0x5b,0x5f,0x57,0x4b,
+0x4c,0x4b,0x49,0x49,0x4a,0x4b,0x4d,0x4e,0x4d,0x51,0x54,0x55,0x56,0x56,0x53,0x4e,
+0x4c,0x4c,0x4e,0x52,0x54,0x52,0x51,0x52,0x5c,0x5d,0x5f,0x5f,0x5c,0x56,0x4d,0x47,
+0x34,0x32,0x30,0x33,0x3a,0x3f,0x3c,0x35,0x38,0x3b,0x4b,0x61,0x6b,0x61,0x51,0x49,
+0x49,0x45,0x42,0x40,0x41,0x42,0x41,0x40,0x42,0x42,0x43,0x45,0x47,0x48,0x47,0x46,
+0x45,0x44,0x42,0x41,0x41,0x41,0x41,0x41,0x44,0x48,0x4b,0x4d,0x51,0x59,0x62,0x68,
+0x54,0x4f,0x49,0x44,0x42,0x42,0x42,0x43,0x41,0x45,0x49,0x48,0x45,0x44,0x45,0x46,
+0x48,0x47,0x45,0x43,0x43,0x46,0x4c,0x4f,0x50,0x4c,0x49,0x49,0x49,0x4c,0x52,0x59,
+0x5d,0x5e,0x5a,0x55,0x59,0x62,0x61,0x59,0x52,0x50,0x4e,0x4e,0x4f,0x4f,0x4e,0x4c,
+0x4a,0x4c,0x4f,0x50,0x4f,0x4d,0x4b,0x4b,0x4c,0x49,0x46,0x46,0x49,0x4b,0x4b,0x4a,
+0x4b,0x4d,0x4f,0x50,0x4e,0x4e,0x51,0x55,0x55,0x55,0x57,0x57,0x55,0x52,0x51,0x53,
+0x54,0x56,0x55,0x50,0x4f,0x58,0x6a,0x78,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,
+0x76,0x75,0x73,0x73,0x73,0x72,0x70,0x6e,0x6f,0x6f,0x6e,0x6e,0x6d,0x6c,0x6b,0x6b,
+0x6b,0x6a,0x68,0x66,0x66,0x66,0x66,0x67,0x6b,0x6b,0x6a,0x6a,0x69,0x6a,0x6b,0x6c,
+0x6c,0x6c,0x6a,0x68,0x66,0x63,0x61,0x60,0x5f,0x61,0x64,0x68,0x6d,0x73,0x79,0x7d,
+0x7b,0x80,0x87,0x8d,0x91,0x93,0x94,0x94,0x9a,0x99,0x98,0x97,0x95,0x91,0x8d,0x89,
+0x87,0x84,0x81,0x7e,0x7b,0x77,0x71,0x6d,0x6d,0x6b,0x68,0x66,0x64,0x62,0x5f,0x5d,
+0x5a,0x5c,0x5e,0x60,0x61,0x63,0x65,0x67,0x6a,0x6b,0x6d,0x6d,0x6e,0x71,0x74,0x76,
+0x7b,0x7f,0x82,0x83,0x85,0x88,0x8a,0x89,0x87,0x85,0x81,0x7c,0x76,0x6e,0x63,0x5b,
+0x53,0x55,0x5a,0x61,0x67,0x6b,0x6e,0x6f,0x72,0x72,0x73,0x74,0x76,0x79,0x7b,0x7d,
+0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x79,0x79,0x79,0x78,0x75,0x72,0x70,0x6e,
+0x6c,0x69,0x67,0x64,0x61,0x5f,0x60,0x62,0x5e,0x62,0x6a,0x6f,0x68,0x5b,0x56,0x5a,
+0x65,0x67,0x5b,0x49,0x49,0x59,0x68,0x6d,0x6e,0x69,0x6b,0x71,0x6a,0x5d,0x5d,0x68,
+0x78,0x6f,0x68,0x6b,0x76,0x7e,0x7d,0x79,0x61,0x53,0x45,0x41,0x49,0x57,0x63,0x69,
+0x65,0x5e,0x59,0x5d,0x63,0x65,0x61,0x5e,0x63,0x68,0x65,0x5d,0x5e,0x68,0x6e,0x6c,
+0x63,0x63,0x64,0x65,0x64,0x63,0x67,0x6b,0x6e,0x6d,0x6e,0x6e,0x6d,0x67,0x5d,0x55,
+0x44,0x49,0x50,0x56,0x5e,0x66,0x69,0x69,0x6a,0x69,0x67,0x65,0x66,0x69,0x6a,0x68,
+0x67,0x6c,0x76,0x7e,0x83,0x82,0x7e,0x7c,0x7b,0x75,0x6c,0x63,0x5d,0x5b,0x5b,0x5b,
+0x5c,0x62,0x64,0x59,0x43,0x31,0x2e,0x34,0x39,0x37,0x34,0x34,0x3b,0x4b,0x5d,0x69,
+0x61,0x58,0x4e,0x4e,0x59,0x5e,0x53,0x43,0x47,0x45,0x43,0x46,0x4e,0x55,0x55,0x50,
+0x48,0x3f,0x2e,0x37,0x46,0x4a,0x53,0x58,0x56,0x4c,0x40,0x39,0x37,0x3d,0x4e,0x5f,
+0x61,0x5c,0x4a,0x35,0x37,0x4a,0x55,0x51,0x52,0x55,0x51,0x48,0x47,0x4d,0x50,0x4d,
+0x6e,0x76,0x76,0x78,0x75,0x5b,0x43,0x42,0x52,0x61,0x69,0x67,0x63,0x56,0x3d,0x28,
+0x27,0x20,0x20,0x1d,0x21,0x2a,0x3b,0x5d,0x75,0x6f,0x60,0x54,0x4f,0x49,0x46,0x4c,
+0x41,0x3d,0x36,0x30,0x2f,0x33,0x36,0x36,0x3f,0x3f,0x3e,0x3c,0x39,0x37,0x37,0x37,
+0x37,0x39,0x3d,0x3f,0x3a,0x33,0x33,0x38,0x30,0x2e,0x30,0x35,0x3a,0x3b,0x3d,0x3f,
+0x37,0x40,0x4a,0x4e,0x4f,0x4e,0x4b,0x48,0x45,0x4a,0x4e,0x4d,0x4c,0x4a,0x46,0x41,
+0x48,0x48,0x4a,0x4c,0x4b,0x46,0x43,0x42,0x45,0x44,0x41,0x3f,0x41,0x44,0x42,0x3e,
+0x40,0x40,0x43,0x46,0x45,0x41,0x3f,0x3f,0x3d,0x3f,0x44,0x49,0x4a,0x49,0x4a,0x4c,
+0x48,0x47,0x4d,0x48,0x46,0x49,0x47,0x4d,0x5a,0x59,0x5b,0x60,0x5e,0x56,0x51,0x51,
+0x65,0x6b,0x6c,0x67,0x64,0x66,0x64,0x5d,0x4b,0x4b,0x4b,0x4f,0x57,0x5b,0x55,0x4d,
+0x4c,0x4d,0x4d,0x4d,0x4c,0x4e,0x51,0x54,0x50,0x52,0x53,0x51,0x51,0x52,0x52,0x4f,
+0x4e,0x4c,0x4d,0x4f,0x4f,0x4e,0x4e,0x50,0x52,0x58,0x61,0x68,0x6e,0x74,0x7a,0x7e,
+0x7c,0x77,0x70,0x6c,0x6b,0x67,0x5b,0x4f,0x3d,0x3f,0x49,0x5c,0x6a,0x69,0x5c,0x51,
+0x47,0x44,0x41,0x41,0x43,0x45,0x46,0x45,0x45,0x44,0x43,0x44,0x45,0x46,0x46,0x46,
+0x45,0x45,0x45,0x45,0x44,0x43,0x43,0x43,0x44,0x46,0x49,0x4a,0x4d,0x53,0x5b,0x61,
+0x53,0x4f,0x49,0x45,0x43,0x43,0x44,0x44,0x45,0x48,0x48,0x45,0x43,0x43,0x43,0x43,
+0x47,0x46,0x44,0x43,0x44,0x48,0x4b,0x4e,0x4c,0x49,0x47,0x47,0x47,0x48,0x4d,0x52,
+0x5a,0x5a,0x55,0x51,0x53,0x59,0x59,0x54,0x4f,0x4e,0x4d,0x4e,0x50,0x50,0x4d,0x49,
+0x49,0x4a,0x4c,0x4f,0x4f,0x4b,0x4a,0x4b,0x4d,0x4b,0x48,0x48,0x4a,0x4b,0x4a,0x49,
+0x49,0x4b,0x4f,0x52,0x52,0x50,0x50,0x53,0x55,0x55,0x53,0x4f,0x4b,0x4d,0x53,0x5a,
+0x5f,0x5f,0x59,0x4e,0x49,0x54,0x6a,0x7a,0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,
+0x76,0x74,0x72,0x71,0x71,0x71,0x70,0x6f,0x6e,0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,0x6a,
+0x6d,0x6c,0x6a,0x69,0x68,0x67,0x67,0x68,0x69,0x6a,0x6a,0x6a,0x69,0x69,0x6a,0x6c,
+0x6b,0x6b,0x6a,0x68,0x66,0x63,0x61,0x5f,0x60,0x62,0x65,0x68,0x6c,0x71,0x76,0x7a,
+0x7d,0x83,0x8a,0x91,0x95,0x98,0x9a,0x9b,0x9d,0x9c,0x9b,0x9a,0x99,0x97,0x93,0x91,
+0x8f,0x8c,0x89,0x86,0x84,0x80,0x7b,0x77,0x75,0x73,0x71,0x6e,0x6c,0x69,0x65,0x63,
+0x62,0x63,0x66,0x67,0x69,0x6a,0x6d,0x6e,0x72,0x73,0x75,0x75,0x76,0x77,0x79,0x7b,
+0x7e,0x82,0x85,0x86,0x88,0x8c,0x8d,0x8c,0x89,0x87,0x83,0x7d,0x78,0x72,0x68,0x5e,
+0x57,0x57,0x5b,0x62,0x68,0x6b,0x6c,0x6e,0x6e,0x6f,0x70,0x72,0x74,0x76,0x78,0x79,
+0x77,0x78,0x79,0x79,0x78,0x78,0x78,0x79,0x76,0x77,0x76,0x75,0x73,0x70,0x6e,0x6c,
+0x68,0x67,0x64,0x61,0x5f,0x5f,0x62,0x64,0x5f,0x5f,0x64,0x69,0x67,0x5d,0x55,0x54,
+0x5a,0x67,0x60,0x4c,0x47,0x53,0x60,0x6b,0x6f,0x68,0x6a,0x71,0x69,0x55,0x4f,0x56,
+0x65,0x64,0x64,0x65,0x6a,0x70,0x76,0x7a,0x75,0x6b,0x5b,0x4c,0x44,0x46,0x53,0x60,
+0x60,0x5b,0x5b,0x64,0x6b,0x6a,0x61,0x59,0x64,0x68,0x67,0x60,0x5f,0x64,0x66,0x63,
+0x5d,0x60,0x62,0x62,0x60,0x5f,0x5f,0x61,0x68,0x66,0x65,0x68,0x6a,0x67,0x5f,0x58,
+0x5e,0x5d,0x5a,0x59,0x5c,0x62,0x63,0x62,0x64,0x64,0x62,0x60,0x62,0x66,0x69,0x69,
+0x6e,0x6e,0x72,0x7b,0x82,0x84,0x82,0x81,0x7c,0x7a,0x75,0x6d,0x63,0x5d,0x59,0x59,
+0x52,0x65,0x6d,0x5e,0x4d,0x48,0x47,0x43,0x38,0x38,0x39,0x3d,0x45,0x52,0x5f,0x68,
+0x63,0x55,0x46,0x44,0x4e,0x55,0x4e,0x42,0x45,0x4a,0x4c,0x4b,0x4f,0x54,0x51,0x4a,
+0x47,0x40,0x31,0x3b,0x4c,0x51,0x57,0x59,0x50,0x44,0x3a,0x36,0x34,0x3a,0x50,0x68,
+0x69,0x63,0x51,0x41,0x46,0x5a,0x64,0x60,0x57,0x4c,0x46,0x49,0x4a,0x47,0x4b,0x54,
+0x62,0x71,0x77,0x74,0x69,0x51,0x48,0x55,0x53,0x5e,0x62,0x63,0x62,0x55,0x40,0x35,
+0x38,0x2d,0x2b,0x2b,0x34,0x3b,0x42,0x59,0x51,0x59,0x58,0x50,0x48,0x41,0x43,0x4c,
+0x3c,0x3a,0x36,0x34,0x38,0x3d,0x3c,0x38,0x2f,0x33,0x3a,0x40,0x43,0x41,0x3b,0x35,
+0x35,0x35,0x3a,0x3f,0x3c,0x34,0x31,0x34,0x2f,0x2b,0x2c,0x33,0x3a,0x3e,0x3e,0x3e,
+0x4b,0x52,0x57,0x58,0x55,0x50,0x49,0x42,0x44,0x48,0x4c,0x4d,0x4e,0x4f,0x4e,0x4c,
+0x3d,0x3c,0x3d,0x41,0x42,0x41,0x41,0x43,0x43,0x43,0x42,0x40,0x41,0x43,0x41,0x3e,
+0x40,0x3e,0x3f,0x42,0x42,0x3f,0x3e,0x40,0x42,0x44,0x49,0x4e,0x4e,0x49,0x46,0x46,
+0x42,0x40,0x46,0x43,0x44,0x48,0x44,0x48,0x53,0x57,0x5d,0x62,0x63,0x5f,0x59,0x54,
+0x60,0x62,0x5f,0x5b,0x60,0x67,0x65,0x5b,0x52,0x52,0x53,0x55,0x5a,0x5e,0x5d,0x5a,
+0x55,0x53,0x4f,0x4d,0x4d,0x4f,0x51,0x53,0x52,0x53,0x51,0x4e,0x4e,0x50,0x52,0x51,
+0x50,0x4b,0x48,0x47,0x46,0x45,0x47,0x4b,0x41,0x45,0x4d,0x55,0x5f,0x6a,0x75,0x7b,
+0x82,0x7f,0x7a,0x75,0x72,0x6f,0x67,0x5f,0x51,0x4f,0x50,0x57,0x63,0x6a,0x65,0x5b,
+0x4a,0x46,0x42,0x41,0x44,0x48,0x4a,0x4a,0x47,0x45,0x43,0x42,0x43,0x45,0x46,0x46,
+0x49,0x4b,0x4c,0x4b,0x48,0x45,0x44,0x44,0x46,0x46,0x47,0x47,0x48,0x4c,0x52,0x58,
+0x58,0x53,0x4d,0x48,0x46,0x46,0x46,0x46,0x49,0x4a,0x48,0x43,0x42,0x45,0x46,0x45,
+0x48,0x46,0x44,0x45,0x47,0x4a,0x4b,0x4a,0x48,0x47,0x46,0x47,0x47,0x47,0x4a,0x4e,
+0x51,0x50,0x4e,0x4e,0x4f,0x4f,0x4f,0x4e,0x4c,0x4d,0x4e,0x4f,0x4f,0x4e,0x4c,0x4b,
+0x49,0x47,0x47,0x4a,0x4b,0x49,0x48,0x4a,0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x49,0x48,
+0x48,0x48,0x4c,0x51,0x52,0x4f,0x4e,0x50,0x47,0x4d,0x53,0x57,0x56,0x53,0x51,0x4f,
+0x5f,0x5e,0x56,0x48,0x41,0x4e,0x66,0x78,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x78,
+0x76,0x74,0x71,0x6f,0x6f,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,0x6a,
+0x6b,0x6b,0x6a,0x69,0x69,0x68,0x67,0x67,0x66,0x67,0x69,0x69,0x69,0x68,0x69,0x6b,
+0x69,0x6a,0x69,0x68,0x65,0x62,0x5e,0x5c,0x5d,0x5f,0x63,0x67,0x6b,0x70,0x75,0x78,
+0x80,0x85,0x8c,0x92,0x96,0x99,0x9b,0x9c,0x9d,0x9b,0x9a,0x9a,0x9a,0x99,0x97,0x96,
+0x93,0x91,0x8e,0x8c,0x8b,0x89,0x86,0x83,0x80,0x7e,0x7c,0x79,0x77,0x74,0x71,0x6e,
+0x70,0x71,0x72,0x73,0x73,0x74,0x77,0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,
+0x82,0x85,0x88,0x8a,0x8d,0x90,0x91,0x8f,0x8c,0x8a,0x84,0x7d,0x79,0x74,0x6b,0x61,
+0x5b,0x5a,0x5d,0x64,0x6a,0x6b,0x6b,0x6d,0x6c,0x6d,0x6f,0x70,0x72,0x73,0x74,0x74,
+0x75,0x75,0x76,0x75,0x74,0x73,0x73,0x74,0x71,0x72,0x72,0x71,0x70,0x6e,0x6c,0x6a,
+0x63,0x63,0x61,0x5e,0x5e,0x60,0x64,0x67,0x62,0x61,0x61,0x63,0x62,0x5c,0x55,0x4f,
+0x54,0x62,0x60,0x53,0x4d,0x4c,0x56,0x69,0x6e,0x6b,0x6c,0x6e,0x67,0x57,0x47,0x40,
+0x3f,0x3f,0x43,0x4d,0x58,0x5f,0x5f,0x5d,0x6a,0x6c,0x6e,0x69,0x5c,0x4f,0x4b,0x4e,
+0x58,0x56,0x5a,0x63,0x69,0x67,0x60,0x5a,0x63,0x66,0x66,0x63,0x5f,0x5f,0x5d,0x59,
+0x5a,0x5c,0x5d,0x5b,0x59,0x5a,0x5d,0x5f,0x62,0x5f,0x5d,0x5e,0x62,0x66,0x66,0x65,
+0x65,0x5f,0x57,0x53,0x59,0x62,0x67,0x66,0x64,0x63,0x60,0x5d,0x5d,0x63,0x68,0x69,
+0x6a,0x6a,0x6f,0x7a,0x81,0x81,0x7e,0x7d,0x7d,0x7d,0x7b,0x75,0x6c,0x62,0x5a,0x55,
+0x49,0x5c,0x64,0x55,0x43,0x3a,0x32,0x28,0x32,0x34,0x37,0x3b,0x42,0x49,0x51,0x55,
+0x5f,0x4f,0x3d,0x38,0x41,0x4a,0x49,0x44,0x47,0x4e,0x4f,0x49,0x49,0x51,0x50,0x48,
+0x45,0x3f,0x2f,0x3a,0x50,0x57,0x58,0x51,0x49,0x44,0x3d,0x35,0x2f,0x36,0x4f,0x67,
+0x68,0x60,0x4f,0x40,0x44,0x56,0x64,0x66,0x50,0x3f,0x38,0x42,0x49,0x49,0x51,0x5f,
+0x69,0x6f,0x6a,0x65,0x66,0x58,0x45,0x43,0x61,0x6a,0x6b,0x6b,0x67,0x51,0x3d,0x3c,
+0x3e,0x37,0x37,0x32,0x2f,0x27,0x23,0x35,0x5b,0x63,0x60,0x56,0x4e,0x47,0x49,0x52,
+0x34,0x34,0x34,0x37,0x3e,0x43,0x3e,0x36,0x2a,0x2c,0x31,0x39,0x3f,0x3f,0x3a,0x34,
+0x33,0x33,0x37,0x3d,0x3b,0x31,0x2c,0x2d,0x31,0x2b,0x29,0x30,0x3a,0x41,0x43,0x44,
+0x42,0x46,0x4a,0x4d,0x50,0x53,0x51,0x4d,0x4c,0x4e,0x4f,0x4f,0x4f,0x50,0x4e,0x4a,
+0x4b,0x44,0x3e,0x3c,0x3a,0x38,0x3a,0x3f,0x3f,0x41,0x43,0x43,0x45,0x47,0x46,0x43,
+0x42,0x3e,0x3d,0x41,0x44,0x42,0x42,0x44,0x46,0x46,0x49,0x4f,0x4f,0x4c,0x4a,0x4c,
+0x4d,0x44,0x41,0x38,0x38,0x3e,0x3b,0x3f,0x47,0x4f,0x58,0x5d,0x60,0x5e,0x57,0x50,
+0x56,0x53,0x4d,0x4b,0x57,0x66,0x65,0x5a,0x4d,0x4e,0x50,0x53,0x57,0x5c,0x60,0x61,
+0x5b,0x55,0x4c,0x47,0x47,0x49,0x4a,0x4a,0x4f,0x4f,0x4d,0x49,0x49,0x4d,0x51,0x52,
+0x54,0x4e,0x47,0x44,0x42,0x42,0x45,0x49,0x4c,0x48,0x46,0x4a,0x53,0x5a,0x5a,0x58,
+0x5b,0x61,0x67,0x6a,0x69,0x67,0x61,0x5b,0x59,0x56,0x51,0x4f,0x5a,0x69,0x6c,0x66,
+0x4f,0x4a,0x44,0x42,0x44,0x48,0x4b,0x4c,0x47,0x44,0x42,0x41,0x43,0x45,0x48,0x49,
+0x4e,0x51,0x53,0x51,0x4b,0x46,0x43,0x43,0x47,0x47,0x48,0x4a,0x4d,0x51,0x58,0x5e,
+0x5d,0x58,0x51,0x4c,0x49,0x48,0x48,0x48,0x4e,0x4e,0x4b,0x46,0x47,0x4c,0x4f,0x4d,
+0x4b,0x48,0x46,0x47,0x49,0x4b,0x49,0x47,0x47,0x46,0x47,0x49,0x49,0x48,0x4a,0x4e,
+0x4c,0x4a,0x4c,0x50,0x51,0x4e,0x4d,0x4f,0x4c,0x4d,0x4e,0x4d,0x4a,0x4a,0x4c,0x4f,
+0x4d,0x48,0x46,0x48,0x4a,0x49,0x4a,0x4d,0x49,0x4a,0x4b,0x4a,0x49,0x48,0x47,0x47,
+0x47,0x45,0x47,0x4d,0x4f,0x4d,0x4b,0x4d,0x50,0x51,0x50,0x4f,0x50,0x51,0x51,0x50,
+0x42,0x49,0x4b,0x44,0x41,0x4c,0x5f,0x6d,0x7a,0x7a,0x7b,0x7b,0x7a,0x79,0x78,0x77,
+0x76,0x73,0x70,0x6e,0x6e,0x6f,0x70,0x70,0x6e,0x6e,0x6e,0x6d,0x6d,0x6c,0x6b,0x6a,
+0x69,0x69,0x69,0x68,0x68,0x67,0x66,0x65,0x63,0x66,0x68,0x69,0x68,0x67,0x68,0x69,
+0x68,0x69,0x68,0x67,0x64,0x60,0x5b,0x59,0x59,0x5c,0x60,0x66,0x6b,0x70,0x76,0x79,
+0x7f,0x83,0x88,0x8d,0x90,0x92,0x93,0x94,0x9a,0x99,0x98,0x97,0x98,0x99,0x98,0x97,
+0x96,0x93,0x90,0x90,0x90,0x8f,0x8d,0x8a,0x8b,0x8a,0x88,0x86,0x84,0x81,0x7e,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7c,0x7d,0x7f,0x81,0x80,0x81,0x83,0x83,0x83,0x83,0x84,0x85,
+0x85,0x88,0x8b,0x8d,0x90,0x93,0x93,0x90,0x8e,0x8b,0x85,0x7e,0x7a,0x76,0x6d,0x62,
+0x5e,0x5b,0x5e,0x66,0x6b,0x6b,0x6b,0x6d,0x6c,0x6d,0x6e,0x70,0x70,0x71,0x70,0x70,
+0x73,0x74,0x74,0x72,0x70,0x6f,0x6f,0x70,0x6d,0x6d,0x6e,0x6e,0x6e,0x6c,0x6a,0x69,
+0x5f,0x5f,0x5e,0x5c,0x5d,0x61,0x66,0x69,0x64,0x63,0x61,0x5f,0x5e,0x5b,0x54,0x4e,
+0x4f,0x59,0x5a,0x55,0x4f,0x44,0x4b,0x65,0x66,0x68,0x69,0x69,0x68,0x60,0x4b,0x37,
+0x40,0x4f,0x5d,0x59,0x4b,0x46,0x51,0x5f,0x65,0x68,0x6e,0x74,0x71,0x68,0x61,0x5f,
+0x51,0x51,0x55,0x5b,0x60,0x60,0x5f,0x60,0x5c,0x60,0x65,0x66,0x65,0x63,0x60,0x5e,
+0x5e,0x5e,0x5b,0x57,0x56,0x5b,0x62,0x67,0x5d,0x5a,0x56,0x55,0x59,0x60,0x68,0x6d,
+0x74,0x6b,0x5f,0x5a,0x5f,0x67,0x6b,0x69,0x68,0x67,0x63,0x5d,0x5b,0x60,0x65,0x68,
+0x6c,0x70,0x7b,0x89,0x8f,0x8b,0x85,0x82,0x7e,0x7e,0x7d,0x7a,0x71,0x65,0x59,0x52,
+0x57,0x5a,0x5c,0x56,0x47,0x39,0x36,0x38,0x33,0x34,0x37,0x3c,0x42,0x49,0x50,0x53,
+0x50,0x48,0x41,0x42,0x49,0x4b,0x43,0x3a,0x45,0x4c,0x4a,0x41,0x43,0x50,0x57,0x53,
+0x46,0x3e,0x2c,0x36,0x51,0x5b,0x59,0x4c,0x45,0x49,0x45,0x35,0x2a,0x33,0x4c,0x62,
+0x6d,0x65,0x54,0x43,0x43,0x53,0x64,0x6d,0x69,0x5b,0x4c,0x48,0x4c,0x52,0x59,0x5f,
+0x74,0x6d,0x65,0x67,0x5c,0x3c,0x36,0x51,0x66,0x6f,0x72,0x74,0x6e,0x54,0x41,0x47,
+0x3c,0x3d,0x42,0x3a,0x32,0x2e,0x39,0x59,0x6a,0x6d,0x66,0x5c,0x58,0x51,0x4a,0x4b,
+0x32,0x2f,0x32,0x3e,0x4a,0x49,0x3c,0x30,0x29,0x2b,0x31,0x38,0x3b,0x39,0x37,0x37,
+0x3d,0x3b,0x3b,0x3f,0x43,0x42,0x3b,0x34,0x2d,0x2c,0x2e,0x35,0x3c,0x3e,0x3b,0x39,
+0x3c,0x3f,0x42,0x40,0x3f,0x42,0x4a,0x51,0x51,0x4c,0x48,0x49,0x4e,0x51,0x4e,0x4a,
+0x45,0x4a,0x4d,0x49,0x40,0x39,0x37,0x38,0x3e,0x41,0x42,0x43,0x47,0x4b,0x49,0x43,
+0x42,0x43,0x44,0x42,0x41,0x42,0x46,0x49,0x4c,0x4b,0x49,0x49,0x4a,0x4a,0x47,0x45,
+0x42,0x42,0x42,0x41,0x41,0x41,0x41,0x42,0x3f,0x42,0x4a,0x55,0x5d,0x5b,0x51,0x48,
+0x4f,0x4f,0x52,0x56,0x57,0x58,0x5d,0x65,0x62,0x5d,0x54,0x4e,0x52,0x58,0x58,0x54,
+0x52,0x52,0x51,0x4e,0x4a,0x47,0x46,0x46,0x4a,0x4d,0x4f,0x4f,0x50,0x53,0x54,0x52,
+0x4e,0x4a,0x46,0x45,0x48,0x4a,0x49,0x48,0x4c,0x5c,0x6d,0x6f,0x61,0x4c,0x3d,0x36,
+0x42,0x48,0x4f,0x51,0x4f,0x4c,0x4b,0x4c,0x4e,0x4f,0x53,0x4f,0x4d,0x61,0x75,0x73,
+0x5b,0x4e,0x44,0x45,0x4a,0x4b,0x4a,0x4a,0x44,0x46,0x48,0x47,0x44,0x42,0x43,0x44,
+0x4f,0x57,0x5c,0x57,0x4c,0x45,0x47,0x4c,0x4e,0x4a,0x47,0x46,0x4c,0x55,0x5f,0x65,
+0x60,0x54,0x4d,0x4f,0x4e,0x4a,0x4c,0x54,0x53,0x50,0x4f,0x52,0x56,0x57,0x54,0x50,
+0x4c,0x4c,0x4d,0x4d,0x4d,0x4c,0x4b,0x4b,0x46,0x48,0x4a,0x4c,0x4c,0x4b,0x4a,0x4a,
+0x46,0x48,0x4a,0x4d,0x52,0x55,0x52,0x4c,0x44,0x47,0x4a,0x4c,0x4d,0x4e,0x50,0x51,
+0x52,0x4f,0x4c,0x4a,0x4a,0x4a,0x4a,0x4a,0x49,0x48,0x45,0x43,0x42,0x43,0x44,0x45,
+0x45,0x44,0x45,0x48,0x4c,0x4d,0x4a,0x47,0x49,0x4a,0x4b,0x4d,0x4d,0x4d,0x4c,0x4b,
+0x49,0x49,0x49,0x48,0x44,0x49,0x5b,0x6f,0x77,0x7c,0x79,0x77,0x7a,0x79,0x77,0x7a,
+0x77,0x75,0x71,0x6e,0x6d,0x6d,0x6f,0x70,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x64,0x65,0x66,0x68,0x68,0x69,0x68,0x68,
+0x67,0x67,0x66,0x64,0x61,0x5d,0x5a,0x59,0x57,0x5c,0x63,0x67,0x6b,0x6f,0x75,0x7a,
+0x7f,0x82,0x85,0x87,0x88,0x89,0x8c,0x8e,0x92,0x93,0x93,0x93,0x92,0x91,0x8f,0x8e,
+0x8c,0x89,0x86,0x86,0x84,0x81,0x81,0x83,0x84,0x88,0x8c,0x8d,0x8b,0x89,0x87,0x87,
+0x8a,0x89,0x86,0x83,0x80,0x80,0x81,0x83,0x83,0x84,0x86,0x85,0x85,0x87,0x8a,0x8e,
+0x8c,0x8b,0x8d,0x92,0x94,0x91,0x90,0x92,0x8d,0x8a,0x87,0x83,0x7c,0x73,0x6b,0x69,
+0x60,0x5f,0x62,0x67,0x6b,0x6a,0x69,0x6a,0x6b,0x6a,0x6a,0x6a,0x6b,0x6c,0x6e,0x6e,
+0x6c,0x6e,0x71,0x71,0x6f,0x6d,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6c,0x6a,0x67,0x64,
+0x5f,0x5d,0x5b,0x5b,0x5d,0x60,0x63,0x64,0x62,0x60,0x5e,0x5e,0x5e,0x5a,0x53,0x4d,
+0x49,0x4e,0x56,0x59,0x4e,0x42,0x47,0x55,0x61,0x65,0x6a,0x6b,0x64,0x55,0x41,0x34,
+0x4f,0x5d,0x6a,0x6b,0x63,0x5d,0x5b,0x5b,0x7a,0x7a,0x79,0x7b,0x80,0x82,0x77,0x69,
+0x56,0x52,0x55,0x5f,0x67,0x64,0x5d,0x58,0x5c,0x60,0x65,0x67,0x69,0x69,0x65,0x61,
+0x5b,0x5c,0x5a,0x56,0x55,0x57,0x5c,0x5f,0x59,0x55,0x50,0x4f,0x55,0x5b,0x5c,0x5a,
+0x5c,0x59,0x58,0x5f,0x6f,0x83,0x90,0x94,0x7e,0x75,0x68,0x5e,0x5e,0x63,0x64,0x63,
+0x65,0x6a,0x76,0x83,0x89,0x87,0x85,0x85,0x7f,0x7f,0x7d,0x7b,0x77,0x6f,0x5f,0x51,
+0x4d,0x57,0x59,0x51,0x4d,0x4e,0x4a,0x42,0x49,0x4f,0x46,0x3e,0x42,0x41,0x40,0x48,
+0x3f,0x36,0x2e,0x3e,0x4e,0x51,0x36,0x3a,0x3b,0x51,0x46,0x40,0x46,0x50,0x5e,0x55,
+0x44,0x3b,0x3e,0x50,0x5e,0x5c,0x56,0x55,0x52,0x50,0x42,0x30,0x2b,0x3e,0x5b,0x6d,
+0x6b,0x5b,0x43,0x35,0x41,0x5c,0x6d,0x70,0x71,0x5d,0x55,0x50,0x55,0x49,0x4d,0x51,
+0x66,0x6f,0x71,0x71,0x6b,0x57,0x53,0x67,0x7e,0x7c,0x7c,0x77,0x66,0x50,0x47,0x49,
+0x48,0x53,0x49,0x3c,0x3d,0x3a,0x44,0x60,0x78,0x7f,0x75,0x63,0x55,0x42,0x36,0x3d,
+0x34,0x36,0x39,0x3c,0x3e,0x3d,0x39,0x34,0x2d,0x2f,0x34,0x3b,0x3d,0x3a,0x38,0x38,
+0x3a,0x3a,0x3b,0x3f,0x43,0x42,0x3c,0x37,0x31,0x31,0x34,0x3b,0x42,0x44,0x42,0x40,
+0x3b,0x3e,0x3f,0x3d,0x3b,0x3d,0x44,0x4a,0x4a,0x49,0x49,0x4b,0x4f,0x52,0x53,0x54,
+0x48,0x4a,0x4c,0x4b,0x47,0x41,0x3c,0x39,0x3d,0x41,0x45,0x48,0x4a,0x4c,0x48,0x42,
+0x49,0x4b,0x4b,0x49,0x44,0x43,0x45,0x48,0x4a,0x4d,0x50,0x50,0x4d,0x49,0x45,0x43,
+0x46,0x45,0x43,0x42,0x41,0x41,0x41,0x41,0x3e,0x41,0x48,0x4f,0x52,0x50,0x49,0x43,
+0x42,0x43,0x46,0x4a,0x4c,0x4e,0x53,0x5a,0x63,0x5f,0x59,0x54,0x56,0x5a,0x59,0x54,
+0x4c,0x4c,0x4b,0x49,0x47,0x47,0x47,0x47,0x4d,0x4f,0x50,0x4f,0x50,0x52,0x53,0x52,
+0x51,0x4d,0x49,0x49,0x4b,0x4c,0x4b,0x48,0x5e,0x66,0x6f,0x71,0x6e,0x6a,0x6a,0x6d,
+0x68,0x67,0x65,0x63,0x61,0x5e,0x5a,0x58,0x51,0x4f,0x52,0x54,0x52,0x59,0x69,0x72,
+0x67,0x5a,0x4e,0x4a,0x4d,0x4f,0x4a,0x44,0x44,0x45,0x46,0x46,0x45,0x46,0x47,0x49,
+0x4d,0x51,0x53,0x50,0x4b,0x4a,0x4e,0x53,0x4f,0x4d,0x4a,0x4b,0x50,0x58,0x60,0x65,
+0x5f,0x50,0x45,0x47,0x4a,0x49,0x4c,0x52,0x51,0x51,0x51,0x53,0x55,0x55,0x52,0x4f,
+0x47,0x48,0x49,0x4a,0x4b,0x4b,0x4b,0x4b,0x48,0x48,0x49,0x4a,0x49,0x47,0x46,0x46,
+0x45,0x48,0x4b,0x4d,0x50,0x52,0x4f,0x4b,0x47,0x49,0x4b,0x4d,0x4d,0x4e,0x4f,0x50,
+0x52,0x4f,0x4b,0x49,0x47,0x47,0x46,0x45,0x43,0x42,0x42,0x41,0x41,0x42,0x43,0x43,
+0x44,0x43,0x44,0x48,0x4c,0x4d,0x4a,0x47,0x46,0x46,0x46,0x46,0x47,0x47,0x46,0x45,
+0x44,0x44,0x45,0x45,0x42,0x46,0x59,0x6c,0x76,0x7c,0x7a,0x78,0x7a,0x78,0x74,0x75,
+0x76,0x74,0x71,0x6e,0x6d,0x6d,0x6e,0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,0x6c,0x6c,
+0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x66,0x67,0x68,0x69,0x69,0x69,0x69,0x68,
+0x65,0x66,0x67,0x65,0x62,0x5d,0x59,0x57,0x5c,0x5f,0x65,0x69,0x6c,0x70,0x74,0x78,
+0x79,0x7b,0x7e,0x7f,0x7f,0x7f,0x80,0x82,0x82,0x82,0x83,0x84,0x84,0x83,0x82,0x81,
+0x79,0x76,0x75,0x76,0x74,0x71,0x6f,0x70,0x75,0x78,0x7b,0x7d,0x7e,0x7d,0x7e,0x7f,
+0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7f,0x81,0x81,0x84,0x88,0x89,0x8a,0x8c,0x8f,0x92,
+0x90,0x8f,0x90,0x93,0x93,0x90,0x8e,0x90,0x8d,0x88,0x83,0x7f,0x7a,0x72,0x6b,0x69,
+0x61,0x5f,0x60,0x65,0x69,0x69,0x69,0x6a,0x6c,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,
+0x6a,0x6d,0x6f,0x6f,0x6d,0x6b,0x6a,0x6a,0x6a,0x6a,0x69,0x6a,0x69,0x67,0x64,0x62,
+0x5c,0x5b,0x59,0x5a,0x5c,0x5f,0x61,0x61,0x5d,0x5f,0x62,0x65,0x63,0x5b,0x50,0x48,
+0x44,0x47,0x50,0x55,0x4e,0x43,0x46,0x51,0x5d,0x61,0x66,0x68,0x64,0x5a,0x4f,0x47,
+0x5c,0x61,0x64,0x62,0x61,0x68,0x71,0x78,0x6d,0x6f,0x6c,0x66,0x63,0x66,0x67,0x65,
+0x55,0x53,0x55,0x5e,0x65,0x63,0x5d,0x58,0x58,0x5e,0x64,0x69,0x6e,0x6f,0x6d,0x69,
+0x55,0x56,0x55,0x52,0x4e,0x4d,0x4d,0x4d,0x4f,0x4f,0x4f,0x51,0x53,0x54,0x50,0x4c,
+0x53,0x53,0x53,0x54,0x5e,0x70,0x82,0x8c,0x94,0x8c,0x7e,0x6e,0x65,0x67,0x6c,0x70,
+0x77,0x73,0x71,0x73,0x75,0x76,0x7c,0x82,0x80,0x7e,0x7a,0x79,0x79,0x73,0x66,0x59,
+0x51,0x56,0x59,0x58,0x5a,0x5c,0x57,0x4f,0x42,0x47,0x42,0x40,0x4a,0x4d,0x48,0x4a,
+0x28,0x22,0x21,0x3a,0x54,0x5c,0x3b,0x35,0x42,0x50,0x46,0x3e,0x47,0x56,0x5d,0x55,
+0x3c,0x39,0x40,0x51,0x5b,0x59,0x58,0x5c,0x5a,0x57,0x48,0x32,0x2a,0x37,0x4d,0x5a,
+0x66,0x56,0x41,0x3b,0x4a,0x5e,0x62,0x59,0x40,0x43,0x54,0x56,0x53,0x41,0x4c,0x5a,
+0x67,0x70,0x72,0x6f,0x6c,0x63,0x68,0x7b,0x88,0x7f,0x77,0x72,0x66,0x52,0x42,0x3c,
+0x3c,0x49,0x45,0x3d,0x40,0x43,0x53,0x72,0x7a,0x83,0x78,0x62,0x53,0x49,0x48,0x52,
+0x38,0x3f,0x41,0x39,0x31,0x32,0x38,0x3b,0x36,0x36,0x39,0x3d,0x3d,0x3a,0x37,0x37,
+0x39,0x3a,0x3d,0x40,0x41,0x3f,0x3b,0x37,0x3c,0x3b,0x3a,0x3b,0x3d,0x3e,0x3d,0x3c,
+0x41,0x42,0x43,0x40,0x3d,0x3f,0x45,0x4b,0x4a,0x4c,0x4e,0x4e,0x4d,0x4e,0x51,0x54,
+0x4c,0x49,0x47,0x48,0x4a,0x49,0x44,0x3f,0x41,0x45,0x47,0x47,0x48,0x48,0x46,0x42,
+0x46,0x49,0x4b,0x49,0x45,0x43,0x46,0x49,0x49,0x4d,0x51,0x4f,0x4a,0x46,0x45,0x46,
+0x4b,0x49,0x46,0x43,0x41,0x41,0x41,0x41,0x46,0x49,0x4d,0x50,0x50,0x4c,0x49,0x46,
+0x40,0x40,0x43,0x45,0x46,0x48,0x4d,0x52,0x50,0x50,0x4f,0x50,0x54,0x59,0x5a,0x58,
+0x51,0x4f,0x4c,0x4b,0x4a,0x4b,0x4c,0x4c,0x4d,0x4d,0x4c,0x4a,0x4c,0x4f,0x50,0x4e,
+0x4d,0x4a,0x47,0x48,0x4c,0x4e,0x4c,0x4a,0x49,0x4a,0x4c,0x4f,0x57,0x63,0x70,0x78,
+0x7d,0x7d,0x7d,0x7b,0x77,0x72,0x6f,0x6e,0x69,0x62,0x59,0x55,0x50,0x4b,0x59,0x73,
+0x76,0x6c,0x5b,0x4f,0x4e,0x51,0x4c,0x43,0x43,0x42,0x42,0x43,0x46,0x49,0x4b,0x4b,
+0x4e,0x4e,0x4d,0x4d,0x4d,0x4e,0x50,0x51,0x4e,0x4d,0x4d,0x4e,0x51,0x57,0x5c,0x60,
+0x5d,0x4e,0x45,0x49,0x50,0x51,0x51,0x53,0x51,0x52,0x53,0x54,0x54,0x52,0x50,0x4e,
+0x47,0x47,0x48,0x49,0x4a,0x4a,0x4b,0x4b,0x4d,0x4d,0x4c,0x4b,0x49,0x48,0x47,0x47,
+0x47,0x4b,0x4d,0x4e,0x4f,0x50,0x4e,0x4b,0x4a,0x4b,0x4c,0x4d,0x4c,0x4c,0x4d,0x4f,
+0x4e,0x4b,0x48,0x45,0x45,0x44,0x43,0x42,0x3e,0x3e,0x3f,0x40,0x41,0x42,0x42,0x43,
+0x45,0x46,0x47,0x4b,0x4e,0x4f,0x4c,0x4a,0x47,0x46,0x45,0x45,0x46,0x46,0x44,0x43,
+0x44,0x45,0x46,0x45,0x42,0x45,0x55,0x67,0x71,0x79,0x7a,0x78,0x7a,0x78,0x73,0x73,
+0x74,0x73,0x71,0x6f,0x6e,0x6d,0x6d,0x6d,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,0x6c,0x6c,
+0x6a,0x6a,0x6a,0x6a,0x69,0x69,0x69,0x69,0x68,0x68,0x69,0x6a,0x6a,0x69,0x68,0x68,
+0x67,0x67,0x65,0x62,0x5c,0x58,0x55,0x54,0x5c,0x5e,0x62,0x66,0x69,0x6c,0x6e,0x6f,
+0x76,0x77,0x79,0x78,0x77,0x75,0x75,0x75,0x72,0x71,0x6e,0x6b,0x67,0x64,0x61,0x5f,
+0x5d,0x5c,0x5e,0x60,0x60,0x5d,0x5c,0x5c,0x5f,0x61,0x64,0x66,0x68,0x6a,0x6d,0x6e,
+0x69,0x6a,0x6a,0x6a,0x6b,0x6d,0x70,0x73,0x7b,0x7f,0x85,0x89,0x8b,0x8d,0x91,0x94,
+0x94,0x93,0x94,0x96,0x95,0x92,0x91,0x91,0x8d,0x86,0x7f,0x7b,0x78,0x71,0x6b,0x69,
+0x63,0x5f,0x5e,0x61,0x65,0x67,0x68,0x69,0x6c,0x6c,0x6c,0x6c,0x6b,0x6a,0x68,0x67,
+0x68,0x6a,0x6b,0x6c,0x6a,0x69,0x68,0x67,0x67,0x66,0x66,0x66,0x65,0x63,0x60,0x5e,
+0x5a,0x59,0x59,0x5a,0x5c,0x5e,0x5e,0x5e,0x58,0x5c,0x62,0x64,0x61,0x58,0x4d,0x46,
+0x3f,0x40,0x46,0x4d,0x4c,0x44,0x45,0x4b,0x53,0x59,0x5f,0x64,0x67,0x6c,0x72,0x77,
+0x73,0x6b,0x5b,0x4c,0x46,0x4c,0x56,0x5c,0x6c,0x74,0x77,0x72,0x6b,0x66,0x5f,0x58,
+0x54,0x53,0x55,0x5c,0x61,0x60,0x5c,0x59,0x54,0x5b,0x63,0x6b,0x72,0x75,0x72,0x6e,
+0x5c,0x5a,0x57,0x54,0x51,0x4e,0x4c,0x4b,0x53,0x51,0x4f,0x4d,0x4d,0x4e,0x50,0x51,
+0x54,0x58,0x5a,0x58,0x58,0x60,0x6c,0x75,0x8b,0x90,0x90,0x87,0x7d,0x77,0x76,0x76,
+0x75,0x72,0x70,0x71,0x73,0x76,0x7a,0x7e,0x83,0x7f,0x7b,0x79,0x7c,0x7a,0x71,0x66,
+0x5a,0x5b,0x5d,0x61,0x63,0x5f,0x56,0x4f,0x51,0x50,0x49,0x47,0x52,0x52,0x45,0x3a,
+0x26,0x23,0x20,0x33,0x49,0x55,0x39,0x37,0x3f,0x45,0x44,0x3b,0x49,0x5b,0x54,0x4c,
+0x34,0x38,0x44,0x50,0x53,0x50,0x54,0x5c,0x65,0x61,0x50,0x39,0x2f,0x3a,0x4a,0x52,
+0x5d,0x4f,0x41,0x41,0x52,0x61,0x5f,0x54,0x4c,0x50,0x62,0x63,0x5f,0x4d,0x56,0x63,
+0x66,0x6a,0x6a,0x6c,0x71,0x72,0x74,0x7d,0x85,0x79,0x6f,0x6c,0x69,0x5d,0x4f,0x46,
+0x3f,0x45,0x3e,0x3a,0x40,0x44,0x4d,0x62,0x6c,0x78,0x78,0x6e,0x65,0x5a,0x4e,0x4b,
+0x3c,0x45,0x46,0x38,0x2c,0x2e,0x39,0x41,0x3f,0x3c,0x3b,0x3c,0x3a,0x37,0x36,0x37,
+0x3c,0x3e,0x40,0x41,0x3f,0x3b,0x38,0x35,0x35,0x37,0x38,0x3b,0x41,0x48,0x4c,0x4d,
+0x41,0x41,0x3f,0x3c,0x3a,0x3d,0x45,0x4b,0x4d,0x4f,0x50,0x4f,0x4d,0x4c,0x4e,0x50,
+0x4e,0x49,0x43,0x43,0x47,0x49,0x48,0x45,0x49,0x48,0x45,0x43,0x42,0x43,0x45,0x46,
+0x45,0x48,0x4b,0x49,0x45,0x42,0x44,0x46,0x48,0x4a,0x4b,0x49,0x46,0x45,0x49,0x4c,
+0x4e,0x4c,0x48,0x45,0x42,0x42,0x43,0x43,0x45,0x47,0x4a,0x4c,0x4c,0x49,0x46,0x44,
+0x49,0x49,0x49,0x49,0x48,0x49,0x4b,0x4e,0x4a,0x4c,0x4e,0x53,0x59,0x5f,0x62,0x62,
+0x5a,0x56,0x52,0x4f,0x4e,0x4e,0x4e,0x4e,0x4b,0x4a,0x48,0x47,0x4b,0x50,0x51,0x4f,
+0x4c,0x48,0x45,0x45,0x48,0x4a,0x4a,0x48,0x43,0x40,0x3d,0x3e,0x42,0x46,0x48,0x49,
+0x55,0x5f,0x69,0x6b,0x66,0x62,0x63,0x66,0x6e,0x6b,0x5f,0x57,0x50,0x45,0x4e,0x6a,
+0x7b,0x76,0x65,0x50,0x48,0x4c,0x4b,0x44,0x43,0x42,0x42,0x45,0x4a,0x4e,0x4e,0x4d,
+0x4e,0x4f,0x50,0x4f,0x4e,0x4b,0x49,0x47,0x4c,0x4c,0x4d,0x4e,0x4f,0x51,0x53,0x55,
+0x55,0x4d,0x4b,0x54,0x5b,0x59,0x53,0x51,0x50,0x52,0x55,0x55,0x53,0x50,0x4e,0x4d,
+0x4b,0x4a,0x4a,0x4a,0x4a,0x4b,0x4c,0x4c,0x4f,0x4e,0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,
+0x4d,0x50,0x50,0x4e,0x4c,0x4d,0x4d,0x4b,0x4a,0x4b,0x4b,0x4b,0x4a,0x4a,0x4b,0x4d,
+0x46,0x44,0x42,0x42,0x43,0x44,0x44,0x43,0x40,0x40,0x40,0x40,0x40,0x41,0x42,0x43,
+0x46,0x47,0x48,0x4b,0x4d,0x4d,0x4a,0x48,0x47,0x46,0x47,0x48,0x49,0x49,0x46,0x43,
+0x46,0x46,0x47,0x46,0x41,0x41,0x4e,0x5e,0x6a,0x74,0x77,0x75,0x78,0x78,0x75,0x75,
+0x72,0x71,0x71,0x70,0x6e,0x6d,0x6d,0x6c,0x6d,0x6d,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,
+0x6a,0x6a,0x6a,0x69,0x69,0x69,0x69,0x68,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x67,
+0x68,0x66,0x63,0x5d,0x58,0x55,0x55,0x57,0x5c,0x5e,0x63,0x69,0x6d,0x6f,0x6f,0x6e,
+0x6c,0x6d,0x6d,0x6b,0x69,0x66,0x64,0x63,0x5d,0x5c,0x5a,0x58,0x58,0x59,0x5a,0x5b,
+0x56,0x54,0x55,0x57,0x56,0x54,0x53,0x54,0x52,0x52,0x53,0x54,0x56,0x58,0x5b,0x5d,
+0x5f,0x5f,0x60,0x60,0x61,0x63,0x67,0x69,0x71,0x75,0x7a,0x7f,0x83,0x87,0x8c,0x90,
+0x93,0x93,0x94,0x95,0x95,0x93,0x92,0x92,0x8c,0x85,0x7e,0x7b,0x79,0x73,0x6c,0x68,
+0x64,0x5e,0x5b,0x5e,0x63,0x65,0x67,0x69,0x6a,0x6b,0x6c,0x6c,0x6b,0x69,0x67,0x65,
+0x66,0x67,0x67,0x67,0x67,0x66,0x65,0x65,0x64,0x63,0x62,0x62,0x61,0x60,0x5d,0x5b,
+0x59,0x59,0x5a,0x5c,0x5d,0x5d,0x5b,0x59,0x57,0x59,0x5b,0x5a,0x56,0x4f,0x49,0x46,
+0x3f,0x3c,0x3e,0x45,0x47,0x44,0x43,0x46,0x52,0x58,0x5f,0x5f,0x5b,0x59,0x5d,0x63,
+0x75,0x7a,0x7e,0x7e,0x7a,0x70,0x61,0x55,0x4b,0x54,0x60,0x69,0x71,0x71,0x66,0x59,
+0x54,0x53,0x55,0x59,0x5d,0x5d,0x5a,0x58,0x52,0x59,0x62,0x6b,0x72,0x76,0x72,0x6d,
+0x59,0x53,0x4d,0x4b,0x4b,0x4b,0x4b,0x4c,0x4d,0x4d,0x4e,0x4e,0x4d,0x4d,0x50,0x54,
+0x57,0x58,0x57,0x53,0x53,0x5a,0x64,0x6a,0x7e,0x88,0x92,0x94,0x90,0x89,0x82,0x7c,
+0x71,0x71,0x72,0x74,0x77,0x79,0x7a,0x7b,0x80,0x7f,0x7c,0x7a,0x7b,0x7b,0x76,0x70,
+0x65,0x64,0x66,0x67,0x5f,0x51,0x47,0x45,0x53,0x4c,0x44,0x48,0x55,0x57,0x49,0x39,
+0x16,0x28,0x3a,0x4f,0x5b,0x5b,0x3d,0x3d,0x42,0x47,0x51,0x49,0x54,0x61,0x4a,0x40,
+0x2f,0x38,0x47,0x51,0x51,0x50,0x56,0x5f,0x55,0x51,0x41,0x30,0x32,0x46,0x58,0x5f,
+0x53,0x47,0x3c,0x40,0x52,0x63,0x67,0x64,0x69,0x5e,0x5b,0x4f,0x4d,0x46,0x59,0x6a,
+0x6c,0x61,0x5b,0x63,0x71,0x76,0x76,0x77,0x7d,0x77,0x6e,0x67,0x5f,0x59,0x55,0x54,
+0x51,0x47,0x35,0x2f,0x36,0x34,0x2e,0x31,0x3c,0x42,0x4c,0x5d,0x69,0x63,0x52,0x45,
+0x40,0x46,0x44,0x37,0x2d,0x2f,0x39,0x40,0x43,0x3e,0x3b,0x39,0x38,0x37,0x38,0x3b,
+0x3e,0x40,0x43,0x43,0x40,0x3c,0x39,0x38,0x3b,0x41,0x48,0x4b,0x50,0x55,0x56,0x55,
+0x46,0x44,0x42,0x3e,0x3e,0x43,0x4d,0x54,0x4e,0x4d,0x4e,0x4f,0x50,0x51,0x51,0x50,
+0x4d,0x4b,0x49,0x48,0x47,0x47,0x46,0x45,0x4b,0x47,0x44,0x42,0x43,0x45,0x49,0x4b,
+0x4e,0x4f,0x50,0x4d,0x48,0x44,0x42,0x42,0x47,0x48,0x49,0x4a,0x4b,0x4d,0x51,0x53,
+0x50,0x4d,0x4a,0x47,0x45,0x44,0x45,0x46,0x48,0x49,0x4c,0x50,0x53,0x51,0x4c,0x48,
+0x4f,0x4f,0x4e,0x4c,0x4a,0x4b,0x4c,0x4d,0x4e,0x4d,0x4d,0x51,0x55,0x57,0x59,0x5a,
+0x59,0x56,0x53,0x4f,0x4d,0x4c,0x4b,0x4a,0x4a,0x49,0x48,0x49,0x50,0x56,0x57,0x54,
+0x4f,0x4a,0x44,0x43,0x46,0x49,0x4a,0x4a,0x52,0x49,0x3e,0x37,0x37,0x3a,0x3d,0x3d,
+0x36,0x3f,0x49,0x4f,0x4f,0x4d,0x4e,0x4f,0x4f,0x5b,0x5d,0x5a,0x57,0x4c,0x4a,0x58,
+0x76,0x7a,0x70,0x58,0x48,0x47,0x47,0x42,0x45,0x44,0x45,0x4a,0x50,0x53,0x52,0x4f,
+0x4d,0x4f,0x50,0x4d,0x49,0x45,0x44,0x45,0x4d,0x4f,0x50,0x4f,0x4d,0x4c,0x4d,0x4d,
+0x4a,0x49,0x4e,0x56,0x59,0x55,0x50,0x4f,0x4e,0x51,0x54,0x53,0x50,0x4d,0x4c,0x4c,
+0x4c,0x4c,0x4b,0x4b,0x4b,0x4c,0x4e,0x4f,0x4c,0x4b,0x4a,0x4a,0x4d,0x4f,0x50,0x50,
+0x51,0x51,0x4f,0x4a,0x48,0x49,0x49,0x49,0x48,0x49,0x4a,0x4a,0x49,0x49,0x4a,0x4a,
+0x42,0x41,0x40,0x40,0x42,0x43,0x43,0x43,0x45,0x43,0x40,0x3e,0x3e,0x3f,0x41,0x42,
+0x43,0x44,0x45,0x46,0x47,0x46,0x44,0x43,0x43,0x43,0x45,0x49,0x4b,0x4a,0x45,0x41,
+0x43,0x43,0x45,0x44,0x3f,0x3e,0x48,0x55,0x67,0x72,0x75,0x71,0x75,0x77,0x75,0x76,
+0x71,0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6a,0x6a,0x69,0x69,0x68,0x68,0x67,0x67,0x67,0x68,0x68,0x68,0x68,0x67,0x66,0x65,
+0x64,0x65,0x63,0x5e,0x57,0x53,0x52,0x52,0x55,0x59,0x5f,0x67,0x6e,0x71,0x71,0x70,
+0x67,0x67,0x67,0x65,0x63,0x60,0x5d,0x5b,0x5b,0x58,0x54,0x51,0x50,0x51,0x53,0x55,
+0x56,0x53,0x52,0x52,0x52,0x50,0x50,0x52,0x50,0x4f,0x4e,0x4e,0x4e,0x50,0x51,0x51,
+0x53,0x54,0x55,0x56,0x57,0x5a,0x5d,0x60,0x67,0x6a,0x6e,0x72,0x76,0x7c,0x84,0x89,
+0x8e,0x90,0x91,0x92,0x92,0x92,0x90,0x8e,0x8a,0x84,0x7e,0x7d,0x7b,0x74,0x6c,0x66,
+0x63,0x5d,0x59,0x5c,0x62,0x65,0x67,0x68,0x68,0x69,0x6a,0x6b,0x6a,0x68,0x66,0x65,
+0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x63,0x63,0x61,0x60,0x5f,0x5f,0x5d,0x5a,0x58,
+0x58,0x59,0x5a,0x5b,0x5c,0x5a,0x57,0x54,0x56,0x56,0x55,0x53,0x4e,0x4a,0x46,0x45,
+0x41,0x3b,0x39,0x3d,0x41,0x41,0x42,0x44,0x4c,0x57,0x62,0x62,0x59,0x51,0x50,0x53,
+0x5e,0x66,0x6f,0x74,0x74,0x6e,0x61,0x56,0x53,0x55,0x57,0x5b,0x64,0x6d,0x6e,0x69,
+0x55,0x54,0x54,0x55,0x58,0x5a,0x59,0x56,0x50,0x56,0x60,0x69,0x72,0x75,0x71,0x6b,
+0x55,0x4d,0x48,0x49,0x4d,0x4d,0x4c,0x4c,0x45,0x50,0x5f,0x6b,0x69,0x5d,0x54,0x51,
+0x5c,0x58,0x53,0x53,0x5f,0x71,0x7f,0x85,0x8d,0x8d,0x8c,0x8c,0x8f,0x92,0x90,0x8c,
+0x82,0x7d,0x75,0x6e,0x6d,0x70,0x73,0x74,0x75,0x7a,0x7d,0x7a,0x77,0x75,0x75,0x74,
+0x6e,0x6e,0x6d,0x65,0x54,0x44,0x44,0x4c,0x54,0x46,0x3e,0x44,0x4f,0x51,0x47,0x39,
+0x29,0x3a,0x48,0x55,0x55,0x4c,0x2d,0x2f,0x41,0x48,0x54,0x4b,0x51,0x56,0x3c,0x30,
+0x2f,0x3b,0x4b,0x55,0x58,0x59,0x5f,0x65,0x5a,0x52,0x3f,0x2f,0x38,0x51,0x63,0x65,
+0x56,0x43,0x35,0x3c,0x53,0x66,0x69,0x66,0x5a,0x5b,0x64,0x5d,0x59,0x4e,0x60,0x70,
+0x85,0x74,0x6d,0x74,0x78,0x78,0x7b,0x80,0x7c,0x7c,0x73,0x5e,0x48,0x40,0x46,0x4e,
+0x4e,0x41,0x31,0x30,0x3a,0x40,0x41,0x43,0x44,0x33,0x2c,0x34,0x39,0x36,0x31,0x2f,
+0x43,0x42,0x3d,0x36,0x31,0x31,0x37,0x3d,0x45,0x40,0x3c,0x3b,0x3a,0x3a,0x3d,0x40,
+0x3e,0x41,0x43,0x44,0x43,0x40,0x3e,0x3d,0x44,0x4f,0x58,0x59,0x57,0x54,0x4d,0x45,
+0x4a,0x48,0x46,0x43,0x44,0x49,0x52,0x59,0x54,0x51,0x4f,0x4f,0x51,0x51,0x4e,0x4b,
+0x4b,0x4f,0x53,0x52,0x4d,0x47,0x45,0x44,0x49,0x46,0x45,0x48,0x4c,0x4d,0x4e,0x4f,
+0x4e,0x4e,0x4e,0x4d,0x4c,0x4a,0x48,0x46,0x48,0x4b,0x50,0x53,0x56,0x56,0x56,0x56,
+0x51,0x4f,0x4c,0x49,0x47,0x47,0x47,0x48,0x4e,0x4f,0x52,0x57,0x5a,0x59,0x54,0x4f,
+0x4f,0x50,0x4f,0x4c,0x4c,0x4e,0x4f,0x4f,0x4b,0x48,0x47,0x4b,0x4f,0x50,0x50,0x50,
+0x53,0x53,0x52,0x4f,0x4c,0x49,0x48,0x48,0x49,0x48,0x47,0x4b,0x53,0x59,0x58,0x52,
+0x4a,0x46,0x43,0x45,0x4b,0x51,0x54,0x55,0x59,0x60,0x6b,0x74,0x75,0x6a,0x58,0x4b,
+0x4a,0x48,0x49,0x4d,0x52,0x52,0x4e,0x4a,0x45,0x51,0x57,0x55,0x52,0x4f,0x4e,0x51,
+0x6d,0x79,0x79,0x66,0x52,0x4a,0x46,0x43,0x45,0x44,0x45,0x49,0x4f,0x52,0x51,0x4f,
+0x4e,0x4e,0x4d,0x47,0x42,0x42,0x48,0x4d,0x52,0x53,0x54,0x52,0x4e,0x4c,0x4b,0x4c,
+0x48,0x4a,0x4e,0x53,0x52,0x4f,0x4f,0x51,0x4d,0x4f,0x51,0x51,0x4e,0x4d,0x4c,0x4d,
+0x4d,0x4c,0x4a,0x4a,0x4a,0x4c,0x4e,0x4f,0x4b,0x4a,0x4a,0x4c,0x51,0x55,0x56,0x56,
+0x50,0x50,0x4d,0x48,0x47,0x48,0x47,0x45,0x48,0x4a,0x4b,0x4b,0x4a,0x49,0x49,0x49,
+0x44,0x43,0x42,0x41,0x42,0x42,0x41,0x40,0x46,0x43,0x3f,0x3c,0x3b,0x3c,0x3f,0x41,
+0x43,0x43,0x44,0x44,0x44,0x44,0x43,0x43,0x43,0x43,0x45,0x4a,0x4d,0x4c,0x46,0x41,
+0x42,0x43,0x45,0x46,0x42,0x40,0x49,0x55,0x66,0x73,0x75,0x70,0x72,0x75,0x73,0x73,
+0x72,0x71,0x71,0x70,0x6f,0x6e,0x6e,0x6d,0x6b,0x6c,0x6d,0x6e,0x6e,0x6e,0x6e,0x6d,
+0x6a,0x6a,0x69,0x68,0x68,0x67,0x67,0x67,0x66,0x66,0x67,0x67,0x67,0x66,0x65,0x64,
+0x64,0x65,0x64,0x5d,0x50,0x43,0x3a,0x36,0x3a,0x3d,0x44,0x4a,0x50,0x54,0x56,0x58,
+0x59,0x58,0x58,0x58,0x57,0x54,0x51,0x4e,0x4f,0x4c,0x47,0x41,0x3c,0x39,0x37,0x37,
+0x3e,0x3c,0x3d,0x41,0x44,0x46,0x49,0x4d,0x4e,0x4d,0x4d,0x4d,0x4e,0x4e,0x4d,0x4c,
+0x4a,0x4b,0x4d,0x4e,0x50,0x52,0x56,0x58,0x5c,0x5f,0x62,0x65,0x69,0x6f,0x78,0x7e,
+0x88,0x8c,0x8f,0x90,0x91,0x91,0x8e,0x8b,0x88,0x83,0x7f,0x7d,0x7a,0x72,0x6a,0x65,
+0x61,0x5b,0x58,0x5c,0x62,0x66,0x67,0x67,0x66,0x67,0x69,0x69,0x69,0x68,0x66,0x65,
+0x64,0x62,0x61,0x61,0x62,0x63,0x63,0x62,0x62,0x60,0x5f,0x5d,0x5d,0x5b,0x59,0x57,
+0x56,0x56,0x58,0x5a,0x5a,0x59,0x55,0x52,0x54,0x54,0x54,0x52,0x4f,0x4b,0x46,0x43,
+0x42,0x3c,0x38,0x39,0x3c,0x3e,0x40,0x43,0x46,0x51,0x5d,0x62,0x62,0x67,0x73,0x7e,
+0x78,0x73,0x68,0x5c,0x58,0x5f,0x6b,0x73,0x6e,0x6d,0x65,0x58,0x51,0x54,0x58,0x5a,
+0x59,0x57,0x54,0x53,0x56,0x59,0x58,0x54,0x4c,0x52,0x5c,0x66,0x70,0x75,0x72,0x6c,
+0x57,0x50,0x4e,0x54,0x5a,0x57,0x50,0x4d,0x4a,0x56,0x69,0x77,0x74,0x64,0x57,0x52,
+0x57,0x57,0x5a,0x64,0x75,0x87,0x8f,0x90,0x90,0x89,0x81,0x7e,0x86,0x90,0x95,0x95,
+0x8e,0x89,0x7f,0x75,0x70,0x6f,0x6c,0x69,0x69,0x74,0x7d,0x7d,0x78,0x75,0x76,0x78,
+0x74,0x73,0x6f,0x63,0x51,0x47,0x50,0x5e,0x57,0x43,0x3c,0x45,0x49,0x48,0x46,0x42,
+0x56,0x50,0x45,0x47,0x45,0x3c,0x1e,0x23,0x3b,0x45,0x4a,0x45,0x4b,0x4f,0x3f,0x35,
+0x38,0x45,0x53,0x5a,0x5b,0x5b,0x5c,0x5d,0x5c,0x51,0x3d,0x32,0x43,0x61,0x6e,0x6a,
+0x63,0x48,0x34,0x40,0x5a,0x67,0x5e,0x51,0x56,0x5b,0x67,0x62,0x5f,0x54,0x63,0x70,
+0x7f,0x78,0x7a,0x78,0x67,0x5b,0x60,0x66,0x76,0x75,0x69,0x51,0x3c,0x39,0x43,0x4b,
+0x43,0x3d,0x37,0x36,0x3a,0x45,0x55,0x61,0x45,0x30,0x24,0x22,0x1f,0x26,0x3a,0x49,
+0x41,0x3a,0x35,0x36,0x36,0x36,0x3b,0x42,0x4b,0x47,0x44,0x42,0x40,0x3e,0x3e,0x40,
+0x3e,0x3f,0x41,0x42,0x42,0x41,0x3e,0x3c,0x3d,0x4a,0x54,0x55,0x53,0x53,0x4f,0x48,
+0x45,0x45,0x44,0x43,0x43,0x46,0x4b,0x4f,0x56,0x53,0x50,0x4f,0x4f,0x4d,0x49,0x45,
+0x4a,0x50,0x55,0x55,0x50,0x4c,0x4c,0x4d,0x4f,0x49,0x46,0x4a,0x4f,0x50,0x4f,0x4f,
+0x4a,0x48,0x48,0x4a,0x4e,0x51,0x4f,0x4e,0x4c,0x51,0x57,0x59,0x57,0x54,0x54,0x55,
+0x52,0x51,0x4e,0x4c,0x4a,0x48,0x48,0x48,0x47,0x49,0x4d,0x50,0x50,0x4f,0x4c,0x4a,
+0x4d,0x4e,0x4d,0x4a,0x4b,0x4f,0x51,0x4f,0x4d,0x4a,0x4b,0x52,0x59,0x59,0x56,0x55,
+0x50,0x53,0x55,0x53,0x4d,0x48,0x46,0x47,0x48,0x47,0x47,0x4c,0x54,0x59,0x54,0x4c,
+0x47,0x45,0x44,0x47,0x4e,0x53,0x55,0x55,0x69,0x66,0x61,0x5d,0x5c,0x5c,0x5e,0x5f,
+0x57,0x56,0x56,0x57,0x57,0x55,0x50,0x4c,0x53,0x51,0x52,0x50,0x4b,0x4d,0x53,0x52,
+0x61,0x6e,0x74,0x67,0x55,0x4b,0x49,0x47,0x46,0x45,0x44,0x47,0x4c,0x50,0x52,0x52,
+0x55,0x53,0x4f,0x49,0x45,0x45,0x4b,0x51,0x54,0x55,0x55,0x52,0x4e,0x4b,0x4b,0x4d,
+0x4e,0x4f,0x51,0x52,0x51,0x50,0x52,0x55,0x4f,0x50,0x51,0x51,0x50,0x50,0x50,0x51,
+0x52,0x50,0x4d,0x4a,0x49,0x4a,0x4b,0x4c,0x4c,0x4b,0x4b,0x4f,0x54,0x58,0x59,0x58,
+0x50,0x50,0x4f,0x4e,0x4e,0x4f,0x4c,0x47,0x4b,0x4d,0x4f,0x4f,0x4d,0x4a,0x49,0x48,
+0x47,0x46,0x44,0x43,0x42,0x42,0x40,0x3f,0x42,0x41,0x3e,0x3c,0x3c,0x3d,0x40,0x41,
+0x44,0x44,0x44,0x44,0x44,0x45,0x46,0x48,0x48,0x46,0x46,0x49,0x4c,0x4c,0x48,0x43,
+0x46,0x46,0x49,0x4b,0x47,0x44,0x4b,0x56,0x61,0x71,0x75,0x71,0x73,0x76,0x73,0x72,
+0x72,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x6f,0x6d,0x6d,0x6e,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x6b,0x6a,0x6a,0x69,0x68,0x68,0x67,0x67,0x65,0x65,0x66,0x66,0x66,0x66,0x65,0x64,
+0x64,0x64,0x61,0x55,0x44,0x32,0x27,0x22,0x24,0x26,0x27,0x27,0x27,0x2a,0x2e,0x32,
+0x34,0x34,0x34,0x36,0x36,0x35,0x32,0x2f,0x2b,0x2c,0x2f,0x31,0x31,0x31,0x2f,0x2e,
+0x2b,0x2b,0x2e,0x34,0x38,0x3b,0x3e,0x42,0x43,0x44,0x45,0x47,0x4a,0x4a,0x48,0x46,
+0x4a,0x4b,0x4c,0x4d,0x4d,0x4f,0x51,0x53,0x4f,0x52,0x55,0x58,0x5b,0x61,0x68,0x6d,
+0x78,0x7e,0x84,0x88,0x8b,0x8d,0x8b,0x87,0x86,0x81,0x7d,0x7a,0x75,0x6d,0x67,0x65,
+0x5f,0x59,0x58,0x5d,0x64,0x67,0x67,0x66,0x66,0x67,0x68,0x68,0x68,0x66,0x65,0x64,
+0x63,0x62,0x60,0x60,0x61,0x63,0x63,0x62,0x60,0x5f,0x5d,0x5c,0x5b,0x59,0x57,0x55,
+0x55,0x56,0x58,0x5a,0x5c,0x5b,0x58,0x56,0x55,0x54,0x52,0x51,0x50,0x4d,0x48,0x45,
+0x3f,0x3b,0x38,0x39,0x3a,0x3c,0x3f,0x41,0x48,0x52,0x5b,0x5d,0x5b,0x5e,0x69,0x74,
+0x75,0x78,0x76,0x6c,0x65,0x6b,0x7a,0x86,0x7d,0x7f,0x7b,0x73,0x6e,0x6d,0x6c,0x68,
+0x5e,0x5a,0x54,0x52,0x56,0x5b,0x59,0x53,0x49,0x4f,0x57,0x62,0x6c,0x72,0x6f,0x69,
+0x55,0x4c,0x4a,0x53,0x5a,0x56,0x4d,0x48,0x4a,0x4e,0x58,0x61,0x5e,0x53,0x4e,0x4f,
+0x4e,0x54,0x5d,0x66,0x71,0x7a,0x7e,0x7e,0x81,0x7c,0x75,0x70,0x75,0x81,0x8c,0x92,
+0x8e,0x8e,0x8b,0x85,0x7f,0x78,0x6c,0x61,0x5b,0x69,0x78,0x7d,0x7b,0x78,0x78,0x78,
+0x75,0x74,0x6f,0x64,0x57,0x51,0x54,0x5b,0x49,0x33,0x34,0x44,0x46,0x45,0x4f,0x59,
+0x55,0x49,0x40,0x4e,0x56,0x4f,0x2d,0x31,0x45,0x50,0x4b,0x4b,0x53,0x55,0x50,0x45,
+0x3d,0x4c,0x5a,0x5d,0x5b,0x59,0x57,0x55,0x48,0x3f,0x31,0x31,0x4d,0x70,0x7a,0x6f,
+0x65,0x4c,0x3b,0x45,0x57,0x59,0x4a,0x3b,0x4f,0x50,0x53,0x40,0x36,0x32,0x53,0x6e,
+0x83,0x81,0x7f,0x6c,0x56,0x59,0x6b,0x71,0x70,0x66,0x53,0x42,0x40,0x48,0x4d,0x4a,
+0x42,0x3f,0x3e,0x3a,0x32,0x35,0x43,0x4e,0x5c,0x50,0x46,0x38,0x29,0x2d,0x3d,0x41,
+0x3e,0x33,0x30,0x36,0x3b,0x3b,0x41,0x4b,0x52,0x4f,0x4c,0x4a,0x46,0x40,0x3d,0x3c,
+0x3e,0x3e,0x3f,0x40,0x40,0x3e,0x3a,0x37,0x49,0x52,0x56,0x51,0x4d,0x4f,0x4e,0x4b,
+0x4d,0x4e,0x4f,0x4e,0x4d,0x4e,0x50,0x52,0x4d,0x4d,0x4c,0x4c,0x4c,0x4b,0x49,0x48,
+0x49,0x4d,0x50,0x50,0x4e,0x4f,0x55,0x5a,0x59,0x4e,0x45,0x47,0x4b,0x4d,0x4d,0x4d,
+0x4f,0x4b,0x49,0x4c,0x51,0x54,0x52,0x4f,0x51,0x56,0x5a,0x57,0x50,0x4d,0x4f,0x54,
+0x53,0x52,0x50,0x4d,0x4b,0x49,0x48,0x47,0x47,0x4a,0x4e,0x4f,0x4c,0x49,0x49,0x4b,
+0x4a,0x4b,0x4a,0x47,0x48,0x4d,0x4e,0x4b,0x4c,0x48,0x4a,0x53,0x5a,0x59,0x53,0x4f,
+0x4f,0x54,0x58,0x55,0x4d,0x46,0x44,0x44,0x4c,0x4b,0x4b,0x50,0x57,0x5a,0x53,0x4a,
+0x4f,0x4c,0x49,0x4a,0x4c,0x4c,0x49,0x45,0x38,0x3e,0x46,0x4e,0x53,0x57,0x5a,0x5c,
+0x51,0x5b,0x65,0x65,0x5c,0x54,0x53,0x55,0x54,0x4c,0x50,0x54,0x4e,0x4e,0x53,0x4f,
+0x54,0x5e,0x63,0x5b,0x4d,0x47,0x48,0x4a,0x4b,0x49,0x47,0x49,0x4d,0x52,0x57,0x5a,
+0x5e,0x5b,0x56,0x51,0x4c,0x4a,0x4b,0x4d,0x52,0x54,0x53,0x50,0x4b,0x49,0x4a,0x4c,
+0x50,0x51,0x53,0x54,0x53,0x52,0x52,0x53,0x53,0x53,0x52,0x53,0x53,0x54,0x55,0x55,
+0x59,0x56,0x51,0x4c,0x49,0x48,0x48,0x48,0x4a,0x49,0x49,0x4d,0x53,0x56,0x56,0x55,
+0x52,0x53,0x54,0x56,0x58,0x58,0x53,0x4c,0x4f,0x51,0x53,0x52,0x50,0x4c,0x49,0x47,
+0x48,0x46,0x45,0x44,0x43,0x43,0x41,0x40,0x3f,0x3e,0x3e,0x3e,0x3e,0x40,0x42,0x43,
+0x42,0x42,0x42,0x41,0x42,0x44,0x47,0x49,0x4a,0x47,0x44,0x45,0x49,0x49,0x46,0x42,
+0x48,0x48,0x4b,0x4c,0x47,0x43,0x48,0x52,0x5c,0x6d,0x75,0x72,0x75,0x78,0x75,0x73,
+0x73,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x6e,0x6f,0x6f,0x6f,0x6e,0x6c,0x6b,0x69,
+0x6b,0x6b,0x6b,0x6a,0x69,0x68,0x68,0x67,0x65,0x65,0x66,0x67,0x66,0x66,0x65,0x65,
+0x61,0x5f,0x59,0x4d,0x3d,0x30,0x29,0x28,0x27,0x25,0x20,0x19,0x14,0x14,0x19,0x1e,
+0x20,0x20,0x21,0x23,0x25,0x24,0x21,0x1e,0x24,0x28,0x2e,0x34,0x36,0x35,0x32,0x2f,
+0x34,0x34,0x35,0x38,0x39,0x37,0x37,0x38,0x36,0x38,0x3b,0x3f,0x43,0x45,0x43,0x40,
+0x40,0x40,0x40,0x40,0x3f,0x3e,0x3f,0x41,0x44,0x47,0x4c,0x4f,0x51,0x55,0x5a,0x5e,
+0x64,0x6c,0x75,0x7b,0x81,0x86,0x85,0x81,0x85,0x80,0x7b,0x77,0x71,0x69,0x65,0x64,
+0x5d,0x58,0x57,0x5e,0x65,0x68,0x67,0x65,0x67,0x68,0x68,0x67,0x66,0x65,0x64,0x63,
+0x64,0x61,0x5f,0x5f,0x61,0x63,0x63,0x62,0x60,0x5e,0x5c,0x5a,0x59,0x58,0x56,0x54,
+0x55,0x56,0x59,0x5c,0x5e,0x5e,0x5c,0x5a,0x59,0x55,0x50,0x4e,0x4e,0x4d,0x4b,0x48,
+0x3b,0x3a,0x39,0x39,0x39,0x3a,0x3d,0x40,0x43,0x53,0x63,0x67,0x5c,0x4e,0x45,0x43,
+0x5c,0x65,0x6a,0x62,0x59,0x5b,0x69,0x75,0x79,0x78,0x76,0x77,0x7d,0x80,0x77,0x6a,
+0x61,0x5c,0x55,0x52,0x56,0x5c,0x5a,0x53,0x48,0x4d,0x54,0x5e,0x68,0x6d,0x6a,0x63,
+0x58,0x4e,0x49,0x52,0x5a,0x58,0x51,0x4d,0x4a,0x4b,0x51,0x58,0x56,0x4f,0x4d,0x52,
+0x5a,0x5f,0x62,0x61,0x64,0x6d,0x79,0x81,0x7e,0x7a,0x6f,0x63,0x61,0x6d,0x81,0x8e,
+0x93,0x93,0x8f,0x88,0x81,0x79,0x6c,0x5f,0x4e,0x5d,0x6f,0x78,0x79,0x78,0x75,0x73,
+0x74,0x73,0x70,0x68,0x5f,0x56,0x4e,0x48,0x49,0x31,0x33,0x44,0x3f,0x38,0x46,0x56,
+0x4f,0x3e,0x31,0x3f,0x49,0x46,0x2f,0x3c,0x4d,0x58,0x4a,0x4c,0x52,0x4e,0x4c,0x3a,
+0x3a,0x4b,0x5c,0x60,0x5f,0x5e,0x5d,0x5b,0x5d,0x53,0x43,0x41,0x5b,0x77,0x76,0x62,
+0x5a,0x49,0x3f,0x44,0x4a,0x43,0x37,0x31,0x23,0x43,0x66,0x59,0x3f,0x2c,0x4d,0x70,
+0x7b,0x70,0x59,0x38,0x2d,0x52,0x7d,0x88,0x77,0x62,0x45,0x39,0x44,0x52,0x4c,0x3b,
+0x37,0x37,0x3f,0x46,0x45,0x4a,0x54,0x59,0x63,0x5e,0x58,0x47,0x38,0x40,0x44,0x36,
+0x3d,0x38,0x36,0x3b,0x41,0x43,0x44,0x47,0x40,0x44,0x47,0x47,0x43,0x40,0x3f,0x40,
+0x45,0x46,0x46,0x43,0x40,0x3d,0x3d,0x3d,0x45,0x42,0x44,0x49,0x4c,0x49,0x46,0x46,
+0x46,0x4b,0x4f,0x4f,0x4f,0x4f,0x4e,0x4c,0x48,0x4b,0x4f,0x50,0x4f,0x4c,0x4b,0x4a,
+0x4e,0x4d,0x4d,0x4d,0x4f,0x51,0x54,0x55,0x50,0x4e,0x4f,0x54,0x56,0x52,0x4f,0x4f,
+0x4e,0x4b,0x4b,0x4f,0x52,0x4f,0x4b,0x48,0x49,0x50,0x59,0x5b,0x53,0x4c,0x50,0x58,
+0x5c,0x53,0x4b,0x49,0x4a,0x4a,0x4b,0x4b,0x4f,0x4f,0x4f,0x4e,0x4b,0x46,0x45,0x46,
+0x44,0x47,0x48,0x46,0x46,0x49,0x4c,0x4d,0x48,0x46,0x46,0x4a,0x4f,0x53,0x53,0x51,
+0x51,0x52,0x56,0x58,0x52,0x4a,0x47,0x49,0x4d,0x4e,0x51,0x55,0x56,0x52,0x4b,0x46,
+0x4f,0x49,0x49,0x50,0x51,0x4c,0x49,0x4a,0x40,0x47,0x45,0x42,0x4a,0x4f,0x4b,0x48,
+0x47,0x48,0x4b,0x50,0x57,0x5b,0x59,0x54,0x54,0x50,0x4a,0x47,0x48,0x4c,0x50,0x52,
+0x4a,0x47,0x47,0x4b,0x4e,0x4c,0x49,0x49,0x48,0x48,0x49,0x49,0x4a,0x4c,0x50,0x53,
+0x59,0x5b,0x59,0x52,0x4f,0x51,0x50,0x4c,0x51,0x52,0x53,0x52,0x50,0x4d,0x4b,0x4a,
+0x54,0x51,0x4e,0x4d,0x4e,0x4f,0x55,0x5a,0x57,0x50,0x4d,0x52,0x54,0x52,0x51,0x53,
+0x50,0x50,0x50,0x51,0x52,0x53,0x52,0x52,0x52,0x51,0x4f,0x4e,0x4d,0x4f,0x53,0x56,
+0x54,0x52,0x53,0x56,0x56,0x52,0x51,0x52,0x52,0x54,0x55,0x51,0x4c,0x49,0x49,0x4b,
+0x4e,0x48,0x42,0x3f,0x3f,0x40,0x3e,0x3b,0x42,0x42,0x40,0x3d,0x3e,0x40,0x40,0x3e,
+0x40,0x41,0x42,0x40,0x3f,0x41,0x46,0x4b,0x4d,0x47,0x45,0x48,0x48,0x44,0x44,0x48,
+0x4d,0x4d,0x4a,0x46,0x45,0x4a,0x4d,0x4d,0x58,0x68,0x75,0x75,0x73,0x76,0x77,0x74,
+0x72,0x74,0x72,0x6f,0x6f,0x71,0x6f,0x6b,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,0x6b,0x6b,
+0x6b,0x6b,0x6b,0x6a,0x69,0x69,0x68,0x68,0x69,0x67,0x66,0x66,0x66,0x66,0x65,0x64,
+0x60,0x5d,0x53,0x43,0x38,0x33,0x30,0x2c,0x2d,0x28,0x26,0x26,0x20,0x18,0x17,0x1d,
+0x1a,0x1e,0x20,0x21,0x24,0x27,0x26,0x22,0x27,0x2d,0x37,0x3d,0x3f,0x3c,0x37,0x34,
+0x38,0x3d,0x41,0x45,0x47,0x46,0x40,0x3a,0x35,0x36,0x39,0x3c,0x3a,0x35,0x34,0x35,
+0x36,0x35,0x35,0x36,0x33,0x2e,0x2d,0x30,0x34,0x3c,0x43,0x45,0x48,0x4e,0x53,0x54,
+0x5c,0x5e,0x64,0x6c,0x75,0x7a,0x7b,0x7b,0x7f,0x7a,0x7a,0x7a,0x71,0x63,0x62,0x6a,
+0x65,0x5c,0x57,0x5d,0x65,0x68,0x67,0x67,0x63,0x64,0x65,0x64,0x62,0x60,0x61,0x62,
+0x62,0x62,0x62,0x63,0x63,0x63,0x60,0x5e,0x5d,0x5c,0x5b,0x59,0x57,0x55,0x54,0x53,
+0x55,0x54,0x56,0x5b,0x61,0x66,0x6b,0x6e,0x69,0x6d,0x6e,0x69,0x67,0x67,0x61,0x59,
+0x46,0x40,0x3b,0x3a,0x3d,0x3f,0x3e,0x3b,0x49,0x59,0x64,0x5f,0x54,0x4e,0x4e,0x4d,
+0x4b,0x4b,0x47,0x49,0x5a,0x70,0x79,0x74,0x77,0x7b,0x7b,0x7a,0x80,0x83,0x78,0x67,
+0x56,0x56,0x55,0x55,0x58,0x5b,0x5a,0x56,0x49,0x4a,0x50,0x5c,0x66,0x67,0x64,0x61,
+0x54,0x50,0x4f,0x57,0x61,0x62,0x57,0x4b,0x4b,0x49,0x4b,0x51,0x55,0x53,0x4e,0x4b,
+0x4c,0x54,0x58,0x57,0x58,0x61,0x6c,0x72,0x75,0x73,0x6c,0x60,0x5b,0x62,0x71,0x7d,
+0x8b,0x8e,0x8f,0x8d,0x89,0x82,0x78,0x6f,0x57,0x5b,0x64,0x6e,0x75,0x77,0x74,0x71,
+0x70,0x73,0x72,0x6a,0x61,0x5a,0x56,0x53,0x44,0x42,0x3f,0x37,0x31,0x3c,0x4e,0x55,
+0x44,0x35,0x2e,0x35,0x3e,0x3f,0x3c,0x3c,0x4b,0x4d,0x44,0x40,0x4e,0x59,0x52,0x47,
+0x3d,0x49,0x55,0x5a,0x5a,0x5a,0x58,0x54,0x4f,0x3e,0x3b,0x4a,0x5c,0x69,0x6b,0x63,
+0x52,0x3d,0x38,0x4d,0x67,0x6f,0x5a,0x3d,0x32,0x36,0x3f,0x34,0x33,0x37,0x5c,0x78,
+0x87,0x7c,0x5e,0x3c,0x3c,0x65,0x84,0x84,0x71,0x50,0x3c,0x3b,0x4a,0x50,0x40,0x38,
+0x37,0x31,0x35,0x3d,0x44,0x52,0x62,0x69,0x6f,0x67,0x57,0x48,0x45,0x49,0x45,0x3d,
+0x41,0x3a,0x36,0x38,0x3b,0x3c,0x3e,0x40,0x3a,0x3e,0x42,0x42,0x3f,0x3d,0x3f,0x42,
+0x47,0x49,0x4b,0x4b,0x49,0x48,0x48,0x48,0x48,0x46,0x48,0x4c,0x4d,0x49,0x46,0x46,
+0x45,0x49,0x4b,0x48,0x45,0x45,0x45,0x44,0x43,0x46,0x49,0x49,0x47,0x47,0x4a,0x4d,
+0x48,0x43,0x3e,0x3f,0x47,0x4f,0x53,0x54,0x53,0x50,0x50,0x56,0x59,0x57,0x54,0x53,
+0x49,0x45,0x44,0x48,0x4d,0x4d,0x4b,0x4a,0x51,0x56,0x5c,0x5b,0x54,0x4e,0x54,0x5d,
+0x69,0x5e,0x51,0x4b,0x49,0x4a,0x4d,0x51,0x54,0x54,0x53,0x50,0x4c,0x47,0x45,0x45,
+0x4b,0x4c,0x4b,0x47,0x47,0x4a,0x4b,0x4b,0x45,0x44,0x44,0x49,0x4e,0x51,0x50,0x4e,
+0x4e,0x50,0x53,0x56,0x52,0x4a,0x47,0x48,0x4f,0x4f,0x4e,0x4f,0x4e,0x4c,0x4a,0x49,
+0x48,0x43,0x43,0x4b,0x50,0x50,0x51,0x55,0x68,0x71,0x70,0x6a,0x68,0x62,0x55,0x4d,
+0x3c,0x3d,0x3c,0x3a,0x3c,0x42,0x47,0x49,0x4b,0x49,0x48,0x47,0x49,0x4c,0x4f,0x50,
+0x45,0x42,0x43,0x48,0x4b,0x48,0x46,0x45,0x49,0x4b,0x4e,0x4f,0x50,0x51,0x53,0x54,
+0x53,0x54,0x54,0x51,0x51,0x52,0x54,0x53,0x4f,0x50,0x51,0x51,0x50,0x50,0x52,0x54,
+0x59,0x55,0x52,0x50,0x4f,0x4f,0x54,0x5a,0x5a,0x55,0x50,0x50,0x51,0x4f,0x4d,0x4c,
+0x4f,0x4c,0x4a,0x4b,0x4f,0x53,0x53,0x52,0x4f,0x4f,0x4e,0x4d,0x4d,0x4d,0x50,0x52,
+0x50,0x4e,0x50,0x53,0x53,0x50,0x50,0x52,0x54,0x55,0x55,0x52,0x4e,0x4c,0x4d,0x4e,
+0x4f,0x4a,0x43,0x40,0x40,0x41,0x40,0x3e,0x3d,0x40,0x42,0x43,0x44,0x44,0x42,0x3f,
+0x42,0x44,0x45,0x44,0x41,0x3f,0x40,0x42,0x4a,0x47,0x45,0x46,0x47,0x48,0x4b,0x4f,
+0x53,0x51,0x4e,0x4a,0x46,0x45,0x49,0x4d,0x55,0x63,0x70,0x75,0x76,0x78,0x77,0x75,
+0x73,0x74,0x73,0x70,0x70,0x71,0x70,0x6c,0x6d,0x6e,0x6e,0x6e,0x6e,0x6d,0x6b,0x6b,
+0x6e,0x6d,0x6c,0x6a,0x69,0x68,0x67,0x66,0x69,0x68,0x67,0x67,0x67,0x66,0x65,0x64,
+0x5e,0x5a,0x51,0x44,0x3d,0x3a,0x38,0x35,0x30,0x2c,0x2a,0x28,0x21,0x18,0x19,0x1e,
+0x20,0x23,0x25,0x25,0x26,0x29,0x28,0x25,0x27,0x2c,0x35,0x3b,0x3e,0x3d,0x3c,0x3a,
+0x44,0x4a,0x4f,0x51,0x51,0x50,0x4c,0x48,0x41,0x3d,0x3a,0x3a,0x3a,0x3a,0x3d,0x42,
+0x40,0x3d,0x3a,0x39,0x36,0x31,0x2f,0x30,0x2e,0x33,0x36,0x35,0x37,0x3e,0x46,0x4a,
+0x4e,0x53,0x5a,0x60,0x66,0x6d,0x74,0x79,0x76,0x73,0x72,0x71,0x6b,0x64,0x65,0x6c,
+0x62,0x5b,0x58,0x5e,0x66,0x6a,0x69,0x69,0x64,0x65,0x65,0x63,0x60,0x5f,0x5f,0x60,
+0x60,0x5f,0x5f,0x5f,0x60,0x60,0x5e,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x55,0x54,0x53,
+0x55,0x55,0x57,0x5a,0x5d,0x60,0x63,0x65,0x71,0x73,0x74,0x73,0x74,0x74,0x70,0x6c,
+0x61,0x55,0x46,0x3c,0x3b,0x3e,0x40,0x40,0x43,0x4f,0x5a,0x5c,0x57,0x52,0x51,0x52,
+0x45,0x45,0x49,0x54,0x64,0x71,0x76,0x76,0x70,0x71,0x6c,0x67,0x6a,0x73,0x72,0x6a,
+0x5a,0x5a,0x58,0x56,0x57,0x59,0x58,0x54,0x45,0x45,0x4a,0x55,0x5e,0x60,0x5e,0x5d,
+0x55,0x50,0x4f,0x56,0x5d,0x5b,0x50,0x47,0x47,0x49,0x4f,0x58,0x5b,0x54,0x49,0x42,
+0x47,0x4e,0x52,0x51,0x52,0x59,0x64,0x6a,0x6e,0x6d,0x67,0x5d,0x58,0x5d,0x68,0x6f,
+0x7b,0x83,0x8b,0x8e,0x8c,0x88,0x82,0x7c,0x6d,0x64,0x5e,0x63,0x70,0x79,0x76,0x71,
+0x71,0x72,0x6f,0x68,0x61,0x5d,0x5a,0x57,0x50,0x41,0x36,0x35,0x3d,0x4e,0x55,0x4f,
+0x43,0x3a,0x39,0x45,0x50,0x50,0x4d,0x4c,0x4f,0x4f,0x48,0x47,0x51,0x51,0x42,0x35,
+0x34,0x4f,0x62,0x5f,0x59,0x59,0x54,0x49,0x50,0x44,0x45,0x57,0x65,0x69,0x5e,0x4d,
+0x3d,0x34,0x35,0x40,0x4f,0x5c,0x5c,0x50,0x40,0x42,0x4b,0x45,0x49,0x4a,0x63,0x76,
+0x7d,0x5a,0x41,0x4b,0x69,0x82,0x84,0x76,0x58,0x3a,0x27,0x1f,0x1e,0x1c,0x11,0x15,
+0x16,0x27,0x3f,0x47,0x41,0x44,0x50,0x57,0x60,0x52,0x41,0x3d,0x49,0x55,0x50,0x42,
+0x42,0x3c,0x35,0x34,0x35,0x36,0x39,0x3b,0x3a,0x3e,0x42,0x42,0x3f,0x40,0x46,0x4b,
+0x4f,0x51,0x53,0x53,0x51,0x4e,0x4b,0x4a,0x48,0x48,0x4a,0x4d,0x4b,0x47,0x45,0x46,
+0x4d,0x51,0x51,0x4c,0x47,0x46,0x48,0x4a,0x46,0x47,0x47,0x45,0x43,0x45,0x49,0x4e,
+0x48,0x40,0x39,0x3e,0x4b,0x57,0x5a,0x58,0x56,0x54,0x53,0x57,0x5b,0x5a,0x58,0x57,
+0x4f,0x48,0x43,0x45,0x4a,0x4b,0x4a,0x49,0x50,0x52,0x54,0x51,0x4a,0x47,0x4e,0x57,
+0x62,0x59,0x4f,0x49,0x47,0x49,0x4f,0x56,0x57,0x57,0x55,0x51,0x4c,0x49,0x47,0x46,
+0x4d,0x4c,0x49,0x47,0x49,0x4d,0x4e,0x4c,0x47,0x46,0x47,0x4b,0x50,0x52,0x50,0x4d,
+0x4c,0x4d,0x50,0x52,0x50,0x4a,0x47,0x48,0x4f,0x4f,0x4e,0x4c,0x4a,0x49,0x49,0x4a,
+0x4c,0x48,0x49,0x4f,0x52,0x51,0x4f,0x51,0x53,0x5d,0x5e,0x5b,0x5e,0x60,0x5e,0x60,
+0x71,0x6b,0x5e,0x50,0x47,0x42,0x3e,0x3b,0x48,0x49,0x4a,0x4b,0x4a,0x4a,0x4a,0x4b,
+0x44,0x44,0x45,0x49,0x4a,0x48,0x45,0x44,0x48,0x4b,0x4f,0x52,0x53,0x53,0x52,0x53,
+0x52,0x52,0x54,0x56,0x55,0x53,0x52,0x54,0x50,0x52,0x53,0x52,0x51,0x53,0x58,0x5c,
+0x5b,0x58,0x55,0x52,0x4e,0x4d,0x51,0x57,0x57,0x55,0x52,0x4f,0x4f,0x51,0x50,0x4d,
+0x4e,0x49,0x45,0x46,0x4c,0x52,0x52,0x51,0x4e,0x4f,0x4f,0x4f,0x4e,0x4d,0x4e,0x4f,
+0x4c,0x4b,0x4c,0x4f,0x50,0x4f,0x4f,0x51,0x56,0x56,0x55,0x53,0x52,0x50,0x50,0x4f,
+0x51,0x4c,0x45,0x3f,0x3d,0x3d,0x3c,0x3b,0x39,0x40,0x47,0x4a,0x4b,0x4a,0x46,0x42,
+0x43,0x46,0x4a,0x4b,0x48,0x44,0x42,0x42,0x45,0x48,0x48,0x47,0x46,0x4a,0x4d,0x4f,
+0x54,0x51,0x50,0x4e,0x48,0x44,0x47,0x4f,0x52,0x5b,0x67,0x72,0x78,0x79,0x77,0x75,
+0x74,0x75,0x73,0x71,0x71,0x72,0x70,0x6e,0x6d,0x6e,0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,
+0x6d,0x6d,0x6b,0x6a,0x69,0x68,0x67,0x67,0x69,0x68,0x67,0x67,0x67,0x67,0x65,0x64,
+0x5b,0x57,0x4e,0x46,0x43,0x43,0x42,0x40,0x37,0x34,0x31,0x2e,0x26,0x1d,0x1c,0x20,
+0x1f,0x23,0x26,0x27,0x29,0x2d,0x2e,0x2d,0x2c,0x30,0x34,0x38,0x3b,0x3c,0x3d,0x3e,
+0x4a,0x53,0x5a,0x5b,0x58,0x56,0x54,0x53,0x4e,0x47,0x40,0x3f,0x41,0x45,0x4a,0x4e,
+0x4a,0x46,0x42,0x3e,0x39,0x33,0x31,0x31,0x35,0x35,0x31,0x2a,0x27,0x2a,0x2f,0x33,
+0x3f,0x47,0x51,0x56,0x59,0x5d,0x65,0x6c,0x6a,0x6a,0x68,0x65,0x63,0x64,0x67,0x6a,
+0x5e,0x5b,0x5b,0x61,0x68,0x6a,0x69,0x68,0x64,0x64,0x64,0x62,0x5f,0x5e,0x5e,0x5e,
+0x5f,0x5e,0x5d,0x5d,0x5d,0x5d,0x5c,0x5b,0x59,0x59,0x58,0x57,0x56,0x55,0x54,0x54,
+0x55,0x57,0x59,0x59,0x58,0x57,0x58,0x59,0x53,0x52,0x53,0x57,0x58,0x56,0x53,0x53,
+0x60,0x5a,0x53,0x4f,0x4c,0x46,0x3e,0x37,0x44,0x4b,0x54,0x59,0x55,0x4b,0x45,0x43,
+0x4b,0x4b,0x51,0x5a,0x5e,0x5b,0x5a,0x5c,0x66,0x66,0x62,0x5f,0x65,0x6d,0x6a,0x60,
+0x5a,0x59,0x56,0x54,0x55,0x57,0x56,0x53,0x47,0x45,0x48,0x51,0x59,0x5c,0x5d,0x5d,
+0x5c,0x57,0x56,0x5b,0x5e,0x59,0x53,0x51,0x47,0x48,0x4e,0x56,0x57,0x50,0x44,0x3d,
+0x42,0x48,0x4c,0x4b,0x4b,0x51,0x5a,0x61,0x65,0x65,0x62,0x5b,0x58,0x5b,0x5f,0x62,
+0x6a,0x77,0x85,0x8d,0x8e,0x8c,0x89,0x86,0x80,0x71,0x61,0x5e,0x67,0x72,0x76,0x74,
+0x71,0x6f,0x6b,0x63,0x5e,0x5c,0x5b,0x59,0x47,0x3a,0x34,0x39,0x45,0x54,0x58,0x4f,
+0x4b,0x47,0x4c,0x59,0x5f,0x57,0x4c,0x47,0x42,0x46,0x4a,0x55,0x63,0x61,0x52,0x48,
+0x3f,0x52,0x5f,0x5e,0x5a,0x5a,0x58,0x52,0x54,0x47,0x45,0x53,0x61,0x69,0x64,0x57,
+0x4c,0x3f,0x39,0x3e,0x4a,0x59,0x5c,0x52,0x4d,0x48,0x50,0x54,0x5b,0x4b,0x42,0x39,
+0x2d,0x2c,0x41,0x61,0x6d,0x66,0x5d,0x56,0x41,0x2a,0x21,0x1b,0x16,0x13,0x19,0x30,
+0x4c,0x54,0x56,0x46,0x35,0x3f,0x59,0x68,0x61,0x5c,0x59,0x5e,0x68,0x68,0x54,0x3e,
+0x41,0x3c,0x37,0x35,0x36,0x37,0x39,0x3a,0x3e,0x42,0x46,0x45,0x42,0x43,0x4a,0x50,
+0x51,0x53,0x55,0x55,0x53,0x4e,0x49,0x46,0x43,0x45,0x48,0x4a,0x48,0x46,0x46,0x47,
+0x46,0x4b,0x4d,0x48,0x42,0x42,0x46,0x49,0x4d,0x4a,0x47,0x45,0x44,0x46,0x49,0x4a,
+0x49,0x44,0x41,0x47,0x53,0x5c,0x5c,0x59,0x59,0x57,0x55,0x54,0x53,0x53,0x54,0x55,
+0x54,0x4b,0x43,0x43,0x47,0x49,0x48,0x47,0x51,0x53,0x54,0x50,0x4a,0x49,0x50,0x57,
+0x53,0x50,0x4d,0x4a,0x48,0x48,0x4c,0x52,0x54,0x55,0x53,0x50,0x4d,0x4c,0x4b,0x4a,
+0x4f,0x4c,0x47,0x45,0x49,0x4e,0x4d,0x4a,0x4a,0x48,0x47,0x4a,0x4f,0x51,0x51,0x4e,
+0x4d,0x4e,0x4e,0x4e,0x4c,0x49,0x48,0x48,0x4d,0x50,0x51,0x4f,0x4c,0x4a,0x4a,0x49,
+0x50,0x4e,0x50,0x55,0x55,0x4e,0x47,0x43,0x38,0x45,0x4b,0x4d,0x55,0x5d,0x63,0x6c,
+0x64,0x60,0x5b,0x5b,0x60,0x62,0x5b,0x52,0x50,0x51,0x51,0x4f,0x4c,0x48,0x47,0x46,
+0x4a,0x4a,0x4b,0x4b,0x49,0x47,0x45,0x44,0x43,0x46,0x4a,0x4d,0x4e,0x4e,0x4e,0x4e,
+0x4e,0x4f,0x56,0x5d,0x5b,0x53,0x4e,0x50,0x53,0x55,0x56,0x55,0x52,0x52,0x56,0x5a,
+0x5c,0x5b,0x59,0x55,0x50,0x4d,0x51,0x57,0x57,0x59,0x56,0x50,0x50,0x54,0x53,0x4e,
+0x4e,0x4b,0x47,0x48,0x4b,0x4f,0x50,0x4f,0x4f,0x51,0x52,0x52,0x50,0x4f,0x4e,0x4e,
+0x4a,0x4a,0x4b,0x4d,0x4e,0x4f,0x51,0x52,0x56,0x55,0x55,0x55,0x54,0x52,0x4f,0x4d,
+0x4d,0x49,0x43,0x3f,0x3d,0x3e,0x3f,0x40,0x3e,0x45,0x4c,0x4f,0x50,0x4f,0x4d,0x49,
+0x46,0x49,0x4d,0x4e,0x4c,0x49,0x45,0x44,0x48,0x4f,0x52,0x4d,0x4a,0x4c,0x4c,0x4a,
+0x50,0x4c,0x4c,0x51,0x50,0x4a,0x4a,0x51,0x50,0x54,0x5f,0x6e,0x78,0x79,0x76,0x74,
+0x75,0x74,0x73,0x72,0x72,0x72,0x70,0x6e,0x6e,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x6a,0x69,0x69,0x68,0x68,0x68,0x69,0x69,0x6a,0x69,0x68,0x68,0x68,0x67,0x65,0x63,
+0x5b,0x55,0x4e,0x4a,0x4a,0x4b,0x4b,0x49,0x42,0x3d,0x39,0x36,0x30,0x27,0x21,0x1f,
+0x1f,0x23,0x28,0x2c,0x2e,0x31,0x33,0x34,0x34,0x34,0x35,0x35,0x35,0x36,0x38,0x3a,
+0x4a,0x55,0x60,0x62,0x5d,0x5a,0x59,0x59,0x56,0x4f,0x49,0x4a,0x4f,0x52,0x53,0x55,
+0x57,0x56,0x54,0x4e,0x45,0x3f,0x3d,0x3f,0x40,0x3b,0x31,0x25,0x1d,0x1a,0x1b,0x1d,
+0x2b,0x36,0x45,0x4e,0x51,0x54,0x5a,0x5f,0x61,0x63,0x61,0x5d,0x5d,0x62,0x64,0x62,
+0x5a,0x5b,0x5e,0x63,0x68,0x68,0x66,0x64,0x64,0x64,0x62,0x61,0x5f,0x5e,0x5e,0x5e,
+0x5f,0x5e,0x5d,0x5c,0x5d,0x5d,0x5d,0x5c,0x59,0x59,0x58,0x57,0x56,0x55,0x54,0x54,
+0x56,0x5a,0x5b,0x58,0x53,0x51,0x51,0x51,0x4d,0x4a,0x4b,0x50,0x4f,0x48,0x43,0x44,
+0x45,0x49,0x50,0x57,0x58,0x4f,0x3e,0x31,0x43,0x47,0x4f,0x55,0x50,0x44,0x3e,0x3f,
+0x54,0x5e,0x6c,0x72,0x6e,0x65,0x60,0x60,0x65,0x61,0x5c,0x5b,0x63,0x6a,0x63,0x56,
+0x55,0x54,0x51,0x4f,0x51,0x55,0x55,0x53,0x4b,0x48,0x49,0x50,0x57,0x5b,0x5d,0x5f,
+0x59,0x56,0x56,0x57,0x56,0x54,0x58,0x5f,0x5d,0x57,0x51,0x4f,0x4c,0x45,0x3e,0x3a,
+0x3f,0x43,0x47,0x47,0x46,0x4a,0x53,0x5b,0x5d,0x5f,0x5f,0x5c,0x5b,0x5c,0x5b,0x5a,
+0x5f,0x6c,0x7c,0x86,0x8a,0x8c,0x8a,0x87,0x85,0x7d,0x71,0x66,0x61,0x66,0x70,0x78,
+0x6e,0x6d,0x69,0x60,0x59,0x57,0x56,0x56,0x49,0x39,0x2e,0x2f,0x3c,0x50,0x5e,0x5d,
+0x4b,0x4b,0x54,0x62,0x65,0x58,0x49,0x43,0x44,0x49,0x50,0x5d,0x67,0x5d,0x4e,0x4a,
+0x44,0x42,0x48,0x54,0x59,0x53,0x4f,0x50,0x4e,0x4c,0x55,0x63,0x68,0x67,0x5b,0x4c,
+0x46,0x33,0x2e,0x3c,0x4d,0x58,0x5a,0x54,0x4f,0x4f,0x59,0x53,0x4e,0x3d,0x44,0x4c,
+0x59,0x5e,0x6a,0x71,0x71,0x6f,0x65,0x54,0x2f,0x1b,0x18,0x16,0x12,0x12,0x22,0x43,
+0x5c,0x5a,0x51,0x40,0x3d,0x54,0x6c,0x6f,0x6b,0x6c,0x69,0x64,0x60,0x5c,0x53,0x4a,
+0x42,0x41,0x3e,0x3c,0x3b,0x3b,0x3b,0x3a,0x3d,0x41,0x45,0x44,0x41,0x41,0x45,0x4a,
+0x49,0x4b,0x4f,0x52,0x52,0x4e,0x49,0x46,0x41,0x44,0x47,0x48,0x48,0x49,0x4b,0x4d,
+0x41,0x47,0x49,0x45,0x40,0x3f,0x43,0x46,0x4a,0x46,0x42,0x44,0x48,0x4b,0x4b,0x49,
+0x4b,0x49,0x49,0x4d,0x52,0x56,0x58,0x57,0x5e,0x5e,0x5a,0x52,0x4b,0x4a,0x4e,0x52,
+0x4f,0x46,0x3e,0x3e,0x41,0x43,0x43,0x43,0x4d,0x51,0x52,0x4f,0x4b,0x4b,0x4f,0x54,
+0x52,0x50,0x4f,0x4d,0x49,0x47,0x4a,0x4e,0x54,0x56,0x54,0x51,0x50,0x51,0x50,0x4d,
+0x51,0x4d,0x48,0x45,0x48,0x4c,0x4b,0x46,0x48,0x45,0x42,0x44,0x49,0x4f,0x51,0x51,
+0x50,0x50,0x4e,0x4a,0x46,0x46,0x47,0x48,0x4d,0x50,0x51,0x4c,0x4a,0x4b,0x4c,0x4b,
+0x4b,0x4b,0x4d,0x51,0x52,0x4e,0x47,0x43,0x41,0x51,0x5c,0x5e,0x5b,0x51,0x47,0x46,
+0x4a,0x4e,0x54,0x5c,0x66,0x6a,0x66,0x5f,0x53,0x52,0x51,0x4f,0x4c,0x4a,0x49,0x48,
+0x4f,0x50,0x50,0x4d,0x48,0x44,0x43,0x42,0x42,0x44,0x46,0x48,0x49,0x4a,0x4c,0x4d,
+0x49,0x4e,0x58,0x62,0x60,0x54,0x4d,0x4d,0x51,0x54,0x56,0x55,0x52,0x50,0x50,0x51,
+0x5b,0x5b,0x5c,0x5a,0x53,0x4f,0x53,0x59,0x5c,0x5e,0x5b,0x54,0x51,0x52,0x4f,0x4a,
+0x4f,0x4f,0x4e,0x4d,0x4b,0x4b,0x4d,0x4e,0x50,0x51,0x52,0x52,0x50,0x4f,0x4e,0x4e,
+0x4b,0x4c,0x4c,0x4d,0x4e,0x50,0x52,0x53,0x54,0x54,0x54,0x54,0x53,0x50,0x4b,0x48,
+0x44,0x43,0x41,0x40,0x41,0x44,0x49,0x4c,0x47,0x4c,0x50,0x51,0x52,0x53,0x52,0x50,
+0x49,0x4b,0x4d,0x4e,0x4c,0x49,0x46,0x45,0x52,0x57,0x58,0x52,0x4d,0x4e,0x4f,0x4c,
+0x4f,0x49,0x4a,0x55,0x59,0x54,0x50,0x52,0x52,0x53,0x5b,0x69,0x75,0x79,0x77,0x75,
+0x76,0x74,0x73,0x73,0x73,0x71,0x70,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6d,0x6c,0x6b,
+0x68,0x68,0x67,0x66,0x67,0x68,0x69,0x69,0x6a,0x6a,0x69,0x69,0x69,0x68,0x65,0x63,
+0x5c,0x57,0x51,0x50,0x51,0x51,0x51,0x50,0x4d,0x47,0x41,0x3f,0x3c,0x34,0x29,0x22,
+0x23,0x25,0x2a,0x2f,0x33,0x36,0x38,0x3a,0x3a,0x3a,0x38,0x36,0x35,0x35,0x38,0x3a,
+0x4c,0x59,0x65,0x68,0x65,0x61,0x60,0x60,0x5a,0x53,0x4f,0x52,0x57,0x5a,0x5b,0x5b,
+0x5a,0x5e,0x5e,0x56,0x4a,0x43,0x45,0x49,0x45,0x39,0x29,0x1b,0x13,0x12,0x14,0x16,
+0x18,0x22,0x2f,0x3c,0x46,0x4d,0x53,0x57,0x59,0x5d,0x5c,0x58,0x59,0x5e,0x5d,0x57,
+0x55,0x5a,0x60,0x65,0x68,0x68,0x66,0x64,0x64,0x63,0x61,0x60,0x5f,0x60,0x60,0x60,
+0x5f,0x5e,0x5c,0x5c,0x5d,0x5d,0x5c,0x5c,0x5b,0x5a,0x59,0x57,0x56,0x55,0x54,0x54,
+0x56,0x5a,0x5b,0x55,0x50,0x4e,0x4e,0x4d,0x4a,0x47,0x49,0x4d,0x4a,0x40,0x39,0x37,
+0x39,0x3a,0x3f,0x46,0x4b,0x4a,0x42,0x3b,0x3a,0x3e,0x46,0x4f,0x51,0x51,0x59,0x63,
+0x69,0x83,0x9c,0x9e,0x90,0x7c,0x69,0x5a,0x68,0x66,0x60,0x5a,0x5b,0x60,0x61,0x5e,
+0x55,0x53,0x4f,0x4d,0x4f,0x53,0x54,0x53,0x4b,0x48,0x49,0x4e,0x53,0x57,0x5a,0x5d,
+0x59,0x59,0x58,0x56,0x55,0x5a,0x66,0x71,0x77,0x69,0x59,0x4c,0x43,0x3c,0x38,0x37,
+0x3c,0x40,0x43,0x44,0x42,0x45,0x4d,0x55,0x58,0x5b,0x5c,0x5b,0x5a,0x59,0x55,0x51,
+0x58,0x61,0x6e,0x79,0x83,0x8a,0x8b,0x88,0x84,0x82,0x7c,0x71,0x67,0x65,0x6b,0x72,
+0x6c,0x6d,0x69,0x5e,0x54,0x50,0x51,0x52,0x39,0x29,0x24,0x2f,0x3f,0x4c,0x4c,0x41,
+0x41,0x40,0x48,0x58,0x5f,0x5a,0x54,0x54,0x4b,0x4f,0x53,0x5b,0x5c,0x4d,0x3e,0x3d,
+0x42,0x43,0x4c,0x58,0x59,0x4e,0x45,0x44,0x40,0x45,0x55,0x64,0x68,0x68,0x61,0x55,
+0x3d,0x2b,0x2e,0x44,0x50,0x53,0x58,0x5f,0x56,0x4f,0x51,0x4c,0x4f,0x45,0x51,0x5b,
+0x75,0x73,0x6e,0x68,0x6c,0x79,0x72,0x5b,0x4b,0x36,0x2f,0x2a,0x22,0x1e,0x2a,0x48,
+0x54,0x51,0x4b,0x43,0x49,0x61,0x6c,0x62,0x5f,0x68,0x72,0x72,0x67,0x55,0x41,0x33,
+0x47,0x48,0x47,0x44,0x41,0x3f,0x3c,0x39,0x3c,0x40,0x44,0x45,0x42,0x41,0x41,0x43,
+0x47,0x49,0x4d,0x51,0x51,0x4d,0x47,0x43,0x44,0x46,0x47,0x47,0x49,0x4d,0x51,0x52,
+0x46,0x4a,0x4b,0x47,0x42,0x41,0x44,0x46,0x43,0x41,0x40,0x45,0x4c,0x51,0x50,0x4d,
+0x53,0x54,0x55,0x54,0x53,0x55,0x5b,0x5f,0x68,0x68,0x63,0x58,0x4e,0x4c,0x4f,0x53,
+0x4e,0x47,0x40,0x3e,0x3e,0x3d,0x3c,0x3c,0x48,0x4d,0x4f,0x4d,0x4a,0x4a,0x4c,0x4d,
+0x51,0x4d,0x4a,0x47,0x46,0x46,0x4c,0x53,0x58,0x5a,0x59,0x55,0x54,0x55,0x52,0x4d,
+0x49,0x47,0x44,0x45,0x4a,0x50,0x4f,0x4c,0x46,0x42,0x3e,0x40,0x47,0x4e,0x52,0x53,
+0x50,0x52,0x4f,0x48,0x42,0x42,0x45,0x48,0x4e,0x4f,0x4b,0x45,0x44,0x4a,0x4e,0x4f,
+0x4e,0x4d,0x4b,0x4c,0x4f,0x4f,0x4e,0x4c,0x54,0x63,0x6d,0x6c,0x64,0x51,0x41,0x3d,
+0x3a,0x44,0x4e,0x52,0x53,0x54,0x55,0x56,0x4e,0x4c,0x4a,0x4a,0x4b,0x4d,0x4e,0x4e,
+0x52,0x56,0x58,0x53,0x4c,0x48,0x45,0x43,0x44,0x46,0x47,0x48,0x49,0x4b,0x4d,0x4f,
+0x52,0x58,0x60,0x65,0x5f,0x55,0x4d,0x4a,0x4d,0x4f,0x52,0x53,0x52,0x50,0x4d,0x4c,
+0x54,0x57,0x5b,0x5a,0x53,0x4e,0x51,0x57,0x5b,0x5c,0x5b,0x58,0x55,0x52,0x4f,0x4b,
+0x51,0x52,0x52,0x4f,0x4c,0x4a,0x4b,0x4e,0x4f,0x50,0x50,0x4f,0x4d,0x4c,0x4d,0x4e,
+0x4e,0x4f,0x4f,0x4d,0x4d,0x50,0x52,0x52,0x52,0x52,0x52,0x51,0x4f,0x4b,0x48,0x46,
+0x44,0x44,0x43,0x42,0x41,0x42,0x46,0x4a,0x4e,0x50,0x51,0x51,0x53,0x56,0x55,0x52,
+0x48,0x4a,0x4d,0x4f,0x51,0x52,0x53,0x53,0x56,0x57,0x54,0x4d,0x4a,0x4c,0x4f,0x50,
+0x51,0x4c,0x4e,0x58,0x5f,0x5c,0x55,0x51,0x54,0x54,0x58,0x62,0x6f,0x78,0x79,0x77,
+0x78,0x75,0x73,0x74,0x74,0x72,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6e,0x6c,0x6b,
+0x6a,0x69,0x68,0x66,0x66,0x66,0x67,0x68,0x6b,0x6a,0x6a,0x6a,0x6a,0x68,0x65,0x63,
+0x5f,0x5a,0x57,0x58,0x59,0x58,0x58,0x58,0x57,0x51,0x4a,0x48,0x48,0x42,0x38,0x2e,
+0x24,0x22,0x25,0x2b,0x33,0x38,0x3d,0x41,0x41,0x41,0x40,0x3f,0x3f,0x40,0x43,0x45,
+0x4e,0x58,0x62,0x65,0x64,0x63,0x61,0x60,0x5a,0x53,0x4e,0x51,0x57,0x5c,0x5f,0x62,
+0x61,0x65,0x64,0x58,0x4c,0x47,0x4a,0x4f,0x4c,0x38,0x21,0x12,0x0e,0x10,0x15,0x19,
+0x17,0x1b,0x21,0x29,0x32,0x3b,0x43,0x47,0x4e,0x52,0x54,0x53,0x55,0x58,0x56,0x51,
+0x52,0x5a,0x63,0x68,0x69,0x6a,0x69,0x67,0x64,0x62,0x60,0x5f,0x5f,0x60,0x60,0x60,
+0x5d,0x5c,0x5b,0x5b,0x5c,0x5c,0x5a,0x59,0x5c,0x5b,0x59,0x57,0x55,0x55,0x54,0x54,
+0x57,0x5a,0x58,0x50,0x4c,0x4d,0x4e,0x4c,0x4e,0x4d,0x4e,0x50,0x4e,0x46,0x3e,0x3b,
+0x39,0x36,0x35,0x38,0x3e,0x41,0x3f,0x3c,0x37,0x3b,0x42,0x4b,0x55,0x63,0x76,0x85,
+0x99,0x99,0x8a,0x6d,0x5a,0x5b,0x61,0x62,0x64,0x6c,0x70,0x6c,0x66,0x66,0x6a,0x6e,
+0x5c,0x59,0x53,0x4e,0x4f,0x52,0x53,0x51,0x4b,0x49,0x4a,0x4e,0x53,0x55,0x58,0x5b,
+0x58,0x5a,0x59,0x56,0x5a,0x66,0x71,0x75,0x6e,0x61,0x51,0x46,0x3f,0x39,0x36,0x36,
+0x39,0x3b,0x3f,0x40,0x3f,0x3f,0x47,0x50,0x55,0x58,0x59,0x56,0x54,0x52,0x4f,0x4b,
+0x52,0x57,0x5f,0x69,0x77,0x84,0x8b,0x8c,0x86,0x83,0x7f,0x79,0x74,0x6e,0x6a,0x68,
+0x6d,0x6d,0x66,0x5a,0x50,0x4d,0x4f,0x50,0x3d,0x3a,0x41,0x4b,0x4f,0x4f,0x4c,0x44,
+0x44,0x3e,0x3f,0x4a,0x52,0x52,0x53,0x57,0x54,0x58,0x5a,0x5f,0x5f,0x52,0x44,0x42,
+0x43,0x55,0x5f,0x55,0x49,0x46,0x46,0x43,0x3b,0x3e,0x4a,0x59,0x63,0x6b,0x6a,0x5f,
+0x41,0x2d,0x31,0x4b,0x5b,0x5e,0x62,0x67,0x5b,0x50,0x4f,0x4a,0x4b,0x3e,0x45,0x4c,
+0x69,0x6a,0x6e,0x6d,0x6d,0x75,0x76,0x6b,0x4a,0x38,0x35,0x30,0x2a,0x27,0x2f,0x48,
+0x65,0x66,0x63,0x57,0x53,0x5f,0x67,0x5f,0x55,0x4f,0x4e,0x56,0x64,0x6a,0x65,0x5d,
+0x4c,0x4e,0x4d,0x48,0x44,0x42,0x3e,0x3a,0x3b,0x40,0x46,0x49,0x49,0x47,0x43,0x41,
+0x47,0x49,0x4d,0x50,0x51,0x4e,0x48,0x43,0x46,0x47,0x45,0x43,0x46,0x4c,0x50,0x50,
+0x44,0x45,0x43,0x3e,0x3a,0x3c,0x3f,0x40,0x42,0x43,0x44,0x47,0x4a,0x4c,0x4c,0x4b,
+0x56,0x5b,0x5f,0x5e,0x5b,0x5b,0x61,0x67,0x6c,0x6b,0x66,0x5c,0x55,0x52,0x51,0x4f,
+0x4a,0x46,0x43,0x42,0x41,0x3e,0x3d,0x3e,0x4e,0x52,0x54,0x51,0x4f,0x4f,0x50,0x4f,
+0x4c,0x47,0x42,0x40,0x40,0x43,0x4b,0x52,0x58,0x5c,0x5b,0x57,0x56,0x58,0x54,0x4c,
+0x40,0x41,0x41,0x43,0x49,0x50,0x50,0x4e,0x46,0x42,0x3e,0x3f,0x45,0x4a,0x4d,0x4e,
+0x4c,0x50,0x50,0x48,0x40,0x3f,0x43,0x46,0x4b,0x4c,0x48,0x42,0x44,0x4c,0x50,0x4e,
+0x52,0x50,0x4d,0x4b,0x4d,0x4f,0x4f,0x4e,0x5c,0x67,0x6e,0x71,0x71,0x6b,0x68,0x6d,
+0x72,0x75,0x73,0x6b,0x61,0x58,0x50,0x4a,0x4b,0x48,0x45,0x46,0x4b,0x4e,0x4e,0x4d,
+0x4e,0x57,0x5d,0x5a,0x53,0x4e,0x49,0x45,0x46,0x47,0x49,0x4a,0x4b,0x4d,0x4f,0x51,
+0x56,0x5c,0x5f,0x5c,0x55,0x51,0x4f,0x4d,0x4d,0x4e,0x50,0x53,0x54,0x53,0x4f,0x4c,
+0x4f,0x55,0x5b,0x5c,0x54,0x4e,0x50,0x56,0x59,0x59,0x5a,0x5c,0x5a,0x54,0x51,0x50,
+0x52,0x51,0x4f,0x4d,0x4b,0x4b,0x4d,0x4f,0x4f,0x4e,0x4d,0x4c,0x4a,0x4a,0x4c,0x4e,
+0x51,0x52,0x50,0x4c,0x4c,0x4f,0x50,0x4f,0x51,0x51,0x4f,0x4c,0x48,0x47,0x48,0x49,
+0x49,0x4a,0x4a,0x46,0x43,0x42,0x44,0x47,0x4d,0x4e,0x4f,0x51,0x55,0x57,0x53,0x4d,
+0x4a,0x4c,0x4f,0x54,0x58,0x5b,0x5c,0x5d,0x55,0x52,0x4f,0x4e,0x4c,0x4b,0x4c,0x4f,
+0x51,0x50,0x52,0x57,0x5c,0x5c,0x57,0x51,0x52,0x53,0x54,0x59,0x66,0x75,0x7a,0x78,
+0x7a,0x76,0x75,0x77,0x76,0x74,0x72,0x73,0x74,0x74,0x74,0x72,0x71,0x6e,0x6c,0x6b,
+0x6b,0x6a,0x68,0x67,0x67,0x67,0x69,0x6a,0x6b,0x6b,0x6b,0x6b,0x6a,0x68,0x65,0x63,
+0x60,0x5e,0x5e,0x61,0x62,0x60,0x60,0x63,0x61,0x5d,0x57,0x53,0x52,0x50,0x4b,0x46,
+0x35,0x2c,0x26,0x29,0x2f,0x34,0x3a,0x3f,0x41,0x42,0x44,0x45,0x46,0x48,0x4a,0x4c,
+0x4c,0x51,0x56,0x58,0x59,0x5b,0x5a,0x57,0x52,0x4d,0x4a,0x4e,0x55,0x5b,0x60,0x64,
+0x6e,0x6d,0x65,0x56,0x4c,0x4a,0x4f,0x52,0x46,0x30,0x19,0x10,0x12,0x17,0x1b,0x1d,
+0x20,0x20,0x20,0x21,0x24,0x28,0x2e,0x32,0x3f,0x43,0x48,0x4c,0x50,0x53,0x54,0x54,
+0x57,0x61,0x6a,0x6c,0x6c,0x6b,0x6a,0x68,0x65,0x62,0x5f,0x5e,0x5e,0x5f,0x5f,0x5e,
+0x5b,0x5b,0x5b,0x5b,0x5c,0x5b,0x59,0x58,0x5a,0x59,0x57,0x56,0x55,0x54,0x55,0x55,
+0x56,0x57,0x53,0x4a,0x47,0x4b,0x4d,0x4a,0x45,0x47,0x47,0x45,0x44,0x42,0x3c,0x37,
+0x38,0x36,0x36,0x39,0x3d,0x3d,0x38,0x33,0x38,0x3d,0x43,0x49,0x54,0x64,0x72,0x7a,
+0x65,0x63,0x5e,0x57,0x56,0x5a,0x5b,0x58,0x5d,0x64,0x6c,0x71,0x74,0x76,0x76,0x75,
+0x62,0x5e,0x56,0x50,0x4f,0x51,0x52,0x50,0x4c,0x4a,0x4c,0x50,0x54,0x55,0x57,0x5a,
+0x51,0x54,0x52,0x50,0x5c,0x6c,0x6d,0x62,0x52,0x49,0x41,0x3d,0x3b,0x38,0x36,0x36,
+0x36,0x38,0x3c,0x3e,0x3c,0x3c,0x43,0x4d,0x52,0x55,0x56,0x53,0x50,0x50,0x50,0x4e,
+0x51,0x53,0x56,0x5a,0x65,0x74,0x81,0x88,0x87,0x84,0x81,0x7e,0x7b,0x76,0x6e,0x67,
+0x6f,0x69,0x5d,0x51,0x4c,0x4d,0x50,0x50,0x45,0x40,0x3f,0x3a,0x2f,0x33,0x45,0x52,
+0x4e,0x45,0x42,0x49,0x4f,0x4c,0x4a,0x4c,0x58,0x5a,0x59,0x5c,0x60,0x54,0x41,0x37,
+0x3b,0x51,0x5a,0x4a,0x3c,0x41,0x4b,0x4e,0x4e,0x4b,0x54,0x64,0x6f,0x6c,0x52,0x32,
+0x26,0x1e,0x2a,0x47,0x5e,0x6c,0x71,0x6f,0x61,0x5c,0x5a,0x45,0x33,0x25,0x45,0x66,
+0x7b,0x72,0x68,0x61,0x61,0x6a,0x68,0x5a,0x3c,0x34,0x3a,0x38,0x33,0x33,0x3b,0x52,
+0x56,0x64,0x71,0x6b,0x5e,0x5f,0x64,0x60,0x63,0x52,0x47,0x52,0x65,0x69,0x56,0x41,
+0x4d,0x50,0x4f,0x49,0x45,0x44,0x41,0x3d,0x3a,0x3f,0x46,0x4c,0x4e,0x4b,0x45,0x41,
+0x41,0x44,0x49,0x4f,0x53,0x52,0x4e,0x4a,0x46,0x45,0x41,0x3e,0x41,0x48,0x4c,0x4b,
+0x45,0x44,0x40,0x3a,0x39,0x3c,0x41,0x43,0x44,0x45,0x47,0x45,0x42,0x40,0x41,0x42,
+0x4f,0x57,0x5f,0x62,0x5f,0x5d,0x60,0x63,0x67,0x65,0x5f,0x58,0x54,0x53,0x4d,0x46,
+0x3b,0x3b,0x3e,0x42,0x44,0x44,0x46,0x48,0x4b,0x4f,0x50,0x4c,0x49,0x4a,0x4a,0x48,
+0x4e,0x48,0x42,0x3f,0x3e,0x3f,0x43,0x48,0x56,0x5a,0x5a,0x57,0x57,0x59,0x54,0x4c,
+0x43,0x44,0x43,0x43,0x46,0x49,0x48,0x44,0x46,0x42,0x3d,0x3d,0x40,0x43,0x44,0x43,
+0x47,0x4e,0x50,0x48,0x40,0x3e,0x42,0x44,0x47,0x49,0x48,0x45,0x48,0x4f,0x50,0x4b,
+0x4b,0x4a,0x49,0x49,0x4c,0x4d,0x4c,0x49,0x45,0x50,0x59,0x61,0x68,0x6a,0x6f,0x79,
+0x6f,0x6d,0x6c,0x6f,0x77,0x78,0x6f,0x64,0x4e,0x4a,0x45,0x46,0x4a,0x4d,0x4b,0x47,
+0x46,0x52,0x5c,0x5b,0x55,0x4f,0x49,0x43,0x44,0x46,0x49,0x4b,0x4c,0x4d,0x4e,0x4f,
+0x4a,0x50,0x51,0x4b,0x49,0x4e,0x53,0x55,0x52,0x51,0x52,0x54,0x57,0x56,0x52,0x4e,
+0x51,0x58,0x60,0x61,0x59,0x52,0x53,0x59,0x5f,0x5d,0x5e,0x61,0x5d,0x53,0x4e,0x4e,
+0x53,0x4f,0x4b,0x49,0x4a,0x4d,0x4f,0x50,0x50,0x4f,0x4d,0x4a,0x49,0x4a,0x4d,0x50,
+0x52,0x53,0x50,0x4b,0x4a,0x4d,0x4e,0x4c,0x50,0x50,0x4d,0x48,0x44,0x44,0x49,0x4d,
+0x4a,0x4c,0x4e,0x4d,0x4a,0x4a,0x4e,0x51,0x49,0x4b,0x4d,0x52,0x57,0x58,0x51,0x48,
+0x52,0x53,0x54,0x57,0x58,0x58,0x57,0x56,0x54,0x51,0x52,0x56,0x56,0x4f,0x4b,0x4c,
+0x4f,0x51,0x52,0x54,0x58,0x5a,0x58,0x52,0x4e,0x50,0x4f,0x50,0x5e,0x71,0x79,0x76,
+0x7c,0x78,0x76,0x78,0x78,0x75,0x73,0x75,0x76,0x75,0x75,0x73,0x71,0x6f,0x6c,0x6b,
+0x69,0x68,0x67,0x67,0x68,0x6a,0x6c,0x6d,0x6b,0x6b,0x6b,0x6b,0x6b,0x69,0x65,0x63,
+0x60,0x60,0x63,0x68,0x69,0x66,0x67,0x6b,0x69,0x66,0x61,0x5b,0x59,0x59,0x5a,0x59,
+0x54,0x44,0x34,0x2d,0x2d,0x2e,0x31,0x34,0x3a,0x3d,0x40,0x43,0x44,0x45,0x47,0x48,
+0x4b,0x4c,0x4c,0x4c,0x4f,0x53,0x53,0x50,0x49,0x46,0x48,0x4e,0x56,0x5b,0x5f,0x62,
+0x67,0x61,0x53,0x42,0x39,0x3b,0x3f,0x40,0x32,0x1f,0x0f,0x0f,0x19,0x21,0x23,0x22,
+0x20,0x22,0x23,0x23,0x21,0x22,0x25,0x28,0x34,0x37,0x3e,0x46,0x4c,0x50,0x55,0x59,
+0x5e,0x68,0x71,0x70,0x6d,0x6b,0x69,0x66,0x65,0x62,0x5f,0x5d,0x5d,0x5d,0x5d,0x5c,
+0x5b,0x5b,0x5b,0x5c,0x5d,0x5c,0x5a,0x58,0x58,0x57,0x56,0x54,0x54,0x54,0x55,0x56,
+0x56,0x56,0x4f,0x45,0x44,0x49,0x4b,0x48,0x46,0x49,0x48,0x43,0x42,0x43,0x40,0x3a,
+0x39,0x37,0x37,0x39,0x3d,0x3c,0x37,0x31,0x34,0x3b,0x42,0x48,0x51,0x5c,0x5f,0x5b,
+0x4e,0x47,0x47,0x54,0x66,0x70,0x73,0x73,0x5d,0x55,0x51,0x5b,0x6f,0x7c,0x7c,0x74,
+0x63,0x5f,0x57,0x50,0x4f,0x51,0x52,0x50,0x49,0x49,0x4b,0x4f,0x52,0x53,0x55,0x57,
+0x57,0x5a,0x58,0x58,0x6a,0x7c,0x72,0x5a,0x46,0x3f,0x39,0x38,0x38,0x36,0x33,0x33,
+0x35,0x37,0x3b,0x3d,0x3c,0x3b,0x42,0x4c,0x50,0x53,0x55,0x52,0x51,0x53,0x56,0x57,
+0x54,0x55,0x53,0x51,0x56,0x64,0x75,0x7f,0x86,0x86,0x85,0x82,0x7c,0x75,0x71,0x6e,
+0x70,0x65,0x54,0x49,0x48,0x4e,0x51,0x50,0x4c,0x44,0x43,0x44,0x3f,0x42,0x4b,0x50,
+0x4c,0x46,0x47,0x53,0x59,0x55,0x4e,0x4c,0x3b,0x3e,0x3e,0x46,0x53,0x4d,0x38,0x29,
+0x38,0x47,0x55,0x57,0x52,0x54,0x5b,0x61,0x6a,0x5a,0x53,0x5f,0x6d,0x6b,0x4a,0x21,
+0x16,0x26,0x40,0x53,0x5b,0x66,0x70,0x70,0x76,0x5d,0x4c,0x3c,0x3a,0x2f,0x3b,0x46,
+0x5f,0x6c,0x73,0x68,0x5f,0x65,0x5f,0x4a,0x3a,0x39,0x42,0x3c,0x30,0x2d,0x33,0x48,
+0x59,0x64,0x6f,0x66,0x56,0x56,0x61,0x65,0x66,0x4e,0x3b,0x45,0x60,0x6e,0x63,0x52,
+0x4f,0x53,0x56,0x55,0x4e,0x47,0x41,0x3e,0x42,0x49,0x4d,0x4c,0x4c,0x4d,0x4b,0x47,
+0x40,0x40,0x46,0x50,0x55,0x53,0x4f,0x4e,0x4b,0x46,0x40,0x3f,0x43,0x48,0x4a,0x4a,
+0x45,0x41,0x3d,0x3b,0x3c,0x3f,0x43,0x45,0x47,0x49,0x49,0x46,0x44,0x44,0x48,0x4b,
+0x55,0x58,0x5b,0x5c,0x5c,0x5d,0x61,0x65,0x5f,0x54,0x4a,0x4b,0x52,0x56,0x50,0x48,
+0x41,0x42,0x41,0x40,0x40,0x42,0x48,0x4d,0x55,0x53,0x4f,0x4a,0x46,0x44,0x44,0x46,
+0x45,0x4a,0x4d,0x4a,0x43,0x40,0x45,0x4a,0x48,0x4f,0x52,0x51,0x53,0x57,0x56,0x51,
+0x4c,0x4c,0x49,0x46,0x45,0x48,0x4b,0x4b,0x48,0x43,0x41,0x43,0x46,0x44,0x40,0x3e,
+0x44,0x4a,0x4e,0x4b,0x42,0x3d,0x3f,0x43,0x42,0x43,0x45,0x47,0x4a,0x4c,0x4d,0x4d,
+0x49,0x41,0x3d,0x41,0x45,0x46,0x47,0x4a,0x44,0x43,0x44,0x4a,0x53,0x5b,0x5e,0x5e,
+0x55,0x5c,0x69,0x71,0x6f,0x6e,0x67,0x5a,0x53,0x4e,0x48,0x49,0x4d,0x4f,0x4e,0x4b,
+0x51,0x53,0x55,0x57,0x55,0x51,0x4c,0x49,0x45,0x46,0x47,0x4a,0x4d,0x4e,0x4e,0x4d,
+0x4b,0x4d,0x4e,0x4c,0x4b,0x4d,0x4e,0x4e,0x4e,0x4e,0x4e,0x4f,0x53,0x57,0x56,0x52,
+0x56,0x5a,0x5c,0x5a,0x55,0x51,0x51,0x54,0x58,0x56,0x57,0x5c,0x5c,0x57,0x52,0x52,
+0x56,0x51,0x4d,0x4d,0x52,0x56,0x57,0x56,0x54,0x58,0x5b,0x58,0x51,0x4d,0x4d,0x50,
+0x55,0x52,0x50,0x50,0x4e,0x4c,0x4f,0x55,0x57,0x50,0x49,0x48,0x4d,0x50,0x4f,0x4c,
+0x47,0x50,0x57,0x57,0x53,0x51,0x52,0x52,0x56,0x53,0x51,0x54,0x5b,0x5c,0x51,0x44,
+0x4d,0x57,0x60,0x61,0x5c,0x59,0x57,0x56,0x56,0x58,0x56,0x52,0x52,0x54,0x52,0x4e,
+0x54,0x53,0x55,0x59,0x5a,0x57,0x54,0x53,0x4c,0x52,0x53,0x53,0x5d,0x6e,0x77,0x74,
+0x7c,0x7b,0x7b,0x7a,0x76,0x71,0x72,0x76,0x75,0x75,0x75,0x75,0x73,0x70,0x6d,0x6b,
+0x6a,0x68,0x66,0x67,0x69,0x6c,0x6c,0x6c,0x69,0x6a,0x6a,0x69,0x67,0x65,0x64,0x64,
+0x65,0x65,0x67,0x69,0x6b,0x6d,0x6e,0x6f,0x70,0x70,0x6d,0x67,0x62,0x62,0x66,0x6c,
+0x6c,0x63,0x54,0x46,0x3c,0x37,0x36,0x35,0x37,0x37,0x39,0x3a,0x3c,0x3e,0x41,0x43,
+0x4b,0x4b,0x4b,0x4c,0x4c,0x4d,0x4e,0x4f,0x48,0x49,0x4b,0x4c,0x4e,0x4f,0x4f,0x50,
+0x4e,0x47,0x3d,0x35,0x30,0x2b,0x26,0x22,0x20,0x1a,0x19,0x1e,0x22,0x22,0x25,0x29,
+0x2b,0x28,0x25,0x23,0x23,0x27,0x2b,0x2e,0x31,0x36,0x3d,0x43,0x4a,0x51,0x58,0x5d,
+0x6c,0x6e,0x6f,0x70,0x6f,0x6d,0x6b,0x69,0x64,0x62,0x60,0x5f,0x5f,0x5f,0x5d,0x5c,
+0x5d,0x5c,0x5a,0x59,0x59,0x58,0x57,0x56,0x54,0x53,0x54,0x57,0x55,0x52,0x53,0x57,
+0x58,0x56,0x4c,0x40,0x41,0x4a,0x4a,0x42,0x49,0x4c,0x4d,0x49,0x44,0x41,0x3e,0x3b,
+0x3a,0x36,0x37,0x3e,0x3e,0x38,0x34,0x37,0x32,0x3a,0x41,0x44,0x48,0x4c,0x4d,0x4b,
+0x43,0x3a,0x39,0x4e,0x6c,0x7d,0x7a,0x71,0x62,0x64,0x5f,0x5a,0x64,0x78,0x80,0x7c,
+0x66,0x61,0x5b,0x55,0x50,0x4d,0x4c,0x4c,0x49,0x46,0x4b,0x51,0x52,0x55,0x55,0x4f,
+0x4e,0x52,0x59,0x61,0x6c,0x79,0x72,0x5b,0x42,0x40,0x41,0x42,0x3d,0x34,0x2e,0x2e,
+0x32,0x38,0x3b,0x37,0x35,0x3b,0x44,0x4a,0x53,0x53,0x51,0x4e,0x4e,0x52,0x58,0x5e,
+0x59,0x54,0x4f,0x4c,0x49,0x4d,0x60,0x75,0x83,0x84,0x85,0x84,0x7e,0x76,0x71,0x6f,
+0x6b,0x63,0x54,0x48,0x47,0x4f,0x53,0x52,0x4d,0x49,0x43,0x3d,0x3e,0x4e,0x58,0x54,
+0x51,0x4e,0x4c,0x53,0x58,0x4c,0x3e,0x3d,0x30,0x40,0x43,0x4b,0x3e,0x38,0x24,0x25,
+0x3d,0x4c,0x4f,0x5b,0x4c,0x58,0x63,0x5d,0x61,0x43,0x4e,0x5f,0x74,0x69,0x4a,0x27,
+0x18,0x31,0x53,0x6a,0x5f,0x5c,0x73,0x7b,0x77,0x54,0x4a,0x45,0x40,0x30,0x39,0x3c,
+0x52,0x5d,0x5f,0x5f,0x67,0x69,0x5c,0x4f,0x44,0x43,0x34,0x2b,0x29,0x1e,0x27,0x4a,
+0x68,0x64,0x66,0x67,0x5c,0x50,0x5a,0x70,0x61,0x45,0x36,0x4d,0x73,0x81,0x6d,0x54,
+0x45,0x4a,0x4f,0x51,0x4e,0x49,0x47,0x46,0x4c,0x4d,0x4d,0x4d,0x4f,0x51,0x4f,0x4b,
+0x46,0x46,0x4a,0x52,0x55,0x53,0x4f,0x4f,0x48,0x45,0x42,0x41,0x43,0x45,0x46,0x46,
+0x42,0x3f,0x3c,0x3a,0x3b,0x3e,0x42,0x44,0x43,0x46,0x49,0x4a,0x4a,0x4f,0x57,0x5d,
+0x5a,0x59,0x58,0x57,0x59,0x5d,0x61,0x65,0x5a,0x54,0x4f,0x4e,0x51,0x53,0x51,0x4d,
+0x45,0x43,0x40,0x3f,0x41,0x44,0x48,0x4a,0x50,0x4e,0x4c,0x4a,0x48,0x46,0x44,0x44,
+0x42,0x47,0x4b,0x49,0x44,0x40,0x42,0x44,0x4f,0x51,0x50,0x4c,0x4e,0x55,0x56,0x52,
+0x4c,0x4c,0x49,0x47,0x47,0x4a,0x4c,0x4b,0x48,0x46,0x47,0x4c,0x4d,0x49,0x42,0x3e,
+0x3e,0x42,0x46,0x45,0x41,0x3e,0x3f,0x42,0x44,0x45,0x46,0x48,0x49,0x4a,0x4b,0x4b,
+0x47,0x40,0x3e,0x43,0x48,0x4a,0x4e,0x53,0x4a,0x4c,0x4c,0x4a,0x46,0x46,0x4a,0x4e,
+0x57,0x4c,0x48,0x46,0x42,0x44,0x4d,0x51,0x54,0x4e,0x48,0x46,0x49,0x4c,0x4d,0x4d,
+0x50,0x52,0x54,0x55,0x53,0x4f,0x49,0x45,0x4c,0x4c,0x4c,0x4c,0x4b,0x4b,0x4b,0x4b,
+0x52,0x54,0x55,0x53,0x51,0x4e,0x4a,0x45,0x4f,0x50,0x51,0x52,0x56,0x59,0x58,0x53,
+0x5a,0x5d,0x5f,0x5b,0x56,0x53,0x57,0x5b,0x51,0x52,0x55,0x5b,0x5b,0x57,0x54,0x55,
+0x58,0x55,0x53,0x55,0x58,0x5a,0x5a,0x58,0x5b,0x5c,0x5c,0x58,0x52,0x50,0x54,0x58,
+0x53,0x50,0x50,0x53,0x53,0x51,0x51,0x54,0x4d,0x4e,0x51,0x57,0x5b,0x59,0x50,0x48,
+0x48,0x4d,0x53,0x54,0x55,0x57,0x58,0x57,0x56,0x57,0x58,0x5a,0x5d,0x5d,0x55,0x4d,
+0x4f,0x59,0x61,0x61,0x5c,0x57,0x54,0x52,0x4e,0x52,0x57,0x5a,0x5e,0x61,0x5e,0x58,
+0x50,0x51,0x54,0x5a,0x5b,0x58,0x54,0x52,0x55,0x53,0x51,0x51,0x54,0x5d,0x6c,0x78,
+0x7b,0x7a,0x7a,0x78,0x77,0x76,0x75,0x74,0x74,0x75,0x75,0x75,0x73,0x71,0x6e,0x6c,
+0x6a,0x69,0x67,0x67,0x68,0x69,0x6a,0x6a,0x67,0x69,0x6b,0x6b,0x6a,0x68,0x67,0x67,
+0x6a,0x6b,0x6c,0x6e,0x70,0x71,0x73,0x73,0x75,0x74,0x72,0x6d,0x69,0x67,0x69,0x6b,
+0x71,0x6d,0x67,0x5f,0x57,0x4f,0x47,0x42,0x46,0x42,0x3e,0x3c,0x3d,0x3e,0x3e,0x3d,
+0x43,0x43,0x44,0x45,0x46,0x48,0x4a,0x4b,0x53,0x51,0x4e,0x4b,0x46,0x42,0x3f,0x3d,
+0x3e,0x3b,0x36,0x33,0x30,0x2b,0x26,0x22,0x24,0x22,0x24,0x29,0x2e,0x2f,0x30,0x32,
+0x2c,0x2c,0x2d,0x2e,0x30,0x33,0x36,0x38,0x38,0x3c,0x43,0x49,0x50,0x58,0x5f,0x64,
+0x6e,0x6f,0x70,0x70,0x6f,0x6c,0x69,0x67,0x64,0x62,0x60,0x5f,0x5f,0x5e,0x5d,0x5c,
+0x5c,0x5b,0x5a,0x59,0x59,0x58,0x57,0x55,0x55,0x53,0x54,0x56,0x54,0x52,0x53,0x57,
+0x56,0x52,0x48,0x3f,0x3f,0x45,0x45,0x41,0x44,0x48,0x4b,0x49,0x46,0x44,0x41,0x3e,
+0x36,0x33,0x37,0x40,0x40,0x38,0x32,0x33,0x2f,0x36,0x3c,0x3f,0x45,0x4f,0x59,0x5d,
+0x4e,0x41,0x38,0x3f,0x50,0x5d,0x5c,0x56,0x71,0x69,0x5e,0x5f,0x6f,0x80,0x81,0x78,
+0x6b,0x65,0x5e,0x5a,0x54,0x4e,0x4c,0x4e,0x4b,0x48,0x4d,0x52,0x51,0x53,0x52,0x4c,
+0x47,0x49,0x52,0x58,0x58,0x57,0x4e,0x3e,0x44,0x41,0x3f,0x3d,0x38,0x30,0x2d,0x2e,
+0x2f,0x33,0x38,0x3f,0x4a,0x51,0x4b,0x3f,0x50,0x51,0x51,0x4c,0x49,0x4b,0x54,0x5c,
+0x55,0x4e,0x48,0x46,0x44,0x47,0x54,0x63,0x76,0x83,0x8a,0x83,0x77,0x70,0x6b,0x67,
+0x6c,0x62,0x54,0x4a,0x4d,0x55,0x59,0x58,0x45,0x43,0x44,0x46,0x49,0x50,0x50,0x45,
+0x53,0x44,0x3a,0x42,0x4f,0x4a,0x3c,0x35,0x31,0x3a,0x41,0x53,0x4b,0x3b,0x24,0x28,
+0x3b,0x4e,0x56,0x50,0x4c,0x53,0x64,0x5c,0x4d,0x3b,0x53,0x67,0x77,0x65,0x44,0x25,
+0x1c,0x32,0x4c,0x60,0x60,0x63,0x70,0x68,0x5c,0x48,0x49,0x4b,0x48,0x35,0x3c,0x45,
+0x4b,0x62,0x68,0x5c,0x5b,0x62,0x61,0x5b,0x4f,0x4e,0x3f,0x37,0x35,0x29,0x2c,0x48,
+0x51,0x64,0x75,0x7b,0x7d,0x75,0x5c,0x42,0x33,0x34,0x3b,0x45,0x4e,0x51,0x51,0x51,
+0x43,0x46,0x49,0x4a,0x48,0x49,0x4b,0x4e,0x57,0x51,0x4d,0x4e,0x51,0x50,0x4e,0x4d,
+0x49,0x48,0x4a,0x4e,0x50,0x4d,0x4b,0x4b,0x49,0x47,0x45,0x42,0x42,0x43,0x47,0x49,
+0x46,0x44,0x42,0x40,0x40,0x43,0x46,0x48,0x4b,0x4f,0x51,0x50,0x4e,0x50,0x58,0x5f,
+0x5b,0x59,0x57,0x59,0x5f,0x63,0x65,0x65,0x5e,0x5d,0x5b,0x57,0x54,0x53,0x54,0x55,
+0x51,0x4a,0x42,0x3e,0x40,0x45,0x48,0x4a,0x4e,0x4d,0x4c,0x4c,0x4b,0x49,0x44,0x41,
+0x43,0x47,0x4b,0x4c,0x4a,0x46,0x45,0x44,0x4b,0x4a,0x47,0x44,0x48,0x4f,0x51,0x4d,
+0x4a,0x4a,0x4a,0x49,0x4b,0x4e,0x4d,0x4a,0x4a,0x49,0x4b,0x4f,0x50,0x4b,0x44,0x41,
+0x41,0x41,0x41,0x40,0x3f,0x3e,0x3e,0x3f,0x43,0x44,0x45,0x46,0x48,0x48,0x49,0x49,
+0x4e,0x4a,0x48,0x4b,0x4b,0x49,0x4a,0x4f,0x65,0x6e,0x74,0x6e,0x5e,0x50,0x4c,0x4d,
+0x47,0x38,0x33,0x37,0x36,0x3a,0x4a,0x56,0x56,0x51,0x4a,0x45,0x45,0x48,0x4c,0x4e,
+0x4f,0x51,0x54,0x55,0x54,0x50,0x4b,0x47,0x49,0x4b,0x4d,0x4d,0x4d,0x4e,0x50,0x53,
+0x5a,0x56,0x50,0x4a,0x49,0x4b,0x4b,0x49,0x51,0x53,0x54,0x55,0x59,0x5c,0x5a,0x56,
+0x5b,0x5f,0x62,0x5d,0x55,0x51,0x53,0x58,0x50,0x52,0x56,0x5b,0x5c,0x5a,0x59,0x5a,
+0x59,0x58,0x58,0x5a,0x5d,0x5e,0x5e,0x5c,0x57,0x57,0x55,0x53,0x51,0x51,0x54,0x57,
+0x57,0x54,0x53,0x55,0x58,0x58,0x58,0x58,0x54,0x54,0x56,0x59,0x5b,0x5a,0x56,0x52,
+0x4f,0x52,0x55,0x56,0x59,0x5b,0x5b,0x58,0x59,0x5d,0x61,0x60,0x5f,0x5e,0x5a,0x56,
+0x54,0x5d,0x64,0x64,0x5e,0x59,0x54,0x51,0x55,0x56,0x56,0x58,0x5a,0x5a,0x55,0x4f,
+0x53,0x53,0x56,0x5b,0x5b,0x56,0x51,0x4e,0x59,0x51,0x4f,0x51,0x4f,0x4e,0x60,0x78,
+0x7b,0x7d,0x7c,0x79,0x7a,0x7d,0x7b,0x75,0x74,0x75,0x75,0x75,0x73,0x71,0x6f,0x6e,
+0x6b,0x6b,0x6a,0x68,0x67,0x67,0x69,0x6a,0x66,0x68,0x6b,0x6c,0x6c,0x6c,0x6b,0x6c,
+0x70,0x70,0x72,0x74,0x75,0x76,0x77,0x77,0x7a,0x7a,0x78,0x76,0x73,0x70,0x6d,0x6c,
+0x6e,0x6f,0x72,0x74,0x72,0x6d,0x66,0x61,0x58,0x52,0x4b,0x47,0x47,0x47,0x45,0x42,
+0x3f,0x3e,0x3c,0x3c,0x3c,0x3d,0x3e,0x3f,0x3e,0x3e,0x3e,0x3f,0x3f,0x40,0x40,0x40,
+0x3f,0x3e,0x3d,0x3a,0x37,0x34,0x31,0x2f,0x34,0x37,0x3a,0x3c,0x3f,0x41,0x3f,0x3c,
+0x37,0x39,0x3c,0x40,0x43,0x44,0x45,0x44,0x43,0x46,0x4b,0x51,0x58,0x60,0x68,0x6c,
+0x70,0x70,0x70,0x70,0x6d,0x6a,0x67,0x65,0x64,0x62,0x60,0x5e,0x5e,0x5d,0x5b,0x5a,
+0x5b,0x5a,0x59,0x58,0x58,0x57,0x56,0x55,0x55,0x54,0x53,0x54,0x53,0x52,0x54,0x58,
+0x57,0x4f,0x47,0x42,0x41,0x43,0x44,0x43,0x40,0x45,0x49,0x48,0x46,0x45,0x42,0x3e,
+0x34,0x33,0x3a,0x44,0x45,0x3b,0x32,0x31,0x32,0x37,0x3d,0x41,0x47,0x4f,0x55,0x57,
+0x4d,0x49,0x42,0x3f,0x42,0x4c,0x57,0x5e,0x4e,0x4c,0x51,0x63,0x78,0x82,0x7d,0x73,
+0x66,0x5f,0x5c,0x5e,0x59,0x4e,0x48,0x49,0x4a,0x47,0x4b,0x50,0x50,0x51,0x50,0x4a,
+0x4a,0x4d,0x58,0x5f,0x57,0x4e,0x48,0x41,0x44,0x41,0x3c,0x39,0x34,0x30,0x2f,0x32,
+0x3c,0x3c,0x3f,0x4b,0x63,0x70,0x5f,0x44,0x4a,0x4e,0x51,0x4d,0x47,0x47,0x50,0x59,
+0x52,0x4a,0x44,0x43,0x43,0x44,0x4a,0x51,0x67,0x7d,0x8a,0x7e,0x6f,0x6c,0x6c,0x68,
+0x6b,0x60,0x51,0x4a,0x4e,0x57,0x59,0x57,0x55,0x48,0x40,0x40,0x46,0x54,0x60,0x60,
+0x5b,0x49,0x3e,0x46,0x4f,0x48,0x37,0x2b,0x2a,0x43,0x4f,0x56,0x53,0x4f,0x39,0x2c,
+0x3b,0x53,0x5b,0x4b,0x56,0x57,0x63,0x54,0x41,0x3f,0x63,0x76,0x7a,0x5c,0x3b,0x25,
+0x1f,0x3c,0x54,0x63,0x68,0x72,0x78,0x65,0x46,0x41,0x4a,0x4c,0x4c,0x34,0x3b,0x4e,
+0x69,0x76,0x73,0x65,0x64,0x66,0x5d,0x53,0x4c,0x4e,0x46,0x42,0x40,0x34,0x34,0x47,
+0x57,0x60,0x5f,0x5a,0x65,0x72,0x61,0x40,0x1c,0x2f,0x45,0x50,0x4f,0x4b,0x49,0x49,
+0x4c,0x4b,0x49,0x46,0x45,0x47,0x4d,0x51,0x57,0x50,0x4c,0x4e,0x4f,0x4b,0x49,0x4b,
+0x4c,0x4c,0x4c,0x4c,0x4c,0x4b,0x49,0x49,0x4c,0x49,0x44,0x3f,0x3e,0x41,0x48,0x4d,
+0x44,0x43,0x41,0x3f,0x3e,0x3f,0x41,0x43,0x53,0x56,0x58,0x54,0x4e,0x4c,0x51,0x56,
+0x5b,0x5b,0x5d,0x65,0x6c,0x6f,0x6a,0x64,0x66,0x65,0x62,0x5b,0x55,0x52,0x54,0x56,
+0x5d,0x55,0x49,0x40,0x3f,0x43,0x49,0x4d,0x53,0x50,0x4e,0x4e,0x4e,0x4b,0x45,0x40,
+0x43,0x45,0x48,0x4b,0x4d,0x4c,0x4a,0x49,0x42,0x42,0x41,0x42,0x48,0x4e,0x4d,0x48,
+0x47,0x4a,0x4c,0x4d,0x50,0x50,0x4c,0x46,0x48,0x47,0x48,0x4b,0x4b,0x48,0x45,0x45,
+0x42,0x3e,0x3a,0x39,0x3b,0x3e,0x3f,0x3e,0x40,0x40,0x42,0x44,0x46,0x47,0x48,0x48,
+0x45,0x43,0x46,0x4b,0x4a,0x47,0x49,0x4e,0x4d,0x58,0x62,0x62,0x59,0x51,0x51,0x53,
+0x5b,0x56,0x5c,0x64,0x5f,0x58,0x56,0x54,0x56,0x52,0x4d,0x47,0x45,0x47,0x4b,0x4e,
+0x51,0x52,0x54,0x55,0x54,0x52,0x50,0x4e,0x46,0x4a,0x4e,0x50,0x50,0x51,0x55,0x59,
+0x55,0x51,0x4a,0x46,0x49,0x50,0x54,0x53,0x54,0x55,0x55,0x55,0x58,0x5b,0x5b,0x59,
+0x63,0x68,0x6c,0x67,0x5d,0x55,0x54,0x57,0x56,0x55,0x56,0x5a,0x5d,0x5e,0x5e,0x5d,
+0x59,0x58,0x58,0x59,0x5c,0x61,0x64,0x66,0x62,0x60,0x5f,0x61,0x65,0x66,0x64,0x61,
+0x5c,0x58,0x54,0x56,0x5a,0x5d,0x5e,0x5d,0x60,0x5d,0x59,0x56,0x56,0x57,0x5a,0x5b,
+0x5c,0x5f,0x61,0x61,0x60,0x5f,0x5c,0x58,0x61,0x65,0x67,0x64,0x61,0x5f,0x5c,0x5a,
+0x5a,0x62,0x68,0x68,0x64,0x5f,0x5c,0x59,0x57,0x54,0x50,0x50,0x55,0x59,0x5a,0x59,
+0x55,0x55,0x57,0x5a,0x5b,0x57,0x54,0x52,0x55,0x4f,0x50,0x54,0x51,0x4e,0x5b,0x70,
+0x77,0x7e,0x80,0x7c,0x7b,0x7e,0x7c,0x75,0x75,0x75,0x75,0x75,0x74,0x72,0x71,0x6f,
+0x6d,0x6e,0x6d,0x6a,0x67,0x66,0x68,0x6a,0x68,0x69,0x6b,0x6c,0x6c,0x6d,0x6f,0x70,
+0x73,0x74,0x75,0x77,0x78,0x79,0x79,0x79,0x7c,0x7c,0x7c,0x7c,0x7b,0x77,0x71,0x6d,
+0x6b,0x6d,0x71,0x76,0x7a,0x7c,0x7c,0x7b,0x6f,0x6a,0x64,0x5f,0x5b,0x58,0x54,0x52,
+0x4d,0x4b,0x47,0x44,0x40,0x3f,0x3e,0x3e,0x45,0x45,0x45,0x45,0x46,0x46,0x47,0x47,
+0x45,0x43,0x41,0x3f,0x3d,0x3e,0x40,0x42,0x43,0x49,0x4b,0x49,0x49,0x4b,0x47,0x41,
+0x4a,0x4c,0x4f,0x51,0x52,0x51,0x4f,0x4d,0x4e,0x50,0x53,0x58,0x5e,0x65,0x6b,0x6f,
+0x6f,0x6f,0x6f,0x6e,0x6c,0x69,0x66,0x64,0x63,0x61,0x5f,0x5d,0x5d,0x5c,0x5a,0x59,
+0x5a,0x59,0x58,0x57,0x58,0x57,0x56,0x54,0x55,0x54,0x53,0x53,0x54,0x54,0x56,0x59,
+0x53,0x4b,0x45,0x46,0x46,0x43,0x42,0x44,0x41,0x44,0x46,0x44,0x43,0x42,0x3f,0x3b,
+0x35,0x36,0x3e,0x4a,0x4b,0x3f,0x36,0x34,0x31,0x34,0x3b,0x45,0x4f,0x51,0x4a,0x42,
+0x40,0x47,0x4f,0x56,0x5a,0x5b,0x58,0x55,0x4a,0x4f,0x5f,0x72,0x79,0x72,0x6b,0x68,
+0x5c,0x55,0x56,0x60,0x61,0x55,0x4a,0x47,0x47,0x44,0x48,0x4e,0x4e,0x51,0x51,0x4b,
+0x49,0x4d,0x58,0x5a,0x51,0x4d,0x4d,0x49,0x41,0x3e,0x3a,0x36,0x32,0x31,0x33,0x36,
+0x3e,0x3c,0x38,0x40,0x59,0x6c,0x61,0x4a,0x46,0x4c,0x50,0x50,0x4b,0x49,0x4c,0x51,
+0x4f,0x4a,0x47,0x47,0x47,0x46,0x49,0x4d,0x5b,0x6d,0x79,0x74,0x6c,0x6d,0x70,0x70,
+0x68,0x5b,0x4b,0x46,0x4b,0x51,0x50,0x4b,0x39,0x33,0x38,0x44,0x4c,0x55,0x5d,0x5d,
+0x5f,0x50,0x49,0x4b,0x49,0x41,0x3a,0x36,0x32,0x4e,0x5c,0x5a,0x55,0x4f,0x3d,0x2e,
+0x40,0x58,0x5c,0x54,0x61,0x5c,0x59,0x4b,0x49,0x53,0x7a,0x82,0x76,0x4d,0x31,0x2a,
+0x24,0x4b,0x61,0x64,0x63,0x6c,0x71,0x5e,0x46,0x45,0x49,0x46,0x46,0x2e,0x39,0x55,
+0x71,0x74,0x70,0x6c,0x6d,0x64,0x51,0x45,0x47,0x4e,0x4e,0x49,0x42,0x36,0x3a,0x4c,
+0x50,0x58,0x62,0x6d,0x77,0x72,0x58,0x3b,0x28,0x38,0x4c,0x58,0x5c,0x5a,0x52,0x4a,
+0x50,0x4e,0x4c,0x4b,0x4c,0x4e,0x50,0x52,0x4e,0x4a,0x4a,0x4d,0x4c,0x47,0x47,0x4b,
+0x54,0x54,0x54,0x53,0x52,0x51,0x50,0x4f,0x4d,0x4a,0x45,0x42,0x41,0x43,0x46,0x49,
+0x48,0x48,0x46,0x44,0x41,0x3f,0x40,0x42,0x4b,0x50,0x55,0x54,0x51,0x50,0x54,0x58,
+0x5f,0x60,0x64,0x6b,0x72,0x72,0x6a,0x63,0x67,0x64,0x5d,0x56,0x51,0x4f,0x4f,0x50,
+0x58,0x55,0x4e,0x47,0x44,0x45,0x4b,0x4f,0x54,0x51,0x4f,0x4e,0x4f,0x4d,0x49,0x45,
+0x3f,0x3f,0x41,0x45,0x4a,0x4c,0x4d,0x4c,0x47,0x45,0x43,0x45,0x4b,0x4f,0x4e,0x4a,
+0x49,0x4d,0x51,0x53,0x53,0x50,0x48,0x40,0x41,0x42,0x46,0x4b,0x4c,0x49,0x48,0x49,
+0x41,0x3c,0x36,0x34,0x38,0x3d,0x40,0x41,0x3c,0x3e,0x40,0x43,0x46,0x48,0x49,0x4a,
+0x52,0x50,0x50,0x52,0x50,0x4d,0x51,0x58,0x4f,0x4d,0x49,0x44,0x42,0x45,0x4c,0x51,
+0x61,0x64,0x6c,0x70,0x69,0x61,0x57,0x49,0x4d,0x4d,0x4b,0x49,0x48,0x48,0x4b,0x4d,
+0x53,0x52,0x51,0x50,0x4f,0x4f,0x4f,0x4f,0x4c,0x50,0x54,0x54,0x52,0x51,0x51,0x53,
+0x4e,0x4f,0x50,0x52,0x57,0x5a,0x59,0x54,0x56,0x56,0x55,0x53,0x55,0x5a,0x5c,0x5b,
+0x5e,0x63,0x66,0x62,0x5a,0x54,0x55,0x58,0x58,0x55,0x53,0x55,0x5b,0x5f,0x5f,0x5c,
+0x5c,0x5a,0x58,0x58,0x5c,0x64,0x6d,0x73,0x74,0x6e,0x69,0x6d,0x75,0x77,0x70,0x67,
+0x5d,0x5a,0x57,0x59,0x5e,0x62,0x5f,0x5c,0x5d,0x5d,0x5d,0x5d,0x5c,0x5c,0x5b,0x5b,
+0x65,0x6b,0x70,0x70,0x6d,0x69,0x65,0x61,0x6b,0x6c,0x6b,0x67,0x63,0x61,0x5e,0x5a,
+0x5f,0x65,0x6a,0x6a,0x68,0x67,0x67,0x66,0x64,0x5e,0x58,0x57,0x5a,0x5f,0x63,0x65,
+0x56,0x54,0x55,0x59,0x5c,0x5c,0x5c,0x5e,0x55,0x53,0x53,0x54,0x54,0x55,0x5c,0x65,
+0x6e,0x7a,0x81,0x7d,0x7a,0x7b,0x7a,0x75,0x77,0x77,0x77,0x76,0x75,0x74,0x72,0x71,
+0x6e,0x6e,0x6d,0x6a,0x67,0x66,0x67,0x69,0x6c,0x6b,0x6b,0x6a,0x6b,0x6d,0x71,0x74,
+0x75,0x76,0x78,0x7a,0x7b,0x7c,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x7b,0x75,0x70,
+0x71,0x71,0x71,0x73,0x77,0x7b,0x7d,0x7e,0x82,0x82,0x7f,0x79,0x72,0x6b,0x68,0x66,
+0x6b,0x69,0x66,0x62,0x5f,0x5c,0x5b,0x5b,0x5a,0x59,0x58,0x55,0x54,0x52,0x51,0x51,
+0x52,0x52,0x51,0x50,0x51,0x53,0x57,0x5a,0x57,0x5d,0x5f,0x5c,0x5c,0x5f,0x5d,0x58,
+0x59,0x5a,0x5b,0x5c,0x5b,0x59,0x56,0x55,0x56,0x57,0x59,0x5c,0x61,0x66,0x6a,0x6c,
+0x6c,0x6c,0x6c,0x6b,0x6a,0x67,0x65,0x64,0x61,0x60,0x5e,0x5c,0x5c,0x5b,0x5a,0x58,
+0x5a,0x59,0x57,0x57,0x57,0x57,0x56,0x55,0x54,0x54,0x54,0x54,0x55,0x56,0x57,0x57,
+0x49,0x43,0x42,0x47,0x47,0x42,0x3f,0x41,0x41,0x42,0x41,0x3f,0x3e,0x3e,0x3d,0x3a,
+0x38,0x39,0x41,0x4d,0x4e,0x43,0x39,0x37,0x30,0x2e,0x34,0x44,0x56,0x5c,0x54,0x4a,
+0x4b,0x49,0x4a,0x50,0x5c,0x65,0x61,0x59,0x59,0x5a,0x64,0x6f,0x6c,0x61,0x5e,0x64,
+0x5a,0x52,0x52,0x5d,0x64,0x5e,0x54,0x50,0x48,0x44,0x48,0x4d,0x4d,0x51,0x52,0x4d,
+0x4b,0x50,0x53,0x4b,0x43,0x48,0x4a,0x42,0x3e,0x3d,0x39,0x34,0x31,0x31,0x33,0x34,
+0x37,0x37,0x33,0x33,0x43,0x58,0x5d,0x56,0x49,0x4c,0x50,0x52,0x50,0x4c,0x47,0x43,
+0x49,0x4a,0x4b,0x4b,0x4a,0x49,0x4c,0x51,0x53,0x5b,0x65,0x6b,0x6e,0x6f,0x70,0x71,
+0x65,0x57,0x49,0x46,0x4b,0x4e,0x4a,0x44,0x35,0x38,0x47,0x55,0x59,0x5c,0x60,0x60,
+0x59,0x46,0x3f,0x42,0x3f,0x40,0x46,0x47,0x46,0x4d,0x59,0x5e,0x53,0x33,0x26,0x2f,
+0x43,0x5d,0x5b,0x5e,0x57,0x50,0x49,0x4a,0x58,0x66,0x87,0x80,0x67,0x39,0x28,0x33,
+0x45,0x67,0x6e,0x63,0x5e,0x65,0x6a,0x5a,0x4b,0x47,0x46,0x3f,0x40,0x2c,0x3b,0x5b,
+0x71,0x7d,0x7d,0x74,0x6d,0x60,0x4a,0x3b,0x49,0x50,0x50,0x43,0x34,0x2f,0x3f,0x57,
+0x5e,0x58,0x56,0x5e,0x68,0x65,0x56,0x47,0x38,0x40,0x49,0x4c,0x4e,0x51,0x54,0x56,
+0x4c,0x4c,0x4f,0x55,0x59,0x59,0x55,0x50,0x45,0x45,0x48,0x4b,0x4b,0x4a,0x4b,0x4e,
+0x55,0x59,0x5a,0x58,0x57,0x57,0x56,0x54,0x51,0x4f,0x4e,0x4f,0x51,0x50,0x4b,0x46,
+0x49,0x4a,0x4a,0x48,0x45,0x43,0x44,0x45,0x49,0x4d,0x52,0x55,0x55,0x56,0x59,0x5c,
+0x65,0x64,0x64,0x66,0x69,0x68,0x65,0x61,0x63,0x5e,0x57,0x52,0x50,0x4f,0x4d,0x4b,
+0x47,0x4b,0x4e,0x4f,0x4d,0x4c,0x4e,0x50,0x52,0x50,0x4e,0x4e,0x4f,0x50,0x4e,0x4d,
+0x41,0x40,0x41,0x44,0x49,0x4d,0x4f,0x4f,0x51,0x4c,0x47,0x46,0x48,0x4c,0x4d,0x4c,
+0x4d,0x52,0x56,0x57,0x54,0x4f,0x47,0x41,0x3f,0x44,0x4d,0x54,0x54,0x4f,0x4c,0x4c,
+0x4a,0x45,0x3f,0x3b,0x3b,0x3c,0x3d,0x3e,0x3c,0x3d,0x40,0x43,0x46,0x48,0x4a,0x4b,
+0x4f,0x4a,0x48,0x48,0x48,0x49,0x50,0x59,0x69,0x62,0x57,0x4e,0x4a,0x4b,0x4c,0x4e,
+0x54,0x50,0x4d,0x49,0x47,0x4e,0x4f,0x46,0x44,0x46,0x48,0x4a,0x4b,0x4b,0x4c,0x4d,
+0x50,0x4f,0x4c,0x4a,0x49,0x49,0x49,0x4a,0x50,0x52,0x55,0x55,0x54,0x52,0x52,0x53,
+0x56,0x56,0x55,0x54,0x56,0x58,0x57,0x54,0x56,0x56,0x55,0x52,0x54,0x58,0x5b,0x5b,
+0x57,0x5a,0x5b,0x59,0x55,0x55,0x58,0x5d,0x59,0x57,0x54,0x54,0x5a,0x5f,0x5e,0x5a,
+0x5e,0x5d,0x5c,0x5b,0x5f,0x67,0x73,0x7c,0x79,0x70,0x69,0x6a,0x71,0x74,0x6d,0x65,
+0x5d,0x5e,0x60,0x63,0x68,0x6a,0x65,0x5e,0x5e,0x5e,0x5f,0x60,0x61,0x62,0x63,0x63,
+0x66,0x6f,0x77,0x79,0x78,0x76,0x72,0x6f,0x71,0x71,0x6d,0x69,0x66,0x65,0x62,0x5e,
+0x62,0x66,0x67,0x65,0x65,0x69,0x6d,0x6f,0x6a,0x65,0x60,0x5e,0x5d,0x5d,0x5e,0x60,
+0x5e,0x5b,0x59,0x5b,0x5d,0x5d,0x5e,0x5f,0x5c,0x5a,0x55,0x51,0x54,0x5a,0x5d,0x5d,
+0x65,0x73,0x7f,0x81,0x7e,0x7d,0x7c,0x7a,0x79,0x79,0x78,0x78,0x76,0x75,0x73,0x73,
+0x6e,0x6d,0x6b,0x69,0x67,0x66,0x67,0x68,0x6e,0x6d,0x6c,0x6b,0x6b,0x6f,0x73,0x77,
+0x78,0x79,0x7b,0x7e,0x7f,0x80,0x7f,0x7f,0x7d,0x7d,0x7d,0x7e,0x7f,0x7d,0x79,0x75,
+0x74,0x73,0x72,0x73,0x76,0x7a,0x7c,0x7c,0x82,0x86,0x88,0x87,0x81,0x7d,0x7c,0x7d,
+0x75,0x74,0x74,0x73,0x73,0x72,0x72,0x73,0x71,0x70,0x6e,0x6c,0x6a,0x69,0x69,0x69,
+0x67,0x66,0x66,0x66,0x65,0x63,0x62,0x61,0x5e,0x63,0x67,0x69,0x6b,0x6e,0x6f,0x6e,
+0x61,0x61,0x61,0x61,0x60,0x5f,0x5d,0x5c,0x5c,0x5c,0x5d,0x60,0x63,0x66,0x68,0x68,
+0x68,0x68,0x68,0x68,0x67,0x65,0x63,0x62,0x60,0x5e,0x5c,0x5b,0x5b,0x5a,0x59,0x58,
+0x5a,0x58,0x57,0x57,0x58,0x57,0x56,0x55,0x53,0x54,0x55,0x55,0x55,0x56,0x54,0x51,
+0x44,0x41,0x42,0x47,0x47,0x42,0x3e,0x3f,0x3d,0x3d,0x3c,0x3a,0x3b,0x3e,0x3e,0x3c,
+0x39,0x39,0x42,0x4f,0x50,0x45,0x3b,0x39,0x3c,0x38,0x3a,0x47,0x58,0x62,0x64,0x64,
+0x61,0x63,0x5f,0x53,0x4b,0x4d,0x52,0x55,0x53,0x4f,0x54,0x62,0x66,0x5e,0x59,0x5a,
+0x5a,0x53,0x4e,0x53,0x59,0x5b,0x59,0x56,0x4b,0x46,0x48,0x4c,0x4c,0x4f,0x51,0x4d,
+0x4d,0x51,0x50,0x45,0x3e,0x47,0x4b,0x41,0x3f,0x3f,0x3a,0x33,0x2e,0x2e,0x2f,0x2f,
+0x33,0x37,0x37,0x36,0x3d,0x4d,0x5a,0x60,0x50,0x4f,0x4f,0x50,0x51,0x4c,0x43,0x3b,
+0x41,0x46,0x4a,0x49,0x47,0x48,0x4d,0x53,0x53,0x55,0x5d,0x69,0x71,0x71,0x6e,0x6c,
+0x63,0x57,0x4c,0x4c,0x51,0x52,0x4c,0x47,0x3f,0x3d,0x41,0x43,0x42,0x4b,0x59,0x5e,
+0x51,0x3b,0x39,0x45,0x4a,0x4d,0x4c,0x41,0x44,0x4e,0x5b,0x57,0x4b,0x2c,0x26,0x30,
+0x42,0x59,0x55,0x57,0x3f,0x3c,0x43,0x54,0x60,0x6e,0x88,0x77,0x58,0x2b,0x26,0x40,
+0x67,0x79,0x6d,0x5f,0x62,0x6b,0x6e,0x62,0x4c,0x43,0x43,0x3e,0x3d,0x2f,0x44,0x62,
+0x74,0x83,0x7f,0x6f,0x6d,0x6a,0x51,0x35,0x3b,0x3e,0x3a,0x2b,0x1f,0x29,0x48,0x64,
+0x69,0x64,0x60,0x67,0x79,0x7f,0x6d,0x54,0x41,0x40,0x42,0x49,0x50,0x55,0x58,0x5a,
+0x4f,0x4f,0x51,0x59,0x60,0x5f,0x56,0x4d,0x45,0x47,0x48,0x48,0x4a,0x4d,0x4d,0x4b,
+0x4f,0x54,0x58,0x57,0x56,0x56,0x55,0x52,0x52,0x50,0x51,0x59,0x61,0x61,0x57,0x4c,
+0x41,0x44,0x46,0x45,0x43,0x42,0x44,0x46,0x54,0x55,0x56,0x56,0x56,0x57,0x59,0x5a,
+0x62,0x61,0x60,0x5e,0x5d,0x5d,0x5e,0x5f,0x60,0x5c,0x58,0x55,0x53,0x50,0x4a,0x46,
+0x3e,0x43,0x4a,0x50,0x54,0x54,0x53,0x52,0x50,0x51,0x51,0x52,0x52,0x52,0x52,0x51,
+0x48,0x47,0x47,0x49,0x4d,0x4f,0x50,0x51,0x51,0x4d,0x49,0x47,0x48,0x48,0x49,0x4a,
+0x4d,0x53,0x57,0x57,0x54,0x52,0x4f,0x4c,0x4d,0x52,0x5a,0x5e,0x5b,0x52,0x4d,0x4c,
+0x4d,0x4c,0x49,0x45,0x40,0x3c,0x3b,0x3b,0x3d,0x3e,0x40,0x42,0x44,0x45,0x46,0x47,
+0x49,0x48,0x4b,0x54,0x5a,0x5d,0x64,0x6c,0x72,0x73,0x75,0x76,0x76,0x78,0x7b,0x7d,
+0x70,0x5f,0x50,0x49,0x44,0x47,0x4a,0x45,0x45,0x47,0x49,0x4c,0x4e,0x4d,0x4c,0x4b,
+0x49,0x49,0x49,0x48,0x48,0x48,0x48,0x48,0x50,0x50,0x51,0x52,0x54,0x56,0x58,0x59,
+0x5d,0x5b,0x55,0x4e,0x4c,0x50,0x52,0x53,0x53,0x55,0x55,0x54,0x54,0x57,0x59,0x58,
+0x5f,0x61,0x63,0x63,0x61,0x60,0x60,0x61,0x62,0x64,0x64,0x62,0x62,0x62,0x60,0x5b,
+0x5c,0x5e,0x5e,0x5e,0x60,0x66,0x6f,0x77,0x73,0x6f,0x6b,0x6d,0x71,0x72,0x6d,0x68,
+0x61,0x63,0x64,0x66,0x6a,0x6e,0x6c,0x67,0x67,0x64,0x61,0x61,0x64,0x68,0x6b,0x6d,
+0x67,0x6d,0x74,0x78,0x7a,0x7b,0x77,0x73,0x6f,0x70,0x6d,0x69,0x66,0x66,0x65,0x64,
+0x62,0x63,0x60,0x5b,0x5c,0x63,0x6b,0x70,0x5c,0x5a,0x59,0x5a,0x59,0x58,0x5c,0x61,
+0x61,0x5e,0x5d,0x5e,0x5f,0x5e,0x5e,0x5f,0x5f,0x5b,0x55,0x53,0x57,0x5b,0x5b,0x58,
+0x5a,0x66,0x76,0x80,0x83,0x81,0x7f,0x7e,0x7c,0x7b,0x7a,0x79,0x77,0x76,0x74,0x74,
+0x6f,0x6d,0x6b,0x69,0x69,0x69,0x69,0x69,0x6c,0x6d,0x6e,0x6e,0x6f,0x72,0x76,0x78,
+0x7a,0x7b,0x7e,0x81,0x83,0x83,0x83,0x83,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x74,0x72,0x72,0x73,0x77,0x7a,0x7d,0x7e,0x7c,0x7f,0x83,0x84,0x83,0x83,0x84,0x85,
+0x8c,0x8c,0x8e,0x8f,0x90,0x90,0x91,0x91,0x89,0x87,0x82,0x7d,0x78,0x74,0x72,0x71,
+0x6a,0x68,0x65,0x63,0x61,0x5e,0x5a,0x56,0x59,0x5b,0x61,0x67,0x69,0x68,0x69,0x6c,
+0x66,0x67,0x67,0x67,0x66,0x65,0x64,0x64,0x60,0x60,0x61,0x63,0x66,0x68,0x68,0x67,
+0x66,0x66,0x66,0x65,0x64,0x62,0x61,0x60,0x5e,0x5c,0x5b,0x5a,0x5a,0x5a,0x59,0x58,
+0x5a,0x59,0x58,0x57,0x58,0x58,0x57,0x56,0x52,0x55,0x56,0x55,0x55,0x54,0x4e,0x47,
+0x44,0x43,0x43,0x44,0x43,0x41,0x3e,0x3d,0x3a,0x3a,0x3a,0x39,0x3b,0x3f,0x3f,0x3c,
+0x38,0x3a,0x44,0x51,0x53,0x47,0x3b,0x38,0x41,0x43,0x48,0x4e,0x50,0x54,0x5c,0x65,
+0x7c,0x8f,0x9b,0x8f,0x77,0x65,0x5d,0x5b,0x59,0x54,0x56,0x60,0x63,0x5a,0x50,0x4b,
+0x56,0x55,0x51,0x4c,0x4c,0x4f,0x51,0x4f,0x49,0x44,0x44,0x47,0x48,0x4c,0x50,0x4d,
+0x45,0x46,0x48,0x44,0x3f,0x45,0x49,0x42,0x43,0x42,0x3c,0x33,0x2e,0x2f,0x31,0x30,
+0x33,0x33,0x34,0x35,0x3a,0x42,0x4e,0x57,0x56,0x51,0x4d,0x4c,0x4e,0x4d,0x48,0x43,
+0x3e,0x42,0x46,0x45,0x43,0x46,0x4d,0x52,0x54,0x59,0x5d,0x60,0x65,0x6b,0x6d,0x6a,
+0x64,0x59,0x52,0x54,0x59,0x57,0x50,0x4b,0x3c,0x41,0x49,0x4c,0x4c,0x57,0x60,0x5e,
+0x4f,0x37,0x38,0x4a,0x50,0x51,0x49,0x35,0x3e,0x55,0x65,0x52,0x4b,0x39,0x36,0x31,
+0x3e,0x4a,0x48,0x42,0x34,0x3a,0x52,0x5c,0x65,0x74,0x8a,0x75,0x55,0x29,0x2b,0x50,
+0x69,0x73,0x63,0x5c,0x66,0x6b,0x6b,0x62,0x4e,0x40,0x43,0x3f,0x39,0x2f,0x4c,0x67,
+0x6a,0x6d,0x68,0x67,0x6e,0x66,0x4a,0x33,0x29,0x26,0x22,0x1c,0x1c,0x33,0x56,0x6d,
+0x67,0x61,0x5a,0x5e,0x6d,0x75,0x64,0x4c,0x3a,0x31,0x34,0x49,0x5c,0x61,0x5e,0x5d,
+0x5a,0x55,0x53,0x57,0x5e,0x5e,0x54,0x4a,0x4b,0x4b,0x48,0x45,0x48,0x4d,0x4c,0x45,
+0x49,0x50,0x55,0x55,0x54,0x55,0x53,0x50,0x4f,0x4b,0x4c,0x57,0x64,0x68,0x5f,0x54,
+0x46,0x4a,0x4e,0x4f,0x4e,0x4e,0x51,0x54,0x5f,0x5c,0x58,0x56,0x55,0x56,0x57,0x58,
+0x5a,0x5b,0x5c,0x5a,0x58,0x58,0x5b,0x5e,0x5e,0x5c,0x5a,0x58,0x54,0x4d,0x45,0x3f,
+0x41,0x43,0x47,0x4e,0x55,0x58,0x58,0x56,0x53,0x54,0x56,0x56,0x55,0x54,0x53,0x52,
+0x4c,0x4c,0x4c,0x4d,0x4e,0x4f,0x4f,0x4f,0x4c,0x4b,0x4b,0x4d,0x4c,0x4a,0x49,0x49,
+0x4a,0x50,0x55,0x55,0x54,0x56,0x58,0x5a,0x60,0x62,0x65,0x63,0x5a,0x50,0x4b,0x4b,
+0x40,0x44,0x47,0x46,0x41,0x3d,0x3c,0x3c,0x3e,0x3e,0x3f,0x40,0x41,0x41,0x41,0x41,
+0x43,0x43,0x48,0x50,0x51,0x4b,0x46,0x46,0x5c,0x62,0x69,0x6c,0x6e,0x75,0x80,0x89,
+0x85,0x6f,0x63,0x62,0x5c,0x53,0x4d,0x48,0x4c,0x4c,0x4d,0x4f,0x50,0x4e,0x4b,0x48,
+0x43,0x45,0x48,0x4a,0x4c,0x4c,0x4c,0x4b,0x54,0x52,0x50,0x50,0x52,0x56,0x59,0x5b,
+0x57,0x59,0x57,0x53,0x50,0x50,0x4f,0x4e,0x50,0x54,0x56,0x56,0x56,0x58,0x57,0x56,
+0x5e,0x62,0x66,0x68,0x65,0x5e,0x57,0x52,0x6e,0x75,0x78,0x73,0x6c,0x67,0x63,0x5e,
+0x58,0x5b,0x5e,0x5f,0x5f,0x62,0x68,0x6d,0x61,0x63,0x68,0x6c,0x6e,0x6d,0x68,0x65,
+0x63,0x63,0x60,0x5e,0x63,0x6b,0x6e,0x6d,0x6a,0x68,0x68,0x69,0x6c,0x6e,0x6d,0x6b,
+0x69,0x6c,0x6f,0x73,0x77,0x79,0x74,0x6d,0x6a,0x6c,0x6c,0x67,0x64,0x64,0x67,0x68,
+0x62,0x5f,0x59,0x53,0x54,0x5c,0x67,0x6d,0x66,0x61,0x5d,0x58,0x52,0x4e,0x51,0x57,
+0x59,0x58,0x5a,0x5f,0x63,0x64,0x65,0x66,0x5c,0x57,0x54,0x58,0x5c,0x5b,0x58,0x57,
+0x4e,0x58,0x69,0x7a,0x82,0x80,0x7d,0x7d,0x7d,0x7d,0x7b,0x7a,0x78,0x76,0x75,0x74,
+0x72,0x6f,0x6c,0x6b,0x6c,0x6d,0x6d,0x6c,0x6b,0x6d,0x6f,0x71,0x73,0x75,0x77,0x79,
+0x7a,0x7c,0x7f,0x82,0x84,0x85,0x84,0x84,0x83,0x82,0x80,0x7f,0x7d,0x7d,0x7d,0x7d,
+0x78,0x75,0x72,0x71,0x73,0x77,0x7b,0x7d,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,0x77,0x75,0x72,0x6f,0x6c,0x6a,0x69,0x69,
+0x68,0x63,0x5e,0x5c,0x5e,0x5f,0x5e,0x5d,0x63,0x64,0x69,0x70,0x70,0x6b,0x6a,0x6d,
+0x6c,0x6c,0x6d,0x6d,0x6c,0x6b,0x69,0x68,0x62,0x62,0x63,0x66,0x69,0x6a,0x69,0x67,
+0x65,0x65,0x64,0x63,0x62,0x60,0x5f,0x5e,0x5d,0x5b,0x5a,0x59,0x5a,0x5a,0x5a,0x59,
+0x5a,0x59,0x58,0x58,0x58,0x58,0x57,0x56,0x52,0x56,0x57,0x55,0x54,0x51,0x49,0x40,
+0x42,0x42,0x41,0x3e,0x3d,0x3c,0x3b,0x39,0x39,0x3a,0x3a,0x3a,0x3d,0x3f,0x3d,0x3a,
+0x38,0x3a,0x46,0x55,0x56,0x49,0x3c,0x38,0x33,0x40,0x4e,0x50,0x46,0x3e,0x46,0x53,
+0x59,0x65,0x6f,0x70,0x71,0x72,0x6f,0x68,0x58,0x52,0x50,0x52,0x52,0x4e,0x4c,0x4e,
+0x52,0x59,0x58,0x4e,0x47,0x47,0x48,0x45,0x43,0x3e,0x3f,0x42,0x44,0x4a,0x50,0x4e,
+0x48,0x46,0x4c,0x4e,0x49,0x48,0x4a,0x48,0x45,0x44,0x3d,0x33,0x2f,0x32,0x35,0x36,
+0x3d,0x38,0x35,0x39,0x3d,0x41,0x49,0x50,0x59,0x52,0x4b,0x48,0x4b,0x4f,0x51,0x50,
+0x40,0x42,0x43,0x42,0x42,0x46,0x4d,0x51,0x52,0x5a,0x5a,0x51,0x52,0x60,0x6a,0x6a,
+0x65,0x5c,0x56,0x59,0x5c,0x58,0x50,0x4b,0x2e,0x36,0x42,0x48,0x4f,0x5e,0x66,0x60,
+0x4e,0x33,0x30,0x3e,0x40,0x46,0x47,0x3a,0x49,0x57,0x67,0x5b,0x56,0x3a,0x34,0x33,
+0x3c,0x3b,0x3b,0x30,0x38,0x47,0x68,0x5e,0x6a,0x79,0x8e,0x79,0x5a,0x2f,0x33,0x5b,
+0x68,0x75,0x6b,0x69,0x71,0x6c,0x68,0x64,0x55,0x42,0x45,0x3f,0x34,0x2c,0x4f,0x6a,
+0x7b,0x74,0x73,0x7b,0x70,0x48,0x2b,0x2a,0x28,0x22,0x20,0x21,0x2a,0x46,0x63,0x6f,
+0x6a,0x63,0x60,0x65,0x69,0x60,0x4b,0x39,0x27,0x1d,0x22,0x3a,0x50,0x58,0x5e,0x66,
+0x5d,0x5d,0x5f,0x62,0x62,0x60,0x5e,0x5e,0x5c,0x52,0x4c,0x4d,0x4e,0x4c,0x4b,0x4d,
+0x51,0x51,0x54,0x59,0x5a,0x58,0x57,0x57,0x52,0x50,0x4f,0x53,0x5d,0x64,0x63,0x5d,
+0x57,0x53,0x4d,0x4c,0x4e,0x50,0x51,0x51,0x5c,0x63,0x69,0x69,0x67,0x64,0x5d,0x56,
+0x56,0x54,0x57,0x59,0x56,0x5a,0x61,0x62,0x5d,0x5f,0x60,0x60,0x5c,0x56,0x50,0x4b,
+0x40,0x46,0x4e,0x57,0x5c,0x5d,0x5a,0x57,0x51,0x4e,0x50,0x54,0x52,0x4a,0x4b,0x52,
+0x4c,0x4a,0x47,0x45,0x44,0x46,0x49,0x4b,0x4f,0x52,0x54,0x52,0x4f,0x4d,0x4c,0x4a,
+0x4f,0x53,0x5a,0x5f,0x5e,0x5c,0x62,0x6b,0x71,0x75,0x73,0x6a,0x60,0x5a,0x56,0x52,
+0x4f,0x4d,0x4e,0x50,0x4a,0x3e,0x38,0x3a,0x3e,0x41,0x42,0x3f,0x3b,0x3b,0x41,0x46,
+0x46,0x49,0x4a,0x48,0x49,0x4d,0x50,0x4f,0x57,0x5a,0x5d,0x5d,0x5f,0x62,0x64,0x63,
+0x6c,0x6d,0x6d,0x6a,0x63,0x58,0x4d,0x45,0x4a,0x4b,0x4e,0x50,0x4d,0x49,0x49,0x4b,
+0x46,0x45,0x48,0x4e,0x4d,0x47,0x46,0x4a,0x50,0x51,0x52,0x51,0x50,0x52,0x56,0x5a,
+0x5a,0x5c,0x5d,0x5c,0x58,0x55,0x53,0x53,0x58,0x58,0x58,0x5a,0x5c,0x5d,0x5c,0x5a,
+0x65,0x65,0x66,0x66,0x66,0x62,0x5e,0x5b,0x60,0x65,0x69,0x68,0x67,0x67,0x65,0x61,
+0x5d,0x5c,0x5d,0x5f,0x61,0x61,0x5e,0x5c,0x65,0x64,0x67,0x6c,0x6b,0x63,0x5d,0x5b,
+0x61,0x62,0x66,0x69,0x67,0x64,0x65,0x67,0x62,0x5c,0x5d,0x67,0x6f,0x6e,0x6d,0x6f,
+0x6d,0x69,0x69,0x6f,0x74,0x75,0x72,0x70,0x75,0x70,0x69,0x65,0x63,0x62,0x60,0x5f,
+0x64,0x61,0x5e,0x5e,0x5d,0x5b,0x5c,0x5f,0x5e,0x61,0x63,0x62,0x62,0x5f,0x57,0x50,
+0x53,0x56,0x57,0x57,0x5c,0x64,0x68,0x68,0x61,0x5a,0x58,0x5d,0x5e,0x58,0x53,0x53,
+0x50,0x56,0x61,0x6f,0x7b,0x81,0x81,0x7f,0x7a,0x7c,0x7d,0x7b,0x76,0x74,0x76,0x79,
+0x74,0x73,0x71,0x70,0x6e,0x6e,0x6d,0x6d,0x6e,0x6e,0x70,0x74,0x75,0x75,0x78,0x7b,
+0x7e,0x80,0x83,0x85,0x87,0x87,0x87,0x87,0x85,0x83,0x81,0x7f,0x7f,0x7f,0x7e,0x7d,
+0x7a,0x78,0x76,0x73,0x71,0x70,0x70,0x70,0x7a,0x7c,0x7f,0x81,0x81,0x80,0x7f,0x7d,
+0x7b,0x7c,0x7c,0x7b,0x77,0x74,0x72,0x72,0x6d,0x6d,0x6c,0x6c,0x6c,0x6b,0x6a,0x6a,
+0x66,0x65,0x64,0x63,0x65,0x68,0x6b,0x6d,0x6e,0x6d,0x6c,0x6e,0x70,0x72,0x71,0x70,
+0x6f,0x6f,0x6e,0x6e,0x6f,0x6e,0x6d,0x6b,0x67,0x66,0x65,0x66,0x67,0x68,0x67,0x67,
+0x63,0x63,0x64,0x64,0x63,0x61,0x5e,0x5c,0x5d,0x5b,0x5a,0x5a,0x5a,0x5a,0x5a,0x59,
+0x56,0x58,0x59,0x58,0x56,0x55,0x56,0x57,0x58,0x57,0x56,0x56,0x52,0x4a,0x42,0x3e,
+0x3b,0x3f,0x43,0x42,0x3f,0x3b,0x3a,0x3a,0x39,0x38,0x38,0x3a,0x3c,0x3d,0x3b,0x39,
+0x34,0x3a,0x48,0x55,0x54,0x46,0x39,0x35,0x2e,0x37,0x47,0x58,0x64,0x6b,0x6f,0x71,
+0x6b,0x58,0x4b,0x52,0x5e,0x64,0x6b,0x73,0x7d,0x81,0x81,0x77,0x63,0x52,0x4c,0x4d,
+0x50,0x4a,0x46,0x49,0x49,0x47,0x48,0x4d,0x46,0x42,0x3d,0x3b,0x3e,0x43,0x48,0x49,
+0x49,0x4c,0x4d,0x4a,0x45,0x43,0x43,0x44,0x4a,0x48,0x45,0x40,0x3a,0x3e,0x52,0x69,
+0x6f,0x63,0x53,0x46,0x3f,0x3f,0x46,0x4d,0x55,0x54,0x4d,0x47,0x47,0x48,0x4e,0x58,
+0x45,0x44,0x44,0x44,0x44,0x45,0x4d,0x55,0x54,0x5c,0x5e,0x59,0x5c,0x67,0x69,0x63,
+0x63,0x5a,0x55,0x5c,0x66,0x62,0x4b,0x35,0x25,0x3d,0x47,0x3b,0x3b,0x4f,0x5b,0x57,
+0x47,0x3c,0x33,0x37,0x44,0x4c,0x4a,0x45,0x50,0x58,0x5d,0x56,0x44,0x36,0x38,0x41,
+0x41,0x43,0x35,0x2f,0x37,0x4d,0x68,0x6d,0x6d,0x7b,0x77,0x63,0x48,0x2b,0x34,0x5f,
+0x69,0x65,0x58,0x57,0x63,0x64,0x62,0x6a,0x4e,0x52,0x40,0x25,0x24,0x3c,0x57,0x68,
+0x76,0x81,0x81,0x75,0x63,0x49,0x32,0x29,0x2c,0x28,0x22,0x23,0x2f,0x44,0x5a,0x68,
+0x6b,0x67,0x64,0x62,0x5a,0x49,0x34,0x26,0x15,0x19,0x32,0x4f,0x56,0x55,0x5e,0x68,
+0x68,0x6b,0x71,0x78,0x7c,0x7e,0x7d,0x7d,0x80,0x81,0x7d,0x71,0x61,0x57,0x5b,0x64,
+0x69,0x62,0x5a,0x57,0x56,0x59,0x5f,0x66,0x6f,0x6a,0x61,0x59,0x5a,0x65,0x71,0x77,
+0x64,0x5c,0x50,0x46,0x44,0x4c,0x5a,0x64,0x63,0x56,0x4b,0x52,0x66,0x73,0x6b,0x5c,
+0x56,0x53,0x56,0x58,0x55,0x59,0x60,0x5f,0x5e,0x5f,0x5f,0x5b,0x57,0x55,0x56,0x58,
+0x62,0x5c,0x57,0x56,0x58,0x56,0x4f,0x48,0x46,0x47,0x4c,0x52,0x52,0x4d,0x4c,0x50,
+0x4c,0x4a,0x47,0x46,0x47,0x49,0x4b,0x4c,0x4f,0x51,0x53,0x52,0x50,0x4f,0x4f,0x4f,
+0x56,0x57,0x5b,0x5e,0x5c,0x5b,0x61,0x69,0x6e,0x70,0x6e,0x66,0x5f,0x5c,0x5b,0x59,
+0x5e,0x5c,0x5c,0x5d,0x54,0x45,0x3b,0x3a,0x3d,0x3d,0x3e,0x40,0x43,0x43,0x40,0x3e,
+0x47,0x4f,0x56,0x55,0x51,0x54,0x63,0x70,0x72,0x71,0x66,0x52,0x43,0x43,0x50,0x5c,
+0x63,0x5f,0x58,0x51,0x4c,0x4a,0x4a,0x4b,0x50,0x4f,0x4e,0x4e,0x4c,0x48,0x46,0x47,
+0x4b,0x47,0x46,0x49,0x48,0x44,0x46,0x4c,0x50,0x50,0x52,0x54,0x56,0x56,0x55,0x53,
+0x54,0x56,0x57,0x58,0x57,0x57,0x59,0x5b,0x5a,0x5b,0x5b,0x5b,0x5c,0x5e,0x62,0x64,
+0x63,0x62,0x61,0x63,0x65,0x66,0x65,0x64,0x62,0x63,0x64,0x64,0x64,0x65,0x65,0x65,
+0x62,0x60,0x5e,0x5f,0x63,0x67,0x6a,0x6c,0x60,0x5f,0x64,0x70,0x78,0x75,0x6c,0x65,
+0x62,0x60,0x61,0x65,0x67,0x66,0x67,0x69,0x65,0x63,0x67,0x70,0x74,0x70,0x6e,0x70,
+0x68,0x63,0x60,0x65,0x6c,0x70,0x71,0x71,0x71,0x6e,0x69,0x64,0x62,0x60,0x5f,0x5f,
+0x5e,0x5b,0x5b,0x5c,0x5b,0x5a,0x5a,0x5d,0x5f,0x63,0x65,0x63,0x61,0x60,0x5d,0x5a,
+0x50,0x54,0x57,0x58,0x5b,0x61,0x63,0x62,0x59,0x58,0x58,0x5c,0x5f,0x5d,0x5b,0x5a,
+0x5f,0x5e,0x5f,0x66,0x70,0x79,0x7d,0x7e,0x7c,0x7c,0x7b,0x7a,0x78,0x77,0x77,0x78,
+0x75,0x74,0x73,0x71,0x70,0x6f,0x6f,0x6f,0x6e,0x6e,0x70,0x74,0x75,0x75,0x78,0x7b,
+0x7e,0x80,0x83,0x86,0x88,0x88,0x88,0x87,0x84,0x83,0x82,0x82,0x82,0x81,0x7f,0x7d,
+0x7a,0x79,0x78,0x75,0x73,0x71,0x6f,0x6e,0x71,0x72,0x75,0x78,0x7a,0x7b,0x7b,0x7a,
+0x78,0x79,0x79,0x78,0x75,0x72,0x70,0x6f,0x70,0x70,0x71,0x71,0x70,0x6f,0x6f,0x6e,
+0x67,0x68,0x69,0x6a,0x6c,0x6f,0x71,0x72,0x72,0x71,0x71,0x72,0x75,0x76,0x75,0x74,
+0x74,0x73,0x72,0x72,0x72,0x71,0x6f,0x6e,0x6a,0x68,0x67,0x67,0x67,0x68,0x67,0x67,
+0x63,0x63,0x63,0x63,0x62,0x60,0x5e,0x5d,0x5c,0x5b,0x59,0x59,0x5a,0x5a,0x59,0x58,
+0x57,0x58,0x59,0x58,0x56,0x55,0x55,0x57,0x59,0x57,0x56,0x56,0x4f,0x44,0x3e,0x3e,
+0x44,0x45,0x45,0x43,0x3f,0x3a,0x37,0x34,0x36,0x36,0x36,0x38,0x39,0x3a,0x3a,0x3a,
+0x37,0x3d,0x48,0x4f,0x4a,0x3e,0x37,0x36,0x34,0x39,0x48,0x5e,0x71,0x78,0x74,0x6e,
+0x7a,0x6f,0x5f,0x50,0x48,0x4b,0x58,0x64,0x65,0x74,0x7a,0x6d,0x5c,0x53,0x4b,0x44,
+0x4b,0x49,0x48,0x48,0x47,0x46,0x46,0x48,0x41,0x41,0x3f,0x3d,0x3e,0x41,0x43,0x43,
+0x45,0x49,0x4a,0x45,0x41,0x40,0x3d,0x39,0x42,0x49,0x4a,0x45,0x47,0x56,0x67,0x70,
+0x8f,0x88,0x7c,0x6f,0x61,0x55,0x50,0x50,0x4f,0x51,0x4b,0x45,0x42,0x3e,0x3d,0x44,
+0x42,0x42,0x41,0x3f,0x3f,0x43,0x4a,0x4f,0x54,0x5b,0x5d,0x5b,0x60,0x6b,0x6c,0x66,
+0x5f,0x5d,0x5c,0x5c,0x5a,0x50,0x40,0x33,0x43,0x4d,0x4a,0x3c,0x3e,0x50,0x5a,0x56,
+0x4c,0x3f,0x36,0x3e,0x4b,0x50,0x4b,0x45,0x4a,0x4f,0x52,0x4b,0x3c,0x31,0x33,0x3b,
+0x58,0x5a,0x4c,0x44,0x49,0x58,0x6a,0x68,0x73,0x85,0x76,0x4c,0x2a,0x1c,0x2e,0x53,
+0x66,0x6a,0x68,0x68,0x6b,0x6c,0x6b,0x6d,0x5c,0x51,0x3c,0x30,0x3a,0x4d,0x60,0x70,
+0x78,0x82,0x7c,0x6c,0x65,0x5d,0x48,0x36,0x34,0x32,0x2d,0x2b,0x33,0x45,0x57,0x60,
+0x63,0x70,0x75,0x69,0x59,0x4c,0x3c,0x2e,0x20,0x26,0x39,0x47,0x40,0x3c,0x49,0x58,
+0x59,0x5c,0x60,0x62,0x61,0x5e,0x5a,0x56,0x64,0x60,0x5b,0x56,0x55,0x55,0x50,0x4a,
+0x53,0x50,0x4d,0x4d,0x4e,0x51,0x55,0x5a,0x59,0x57,0x51,0x4c,0x4e,0x56,0x5d,0x61,
+0x6e,0x67,0x5a,0x4a,0x40,0x45,0x56,0x64,0x6a,0x5c,0x4d,0x49,0x54,0x5f,0x60,0x5b,
+0x57,0x52,0x53,0x53,0x50,0x53,0x56,0x53,0x51,0x53,0x55,0x55,0x55,0x57,0x5c,0x60,
+0x5a,0x50,0x46,0x47,0x4f,0x55,0x53,0x4d,0x47,0x4b,0x51,0x53,0x52,0x4e,0x49,0x46,
+0x4a,0x4a,0x4b,0x4d,0x50,0x52,0x51,0x50,0x4c,0x4e,0x4f,0x50,0x50,0x50,0x50,0x51,
+0x55,0x55,0x55,0x57,0x57,0x58,0x5e,0x64,0x60,0x61,0x60,0x5b,0x57,0x58,0x59,0x5a,
+0x62,0x61,0x63,0x63,0x5b,0x4c,0x40,0x3d,0x3e,0x41,0x46,0x4a,0x4a,0x46,0x40,0x3c,
+0x42,0x47,0x4e,0x4e,0x46,0x42,0x4e,0x5e,0x63,0x6a,0x75,0x7e,0x81,0x78,0x62,0x4f,
+0x53,0x54,0x55,0x53,0x4f,0x4a,0x45,0x43,0x4c,0x49,0x48,0x49,0x49,0x47,0x46,0x47,
+0x4a,0x46,0x45,0x48,0x47,0x45,0x48,0x4e,0x54,0x52,0x51,0x55,0x59,0x5a,0x56,0x51,
+0x58,0x58,0x58,0x58,0x58,0x59,0x5c,0x5e,0x5f,0x5f,0x5d,0x5b,0x5b,0x5f,0x66,0x6c,
+0x6a,0x67,0x66,0x67,0x6a,0x6b,0x69,0x67,0x66,0x60,0x5e,0x60,0x62,0x61,0x64,0x69,
+0x66,0x63,0x61,0x61,0x64,0x6a,0x6f,0x71,0x69,0x68,0x6b,0x72,0x75,0x70,0x67,0x61,
+0x62,0x5e,0x5d,0x61,0x66,0x68,0x68,0x69,0x6b,0x6c,0x72,0x78,0x76,0x6f,0x6b,0x6c,
+0x6a,0x63,0x5d,0x5f,0x65,0x6b,0x70,0x73,0x6f,0x6e,0x6c,0x69,0x65,0x62,0x60,0x60,
+0x5f,0x5d,0x5d,0x5e,0x5e,0x5c,0x5c,0x5d,0x5e,0x62,0x64,0x60,0x5b,0x5a,0x5c,0x5d,
+0x5e,0x60,0x63,0x63,0x63,0x64,0x63,0x60,0x55,0x58,0x59,0x5a,0x5b,0x5e,0x5d,0x5b,
+0x55,0x52,0x50,0x55,0x61,0x70,0x7c,0x82,0x7e,0x7c,0x7a,0x7a,0x7b,0x7b,0x79,0x77,
+0x76,0x75,0x73,0x72,0x70,0x6f,0x6f,0x6e,0x70,0x6f,0x71,0x74,0x75,0x75,0x78,0x7c,
+0x7f,0x81,0x84,0x87,0x88,0x89,0x89,0x88,0x84,0x84,0x84,0x84,0x84,0x82,0x7f,0x7d,
+0x7a,0x7a,0x79,0x77,0x75,0x72,0x6f,0x6d,0x69,0x6a,0x6c,0x6e,0x70,0x71,0x72,0x72,
+0x73,0x74,0x75,0x75,0x73,0x71,0x70,0x70,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6e,
+0x6b,0x6c,0x6e,0x71,0x73,0x74,0x75,0x75,0x76,0x76,0x76,0x77,0x79,0x7a,0x7a,0x79,
+0x79,0x78,0x76,0x76,0x75,0x74,0x72,0x70,0x6d,0x6c,0x6a,0x69,0x68,0x68,0x67,0x66,
+0x63,0x63,0x62,0x61,0x5f,0x5e,0x5d,0x5d,0x5c,0x5a,0x59,0x59,0x59,0x59,0x59,0x58,
+0x58,0x58,0x58,0x57,0x56,0x55,0x55,0x55,0x54,0x52,0x54,0x57,0x52,0x48,0x45,0x49,
+0x50,0x4d,0x4b,0x4a,0x48,0x44,0x3d,0x38,0x35,0x35,0x35,0x35,0x35,0x35,0x37,0x38,
+0x3a,0x41,0x49,0x4a,0x42,0x39,0x36,0x38,0x3a,0x39,0x40,0x52,0x65,0x71,0x76,0x78,
+0x7d,0x83,0x82,0x73,0x62,0x58,0x54,0x52,0x5c,0x63,0x66,0x63,0x5f,0x59,0x4f,0x45,
+0x48,0x4b,0x4d,0x4b,0x48,0x48,0x47,0x46,0x43,0x45,0x45,0x43,0x42,0x42,0x40,0x3c,
+0x3c,0x41,0x44,0x43,0x43,0x44,0x42,0x3c,0x39,0x3c,0x40,0x44,0x4a,0x50,0x54,0x53,
+0x55,0x55,0x56,0x54,0x4d,0x45,0x42,0x43,0x52,0x56,0x51,0x49,0x45,0x3e,0x3a,0x3f,
+0x4a,0x4d,0x4c,0x46,0x44,0x49,0x4e,0x4f,0x4f,0x55,0x58,0x59,0x61,0x6a,0x6b,0x64,
+0x62,0x65,0x67,0x67,0x62,0x59,0x4f,0x49,0x54,0x51,0x46,0x3c,0x42,0x55,0x61,0x61,
+0x61,0x4b,0x3e,0x46,0x51,0x4e,0x44,0x3f,0x4c,0x4f,0x50,0x4d,0x44,0x3c,0x3c,0x41,
+0x4d,0x53,0x4b,0x49,0x50,0x5d,0x68,0x60,0x6a,0x6f,0x57,0x33,0x22,0x24,0x36,0x50,
+0x63,0x6b,0x71,0x6c,0x65,0x69,0x6d,0x69,0x68,0x5a,0x48,0x3e,0x3b,0x3a,0x48,0x5f,
+0x7c,0x79,0x71,0x67,0x57,0x43,0x3b,0x43,0x41,0x40,0x3a,0x33,0x3a,0x4d,0x5e,0x64,
+0x67,0x6b,0x6b,0x64,0x5c,0x51,0x40,0x31,0x2b,0x27,0x2f,0x3c,0x45,0x51,0x60,0x69,
+0x56,0x5a,0x5d,0x5f,0x5f,0x5f,0x5d,0x59,0x57,0x62,0x67,0x62,0x5a,0x54,0x4f,0x4a,
+0x42,0x43,0x47,0x4d,0x50,0x4f,0x4f,0x50,0x51,0x4f,0x4d,0x50,0x58,0x5c,0x56,0x4d,
+0x5d,0x5c,0x58,0x4d,0x42,0x3f,0x44,0x4b,0x59,0x58,0x54,0x4c,0x47,0x4c,0x58,0x63,
+0x5b,0x55,0x53,0x52,0x4d,0x4d,0x4d,0x47,0x47,0x48,0x4c,0x52,0x59,0x5c,0x59,0x55,
+0x4d,0x45,0x3d,0x3e,0x46,0x4d,0x4e,0x4c,0x4f,0x53,0x57,0x57,0x55,0x52,0x4c,0x46,
+0x46,0x49,0x50,0x57,0x5c,0x5b,0x55,0x50,0x49,0x49,0x49,0x4b,0x4c,0x4c,0x4e,0x50,
+0x4f,0x4f,0x4f,0x51,0x54,0x59,0x5e,0x62,0x5e,0x5f,0x60,0x5f,0x5d,0x5c,0x5d,0x5d,
+0x59,0x59,0x5d,0x5f,0x59,0x4c,0x41,0x3c,0x40,0x48,0x51,0x50,0x48,0x40,0x3f,0x40,
+0x3e,0x3c,0x40,0x47,0x46,0x3e,0x3d,0x43,0x5b,0x64,0x6c,0x6c,0x6a,0x6c,0x72,0x77,
+0x6c,0x69,0x63,0x5c,0x54,0x4d,0x4a,0x48,0x43,0x43,0x43,0x45,0x44,0x41,0x41,0x43,
+0x43,0x43,0x46,0x4a,0x4b,0x49,0x49,0x4c,0x51,0x4e,0x4e,0x52,0x59,0x5e,0x5f,0x5e,
+0x5e,0x5e,0x5d,0x5d,0x5d,0x5e,0x5f,0x61,0x63,0x5f,0x5b,0x57,0x58,0x5e,0x66,0x6c,
+0x6a,0x68,0x67,0x69,0x6c,0x6c,0x68,0x64,0x65,0x5c,0x58,0x5c,0x5d,0x5b,0x5e,0x65,
+0x63,0x61,0x5f,0x5f,0x60,0x62,0x64,0x66,0x6d,0x70,0x70,0x6b,0x61,0x5a,0x5b,0x5f,
+0x63,0x60,0x61,0x65,0x68,0x69,0x6a,0x6c,0x70,0x71,0x74,0x77,0x73,0x6a,0x64,0x63,
+0x6c,0x67,0x61,0x5f,0x60,0x63,0x6b,0x72,0x70,0x73,0x74,0x72,0x6d,0x67,0x63,0x62,
+0x64,0x62,0x61,0x61,0x60,0x5e,0x5e,0x5f,0x61,0x64,0x63,0x5d,0x57,0x56,0x57,0x57,
+0x64,0x65,0x66,0x66,0x65,0x64,0x62,0x61,0x5b,0x5f,0x5e,0x58,0x56,0x59,0x5a,0x57,
+0x5f,0x5c,0x58,0x56,0x5b,0x65,0x71,0x79,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,
+0x79,0x78,0x77,0x75,0x72,0x71,0x6f,0x6f,0x71,0x71,0x72,0x74,0x75,0x75,0x78,0x7c,
+0x7f,0x81,0x84,0x87,0x89,0x8a,0x8a,0x89,0x85,0x84,0x83,0x83,0x83,0x82,0x80,0x7e,
+0x7b,0x7a,0x79,0x77,0x74,0x72,0x71,0x70,0x6a,0x6a,0x69,0x69,0x68,0x68,0x68,0x68,
+0x6b,0x6d,0x6e,0x6f,0x6e,0x6d,0x6e,0x6f,0x6c,0x6c,0x6d,0x6d,0x6e,0x6d,0x6c,0x6c,
+0x6e,0x6f,0x71,0x73,0x75,0x75,0x76,0x75,0x78,0x78,0x79,0x7b,0x7c,0x7c,0x7c,0x7b,
+0x7c,0x7a,0x79,0x77,0x76,0x75,0x72,0x70,0x71,0x6f,0x6d,0x6b,0x6a,0x68,0x67,0x65,
+0x63,0x62,0x61,0x5f,0x5e,0x5d,0x5d,0x5d,0x5c,0x5b,0x59,0x59,0x5a,0x5a,0x59,0x59,
+0x58,0x58,0x58,0x57,0x56,0x55,0x54,0x54,0x54,0x50,0x53,0x59,0x57,0x4f,0x4c,0x4e,
+0x44,0x42,0x42,0x44,0x47,0x44,0x3c,0x34,0x36,0x36,0x36,0x34,0x32,0x32,0x35,0x37,
+0x3b,0x42,0x4a,0x4a,0x44,0x3e,0x3b,0x3a,0x3b,0x3d,0x44,0x4e,0x57,0x5d,0x67,0x71,
+0x67,0x71,0x7b,0x84,0x8b,0x90,0x91,0x8e,0x74,0x63,0x5c,0x66,0x6b,0x5e,0x50,0x4b,
+0x47,0x4e,0x4f,0x4a,0x46,0x48,0x49,0x47,0x49,0x49,0x47,0x44,0x44,0x44,0x3d,0x35,
+0x35,0x37,0x3c,0x42,0x43,0x41,0x42,0x45,0x41,0x38,0x3c,0x4d,0x53,0x47,0x3d,0x3c,
+0x47,0x47,0x48,0x46,0x42,0x40,0x44,0x4a,0x4f,0x53,0x4d,0x43,0x3e,0x3a,0x39,0x3e,
+0x46,0x4f,0x52,0x48,0x42,0x45,0x49,0x48,0x4c,0x50,0x54,0x5a,0x63,0x6a,0x68,0x61,
+0x60,0x62,0x65,0x67,0x66,0x5f,0x57,0x50,0x4d,0x47,0x3e,0x39,0x41,0x51,0x5f,0x64,
+0x5d,0x42,0x36,0x46,0x58,0x57,0x51,0x4f,0x52,0x54,0x57,0x57,0x51,0x47,0x41,0x3f,
+0x4e,0x59,0x54,0x52,0x56,0x5d,0x61,0x54,0x63,0x5a,0x44,0x31,0x29,0x25,0x30,0x46,
+0x63,0x69,0x6e,0x64,0x5a,0x68,0x74,0x6a,0x61,0x5a,0x50,0x49,0x41,0x3c,0x4b,0x66,
+0x7b,0x76,0x6c,0x61,0x4f,0x3b,0x3b,0x4e,0x41,0x3e,0x35,0x2e,0x3a,0x53,0x67,0x6c,
+0x77,0x68,0x61,0x69,0x68,0x57,0x48,0x43,0x35,0x2d,0x33,0x44,0x52,0x56,0x4e,0x40,
+0x52,0x55,0x56,0x55,0x57,0x5a,0x5a,0x58,0x56,0x5e,0x64,0x61,0x5d,0x58,0x50,0x47,
+0x4e,0x4c,0x4b,0x4c,0x4c,0x4b,0x4c,0x4f,0x53,0x4d,0x45,0x42,0x46,0x4b,0x49,0x44,
+0x48,0x4a,0x4b,0x49,0x45,0x41,0x3e,0x3d,0x4d,0x4d,0x4d,0x4c,0x4b,0x4e,0x54,0x5b,
+0x60,0x59,0x57,0x56,0x50,0x4e,0x4c,0x46,0x4d,0x48,0x48,0x51,0x5e,0x60,0x56,0x4a,
+0x49,0x49,0x49,0x4a,0x4b,0x4d,0x4f,0x50,0x4e,0x51,0x54,0x56,0x59,0x5b,0x58,0x53,
+0x48,0x4f,0x59,0x62,0x65,0x5f,0x53,0x4b,0x49,0x46,0x45,0x48,0x49,0x49,0x4a,0x4e,
+0x4e,0x4f,0x50,0x52,0x57,0x5d,0x61,0x63,0x5e,0x5f,0x61,0x61,0x5f,0x5a,0x57,0x55,
+0x52,0x54,0x57,0x5a,0x57,0x4e,0x45,0x40,0x46,0x4b,0x4f,0x4b,0x43,0x3e,0x3f,0x43,
+0x40,0x3d,0x43,0x50,0x57,0x54,0x51,0x53,0x47,0x51,0x57,0x53,0x4e,0x52,0x5e,0x68,
+0x72,0x70,0x6c,0x66,0x5e,0x54,0x4b,0x44,0x44,0x45,0x47,0x46,0x41,0x3b,0x3a,0x3d,
+0x40,0x42,0x46,0x49,0x4a,0x48,0x47,0x48,0x46,0x48,0x4c,0x52,0x5a,0x61,0x68,0x6b,
+0x5e,0x5e,0x5f,0x61,0x62,0x63,0x64,0x64,0x60,0x5a,0x53,0x52,0x57,0x5e,0x64,0x67,
+0x61,0x60,0x5f,0x61,0x65,0x66,0x65,0x63,0x62,0x5b,0x58,0x5c,0x5c,0x57,0x58,0x5f,
+0x5e,0x5d,0x5a,0x58,0x59,0x5b,0x5f,0x62,0x67,0x6a,0x6a,0x63,0x59,0x57,0x5d,0x64,
+0x63,0x64,0x67,0x6a,0x6a,0x68,0x69,0x6c,0x70,0x6e,0x6e,0x6e,0x6d,0x68,0x63,0x60,
+0x67,0x66,0x64,0x60,0x5a,0x5a,0x63,0x6d,0x71,0x75,0x78,0x78,0x72,0x6a,0x64,0x60,
+0x63,0x60,0x5f,0x5f,0x5f,0x5e,0x5f,0x62,0x66,0x68,0x66,0x60,0x5c,0x5a,0x58,0x56,
+0x5d,0x5c,0x5c,0x5d,0x5e,0x5e,0x5f,0x60,0x62,0x64,0x5f,0x56,0x51,0x53,0x54,0x51,
+0x57,0x56,0x53,0x4e,0x4c,0x53,0x61,0x6d,0x7a,0x7d,0x7f,0x7e,0x7b,0x7a,0x7b,0x7c,
+0x7e,0x7d,0x7b,0x79,0x76,0x73,0x71,0x70,0x72,0x71,0x72,0x74,0x75,0x75,0x77,0x7b,
+0x7f,0x81,0x84,0x87,0x89,0x8a,0x8a,0x8a,0x87,0x85,0x82,0x80,0x80,0x80,0x7f,0x7f,
+0x7c,0x7a,0x77,0x74,0x72,0x72,0x72,0x72,0x6e,0x6d,0x6b,0x69,0x67,0x65,0x64,0x64,
+0x67,0x68,0x69,0x68,0x67,0x67,0x67,0x68,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6f,0x70,0x71,0x73,0x75,0x77,0x79,0x79,0x79,0x7b,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7d,0x7c,0x7a,0x79,0x78,0x76,0x74,0x72,0x74,0x72,0x6f,0x6d,0x6b,0x69,0x66,0x65,
+0x63,0x62,0x60,0x5e,0x5d,0x5c,0x5c,0x5d,0x5d,0x5c,0x5b,0x5a,0x5b,0x5b,0x5b,0x5a,
+0x59,0x58,0x57,0x56,0x56,0x55,0x54,0x53,0x59,0x53,0x51,0x54,0x54,0x4d,0x45,0x40,
+0x38,0x39,0x3c,0x43,0x48,0x46,0x3c,0x33,0x35,0x35,0x35,0x34,0x32,0x34,0x37,0x3a,
+0x3a,0x43,0x4a,0x4b,0x4a,0x48,0x44,0x3e,0x39,0x43,0x54,0x64,0x66,0x5b,0x52,0x51,
+0x4f,0x52,0x5d,0x6e,0x7b,0x81,0x84,0x86,0x83,0x72,0x6a,0x6f,0x6d,0x5d,0x4e,0x4b,
+0x46,0x4c,0x4c,0x45,0x42,0x45,0x48,0x47,0x4c,0x49,0x43,0x3f,0x42,0x46,0x3f,0x34,
+0x32,0x2e,0x33,0x3e,0x3c,0x34,0x37,0x44,0x48,0x3d,0x3f,0x4f,0x58,0x50,0x46,0x44,
+0x4d,0x4a,0x45,0x3f,0x39,0x38,0x3f,0x48,0x4f,0x55,0x50,0x44,0x3e,0x3a,0x39,0x3e,
+0x42,0x51,0x58,0x4f,0x44,0x44,0x49,0x4b,0x4e,0x51,0x57,0x60,0x69,0x6d,0x69,0x63,
+0x64,0x68,0x6b,0x69,0x61,0x57,0x4e,0x4a,0x4f,0x4d,0x4a,0x47,0x48,0x50,0x5c,0x65,
+0x54,0x3b,0x32,0x49,0x5f,0x5e,0x55,0x52,0x4c,0x50,0x57,0x5b,0x55,0x47,0x3a,0x33,
+0x3e,0x4d,0x4b,0x49,0x4b,0x51,0x54,0x46,0x36,0x37,0x34,0x2e,0x28,0x2c,0x46,0x65,
+0x6a,0x6b,0x6a,0x5d,0x5a,0x6e,0x7a,0x6b,0x54,0x50,0x45,0x40,0x42,0x46,0x52,0x64,
+0x73,0x7d,0x73,0x5f,0x5d,0x64,0x5d,0x52,0x40,0x3b,0x32,0x30,0x41,0x5d,0x70,0x75,
+0x70,0x67,0x67,0x6c,0x65,0x53,0x4b,0x4e,0x32,0x21,0x1b,0x27,0x3e,0x5a,0x6d,0x71,
+0x5a,0x5b,0x57,0x50,0x4c,0x4e,0x4e,0x4b,0x54,0x4f,0x4d,0x53,0x5e,0x62,0x58,0x4b,
+0x50,0x4d,0x4b,0x4b,0x4a,0x47,0x47,0x49,0x55,0x55,0x50,0x47,0x43,0x47,0x50,0x56,
+0x52,0x50,0x4e,0x4e,0x4f,0x4f,0x4b,0x47,0x44,0x45,0x48,0x4c,0x4f,0x50,0x54,0x58,
+0x5e,0x59,0x59,0x57,0x51,0x4f,0x4e,0x49,0x4f,0x47,0x43,0x4c,0x5c,0x64,0x5f,0x56,
+0x4d,0x52,0x58,0x5a,0x59,0x57,0x58,0x5a,0x4d,0x4c,0x4d,0x52,0x59,0x5c,0x5c,0x5b,
+0x55,0x5c,0x66,0x6b,0x69,0x5f,0x52,0x49,0x4b,0x45,0x43,0x46,0x48,0x47,0x49,0x4d,
+0x4d,0x50,0x51,0x51,0x55,0x5b,0x5f,0x61,0x5e,0x5c,0x5c,0x5d,0x59,0x54,0x4f,0x4e,
+0x51,0x53,0x57,0x5b,0x5d,0x5b,0x57,0x54,0x53,0x4e,0x48,0x45,0x46,0x46,0x45,0x44,
+0x40,0x41,0x45,0x4c,0x4e,0x4e,0x52,0x59,0x5c,0x5b,0x57,0x52,0x50,0x51,0x51,0x4f,
+0x4f,0x52,0x57,0x5d,0x5f,0x58,0x4c,0x43,0x45,0x45,0x46,0x46,0x42,0x3e,0x3d,0x40,
+0x41,0x43,0x46,0x47,0x47,0x46,0x45,0x45,0x46,0x4b,0x52,0x57,0x59,0x5d,0x61,0x65,
+0x63,0x62,0x61,0x61,0x61,0x60,0x5e,0x5d,0x59,0x53,0x4e,0x4f,0x57,0x5e,0x61,0x61,
+0x63,0x61,0x5e,0x5d,0x5e,0x60,0x61,0x62,0x65,0x63,0x63,0x65,0x63,0x5d,0x5c,0x60,
+0x61,0x5e,0x5a,0x57,0x58,0x5e,0x67,0x6d,0x6c,0x6b,0x68,0x63,0x5f,0x5f,0x5e,0x5c,
+0x5f,0x61,0x65,0x67,0x65,0x62,0x62,0x65,0x6a,0x68,0x67,0x67,0x68,0x68,0x67,0x65,
+0x62,0x64,0x66,0x62,0x5b,0x59,0x61,0x6b,0x6e,0x71,0x74,0x73,0x6f,0x68,0x61,0x5c,
+0x5d,0x5b,0x5c,0x5f,0x61,0x61,0x63,0x66,0x66,0x68,0x66,0x62,0x5f,0x5e,0x5c,0x5a,
+0x67,0x64,0x61,0x60,0x5e,0x5c,0x5d,0x5f,0x5e,0x5d,0x58,0x51,0x4e,0x4e,0x4e,0x4d,
+0x4f,0x50,0x4f,0x4c,0x4b,0x53,0x64,0x71,0x78,0x7c,0x7f,0x7f,0x7b,0x79,0x7b,0x7e,
+0x7c,0x7b,0x7a,0x78,0x75,0x73,0x71,0x6f,0x73,0x72,0x72,0x74,0x74,0x74,0x77,0x7b,
+0x7f,0x81,0x84,0x87,0x89,0x8a,0x8a,0x8a,0x89,0x86,0x82,0x7f,0x7e,0x7e,0x7e,0x7e,
+0x7d,0x7a,0x76,0x72,0x70,0x70,0x71,0x72,0x6f,0x6e,0x6c,0x6b,0x69,0x68,0x68,0x67,
+0x6b,0x6b,0x6b,0x69,0x67,0x65,0x65,0x65,0x6b,0x6a,0x6a,0x6a,0x6a,0x6c,0x6d,0x6e,
+0x6f,0x70,0x72,0x75,0x78,0x7b,0x7d,0x7e,0x7c,0x7e,0x80,0x81,0x81,0x81,0x81,0x81,
+0x7f,0x7e,0x7c,0x7b,0x7b,0x7a,0x77,0x76,0x76,0x74,0x71,0x6e,0x6b,0x69,0x66,0x64,
+0x63,0x61,0x60,0x5e,0x5d,0x5c,0x5c,0x5c,0x5e,0x5c,0x5b,0x5b,0x5b,0x5c,0x5b,0x5a,
+0x58,0x57,0x56,0x56,0x56,0x55,0x54,0x53,0x54,0x50,0x4a,0x48,0x4b,0x4a,0x41,0x37,
+0x38,0x3b,0x42,0x48,0x4b,0x48,0x3f,0x37,0x32,0x32,0x33,0x34,0x35,0x38,0x3c,0x3f,
+0x3b,0x43,0x47,0x46,0x47,0x4c,0x4b,0x46,0x3e,0x43,0x55,0x6a,0x71,0x63,0x52,0x49,
+0x30,0x34,0x3f,0x4b,0x52,0x55,0x5d,0x67,0x67,0x70,0x73,0x6c,0x60,0x58,0x52,0x4d,
+0x4a,0x4b,0x49,0x45,0x43,0x45,0x49,0x4a,0x4f,0x4b,0x43,0x3e,0x44,0x4c,0x49,0x3f,
+0x30,0x2a,0x2f,0x3c,0x3c,0x34,0x39,0x47,0x49,0x49,0x47,0x47,0x50,0x5b,0x5a,0x52,
+0x4a,0x47,0x43,0x40,0x3c,0x3d,0x44,0x4c,0x51,0x5a,0x57,0x4c,0x46,0x41,0x3e,0x40,
+0x48,0x56,0x5f,0x58,0x4c,0x4a,0x50,0x55,0x4f,0x52,0x5a,0x66,0x6e,0x6e,0x69,0x65,
+0x67,0x70,0x76,0x6e,0x5d,0x4f,0x4b,0x4e,0x4b,0x4c,0x4b,0x49,0x49,0x4f,0x59,0x61,
+0x53,0x3e,0x3a,0x51,0x64,0x5e,0x4c,0x43,0x42,0x4a,0x57,0x60,0x5c,0x4f,0x42,0x3c,
+0x40,0x4e,0x4b,0x49,0x4e,0x59,0x5f,0x51,0x39,0x39,0x32,0x26,0x21,0x2f,0x49,0x5d,
+0x70,0x6e,0x65,0x58,0x5b,0x6b,0x6a,0x56,0x47,0x49,0x40,0x35,0x33,0x3a,0x48,0x5a,
+0x6f,0x79,0x73,0x66,0x65,0x63,0x55,0x48,0x39,0x35,0x32,0x35,0x44,0x59,0x69,0x6f,
+0x6a,0x6d,0x6c,0x65,0x5f,0x58,0x4d,0x42,0x33,0x21,0x20,0x39,0x58,0x6f,0x75,0x6f,
+0x56,0x58,0x54,0x4c,0x49,0x4d,0x4e,0x4a,0x49,0x4e,0x54,0x56,0x51,0x4c,0x4d,0x51,
+0x4d,0x4c,0x4e,0x51,0x51,0x4d,0x4a,0x4a,0x48,0x4d,0x4f,0x49,0x44,0x46,0x4d,0x53,
+0x5e,0x59,0x55,0x56,0x5a,0x5b,0x56,0x51,0x3d,0x3c,0x3f,0x46,0x4d,0x53,0x5c,0x65,
+0x5c,0x58,0x5a,0x59,0x51,0x4f,0x4f,0x4a,0x47,0x42,0x3e,0x43,0x50,0x5b,0x61,0x62,
+0x5f,0x60,0x61,0x62,0x60,0x5c,0x57,0x53,0x4e,0x48,0x47,0x4f,0x56,0x58,0x58,0x59,
+0x5f,0x64,0x69,0x68,0x62,0x58,0x50,0x4b,0x4b,0x44,0x41,0x44,0x46,0x45,0x48,0x4d,
+0x4b,0x4d,0x4e,0x4c,0x4e,0x55,0x5c,0x5e,0x61,0x5d,0x5b,0x5b,0x5b,0x5a,0x5b,0x5e,
+0x5d,0x5d,0x5e,0x60,0x63,0x65,0x64,0x62,0x5d,0x55,0x4c,0x48,0x49,0x49,0x47,0x43,
+0x44,0x45,0x45,0x43,0x41,0x43,0x4a,0x4f,0x59,0x66,0x70,0x6a,0x5a,0x4c,0x45,0x44,
+0x4a,0x43,0x3e,0x41,0x4b,0x54,0x58,0x58,0x46,0x42,0x3f,0x40,0x41,0x40,0x40,0x41,
+0x3f,0x44,0x49,0x4c,0x4c,0x4a,0x48,0x46,0x4b,0x4e,0x53,0x55,0x55,0x57,0x5b,0x5f,
+0x68,0x65,0x61,0x5e,0x5c,0x5a,0x57,0x55,0x56,0x53,0x51,0x53,0x57,0x5b,0x5c,0x5b,
+0x64,0x65,0x66,0x66,0x63,0x62,0x61,0x61,0x67,0x6a,0x6d,0x6c,0x68,0x63,0x62,0x63,
+0x63,0x60,0x5c,0x59,0x59,0x5f,0x67,0x6d,0x6d,0x6e,0x6b,0x65,0x61,0x5f,0x5b,0x56,
+0x5f,0x5e,0x5f,0x61,0x60,0x5e,0x5e,0x5f,0x64,0x65,0x65,0x64,0x64,0x65,0x68,0x69,
+0x65,0x66,0x67,0x64,0x5f,0x5d,0x63,0x6a,0x69,0x69,0x69,0x68,0x66,0x62,0x5d,0x5a,
+0x58,0x58,0x5c,0x62,0x65,0x65,0x65,0x67,0x64,0x67,0x67,0x62,0x5d,0x5c,0x5e,0x5e,
+0x70,0x6b,0x67,0x65,0x61,0x5d,0x5c,0x5e,0x59,0x55,0x52,0x53,0x53,0x51,0x4f,0x4f,
+0x4e,0x50,0x50,0x4f,0x4e,0x53,0x5b,0x62,0x79,0x7b,0x7d,0x7e,0x7d,0x7b,0x7c,0x7c,
+0x78,0x78,0x77,0x76,0x75,0x73,0x72,0x71,0x73,0x72,0x72,0x73,0x73,0x73,0x76,0x7a,
+0x7e,0x80,0x83,0x87,0x89,0x8a,0x8a,0x8a,0x89,0x87,0x83,0x80,0x7f,0x7e,0x7c,0x7c,
+0x7c,0x7a,0x76,0x72,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6b,0x6b,
+0x6e,0x6e,0x6d,0x6b,0x69,0x67,0x67,0x67,0x69,0x68,0x66,0x65,0x66,0x69,0x6b,0x6d,
+0x71,0x73,0x76,0x79,0x7b,0x7c,0x7c,0x7c,0x7c,0x7f,0x82,0x83,0x83,0x82,0x82,0x82,
+0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7a,0x78,0x78,0x75,0x71,0x6e,0x6c,0x69,0x66,0x64,
+0x62,0x61,0x60,0x5f,0x5e,0x5d,0x5c,0x5c,0x5d,0x5c,0x5b,0x5a,0x5b,0x5b,0x5b,0x5a,
+0x58,0x56,0x55,0x55,0x56,0x56,0x55,0x53,0x4c,0x4c,0x46,0x3f,0x44,0x4c,0x4a,0x3f,
+0x36,0x3b,0x41,0x45,0x45,0x40,0x3a,0x36,0x33,0x33,0x33,0x34,0x37,0x3b,0x3d,0x3e,
+0x40,0x45,0x43,0x39,0x39,0x45,0x4e,0x4f,0x4c,0x47,0x4a,0x56,0x5e,0x5d,0x5d,0x60,
+0x69,0x66,0x5d,0x4e,0x43,0x42,0x48,0x4e,0x45,0x57,0x60,0x59,0x50,0x50,0x52,0x50,
+0x4c,0x49,0x47,0x47,0x47,0x47,0x4a,0x4d,0x52,0x51,0x4a,0x43,0x47,0x50,0x50,0x49,
+0x35,0x34,0x38,0x40,0x45,0x44,0x45,0x49,0x4b,0x51,0x4f,0x48,0x4e,0x5d,0x60,0x57,
+0x4c,0x48,0x43,0x40,0x3c,0x39,0x3c,0x40,0x4c,0x56,0x55,0x4b,0x46,0x46,0x46,0x4a,
+0x55,0x5c,0x5f,0x59,0x4f,0x4a,0x4f,0x57,0x4b,0x4f,0x5a,0x68,0x6f,0x6c,0x68,0x66,
+0x64,0x6b,0x6f,0x67,0x58,0x4e,0x4e,0x53,0x40,0x3e,0x39,0x38,0x40,0x4d,0x58,0x5c,
+0x4e,0x3d,0x3b,0x52,0x65,0x61,0x4f,0x43,0x3f,0x49,0x58,0x61,0x5d,0x52,0x49,0x46,
+0x47,0x4e,0x42,0x3b,0x42,0x4f,0x54,0x43,0x38,0x2f,0x2a,0x2c,0x31,0x40,0x56,0x64,
+0x6c,0x6b,0x5c,0x51,0x5b,0x66,0x59,0x45,0x3f,0x42,0x3c,0x34,0x35,0x3e,0x53,0x6c,
+0x74,0x70,0x69,0x66,0x5f,0x4b,0x3d,0x3e,0x32,0x2f,0x2f,0x33,0x3a,0x46,0x57,0x65,
+0x74,0x77,0x70,0x62,0x59,0x56,0x4c,0x3f,0x3b,0x20,0x1a,0x36,0x59,0x6f,0x72,0x6b,
+0x5d,0x5f,0x5a,0x51,0x4d,0x4f,0x4e,0x49,0x4c,0x4a,0x4e,0x58,0x5c,0x58,0x53,0x52,
+0x50,0x4d,0x4b,0x4b,0x4a,0x47,0x47,0x49,0x4d,0x4d,0x4b,0x47,0x45,0x47,0x48,0x48,
+0x50,0x4f,0x50,0x56,0x5c,0x5d,0x57,0x50,0x55,0x48,0x3d,0x40,0x49,0x50,0x54,0x57,
+0x5f,0x5d,0x5f,0x5d,0x54,0x50,0x50,0x4c,0x41,0x40,0x3e,0x3e,0x42,0x4b,0x56,0x5e,
+0x61,0x5e,0x5c,0x60,0x65,0x65,0x5e,0x57,0x4a,0x42,0x42,0x4d,0x56,0x56,0x57,0x5a,
+0x5e,0x60,0x61,0x5d,0x55,0x4d,0x4b,0x4b,0x4a,0x42,0x3f,0x43,0x45,0x44,0x47,0x4c,
+0x49,0x4c,0x4b,0x48,0x4a,0x53,0x5c,0x60,0x5b,0x54,0x50,0x52,0x56,0x5a,0x62,0x6a,
+0x6f,0x6d,0x69,0x65,0x64,0x63,0x61,0x5e,0x5d,0x5a,0x54,0x4d,0x46,0x42,0x41,0x41,
+0x4d,0x4d,0x4b,0x4a,0x4f,0x57,0x5b,0x5b,0x56,0x56,0x55,0x58,0x5e,0x62,0x61,0x5c,
+0x53,0x4b,0x44,0x46,0x50,0x59,0x5a,0x57,0x4d,0x42,0x3a,0x39,0x3c,0x3d,0x3b,0x39,
+0x39,0x42,0x4d,0x54,0x55,0x52,0x4d,0x48,0x48,0x49,0x4b,0x4d,0x51,0x58,0x60,0x66,
+0x66,0x62,0x5d,0x5a,0x5a,0x5a,0x59,0x59,0x56,0x56,0x57,0x57,0x58,0x58,0x57,0x56,
+0x5a,0x61,0x6a,0x6e,0x6d,0x68,0x65,0x63,0x63,0x6a,0x6f,0x6b,0x65,0x63,0x62,0x62,
+0x5e,0x5d,0x5b,0x58,0x56,0x57,0x5b,0x5e,0x5e,0x65,0x68,0x62,0x5b,0x5c,0x60,0x63,
+0x65,0x60,0x5e,0x60,0x62,0x62,0x61,0x61,0x60,0x64,0x66,0x63,0x60,0x61,0x66,0x69,
+0x69,0x67,0x65,0x64,0x60,0x5f,0x62,0x66,0x66,0x64,0x61,0x5f,0x5f,0x5e,0x5b,0x59,
+0x55,0x56,0x5c,0x63,0x65,0x64,0x62,0x63,0x66,0x6b,0x6b,0x64,0x5c,0x5a,0x5f,0x63,
+0x63,0x5f,0x5d,0x5e,0x5c,0x59,0x59,0x5c,0x5b,0x56,0x56,0x5c,0x5f,0x5a,0x56,0x56,
+0x65,0x6a,0x71,0x79,0x80,0x84,0x87,0x88,0x7a,0x7a,0x7b,0x7c,0x7e,0x7e,0x7c,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x78,0x77,0x76,0x73,0x72,0x71,0x72,0x72,0x72,0x75,0x79,
+0x7e,0x80,0x83,0x86,0x89,0x8a,0x8a,0x8a,0x89,0x87,0x84,0x82,0x80,0x7e,0x7b,0x7a,
+0x7c,0x7a,0x77,0x73,0x70,0x6d,0x6b,0x6a,0x6d,0x6d,0x6d,0x6e,0x6e,0x6d,0x6c,0x6c,
+0x69,0x6a,0x6a,0x68,0x67,0x66,0x67,0x68,0x69,0x68,0x66,0x65,0x66,0x69,0x6c,0x6e,
+0x73,0x76,0x79,0x7c,0x7c,0x7b,0x78,0x76,0x7c,0x7e,0x82,0x83,0x82,0x81,0x81,0x82,
+0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x79,0x78,0x75,0x72,0x6e,0x6c,0x69,0x66,0x64,
+0x62,0x61,0x61,0x60,0x5e,0x5d,0x5c,0x5b,0x5d,0x5c,0x5a,0x5a,0x5a,0x5b,0x5a,0x59,
+0x57,0x56,0x54,0x55,0x56,0x56,0x55,0x54,0x4d,0x51,0x4a,0x3e,0x42,0x50,0x52,0x49,
+0x3c,0x41,0x48,0x4a,0x47,0x42,0x3f,0x3d,0x37,0x35,0x34,0x35,0x38,0x3b,0x3b,0x3a,
+0x44,0x47,0x3f,0x2f,0x2c,0x3c,0x4e,0x55,0x5a,0x50,0x4a,0x4a,0x49,0x4e,0x5f,0x73,
+0x7b,0x80,0x7b,0x6c,0x60,0x5a,0x4d,0x3e,0x3f,0x42,0x46,0x47,0x46,0x45,0x48,0x4e,
+0x4b,0x45,0x43,0x46,0x47,0x45,0x47,0x4b,0x53,0x55,0x50,0x46,0x45,0x4d,0x50,0x4b,
+0x41,0x43,0x43,0x45,0x4b,0x50,0x4b,0x41,0x40,0x43,0x45,0x46,0x49,0x4e,0x50,0x4f,
+0x4f,0x4a,0x45,0x41,0x3e,0x3b,0x3d,0x40,0x50,0x5a,0x58,0x4e,0x4e,0x54,0x5c,0x64,
+0x6c,0x6b,0x68,0x62,0x58,0x52,0x55,0x5d,0x4a,0x4e,0x5b,0x6b,0x71,0x6d,0x69,0x69,
+0x70,0x6e,0x6b,0x65,0x5e,0x5a,0x58,0x58,0x4f,0x46,0x3b,0x3a,0x48,0x5d,0x68,0x67,
+0x5c,0x4a,0x42,0x50,0x5f,0x5b,0x49,0x3c,0x42,0x4b,0x56,0x5a,0x51,0x44,0x3c,0x3b,
+0x46,0x49,0x3a,0x36,0x44,0x59,0x61,0x4f,0x3f,0x32,0x38,0x47,0x42,0x3b,0x4d,0x66,
+0x64,0x65,0x55,0x4d,0x61,0x6c,0x5d,0x4e,0x4c,0x3f,0x2f,0x2f,0x3b,0x46,0x55,0x68,
+0x7a,0x71,0x5f,0x57,0x5e,0x5b,0x4c,0x3f,0x40,0x3d,0x3d,0x3f,0x3f,0x46,0x5c,0x72,
+0x6e,0x70,0x6c,0x5a,0x42,0x33,0x37,0x41,0x35,0x23,0x27,0x43,0x58,0x61,0x65,0x65,
+0x7c,0x64,0x50,0x4f,0x51,0x4c,0x4c,0x52,0x56,0x55,0x55,0x55,0x55,0x53,0x51,0x50,
+0x50,0x4f,0x4d,0x4b,0x49,0x49,0x4a,0x4b,0x50,0x51,0x4f,0x4b,0x48,0x48,0x47,0x45,
+0x3f,0x48,0x4c,0x4c,0x52,0x5c,0x5d,0x56,0x53,0x59,0x61,0x65,0x60,0x58,0x57,0x5b,
+0x67,0x6b,0x68,0x5e,0x56,0x52,0x4e,0x48,0x3e,0x38,0x38,0x40,0x49,0x4e,0x52,0x55,
+0x55,0x57,0x5c,0x61,0x61,0x5b,0x57,0x55,0x47,0x46,0x48,0x4d,0x54,0x59,0x60,0x66,
+0x6b,0x66,0x5e,0x56,0x4f,0x4b,0x4a,0x4a,0x4d,0x4b,0x47,0x43,0x42,0x45,0x49,0x4d,
+0x4b,0x49,0x48,0x4b,0x52,0x5a,0x62,0x66,0x54,0x52,0x4d,0x49,0x4a,0x53,0x61,0x6b,
+0x6c,0x69,0x65,0x63,0x63,0x60,0x5c,0x58,0x55,0x57,0x57,0x51,0x48,0x43,0x43,0x45,
+0x46,0x45,0x46,0x4d,0x58,0x64,0x6f,0x76,0x61,0x4b,0x37,0x39,0x48,0x58,0x66,0x6f,
+0x6a,0x68,0x60,0x56,0x56,0x5c,0x57,0x4e,0x48,0x44,0x3f,0x3e,0x40,0x41,0x40,0x3e,
+0x3f,0x46,0x4e,0x51,0x4e,0x48,0x46,0x48,0x49,0x52,0x57,0x56,0x56,0x5b,0x5e,0x5d,
+0x61,0x5f,0x5c,0x5c,0x5c,0x5b,0x58,0x55,0x51,0x53,0x55,0x59,0x5c,0x5e,0x5e,0x5e,
+0x65,0x6a,0x6e,0x6d,0x6b,0x6a,0x69,0x67,0x6b,0x70,0x71,0x6c,0x66,0x63,0x63,0x62,
+0x62,0x61,0x5d,0x57,0x55,0x57,0x5a,0x5b,0x5c,0x5d,0x5f,0x5e,0x5c,0x5b,0x5c,0x5e,
+0x66,0x62,0x5f,0x5f,0x5f,0x61,0x65,0x69,0x62,0x67,0x68,0x63,0x61,0x65,0x6d,0x72,
+0x7b,0x79,0x70,0x63,0x5b,0x5d,0x61,0x64,0x65,0x62,0x5e,0x5d,0x5e,0x5d,0x5a,0x57,
+0x5c,0x5e,0x64,0x68,0x68,0x65,0x64,0x66,0x69,0x72,0x73,0x67,0x5f,0x5f,0x61,0x5f,
+0x5a,0x5f,0x5d,0x5a,0x59,0x54,0x53,0x59,0x68,0x76,0x88,0x97,0xa3,0xac,0xae,0xac,
+0xa8,0xa9,0xa1,0x95,0x8f,0x8f,0x89,0x7f,0x7d,0x7b,0x7b,0x7d,0x7c,0x79,0x78,0x7c,
+0x79,0x7b,0x7d,0x7d,0x7b,0x79,0x77,0x76,0x73,0x73,0x74,0x74,0x74,0x74,0x76,0x78,
+0x7c,0x7f,0x82,0x85,0x87,0x89,0x8b,0x8c,0x8c,0x89,0x85,0x82,0x7f,0x7d,0x7a,0x79,
+0x76,0x76,0x75,0x74,0x72,0x70,0x6f,0x6e,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6c,0x6b,
+0x6a,0x69,0x68,0x66,0x66,0x66,0x67,0x68,0x67,0x68,0x68,0x69,0x6a,0x6c,0x6d,0x6e,
+0x73,0x73,0x75,0x77,0x7a,0x7b,0x7a,0x79,0x80,0x80,0x81,0x82,0x82,0x81,0x80,0x80,
+0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7c,0x7b,0x78,0x76,0x73,0x70,0x6d,0x6a,0x67,0x65,
+0x63,0x61,0x5f,0x5d,0x5b,0x5a,0x5a,0x5a,0x5e,0x5d,0x5b,0x5b,0x5b,0x5b,0x5a,0x59,
+0x57,0x59,0x58,0x55,0x55,0x55,0x52,0x4d,0x49,0x48,0x45,0x41,0x44,0x4c,0x54,0x58,
+0x50,0x53,0x51,0x48,0x44,0x46,0x45,0x40,0x37,0x32,0x2f,0x33,0x39,0x3c,0x3c,0x3a,
+0x41,0x47,0x3f,0x31,0x31,0x39,0x43,0x4c,0x54,0x5d,0x60,0x5b,0x5c,0x63,0x65,0x60,
+0x64,0x73,0x7e,0x7c,0x75,0x70,0x6c,0x67,0x60,0x54,0x49,0x45,0x40,0x3b,0x3f,0x48,
+0x4c,0x4a,0x49,0x49,0x47,0x46,0x49,0x4e,0x54,0x53,0x4f,0x49,0x48,0x4b,0x4e,0x4e,
+0x4e,0x50,0x50,0x51,0x53,0x53,0x4e,0x48,0x3f,0x39,0x3a,0x47,0x52,0x52,0x4e,0x4c,
+0x45,0x49,0x47,0x43,0x44,0x43,0x41,0x45,0x4e,0x59,0x5c,0x56,0x59,0x68,0x70,0x6e,
+0x70,0x6b,0x62,0x59,0x54,0x55,0x5a,0x5f,0x4e,0x51,0x5e,0x6e,0x6f,0x66,0x65,0x6b,
+0x69,0x6f,0x6c,0x62,0x5e,0x61,0x5d,0x53,0x4a,0x4c,0x4c,0x4e,0x58,0x63,0x61,0x57,
+0x46,0x35,0x40,0x51,0x61,0x5d,0x41,0x39,0x3e,0x50,0x4e,0x51,0x50,0x52,0x46,0x4c,
+0x50,0x50,0x45,0x40,0x4e,0x5b,0x5a,0x56,0x48,0x55,0x4d,0x38,0x37,0x49,0x5b,0x65,
+0x79,0x78,0x67,0x53,0x4a,0x3f,0x3b,0x46,0x43,0x3b,0x37,0x39,0x37,0x3a,0x4f,0x67,
+0x76,0x60,0x50,0x51,0x56,0x51,0x4a,0x47,0x3e,0x3f,0x3e,0x39,0x3d,0x53,0x67,0x68,
+0x69,0x6d,0x6d,0x61,0x4c,0x3a,0x35,0x38,0x22,0x21,0x2f,0x42,0x4c,0x55,0x62,0x6a,
+0x74,0x57,0x42,0x47,0x55,0x59,0x56,0x55,0x5d,0x59,0x55,0x53,0x53,0x54,0x53,0x52,
+0x4d,0x4a,0x47,0x44,0x45,0x48,0x4e,0x52,0x4e,0x4f,0x4e,0x4c,0x4b,0x4b,0x49,0x46,
+0x44,0x47,0x46,0x41,0x44,0x52,0x5f,0x64,0x6d,0x69,0x6a,0x6e,0x6c,0x65,0x62,0x65,
+0x74,0x76,0x76,0x73,0x6c,0x63,0x57,0x4d,0x47,0x44,0x45,0x4d,0x52,0x51,0x4e,0x4c,
+0x52,0x4f,0x4f,0x53,0x56,0x56,0x57,0x59,0x53,0x50,0x4e,0x51,0x56,0x5d,0x65,0x6c,
+0x6e,0x68,0x5f,0x55,0x4f,0x4d,0x4d,0x4f,0x4b,0x4a,0x48,0x45,0x44,0x44,0x47,0x49,
+0x49,0x4f,0x57,0x5d,0x5e,0x5a,0x54,0x50,0x52,0x4e,0x48,0x43,0x45,0x4e,0x5a,0x63,
+0x69,0x67,0x63,0x5f,0x5b,0x57,0x55,0x54,0x52,0x55,0x55,0x50,0x47,0x42,0x41,0x43,
+0x4a,0x49,0x47,0x47,0x50,0x5d,0x67,0x6b,0x6f,0x69,0x5f,0x55,0x52,0x52,0x52,0x51,
+0x4b,0x50,0x55,0x5b,0x60,0x60,0x54,0x46,0x3e,0x3e,0x41,0x46,0x4b,0x4a,0x44,0x3e,
+0x39,0x3f,0x48,0x4e,0x4c,0x48,0x46,0x46,0x49,0x4d,0x50,0x4f,0x4e,0x50,0x51,0x50,
+0x53,0x53,0x53,0x55,0x58,0x59,0x56,0x54,0x51,0x53,0x57,0x5a,0x5d,0x5c,0x5b,0x59,
+0x66,0x69,0x69,0x66,0x64,0x65,0x67,0x68,0x6f,0x73,0x74,0x71,0x6c,0x6a,0x69,0x67,
+0x62,0x61,0x5d,0x58,0x59,0x5e,0x62,0x64,0x60,0x62,0x63,0x63,0x60,0x5e,0x5d,0x5e,
+0x61,0x5f,0x5d,0x5f,0x60,0x61,0x63,0x67,0x67,0x69,0x69,0x66,0x65,0x69,0x6e,0x70,
+0x75,0x75,0x6f,0x65,0x5e,0x5f,0x62,0x63,0x64,0x61,0x5e,0x5c,0x5b,0x5b,0x5b,0x5a,
+0x61,0x62,0x67,0x6b,0x6c,0x69,0x68,0x69,0x6b,0x6f,0x6e,0x65,0x5d,0x5f,0x63,0x65,
+0x63,0x62,0x5a,0x55,0x5b,0x6b,0x89,0xa8,0xbc,0xb7,0xb0,0xaa,0xa1,0x94,0x88,0x81,
+0x7a,0x7b,0x77,0x70,0x71,0x7b,0x85,0x89,0x80,0x7d,0x7a,0x7a,0x78,0x75,0x76,0x79,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x77,0x75,0x76,0x76,0x75,0x74,0x75,0x77,0x78,
+0x7c,0x7f,0x82,0x85,0x87,0x89,0x8b,0x8d,0x8a,0x88,0x86,0x83,0x80,0x7c,0x77,0x74,
+0x74,0x74,0x73,0x72,0x71,0x70,0x70,0x70,0x6c,0x6a,0x69,0x6a,0x6b,0x6b,0x6b,0x6b,
+0x6c,0x6b,0x69,0x68,0x67,0x67,0x67,0x68,0x68,0x68,0x68,0x68,0x69,0x6a,0x6b,0x6b,
+0x6d,0x6f,0x73,0x76,0x78,0x7a,0x7b,0x7c,0x7f,0x80,0x81,0x82,0x82,0x81,0x80,0x7f,
+0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,0x7b,0x7a,0x76,0x74,0x71,0x6e,0x6b,0x68,0x65,0x63,
+0x61,0x60,0x5e,0x5d,0x5b,0x5b,0x5b,0x5b,0x5d,0x5c,0x5a,0x5a,0x5a,0x5a,0x58,0x57,
+0x56,0x58,0x58,0x55,0x54,0x53,0x4f,0x49,0x45,0x43,0x3f,0x3c,0x3e,0x43,0x4b,0x50,
+0x54,0x56,0x54,0x4d,0x48,0x47,0x45,0x41,0x38,0x33,0x2f,0x30,0x34,0x38,0x39,0x39,
+0x3f,0x47,0x44,0x39,0x39,0x3f,0x46,0x4e,0x56,0x60,0x6d,0x79,0x82,0x81,0x70,0x5e,
+0x67,0x63,0x60,0x62,0x68,0x70,0x77,0x7c,0x6a,0x5f,0x52,0x49,0x40,0x3a,0x3d,0x44,
+0x4e,0x4f,0x50,0x4e,0x4c,0x4c,0x4f,0x51,0x51,0x51,0x4f,0x4b,0x49,0x4a,0x4a,0x49,
+0x51,0x52,0x54,0x56,0x58,0x59,0x59,0x59,0x4d,0x44,0x40,0x47,0x4e,0x4e,0x4b,0x4a,
+0x49,0x52,0x50,0x48,0x46,0x45,0x46,0x4c,0x57,0x5d,0x5d,0x56,0x54,0x5a,0x5b,0x57,
+0x50,0x4c,0x4c,0x54,0x5e,0x61,0x5a,0x51,0x40,0x49,0x5b,0x6b,0x6e,0x68,0x66,0x6a,
+0x73,0x72,0x67,0x58,0x53,0x59,0x5c,0x57,0x50,0x52,0x4e,0x4b,0x50,0x5a,0x5d,0x58,
+0x4d,0x38,0x40,0x53,0x63,0x5c,0x3c,0x32,0x43,0x53,0x4e,0x51,0x51,0x53,0x46,0x4a,
+0x4f,0x4c,0x43,0x46,0x59,0x65,0x60,0x59,0x64,0x62,0x4f,0x39,0x38,0x4a,0x62,0x75,
+0x75,0x6d,0x57,0x41,0x38,0x3b,0x43,0x4d,0x50,0x43,0x37,0x36,0x3a,0x42,0x53,0x63,
+0x56,0x4d,0x4b,0x52,0x55,0x4e,0x4a,0x4b,0x3f,0x2a,0x24,0x35,0x47,0x58,0x6b,0x77,
+0x78,0x73,0x68,0x5b,0x4d,0x3e,0x2e,0x22,0x1d,0x18,0x27,0x4b,0x6d,0x7e,0x80,0x79,
+0x66,0x5a,0x53,0x54,0x55,0x53,0x54,0x58,0x58,0x53,0x4d,0x4b,0x4d,0x50,0x51,0x50,
+0x4f,0x4b,0x46,0x42,0x42,0x45,0x4a,0x4d,0x4a,0x4b,0x4a,0x49,0x4a,0x4c,0x49,0x46,
+0x44,0x46,0x45,0x42,0x40,0x45,0x50,0x5b,0x67,0x61,0x64,0x70,0x72,0x66,0x5a,0x57,
+0x63,0x63,0x67,0x70,0x75,0x6e,0x61,0x58,0x45,0x44,0x48,0x50,0x57,0x57,0x55,0x53,
+0x4b,0x46,0x43,0x47,0x4f,0x55,0x59,0x5c,0x63,0x5f,0x5d,0x5e,0x60,0x63,0x68,0x6d,
+0x68,0x64,0x5e,0x58,0x53,0x52,0x52,0x53,0x4d,0x4c,0x49,0x46,0x44,0x45,0x47,0x4a,
+0x54,0x58,0x5c,0x5c,0x57,0x50,0x49,0x46,0x49,0x46,0x43,0x44,0x4a,0x52,0x5a,0x60,
+0x61,0x60,0x5f,0x5b,0x57,0x55,0x56,0x57,0x57,0x5b,0x5d,0x59,0x50,0x49,0x47,0x48,
+0x47,0x48,0x42,0x39,0x3a,0x43,0x4a,0x49,0x4e,0x58,0x5f,0x60,0x63,0x68,0x66,0x5f,
+0x48,0x45,0x46,0x4d,0x56,0x58,0x53,0x4c,0x4e,0x46,0x3e,0x3b,0x3f,0x44,0x45,0x43,
+0x45,0x46,0x49,0x4c,0x4a,0x45,0x42,0x42,0x4d,0x4e,0x51,0x55,0x55,0x51,0x4e,0x4e,
+0x4b,0x4c,0x4f,0x53,0x58,0x59,0x57,0x54,0x50,0x51,0x53,0x55,0x56,0x56,0x55,0x54,
+0x5e,0x61,0x62,0x60,0x5e,0x60,0x63,0x64,0x6e,0x71,0x73,0x72,0x71,0x70,0x6d,0x69,
+0x5c,0x5c,0x5b,0x5b,0x5f,0x65,0x67,0x66,0x64,0x65,0x65,0x64,0x61,0x5e,0x5d,0x5c,
+0x5d,0x5c,0x5c,0x5f,0x61,0x61,0x62,0x65,0x6c,0x6d,0x6c,0x6a,0x6b,0x6e,0x6f,0x6e,
+0x71,0x71,0x6e,0x68,0x63,0x62,0x63,0x64,0x62,0x61,0x5e,0x5b,0x59,0x5b,0x5e,0x61,
+0x5f,0x5e,0x61,0x67,0x6a,0x6a,0x6a,0x6b,0x69,0x6a,0x68,0x62,0x5c,0x5b,0x60,0x65,
+0x6b,0x6f,0x77,0x8d,0xa9,0xb4,0xb1,0xb0,0xa3,0x94,0x86,0x81,0x7f,0x78,0x74,0x73,
+0x6f,0x68,0x64,0x6c,0x7c,0x8a,0x8f,0x8e,0x84,0x7f,0x7a,0x77,0x74,0x71,0x72,0x74,
+0x78,0x77,0x76,0x76,0x77,0x78,0x78,0x78,0x78,0x78,0x77,0x75,0x74,0x74,0x76,0x78,
+0x7c,0x7e,0x82,0x85,0x88,0x8a,0x8c,0x8e,0x89,0x88,0x86,0x84,0x80,0x7b,0x75,0x71,
+0x72,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6b,0x6b,
+0x6c,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x67,0x69,0x68,0x68,0x67,0x67,0x67,0x67,0x68,
+0x6a,0x6d,0x72,0x75,0x76,0x78,0x7b,0x7d,0x7e,0x7f,0x81,0x82,0x82,0x81,0x80,0x7f,
+0x80,0x80,0x80,0x7f,0x7e,0x7c,0x7a,0x79,0x73,0x70,0x6d,0x6b,0x68,0x66,0x63,0x60,
+0x5f,0x5e,0x5d,0x5c,0x5b,0x5b,0x5c,0x5c,0x5c,0x5b,0x5a,0x5a,0x5a,0x59,0x57,0x56,
+0x53,0x54,0x54,0x53,0x55,0x57,0x56,0x54,0x4f,0x48,0x44,0x44,0x44,0x46,0x4e,0x57,
+0x53,0x52,0x50,0x4d,0x4a,0x47,0x45,0x44,0x3b,0x36,0x30,0x2e,0x30,0x35,0x38,0x38,
+0x40,0x49,0x46,0x3d,0x3c,0x40,0x47,0x50,0x5a,0x5d,0x66,0x73,0x7e,0x7f,0x77,0x6f,
+0x61,0x58,0x54,0x5a,0x60,0x62,0x66,0x6c,0x6b,0x64,0x59,0x4e,0x45,0x41,0x41,0x42,
+0x47,0x4d,0x50,0x4d,0x4c,0x4e,0x4f,0x4c,0x4c,0x4e,0x4e,0x4c,0x4b,0x4c,0x4a,0x48,
+0x46,0x47,0x4d,0x53,0x54,0x51,0x52,0x58,0x4e,0x48,0x46,0x4b,0x4f,0x4e,0x4e,0x4f,
+0x52,0x5f,0x5d,0x4f,0x47,0x47,0x4e,0x56,0x5b,0x5c,0x5a,0x57,0x55,0x54,0x50,0x4b,
+0x48,0x47,0x4d,0x5b,0x69,0x69,0x5c,0x4d,0x4a,0x57,0x67,0x6f,0x6f,0x6b,0x6a,0x6b,
+0x71,0x6e,0x62,0x54,0x50,0x56,0x58,0x56,0x50,0x52,0x4c,0x44,0x46,0x53,0x5d,0x5e,
+0x59,0x45,0x4a,0x5b,0x63,0x56,0x3f,0x3d,0x41,0x4b,0x43,0x46,0x47,0x49,0x3b,0x3f,
+0x57,0x50,0x47,0x4e,0x62,0x67,0x5d,0x54,0x58,0x56,0x4b,0x43,0x49,0x55,0x66,0x78,
+0x74,0x68,0x57,0x46,0x40,0x4d,0x58,0x57,0x45,0x3e,0x35,0x32,0x3b,0x4d,0x61,0x6e,
+0x61,0x57,0x4f,0x4a,0x42,0x3a,0x3b,0x43,0x44,0x32,0x2d,0x3d,0x57,0x71,0x7f,0x7f,
+0x78,0x76,0x6b,0x5a,0x4a,0x3f,0x35,0x2c,0x2c,0x26,0x2e,0x4b,0x6b,0x79,0x74,0x6b,
+0x4d,0x53,0x59,0x57,0x50,0x4d,0x55,0x60,0x5c,0x56,0x4e,0x49,0x49,0x4a,0x49,0x47,
+0x4f,0x4c,0x48,0x45,0x45,0x46,0x48,0x49,0x48,0x47,0x44,0x42,0x44,0x47,0x46,0x42,
+0x45,0x45,0x47,0x48,0x45,0x42,0x47,0x50,0x5c,0x59,0x62,0x72,0x74,0x67,0x5d,0x5d,
+0x63,0x5e,0x61,0x6f,0x7a,0x76,0x6b,0x64,0x58,0x54,0x51,0x51,0x53,0x54,0x53,0x52,
+0x54,0x4f,0x4e,0x56,0x60,0x66,0x69,0x6a,0x62,0x60,0x61,0x63,0x62,0x5f,0x5d,0x5e,
+0x5b,0x5b,0x5c,0x5c,0x5b,0x59,0x57,0x55,0x56,0x53,0x4e,0x49,0x47,0x48,0x4c,0x4f,
+0x5b,0x5b,0x57,0x51,0x4b,0x48,0x4a,0x4d,0x46,0x45,0x45,0x49,0x50,0x55,0x57,0x57,
+0x57,0x57,0x59,0x5b,0x5d,0x5f,0x60,0x60,0x58,0x5c,0x5e,0x5a,0x51,0x49,0x45,0x44,
+0x4e,0x56,0x53,0x45,0x3e,0x42,0x45,0x42,0x47,0x4b,0x51,0x5c,0x6b,0x77,0x79,0x73,
+0x5d,0x50,0x42,0x3f,0x44,0x49,0x4e,0x51,0x4d,0x47,0x42,0x42,0x45,0x46,0x42,0x3d,
+0x51,0x4c,0x49,0x4a,0x47,0x42,0x40,0x42,0x46,0x45,0x4b,0x54,0x56,0x50,0x4a,0x4a,
+0x50,0x51,0x53,0x58,0x5b,0x5b,0x58,0x55,0x52,0x52,0x51,0x50,0x4f,0x50,0x51,0x53,
+0x51,0x58,0x5f,0x61,0x61,0x61,0x61,0x5f,0x66,0x69,0x6b,0x6d,0x6f,0x70,0x6c,0x67,
+0x58,0x5a,0x5c,0x60,0x66,0x6b,0x6a,0x65,0x68,0x66,0x64,0x61,0x5f,0x5e,0x5d,0x5d,
+0x5b,0x5a,0x5b,0x5e,0x60,0x60,0x62,0x64,0x6c,0x6e,0x6f,0x6d,0x6e,0x70,0x70,0x6f,
+0x6f,0x6f,0x6d,0x69,0x65,0x64,0x65,0x65,0x63,0x62,0x5f,0x5c,0x59,0x5c,0x62,0x68,
+0x65,0x61,0x5f,0x61,0x64,0x65,0x66,0x67,0x67,0x65,0x63,0x61,0x5c,0x58,0x5a,0x60,
+0x6d,0x98,0xbc,0xc5,0xbe,0xb2,0xa7,0xa3,0x95,0x88,0x79,0x70,0x6e,0x6c,0x6b,0x6a,
+0x68,0x67,0x6f,0x82,0x91,0x94,0x8c,0x85,0x85,0x81,0x7b,0x76,0x72,0x6f,0x6d,0x6d,
+0x72,0x74,0x75,0x76,0x75,0x76,0x77,0x79,0x78,0x78,0x77,0x76,0x74,0x74,0x76,0x77,
+0x7c,0x7e,0x82,0x86,0x88,0x8a,0x8c,0x8e,0x8b,0x8a,0x88,0x85,0x82,0x7d,0x78,0x74,
+0x71,0x70,0x6e,0x6d,0x6c,0x6d,0x6e,0x6f,0x6d,0x6b,0x6a,0x6a,0x6b,0x6b,0x6b,0x6a,
+0x6b,0x6b,0x6b,0x6a,0x6a,0x69,0x68,0x67,0x6a,0x69,0x68,0x67,0x66,0x66,0x66,0x66,
+0x6a,0x6e,0x73,0x75,0x75,0x76,0x79,0x7d,0x7e,0x80,0x81,0x83,0x83,0x82,0x80,0x7f,
+0x80,0x80,0x7f,0x7d,0x7b,0x79,0x77,0x76,0x70,0x6e,0x6b,0x68,0x66,0x64,0x61,0x5f,
+0x5e,0x5d,0x5c,0x5b,0x5b,0x5b,0x5b,0x5c,0x5b,0x5a,0x5a,0x5a,0x5a,0x59,0x57,0x55,
+0x5d,0x5a,0x55,0x51,0x50,0x51,0x52,0x52,0x4d,0x43,0x3d,0x3d,0x3c,0x3d,0x46,0x53,
+0x53,0x4d,0x49,0x49,0x4b,0x4c,0x4c,0x4b,0x41,0x3c,0x34,0x2f,0x30,0x36,0x3a,0x3b,
+0x43,0x49,0x44,0x3b,0x39,0x3e,0x46,0x51,0x56,0x53,0x52,0x53,0x52,0x56,0x64,0x72,
+0x85,0x7f,0x76,0x6c,0x5e,0x52,0x4f,0x51,0x62,0x5e,0x55,0x4d,0x4a,0x4b,0x48,0x44,
+0x41,0x4a,0x4f,0x4c,0x4b,0x4f,0x4f,0x49,0x49,0x4c,0x4d,0x4d,0x4d,0x4e,0x4d,0x4b,
+0x46,0x48,0x51,0x59,0x56,0x4e,0x4e,0x56,0x4d,0x4f,0x53,0x56,0x54,0x51,0x52,0x56,
+0x5d,0x6b,0x68,0x54,0x47,0x49,0x54,0x60,0x5d,0x59,0x57,0x58,0x58,0x54,0x4f,0x4c,
+0x51,0x55,0x5c,0x64,0x68,0x65,0x5e,0x58,0x5b,0x68,0x72,0x70,0x6b,0x6b,0x6d,0x6e,
+0x6a,0x6a,0x64,0x5d,0x58,0x56,0x51,0x4a,0x4a,0x4a,0x43,0x3c,0x41,0x53,0x61,0x64,
+0x53,0x44,0x42,0x49,0x40,0x2a,0x22,0x2c,0x4b,0x51,0x44,0x46,0x48,0x4c,0x3f,0x44,
+0x58,0x51,0x49,0x4f,0x5c,0x5d,0x54,0x50,0x56,0x53,0x45,0x39,0x3f,0x4e,0x62,0x74,
+0x6d,0x61,0x57,0x4b,0x47,0x57,0x5c,0x4e,0x39,0x3c,0x37,0x2f,0x33,0x49,0x63,0x72,
+0x76,0x67,0x57,0x4e,0x47,0x44,0x47,0x4e,0x32,0x2f,0x36,0x46,0x58,0x6d,0x78,0x74,
+0x77,0x77,0x6c,0x59,0x4a,0x45,0x42,0x3f,0x2d,0x2d,0x32,0x40,0x54,0x61,0x68,0x70,
+0x4d,0x54,0x5d,0x65,0x6a,0x6a,0x63,0x5c,0x5c,0x54,0x4b,0x45,0x45,0x48,0x4b,0x4c,
+0x48,0x46,0x43,0x43,0x46,0x4a,0x4c,0x4e,0x47,0x46,0x41,0x3d,0x3e,0x41,0x42,0x40,
+0x48,0x44,0x45,0x4a,0x4b,0x49,0x4c,0x53,0x57,0x56,0x5e,0x69,0x6a,0x65,0x69,0x75,
+0x7c,0x74,0x72,0x7a,0x7d,0x75,0x68,0x61,0x66,0x62,0x5c,0x59,0x58,0x5a,0x5a,0x5a,
+0x5a,0x58,0x5a,0x61,0x69,0x6d,0x6e,0x6e,0x62,0x62,0x64,0x67,0x66,0x62,0x5e,0x5e,
+0x58,0x5a,0x5c,0x5d,0x5e,0x5d,0x5b,0x5a,0x5b,0x5a,0x57,0x53,0x50,0x4f,0x50,0x51,
+0x52,0x53,0x52,0x4f,0x4b,0x4b,0x4f,0x53,0x50,0x4c,0x49,0x4a,0x4d,0x4e,0x4d,0x4a,
+0x53,0x52,0x54,0x5a,0x62,0x66,0x65,0x62,0x60,0x63,0x64,0x61,0x5a,0x51,0x4b,0x47,
+0x4f,0x5d,0x62,0x56,0x4b,0x4c,0x4e,0x4b,0x4b,0x41,0x3b,0x40,0x4a,0x54,0x5e,0x65,
+0x61,0x57,0x4b,0x46,0x43,0x42,0x45,0x48,0x48,0x44,0x41,0x44,0x4a,0x4f,0x4f,0x4d,
+0x47,0x43,0x43,0x48,0x49,0x45,0x42,0x45,0x45,0x43,0x48,0x51,0x53,0x4f,0x4c,0x4d,
+0x53,0x53,0x55,0x58,0x5b,0x5a,0x57,0x54,0x57,0x57,0x56,0x54,0x51,0x4e,0x4e,0x4e,
+0x48,0x51,0x5b,0x60,0x62,0x63,0x61,0x5f,0x5f,0x62,0x65,0x68,0x6c,0x6e,0x6a,0x65,
+0x5d,0x5f,0x60,0x64,0x6a,0x6f,0x6e,0x6a,0x6b,0x67,0x62,0x5d,0x5c,0x5d,0x5f,0x61,
+0x5b,0x59,0x59,0x5b,0x5d,0x5d,0x60,0x63,0x69,0x6d,0x6f,0x6e,0x6c,0x6e,0x70,0x70,
+0x6f,0x6d,0x6a,0x67,0x64,0x63,0x63,0x65,0x64,0x64,0x62,0x5e,0x5c,0x5f,0x66,0x6d,
+0x74,0x6d,0x66,0x63,0x63,0x62,0x63,0x64,0x69,0x65,0x61,0x60,0x5d,0x5c,0x60,0x65,
+0x72,0xae,0xd4,0xc6,0xa9,0x97,0x8d,0x87,0x71,0x6f,0x6b,0x65,0x63,0x65,0x65,0x62,
+0x5d,0x6f,0x87,0x96,0x95,0x8c,0x88,0x89,0x84,0x81,0x7c,0x77,0x73,0x6f,0x6b,0x67,
+0x69,0x6f,0x75,0x76,0x74,0x73,0x75,0x79,0x78,0x79,0x79,0x78,0x77,0x77,0x78,0x79,
+0x7c,0x7e,0x82,0x85,0x88,0x8a,0x8c,0x8d,0x8d,0x8c,0x89,0x87,0x84,0x81,0x7d,0x7b,
+0x72,0x71,0x6f,0x6c,0x6b,0x6b,0x6b,0x6b,0x6b,0x6a,0x68,0x68,0x69,0x69,0x69,0x68,
+0x68,0x68,0x69,0x69,0x69,0x69,0x68,0x68,0x6b,0x6a,0x69,0x68,0x67,0x66,0x66,0x66,
+0x6b,0x6f,0x73,0x75,0x76,0x77,0x7b,0x7f,0x7f,0x80,0x82,0x83,0x82,0x81,0x7f,0x7e,
+0x7f,0x7e,0x7d,0x7b,0x78,0x76,0x74,0x73,0x6d,0x6b,0x69,0x66,0x65,0x62,0x60,0x5e,
+0x5e,0x5d,0x5c,0x5b,0x5a,0x5a,0x5a,0x5b,0x59,0x59,0x59,0x5a,0x5a,0x58,0x56,0x53,
+0x51,0x4f,0x4d,0x4d,0x4e,0x50,0x51,0x52,0x58,0x4d,0x46,0x43,0x40,0x3e,0x48,0x56,
+0x57,0x4f,0x47,0x47,0x4d,0x53,0x53,0x50,0x45,0x41,0x38,0x31,0x33,0x3a,0x3e,0x3e,
+0x40,0x45,0x41,0x3b,0x3c,0x3f,0x46,0x51,0x5a,0x59,0x5c,0x5d,0x59,0x54,0x5a,0x65,
+0x6d,0x76,0x7e,0x7f,0x7e,0x7c,0x79,0x75,0x67,0x5d,0x50,0x49,0x4b,0x4f,0x4b,0x44,
+0x43,0x4d,0x53,0x50,0x4f,0x53,0x52,0x4c,0x4b,0x4d,0x4e,0x4c,0x4d,0x4e,0x4e,0x4c,
+0x4c,0x4d,0x53,0x59,0x55,0x4d,0x4f,0x57,0x56,0x5c,0x60,0x5c,0x52,0x4c,0x50,0x58,
+0x64,0x70,0x6a,0x55,0x49,0x4b,0x57,0x66,0x62,0x5b,0x57,0x57,0x57,0x52,0x4c,0x4b,
+0x4b,0x51,0x5a,0x61,0x63,0x61,0x5d,0x5a,0x5c,0x69,0x70,0x6c,0x67,0x69,0x6d,0x6e,
+0x6d,0x6b,0x68,0x64,0x5f,0x58,0x4f,0x47,0x47,0x44,0x3c,0x37,0x41,0x55,0x61,0x61,
+0x4e,0x45,0x43,0x4c,0x47,0x37,0x3a,0x47,0x53,0x55,0x45,0x45,0x46,0x4b,0x43,0x4d,
+0x4f,0x4d,0x49,0x4c,0x55,0x55,0x54,0x58,0x58,0x5b,0x4e,0x3f,0x45,0x58,0x6a,0x77,
+0x6f,0x65,0x5c,0x52,0x4c,0x54,0x52,0x3d,0x39,0x3b,0x31,0x24,0x28,0x42,0x5f,0x6e,
+0x6a,0x5b,0x4f,0x4d,0x4e,0x47,0x3d,0x36,0x2f,0x2d,0x41,0x5c,0x5f,0x5b,0x67,0x78,
+0x79,0x72,0x63,0x55,0x4d,0x48,0x3e,0x32,0x2c,0x2f,0x30,0x3d,0x57,0x68,0x71,0x7d,
+0x5a,0x56,0x4d,0x4c,0x5e,0x7c,0x93,0x9b,0x88,0x7c,0x6a,0x57,0x4a,0x42,0x3f,0x3e,
+0x48,0x44,0x40,0x40,0x42,0x45,0x46,0x46,0x45,0x44,0x41,0x3c,0x3c,0x3f,0x41,0x41,
+0x43,0x42,0x47,0x4f,0x52,0x4d,0x48,0x47,0x48,0x4e,0x58,0x60,0x61,0x60,0x68,0x73,
+0x7d,0x7a,0x7a,0x7d,0x7c,0x76,0x6c,0x66,0x68,0x69,0x69,0x68,0x68,0x68,0x65,0x61,
+0x5d,0x5e,0x62,0x67,0x69,0x67,0x66,0x68,0x61,0x61,0x63,0x67,0x69,0x67,0x67,0x68,
+0x60,0x5f,0x5e,0x5c,0x5c,0x5d,0x5e,0x5f,0x5a,0x5c,0x5d,0x5c,0x58,0x54,0x50,0x4e,
+0x4a,0x4a,0x4a,0x49,0x49,0x4c,0x52,0x57,0x57,0x51,0x4a,0x47,0x48,0x4b,0x4c,0x4b,
+0x51,0x4e,0x4e,0x54,0x5c,0x60,0x5d,0x57,0x66,0x67,0x68,0x68,0x65,0x5e,0x56,0x50,
+0x45,0x52,0x59,0x51,0x49,0x48,0x4a,0x48,0x3e,0x32,0x29,0x26,0x27,0x2d,0x3d,0x4e,
+0x54,0x54,0x52,0x4c,0x45,0x41,0x42,0x45,0x4a,0x45,0x40,0x40,0x47,0x50,0x56,0x59,
+0x3f,0x3e,0x44,0x4f,0x51,0x49,0x44,0x45,0x4d,0x4d,0x4f,0x52,0x53,0x51,0x51,0x52,
+0x4f,0x4e,0x4e,0x51,0x54,0x55,0x54,0x52,0x54,0x57,0x59,0x57,0x52,0x4b,0x47,0x45,
+0x44,0x4c,0x54,0x58,0x5b,0x5e,0x5f,0x5e,0x5e,0x61,0x65,0x68,0x6b,0x6d,0x69,0x65,
+0x60,0x61,0x60,0x61,0x66,0x6d,0x70,0x70,0x6b,0x65,0x5d,0x58,0x57,0x5a,0x5e,0x60,
+0x5c,0x59,0x59,0x5b,0x5c,0x5c,0x5e,0x61,0x67,0x6b,0x6c,0x69,0x67,0x69,0x6c,0x6e,
+0x6d,0x69,0x66,0x64,0x62,0x60,0x61,0x63,0x65,0x65,0x64,0x60,0x5f,0x61,0x67,0x6d,
+0x74,0x6d,0x67,0x64,0x63,0x63,0x66,0x69,0x6c,0x69,0x63,0x60,0x61,0x66,0x6d,0x71,
+0x7c,0xa6,0xbf,0xbe,0xbf,0xb9,0x97,0x72,0x70,0x6e,0x6a,0x63,0x5b,0x57,0x55,0x56,
+0x77,0x86,0x96,0x9b,0x96,0x8f,0x8e,0x90,0x83,0x82,0x7e,0x79,0x75,0x71,0x6b,0x64,
+0x62,0x68,0x6f,0x72,0x70,0x70,0x73,0x76,0x76,0x78,0x7a,0x7b,0x7b,0x7b,0x7c,0x7d,
+0x7c,0x7f,0x82,0x85,0x87,0x88,0x8a,0x8c,0x8e,0x8d,0x8a,0x88,0x87,0x84,0x81,0x7f,
+0x77,0x75,0x73,0x70,0x6e,0x6c,0x6b,0x6a,0x6a,0x68,0x67,0x67,0x67,0x67,0x67,0x66,
+0x67,0x67,0x67,0x67,0x68,0x68,0x68,0x68,0x69,0x69,0x68,0x68,0x68,0x68,0x68,0x68,
+0x6b,0x6e,0x72,0x75,0x78,0x7b,0x7f,0x82,0x80,0x81,0x81,0x81,0x80,0x7f,0x7e,0x7d,
+0x7c,0x7b,0x79,0x77,0x74,0x72,0x70,0x6f,0x6b,0x69,0x67,0x65,0x63,0x61,0x5f,0x5d,
+0x5e,0x5d,0x5b,0x5a,0x5a,0x5a,0x5a,0x5a,0x57,0x58,0x58,0x59,0x5a,0x58,0x54,0x52,
+0x49,0x48,0x4b,0x50,0x53,0x52,0x50,0x50,0x55,0x4e,0x46,0x40,0x39,0x37,0x3e,0x47,
+0x57,0x52,0x4a,0x45,0x49,0x52,0x53,0x4e,0x47,0x42,0x39,0x33,0x37,0x40,0x43,0x40,
+0x3b,0x41,0x41,0x41,0x45,0x48,0x4a,0x51,0x5a,0x58,0x5e,0x6b,0x73,0x6f,0x66,0x5f,
+0x4f,0x58,0x60,0x69,0x79,0x89,0x8e,0x8a,0x76,0x66,0x55,0x4c,0x4e,0x4f,0x4c,0x47,
+0x45,0x4c,0x51,0x4f,0x4d,0x4e,0x4d,0x49,0x4f,0x50,0x50,0x4d,0x4d,0x4e,0x4e,0x4c,
+0x4e,0x4c,0x4d,0x50,0x4e,0x4d,0x51,0x58,0x59,0x5d,0x5d,0x54,0x48,0x45,0x4f,0x5b,
+0x64,0x6b,0x65,0x56,0x4d,0x4d,0x57,0x66,0x64,0x5f,0x5a,0x58,0x57,0x53,0x4f,0x4d,
+0x45,0x49,0x52,0x5e,0x67,0x66,0x5c,0x52,0x60,0x6b,0x73,0x71,0x6c,0x6b,0x6c,0x6c,
+0x6f,0x69,0x64,0x61,0x60,0x5b,0x56,0x53,0x4a,0x45,0x3b,0x37,0x43,0x55,0x5c,0x59,
+0x41,0x39,0x35,0x49,0x54,0x4f,0x53,0x55,0x51,0x51,0x3e,0x39,0x37,0x3d,0x3c,0x4c,
+0x54,0x56,0x52,0x51,0x58,0x5a,0x5a,0x5d,0x51,0x57,0x4f,0x43,0x49,0x57,0x5e,0x62,
+0x6b,0x6c,0x6b,0x61,0x54,0x4c,0x40,0x2f,0x2a,0x27,0x1d,0x18,0x2b,0x4f,0x6d,0x78,
+0x77,0x6b,0x61,0x5f,0x5d,0x53,0x42,0x35,0x27,0x2e,0x42,0x4e,0x47,0x42,0x4b,0x56,
+0x5d,0x59,0x54,0x4e,0x46,0x3c,0x30,0x28,0x2d,0x2b,0x28,0x3e,0x6a,0x7f,0x7b,0x79,
+0x5d,0x6c,0x72,0x66,0x5a,0x5a,0x5e,0x5d,0x73,0x71,0x6d,0x67,0x61,0x5d,0x5c,0x5c,
+0x53,0x51,0x4f,0x4e,0x4c,0x46,0x3f,0x39,0x3d,0x40,0x40,0x3e,0x3c,0x3f,0x42,0x44,
+0x40,0x43,0x49,0x50,0x52,0x4d,0x45,0x3f,0x4a,0x51,0x5a,0x60,0x63,0x65,0x66,0x67,
+0x69,0x6d,0x70,0x71,0x73,0x78,0x7c,0x7e,0x7a,0x7e,0x80,0x7d,0x77,0x6f,0x64,0x5a,
+0x62,0x6a,0x74,0x79,0x73,0x68,0x62,0x61,0x54,0x55,0x5a,0x60,0x62,0x61,0x60,0x61,
+0x63,0x61,0x5f,0x5c,0x5c,0x5d,0x60,0x61,0x5b,0x5c,0x5d,0x5b,0x57,0x52,0x4e,0x4d,
+0x4d,0x4b,0x49,0x48,0x4a,0x4e,0x52,0x56,0x54,0x50,0x4a,0x47,0x48,0x4a,0x4b,0x4c,
+0x4a,0x47,0x46,0x49,0x50,0x53,0x52,0x50,0x59,0x58,0x59,0x5c,0x5f,0x5c,0x54,0x4d,
+0x48,0x4d,0x50,0x50,0x51,0x54,0x58,0x59,0x54,0x4c,0x41,0x37,0x30,0x2f,0x33,0x38,
+0x46,0x50,0x55,0x4c,0x42,0x40,0x45,0x49,0x44,0x47,0x4d,0x52,0x54,0x50,0x49,0x44,
+0x42,0x42,0x49,0x54,0x55,0x4c,0x47,0x49,0x4d,0x54,0x5a,0x5b,0x5a,0x57,0x54,0x50,
+0x4c,0x4a,0x49,0x4b,0x4e,0x51,0x52,0x52,0x4f,0x52,0x54,0x52,0x4d,0x48,0x46,0x46,
+0x48,0x4f,0x55,0x57,0x58,0x5b,0x5d,0x5d,0x60,0x64,0x66,0x67,0x69,0x69,0x67,0x62,
+0x5b,0x5d,0x5f,0x61,0x66,0x6c,0x71,0x71,0x6b,0x65,0x5d,0x57,0x57,0x5a,0x5d,0x5f,
+0x5f,0x5d,0x5e,0x60,0x60,0x5f,0x5f,0x61,0x68,0x68,0x66,0x62,0x62,0x66,0x68,0x68,
+0x6a,0x66,0x64,0x64,0x64,0x61,0x61,0x63,0x65,0x64,0x63,0x61,0x60,0x62,0x66,0x69,
+0x68,0x65,0x63,0x62,0x61,0x61,0x64,0x69,0x69,0x6a,0x67,0x64,0x67,0x6f,0x73,0x72,
+0x7d,0x9f,0xb6,0xbb,0xc3,0xc6,0xb5,0xa0,0x6f,0x5e,0x52,0x51,0x50,0x50,0x5f,0x73,
+0x92,0x95,0x95,0x93,0x93,0x94,0x90,0x89,0x84,0x83,0x7f,0x7a,0x77,0x74,0x6d,0x65,
+0x60,0x62,0x66,0x6a,0x6d,0x6f,0x70,0x72,0x71,0x74,0x78,0x7b,0x7c,0x7d,0x7d,0x7e,
+0x7c,0x7f,0x82,0x84,0x86,0x87,0x89,0x8a,0x8d,0x8c,0x8b,0x8b,0x89,0x86,0x82,0x7f,
+0x7c,0x7b,0x79,0x76,0x73,0x70,0x6e,0x6d,0x6b,0x6a,0x69,0x68,0x69,0x69,0x68,0x67,
+0x68,0x68,0x67,0x66,0x66,0x67,0x68,0x68,0x67,0x67,0x67,0x67,0x68,0x69,0x6a,0x6a,
+0x6d,0x6f,0x72,0x75,0x79,0x7d,0x80,0x82,0x80,0x80,0x7f,0x7e,0x7c,0x7b,0x7b,0x7a,
+0x79,0x78,0x75,0x73,0x70,0x6e,0x6c,0x6b,0x68,0x67,0x64,0x63,0x61,0x60,0x5d,0x5c,
+0x5c,0x5b,0x5a,0x5a,0x5a,0x5a,0x5b,0x5b,0x58,0x59,0x5a,0x5b,0x5c,0x59,0x56,0x53,
+0x59,0x55,0x53,0x53,0x50,0x49,0x44,0x43,0x5a,0x59,0x55,0x4d,0x46,0x43,0x46,0x4a,
+0x50,0x55,0x51,0x46,0x45,0x4d,0x50,0x4a,0x48,0x43,0x3a,0x35,0x3c,0x46,0x48,0x42,
+0x40,0x43,0x42,0x44,0x4b,0x4d,0x4d,0x52,0x4d,0x45,0x43,0x52,0x67,0x70,0x6a,0x5f,
+0x78,0x6e,0x5e,0x51,0x4e,0x54,0x5b,0x5f,0x6f,0x61,0x56,0x53,0x53,0x4e,0x4a,0x48,
+0x4a,0x4c,0x4e,0x4d,0x4a,0x46,0x45,0x44,0x50,0x52,0x53,0x52,0x52,0x53,0x53,0x51,
+0x51,0x51,0x51,0x53,0x55,0x57,0x59,0x5a,0x55,0x56,0x54,0x4c,0x46,0x48,0x54,0x5e,
+0x5d,0x5f,0x5b,0x56,0x54,0x51,0x56,0x62,0x62,0x60,0x5c,0x58,0x56,0x54,0x50,0x4c,
+0x49,0x4a,0x4f,0x5b,0x67,0x69,0x61,0x58,0x6c,0x71,0x76,0x74,0x6f,0x6c,0x6c,0x6d,
+0x70,0x68,0x62,0x61,0x5f,0x57,0x50,0x4e,0x4a,0x46,0x3d,0x3a,0x45,0x56,0x5c,0x57,
+0x50,0x49,0x3d,0x4a,0x54,0x4f,0x51,0x49,0x55,0x54,0x3e,0x35,0x2f,0x35,0x39,0x51,
+0x5f,0x60,0x5a,0x57,0x60,0x63,0x5b,0x54,0x5b,0x55,0x44,0x3b,0x42,0x49,0x4c,0x4f,
+0x61,0x6b,0x69,0x58,0x45,0x35,0x2f,0x32,0x25,0x25,0x22,0x24,0x36,0x53,0x67,0x6e,
+0x60,0x5c,0x58,0x54,0x4d,0x45,0x3d,0x39,0x35,0x40,0x4b,0x48,0x43,0x48,0x47,0x39,
+0x32,0x31,0x36,0x3c,0x3b,0x33,0x2e,0x2f,0x23,0x26,0x25,0x3c,0x6c,0x82,0x7e,0x7f,
+0x6b,0x7c,0x7e,0x66,0x4e,0x49,0x4d,0x50,0x53,0x58,0x5f,0x60,0x5a,0x51,0x4a,0x46,
+0x5f,0x61,0x64,0x65,0x61,0x54,0x44,0x38,0x35,0x3b,0x3f,0x3f,0x3d,0x40,0x43,0x45,
+0x46,0x47,0x48,0x48,0x4b,0x4f,0x51,0x51,0x56,0x57,0x55,0x55,0x5b,0x63,0x63,0x5f,
+0x54,0x5b,0x5d,0x59,0x5c,0x69,0x78,0x80,0x80,0x87,0x8b,0x8a,0x85,0x7e,0x71,0x66,
+0x5a,0x68,0x79,0x7f,0x75,0x62,0x55,0x51,0x52,0x56,0x5e,0x66,0x69,0x65,0x60,0x5e,
+0x5f,0x5e,0x5e,0x5e,0x5e,0x5f,0x5f,0x60,0x5e,0x5c,0x59,0x54,0x4f,0x4d,0x4e,0x4e,
+0x4f,0x51,0x53,0x56,0x57,0x55,0x52,0x4f,0x4e,0x4d,0x4b,0x49,0x47,0x45,0x42,0x3f,
+0x40,0x3f,0x3e,0x40,0x46,0x4b,0x4e,0x50,0x51,0x4f,0x50,0x56,0x5d,0x5d,0x56,0x4e,
+0x4a,0x48,0x4a,0x52,0x5d,0x69,0x72,0x76,0x6b,0x66,0x59,0x4d,0x47,0x42,0x35,0x25,
+0x39,0x4d,0x59,0x51,0x44,0x41,0x44,0x46,0x50,0x52,0x54,0x54,0x52,0x4d,0x48,0x44,
+0x45,0x42,0x48,0x52,0x53,0x4c,0x4c,0x52,0x53,0x62,0x6f,0x72,0x70,0x6a,0x60,0x57,
+0x4f,0x4c,0x49,0x4a,0x4d,0x51,0x53,0x53,0x4f,0x4f,0x4f,0x4b,0x48,0x49,0x4d,0x51,
+0x50,0x57,0x5d,0x5f,0x5f,0x60,0x5f,0x5d,0x61,0x65,0x67,0x66,0x65,0x65,0x62,0x5f,
+0x55,0x5b,0x63,0x68,0x6d,0x71,0x72,0x71,0x71,0x6b,0x63,0x5e,0x5d,0x5f,0x61,0x62,
+0x62,0x62,0x63,0x66,0x66,0x63,0x61,0x62,0x69,0x66,0x60,0x5d,0x5f,0x64,0x65,0x63,
+0x69,0x66,0x65,0x67,0x67,0x64,0x63,0x64,0x63,0x63,0x62,0x60,0x60,0x61,0x64,0x66,
+0x67,0x65,0x64,0x63,0x5f,0x5c,0x5d,0x60,0x62,0x69,0x6b,0x69,0x6c,0x72,0x70,0x69,
+0x74,0x93,0xaa,0xb2,0xba,0xbe,0xbd,0xbc,0x8d,0x69,0x50,0x50,0x52,0x57,0x75,0x9c,
+0x95,0x9c,0x9e,0x96,0x92,0x94,0x92,0x8c,0x85,0x84,0x7f,0x79,0x77,0x75,0x6f,0x67,
+0x60,0x5e,0x5f,0x63,0x6a,0x6e,0x6f,0x6e,0x6c,0x70,0x75,0x79,0x7b,0x7c,0x7d,0x7d,
+0x7c,0x7f,0x82,0x84,0x85,0x86,0x88,0x89,0x8b,0x8c,0x8c,0x8c,0x8a,0x86,0x80,0x7c,
+0x80,0x7f,0x7d,0x7b,0x78,0x75,0x72,0x70,0x6f,0x6d,0x6c,0x6b,0x6c,0x6c,0x6b,0x6a,
+0x6a,0x69,0x67,0x66,0x66,0x66,0x67,0x68,0x65,0x65,0x66,0x66,0x68,0x69,0x6b,0x6b,
+0x71,0x71,0x72,0x75,0x79,0x7c,0x7e,0x7f,0x80,0x7f,0x7d,0x7b,0x7a,0x79,0x79,0x79,
+0x77,0x75,0x73,0x70,0x6e,0x6c,0x6a,0x69,0x67,0x65,0x63,0x61,0x60,0x5f,0x5c,0x5b,
+0x5a,0x5a,0x59,0x59,0x5a,0x5b,0x5c,0x5d,0x5b,0x5b,0x5d,0x5e,0x5e,0x5c,0x58,0x55,
+0x54,0x4e,0x4a,0x4b,0x4a,0x49,0x4a,0x4d,0x52,0x56,0x55,0x4f,0x48,0x46,0x47,0x47,
+0x4b,0x58,0x59,0x4b,0x45,0x4d,0x52,0x4c,0x49,0x44,0x3c,0x38,0x40,0x4c,0x4c,0x44,
+0x4a,0x49,0x43,0x43,0x4b,0x4d,0x4d,0x52,0x4f,0x44,0x3b,0x43,0x59,0x6b,0x6d,0x68,
+0x67,0x69,0x6d,0x6c,0x5e,0x4d,0x46,0x4a,0x55,0x4f,0x4e,0x55,0x55,0x4c,0x45,0x45,
+0x54,0x53,0x53,0x52,0x4d,0x47,0x45,0x47,0x4e,0x52,0x55,0x56,0x58,0x5a,0x5a,0x58,
+0x4c,0x4e,0x51,0x54,0x59,0x5b,0x57,0x51,0x57,0x58,0x55,0x50,0x4d,0x51,0x58,0x5d,
+0x57,0x56,0x53,0x56,0x59,0x54,0x54,0x5f,0x62,0x62,0x5e,0x56,0x50,0x4d,0x47,0x40,
+0x4a,0x4a,0x4c,0x53,0x5d,0x64,0x68,0x68,0x6d,0x6e,0x6f,0x6d,0x6a,0x69,0x6d,0x72,
+0x74,0x6d,0x68,0x67,0x5f,0x4e,0x3d,0x34,0x47,0x44,0x3e,0x3b,0x46,0x58,0x5f,0x5c,
+0x4e,0x4c,0x3f,0x47,0x4c,0x49,0x52,0x4e,0x54,0x53,0x3a,0x2f,0x25,0x2b,0x34,0x4f,
+0x5e,0x5e,0x56,0x55,0x63,0x68,0x58,0x47,0x50,0x4d,0x4d,0x5c,0x6f,0x71,0x68,0x65,
+0x6a,0x71,0x62,0x44,0x2e,0x24,0x33,0x51,0x3c,0x42,0x44,0x3f,0x3c,0x3f,0x43,0x44,
+0x47,0x4e,0x53,0x4c,0x3c,0x2d,0x29,0x2c,0x3c,0x34,0x39,0x46,0x4c,0x47,0x3b,0x2c,
+0x22,0x15,0x14,0x26,0x37,0x39,0x34,0x32,0x2b,0x38,0x37,0x40,0x5d,0x6c,0x72,0x81,
+0x68,0x73,0x71,0x6a,0x59,0x4a,0x4a,0x45,0x4e,0x50,0x4f,0x4d,0x4f,0x55,0x54,0x4f,
+0x4f,0x4a,0x4c,0x55,0x56,0x4f,0x4f,0x57,0x4f,0x45,0x40,0x41,0x40,0x3e,0x44,0x50,
+0x58,0x56,0x53,0x4e,0x49,0x48,0x49,0x4c,0x54,0x4d,0x48,0x49,0x4f,0x54,0x54,0x52,
+0x50,0x59,0x5a,0x53,0x52,0x5d,0x66,0x66,0x66,0x68,0x69,0x6c,0x74,0x7c,0x7b,0x75,
+0x70,0x6f,0x71,0x72,0x69,0x5c,0x55,0x57,0x57,0x5e,0x61,0x5e,0x5e,0x61,0x61,0x5e,
+0x5b,0x63,0x6c,0x71,0x6e,0x69,0x65,0x64,0x5c,0x5c,0x59,0x54,0x4f,0x4f,0x50,0x52,
+0x56,0x57,0x58,0x57,0x55,0x55,0x58,0x5a,0x53,0x53,0x4e,0x4b,0x4e,0x53,0x4e,0x44,
+0x40,0x3b,0x3d,0x44,0x48,0x47,0x48,0x4d,0x4f,0x4f,0x4f,0x51,0x55,0x56,0x4f,0x47,
+0x46,0x4e,0x51,0x4c,0x4d,0x5a,0x66,0x6b,0x6e,0x6f,0x6c,0x64,0x5e,0x5b,0x55,0x4f,
+0x4f,0x4e,0x52,0x57,0x4d,0x3f,0x43,0x51,0x57,0x51,0x4c,0x4a,0x49,0x48,0x4b,0x51,
+0x4b,0x48,0x50,0x5b,0x56,0x48,0x48,0x55,0x6e,0x7d,0x82,0x7b,0x7d,0x85,0x79,0x62,
+0x53,0x4c,0x48,0x4c,0x56,0x5d,0x5b,0x57,0x57,0x50,0x4e,0x54,0x58,0x55,0x57,0x5d,
+0x5e,0x61,0x63,0x61,0x61,0x62,0x60,0x5b,0x5e,0x62,0x66,0x67,0x63,0x5f,0x5f,0x61,
+0x62,0x61,0x61,0x63,0x67,0x6c,0x70,0x72,0x74,0x70,0x6b,0x65,0x64,0x64,0x63,0x61,
+0x66,0x67,0x67,0x65,0x63,0x61,0x61,0x62,0x64,0x65,0x65,0x62,0x5e,0x5e,0x63,0x67,
+0x64,0x63,0x64,0x67,0x6a,0x6a,0x66,0x62,0x5f,0x5d,0x5e,0x60,0x5e,0x5a,0x5b,0x5f,
+0x62,0x62,0x60,0x5d,0x5b,0x5d,0x61,0x64,0x65,0x60,0x5f,0x69,0x74,0x78,0x87,0x9f,
+0xc0,0xbc,0xb8,0xb6,0xb7,0xb9,0xbb,0xbb,0xb1,0x8e,0x63,0x51,0x66,0x89,0x9c,0x9c,
+0x9b,0x9b,0x9a,0x98,0x94,0x91,0x90,0x8f,0x85,0x84,0x81,0x7c,0x76,0x71,0x6e,0x6d,
+0x62,0x5d,0x5b,0x5e,0x63,0x67,0x6a,0x6c,0x6d,0x6d,0x6e,0x71,0x76,0x7c,0x80,0x82,
+0x7f,0x80,0x80,0x80,0x83,0x87,0x89,0x89,0x8b,0x8b,0x8c,0x8b,0x8a,0x89,0x87,0x86,
+0x85,0x86,0x86,0x84,0x81,0x7c,0x78,0x75,0x72,0x71,0x6f,0x6d,0x6c,0x6b,0x6b,0x6b,
+0x6c,0x6c,0x6b,0x6b,0x6a,0x6a,0x6a,0x6a,0x6a,0x6c,0x6d,0x6d,0x6c,0x6c,0x6f,0x71,
+0x75,0x76,0x78,0x7a,0x7c,0x7d,0x7e,0x7e,0x7f,0x7e,0x7d,0x7c,0x7b,0x78,0x75,0x72,
+0x72,0x70,0x6d,0x6b,0x6a,0x69,0x67,0x66,0x64,0x64,0x62,0x5d,0x5a,0x5b,0x5b,0x5b,
+0x58,0x5a,0x5b,0x5b,0x5a,0x59,0x5a,0x5a,0x5a,0x5c,0x61,0x66,0x65,0x5e,0x57,0x54,
+0x57,0x52,0x4c,0x4a,0x4b,0x4d,0x4d,0x4c,0x50,0x51,0x53,0x52,0x4f,0x4b,0x4b,0x4c,
+0x4e,0x5b,0x5f,0x54,0x4c,0x4e,0x4f,0x4b,0x48,0x46,0x43,0x44,0x4c,0x52,0x4e,0x45,
+0x4b,0x49,0x48,0x49,0x4b,0x4c,0x4c,0x4d,0x52,0x5e,0x6b,0x79,0x7f,0x6f,0x57,0x4b,
+0x50,0x51,0x57,0x61,0x6c,0x6e,0x68,0x60,0x56,0x4c,0x46,0x49,0x4e,0x4f,0x4c,0x4b,
+0x52,0x48,0x47,0x4e,0x4b,0x3f,0x40,0x4c,0x52,0x51,0x56,0x60,0x65,0x60,0x59,0x56,
+0x57,0x55,0x54,0x55,0x57,0x58,0x57,0x55,0x57,0x55,0x54,0x53,0x54,0x57,0x5a,0x5c,
+0x59,0x57,0x54,0x54,0x56,0x59,0x5c,0x5d,0x59,0x56,0x54,0x53,0x53,0x51,0x4c,0x47,
+0x46,0x46,0x4b,0x56,0x61,0x68,0x6b,0x6d,0x78,0x77,0x72,0x6c,0x69,0x6a,0x6b,0x6b,
+0x70,0x62,0x5a,0x5c,0x55,0x43,0x37,0x37,0x44,0x43,0x38,0x34,0x46,0x57,0x59,0x54,
+0x50,0x4a,0x4a,0x54,0x59,0x55,0x51,0x51,0x5a,0x45,0x39,0x2d,0x2b,0x34,0x40,0x56,
+0x66,0x53,0x4a,0x57,0x66,0x64,0x54,0x46,0x4b,0x4a,0x49,0x54,0x68,0x70,0x6e,0x6f,
+0x6d,0x69,0x56,0x43,0x3d,0x3f,0x42,0x48,0x3d,0x44,0x40,0x41,0x41,0x42,0x4f,0x52,
+0x43,0x4a,0x41,0x2b,0x25,0x34,0x3f,0x3d,0x30,0x3b,0x4a,0x56,0x5b,0x5b,0x57,0x52,
+0x44,0x3f,0x46,0x4d,0x45,0x38,0x33,0x32,0x37,0x2f,0x34,0x4e,0x66,0x71,0x78,0x7f,
+0x4f,0x64,0x6e,0x6e,0x5f,0x4e,0x4d,0x49,0x54,0x52,0x4b,0x47,0x4c,0x5a,0x65,0x6a,
+0x64,0x57,0x4c,0x49,0x44,0x3f,0x44,0x4f,0x5c,0x65,0x6f,0x69,0x51,0x3d,0x44,0x57,
+0x5f,0x60,0x5e,0x57,0x4d,0x45,0x42,0x41,0x41,0x48,0x4f,0x51,0x4f,0x4f,0x53,0x58,
+0x56,0x5a,0x5a,0x53,0x50,0x56,0x5b,0x5b,0x59,0x5b,0x5b,0x5a,0x5e,0x68,0x72,0x76,
+0x77,0x73,0x76,0x7c,0x7a,0x6c,0x5e,0x58,0x59,0x64,0x6f,0x70,0x6a,0x61,0x5a,0x55,
+0x5c,0x63,0x6c,0x72,0x72,0x6e,0x68,0x65,0x5b,0x5a,0x57,0x52,0x50,0x52,0x55,0x56,
+0x57,0x59,0x5a,0x59,0x59,0x5c,0x60,0x64,0x5d,0x5c,0x55,0x4f,0x50,0x53,0x4f,0x46,
+0x38,0x34,0x33,0x38,0x3c,0x3d,0x43,0x4b,0x47,0x49,0x4d,0x54,0x5c,0x5f,0x58,0x4f,
+0x50,0x4e,0x4b,0x45,0x3e,0x3d,0x44,0x4e,0x54,0x57,0x5a,0x5b,0x5f,0x66,0x6a,0x69,
+0x5e,0x5a,0x5a,0x5c,0x56,0x4b,0x4a,0x51,0x56,0x53,0x53,0x56,0x58,0x57,0x57,0x5a,
+0x52,0x4c,0x4f,0x5c,0x62,0x5d,0x5c,0x62,0x6a,0x73,0x7c,0x80,0x83,0x80,0x73,0x63,
+0x58,0x52,0x4d,0x4c,0x51,0x54,0x54,0x52,0x5a,0x58,0x5b,0x60,0x62,0x5e,0x5b,0x5c,
+0x5b,0x61,0x67,0x67,0x66,0x65,0x61,0x5d,0x66,0x63,0x61,0x5f,0x5b,0x5b,0x62,0x6a,
+0x6d,0x69,0x66,0x65,0x69,0x6f,0x75,0x78,0x73,0x6d,0x64,0x5e,0x5d,0x61,0x64,0x66,
+0x66,0x65,0x62,0x61,0x61,0x61,0x61,0x60,0x5d,0x5f,0x60,0x60,0x5f,0x5f,0x62,0x65,
+0x63,0x61,0x5f,0x5f,0x62,0x65,0x65,0x65,0x60,0x5f,0x60,0x61,0x5f,0x5b,0x5a,0x5d,
+0x5f,0x61,0x62,0x5f,0x5e,0x61,0x64,0x67,0x6c,0x67,0x5f,0x68,0x8b,0xae,0xc4,0xd0,
+0xc9,0xc3,0xbc,0xba,0xbb,0xba,0xb7,0xb3,0xb1,0xb0,0xa6,0x96,0x8f,0x95,0x9d,0xa1,
+0x9e,0x9d,0x9b,0x99,0x97,0x94,0x92,0x91,0x88,0x85,0x81,0x7b,0x75,0x71,0x6f,0x6e,
+0x67,0x5f,0x58,0x59,0x5e,0x63,0x66,0x69,0x6b,0x6b,0x6b,0x6d,0x71,0x77,0x7c,0x80,
+0x80,0x81,0x82,0x82,0x85,0x89,0x8a,0x8a,0x8a,0x8a,0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x8c,0x8a,0x88,0x85,0x82,0x80,0x79,0x78,0x76,0x74,0x72,0x71,0x71,0x70,
+0x72,0x72,0x71,0x70,0x70,0x70,0x70,0x70,0x73,0x75,0x76,0x77,0x76,0x76,0x78,0x7a,
+0x78,0x79,0x7a,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,0x76,0x73,0x70,
+0x6f,0x6d,0x6a,0x68,0x67,0x66,0x64,0x63,0x61,0x62,0x62,0x5f,0x5d,0x5f,0x5f,0x5e,
+0x60,0x5e,0x5b,0x59,0x59,0x5c,0x5f,0x61,0x5d,0x5d,0x5f,0x60,0x5e,0x59,0x57,0x57,
+0x53,0x50,0x4d,0x4c,0x4d,0x4d,0x4a,0x48,0x47,0x4f,0x52,0x4d,0x49,0x4b,0x4c,0x4b,
+0x4f,0x59,0x5d,0x55,0x50,0x52,0x52,0x4d,0x47,0x46,0x46,0x49,0x50,0x55,0x50,0x47,
+0x4c,0x47,0x44,0x49,0x50,0x53,0x50,0x4c,0x5e,0x62,0x6c,0x7c,0x84,0x72,0x5a,0x52,
+0x3f,0x3f,0x48,0x5b,0x70,0x7b,0x77,0x70,0x53,0x44,0x3a,0x3e,0x49,0x4e,0x4b,0x47,
+0x4c,0x4b,0x4c,0x4c,0x49,0x44,0x43,0x46,0x50,0x4e,0x52,0x5d,0x62,0x5e,0x58,0x56,
+0x58,0x57,0x55,0x56,0x58,0x59,0x57,0x55,0x56,0x56,0x56,0x57,0x58,0x58,0x59,0x5a,
+0x59,0x56,0x53,0x53,0x56,0x59,0x59,0x59,0x57,0x55,0x53,0x51,0x51,0x52,0x53,0x54,
+0x54,0x52,0x55,0x5c,0x61,0x62,0x60,0x5f,0x75,0x73,0x6e,0x6a,0x6a,0x6d,0x6d,0x6c,
+0x6a,0x5c,0x56,0x5c,0x5b,0x4b,0x3b,0x35,0x3f,0x3c,0x33,0x38,0x4f,0x5f,0x5a,0x50,
+0x40,0x3d,0x45,0x56,0x5d,0x57,0x53,0x56,0x4a,0x3a,0x32,0x2c,0x2e,0x3a,0x45,0x59,
+0x66,0x56,0x4f,0x59,0x62,0x5e,0x58,0x59,0x63,0x64,0x5f,0x62,0x6e,0x73,0x6d,0x6a,
+0x60,0x64,0x5a,0x4c,0x4e,0x55,0x53,0x4f,0x44,0x41,0x3a,0x45,0x4e,0x4a,0x45,0x38,
+0x2b,0x23,0x21,0x33,0x50,0x62,0x5e,0x52,0x4a,0x4b,0x4d,0x4e,0x4e,0x4f,0x53,0x57,
+0x51,0x54,0x5f,0x63,0x5a,0x4f,0x46,0x3c,0x38,0x30,0x33,0x49,0x60,0x6c,0x70,0x72,
+0x4e,0x65,0x70,0x6f,0x5e,0x4d,0x50,0x4f,0x5b,0x5b,0x58,0x53,0x4f,0x50,0x51,0x51,
+0x4a,0x47,0x47,0x4b,0x49,0x42,0x41,0x46,0x45,0x46,0x4d,0x52,0x4d,0x44,0x42,0x48,
+0x61,0x65,0x67,0x63,0x58,0x4d,0x46,0x44,0x3d,0x40,0x44,0x48,0x4b,0x4d,0x4f,0x50,
+0x52,0x51,0x50,0x4e,0x4d,0x4f,0x53,0x56,0x57,0x5c,0x5d,0x57,0x52,0x57,0x62,0x6b,
+0x71,0x6d,0x6d,0x71,0x70,0x68,0x61,0x60,0x68,0x6c,0x73,0x78,0x72,0x66,0x5b,0x55,
+0x5d,0x60,0x65,0x6a,0x6c,0x6a,0x67,0x64,0x5e,0x5b,0x55,0x51,0x52,0x58,0x5b,0x5a,
+0x5a,0x5a,0x59,0x58,0x57,0x5a,0x5f,0x64,0x66,0x64,0x5d,0x55,0x53,0x55,0x51,0x4b,
+0x47,0x41,0x3d,0x3c,0x3c,0x3c,0x44,0x4d,0x51,0x4d,0x4a,0x4c,0x54,0x5b,0x5a,0x55,
+0x56,0x50,0x4f,0x4f,0x42,0x2f,0x2b,0x33,0x43,0x4b,0x54,0x5d,0x65,0x6b,0x6c,0x6b,
+0x60,0x5c,0x59,0x59,0x59,0x56,0x53,0x52,0x59,0x53,0x4c,0x4b,0x4c,0x4e,0x51,0x54,
+0x52,0x4d,0x52,0x63,0x72,0x75,0x6f,0x6a,0x65,0x65,0x6d,0x78,0x7b,0x71,0x65,0x5f,
+0x57,0x54,0x50,0x4e,0x50,0x52,0x53,0x54,0x5b,0x5d,0x61,0x63,0x62,0x5f,0x5c,0x5a,
+0x5e,0x64,0x69,0x6a,0x69,0x67,0x64,0x62,0x67,0x63,0x64,0x67,0x63,0x5e,0x61,0x69,
+0x70,0x6d,0x69,0x68,0x6c,0x71,0x77,0x7a,0x79,0x72,0x69,0x63,0x63,0x67,0x6c,0x70,
+0x72,0x6c,0x66,0x62,0x61,0x61,0x5f,0x5d,0x5b,0x5b,0x5a,0x5a,0x5b,0x5d,0x60,0x61,
+0x63,0x62,0x61,0x60,0x61,0x62,0x64,0x65,0x5f,0x5f,0x60,0x61,0x60,0x5d,0x5c,0x5e,
+0x5e,0x61,0x61,0x5d,0x5b,0x5f,0x61,0x60,0x58,0x66,0x72,0x84,0xa3,0xbe,0xcd,0xd4,
+0xce,0xc7,0xc0,0xbd,0xbd,0xb9,0xb1,0xa9,0xad,0xb4,0xb6,0xaf,0xa5,0xa2,0xa0,0x9e,
+0xa1,0x9e,0x9b,0x99,0x98,0x96,0x93,0x90,0x8a,0x86,0x81,0x7a,0x75,0x71,0x6f,0x6e,
+0x6c,0x62,0x58,0x55,0x58,0x5b,0x5f,0x62,0x67,0x69,0x6a,0x6b,0x6e,0x73,0x79,0x7e,
+0x80,0x83,0x84,0x84,0x86,0x89,0x8a,0x88,0x87,0x87,0x88,0x8a,0x8c,0x8e,0x90,0x91,
+0x92,0x92,0x90,0x8f,0x8e,0x8c,0x8c,0x8b,0x83,0x81,0x7f,0x7d,0x7b,0x79,0x79,0x79,
+0x7a,0x79,0x79,0x78,0x77,0x77,0x77,0x78,0x7a,0x7b,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,
+0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7b,0x79,0x78,0x76,0x73,0x70,0x6d,
+0x6c,0x6a,0x67,0x66,0x65,0x64,0x62,0x61,0x5c,0x5e,0x5e,0x5c,0x5b,0x5b,0x5a,0x58,
+0x58,0x5a,0x5c,0x5e,0x5f,0x5d,0x5a,0x57,0x5d,0x5c,0x5a,0x59,0x56,0x53,0x54,0x58,
+0x57,0x54,0x50,0x4e,0x4e,0x4e,0x4c,0x4a,0x43,0x4e,0x54,0x4d,0x4a,0x4f,0x52,0x4f,
+0x51,0x59,0x5c,0x59,0x56,0x57,0x54,0x4d,0x48,0x48,0x4a,0x4e,0x55,0x57,0x51,0x49,
+0x4c,0x47,0x45,0x4a,0x50,0x50,0x4d,0x4b,0x51,0x58,0x66,0x7b,0x84,0x78,0x71,0x79,
+0x6b,0x5d,0x4c,0x44,0x46,0x4d,0x52,0x53,0x52,0x48,0x41,0x43,0x49,0x4b,0x49,0x45,
+0x49,0x4e,0x4f,0x4a,0x4a,0x51,0x53,0x50,0x50,0x4e,0x51,0x5a,0x5e,0x5b,0x57,0x55,
+0x59,0x57,0x55,0x55,0x57,0x57,0x55,0x53,0x4f,0x51,0x53,0x55,0x57,0x57,0x56,0x55,
+0x53,0x4f,0x4e,0x51,0x57,0x5b,0x5b,0x59,0x50,0x52,0x54,0x54,0x55,0x5b,0x66,0x6e,
+0x6c,0x63,0x5a,0x56,0x59,0x5e,0x65,0x6b,0x6f,0x6f,0x6d,0x6c,0x6d,0x6f,0x6e,0x6b,
+0x6b,0x5d,0x55,0x5a,0x59,0x49,0x38,0x31,0x3f,0x3b,0x37,0x44,0x60,0x6b,0x5f,0x52,
+0x52,0x4b,0x4e,0x59,0x5d,0x56,0x50,0x51,0x4c,0x40,0x3c,0x35,0x36,0x3e,0x44,0x53,
+0x59,0x51,0x53,0x5f,0x63,0x5e,0x60,0x6a,0x6a,0x68,0x5e,0x5c,0x6b,0x74,0x6c,0x61,
+0x5e,0x63,0x57,0x49,0x50,0x5c,0x57,0x4d,0x41,0x3e,0x39,0x47,0x50,0x4d,0x4b,0x43,
+0x3e,0x25,0x20,0x41,0x62,0x65,0x54,0x47,0x41,0x41,0x47,0x52,0x5a,0x5b,0x5a,0x5b,
+0x5a,0x59,0x59,0x53,0x4b,0x4d,0x4c,0x44,0x3c,0x30,0x2d,0x42,0x60,0x71,0x6e,0x65,
+0x58,0x6d,0x77,0x78,0x68,0x57,0x58,0x55,0x67,0x60,0x55,0x49,0x3f,0x3c,0x3e,0x43,
+0x4e,0x4b,0x4a,0x49,0x45,0x3e,0x3d,0x40,0x42,0x41,0x44,0x48,0x47,0x45,0x4b,0x54,
+0x52,0x56,0x5a,0x59,0x52,0x49,0x41,0x3c,0x45,0x3f,0x39,0x3b,0x43,0x4b,0x4e,0x4f,
+0x4f,0x49,0x46,0x48,0x4a,0x4b,0x50,0x57,0x5a,0x62,0x68,0x64,0x5b,0x56,0x58,0x5c,
+0x67,0x6b,0x72,0x73,0x6e,0x68,0x6b,0x72,0x74,0x6a,0x65,0x69,0x6b,0x66,0x60,0x5d,
+0x5f,0x5f,0x5d,0x5b,0x5b,0x5c,0x5f,0x62,0x5f,0x5b,0x53,0x4e,0x52,0x5a,0x5c,0x59,
+0x56,0x56,0x54,0x51,0x50,0x53,0x58,0x5d,0x68,0x68,0x64,0x5e,0x5b,0x5b,0x58,0x54,
+0x4f,0x4c,0x48,0x44,0x40,0x3e,0x44,0x4c,0x50,0x4c,0x49,0x4b,0x54,0x5e,0x60,0x5d,
+0x55,0x51,0x53,0x56,0x4b,0x37,0x2e,0x32,0x3a,0x40,0x49,0x51,0x58,0x5c,0x5c,0x5b,
+0x5f,0x5c,0x58,0x56,0x57,0x58,0x55,0x51,0x54,0x4e,0x48,0x47,0x4b,0x51,0x57,0x5a,
+0x4b,0x4f,0x5a,0x6c,0x7b,0x7c,0x6f,0x63,0x5e,0x5a,0x5c,0x64,0x66,0x5f,0x5a,0x59,
+0x56,0x54,0x53,0x54,0x57,0x59,0x5b,0x5b,0x58,0x5c,0x5d,0x5b,0x5a,0x5c,0x5e,0x5e,
+0x67,0x67,0x68,0x68,0x69,0x69,0x68,0x67,0x64,0x62,0x66,0x6c,0x6a,0x60,0x5e,0x65,
+0x6b,0x6a,0x6b,0x6d,0x71,0x74,0x76,0x77,0x73,0x6e,0x68,0x65,0x65,0x66,0x6a,0x6d,
+0x77,0x73,0x6c,0x65,0x62,0x61,0x60,0x60,0x62,0x5e,0x59,0x57,0x58,0x5b,0x5d,0x5f,
+0x65,0x67,0x69,0x6a,0x68,0x65,0x62,0x61,0x5d,0x5d,0x5f,0x60,0x60,0x5f,0x5f,0x5f,
+0x5e,0x61,0x61,0x5e,0x5e,0x62,0x61,0x5e,0x70,0x6d,0x75,0x96,0xbf,0xd0,0xcd,0xcc,
+0xce,0xca,0xc5,0xc2,0xbf,0xb8,0xae,0xa7,0xad,0xad,0xac,0xac,0xb0,0xb1,0xab,0xa3,
+0xa4,0xa0,0x9b,0x99,0x98,0x96,0x92,0x8e,0x89,0x86,0x81,0x7b,0x76,0x72,0x6e,0x6b,
+0x6f,0x66,0x5d,0x57,0x54,0x54,0x57,0x5b,0x5f,0x63,0x67,0x69,0x6a,0x6e,0x75,0x7a,
+0x7f,0x82,0x85,0x85,0x86,0x87,0x87,0x86,0x84,0x84,0x85,0x86,0x88,0x8b,0x8d,0x8e,
+0x8f,0x8f,0x8f,0x8f,0x8f,0x8e,0x8e,0x8d,0x89,0x88,0x86,0x83,0x81,0x80,0x80,0x7f,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x81,0x81,0x81,
+0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7a,0x77,0x75,0x73,0x70,0x6d,0x6a,
+0x6a,0x68,0x66,0x64,0x64,0x63,0x61,0x60,0x59,0x5b,0x5d,0x5d,0x5f,0x62,0x62,0x60,
+0x5f,0x5f,0x5e,0x5c,0x5a,0x5b,0x5d,0x5f,0x5d,0x5b,0x5a,0x59,0x56,0x53,0x55,0x59,
+0x5d,0x58,0x51,0x4c,0x4b,0x4c,0x4d,0x4e,0x47,0x4e,0x55,0x57,0x57,0x59,0x57,0x54,
+0x54,0x59,0x5d,0x5e,0x5f,0x5d,0x55,0x4b,0x4a,0x4b,0x4d,0x51,0x57,0x58,0x54,0x4f,
+0x4e,0x4d,0x4e,0x51,0x51,0x50,0x52,0x58,0x55,0x65,0x72,0x74,0x6a,0x5d,0x5f,0x70,
+0x77,0x82,0x8f,0x91,0x83,0x69,0x4d,0x3c,0x3d,0x3f,0x41,0x43,0x43,0x46,0x4b,0x50,
+0x4f,0x52,0x4f,0x49,0x4b,0x55,0x5c,0x5b,0x55,0x51,0x53,0x5a,0x5e,0x5b,0x58,0x57,
+0x59,0x57,0x54,0x54,0x55,0x55,0x53,0x51,0x4a,0x4c,0x50,0x53,0x55,0x56,0x55,0x55,
+0x52,0x4e,0x4d,0x51,0x58,0x5c,0x5a,0x57,0x52,0x57,0x5a,0x57,0x52,0x54,0x5d,0x66,
+0x5f,0x5e,0x61,0x66,0x6a,0x69,0x68,0x68,0x63,0x67,0x6a,0x6a,0x6a,0x6a,0x69,0x66,
+0x6e,0x62,0x5b,0x5a,0x54,0x46,0x3d,0x3b,0x41,0x3f,0x3e,0x4c,0x65,0x6f,0x64,0x5b,
+0x54,0x49,0x3f,0x41,0x4d,0x56,0x56,0x51,0x51,0x4a,0x4a,0x40,0x3a,0x3e,0x41,0x4d,
+0x4e,0x52,0x5e,0x6c,0x70,0x6b,0x6a,0x6d,0x55,0x53,0x47,0x46,0x5d,0x70,0x67,0x56,
+0x50,0x4c,0x3b,0x33,0x41,0x51,0x52,0x4e,0x4a,0x46,0x41,0x4f,0x58,0x52,0x53,0x4e,
+0x30,0x1c,0x1c,0x3a,0x4f,0x4b,0x44,0x45,0x51,0x46,0x42,0x4a,0x55,0x59,0x5c,0x5f,
+0x5a,0x56,0x57,0x59,0x57,0x54,0x4c,0x3e,0x43,0x3c,0x3c,0x4b,0x63,0x72,0x71,0x69,
+0x56,0x6b,0x79,0x83,0x7e,0x6f,0x69,0x5f,0x57,0x4f,0x45,0x3e,0x39,0x38,0x3f,0x49,
+0x4d,0x4f,0x50,0x4e,0x48,0x40,0x3c,0x3b,0x3e,0x3b,0x3c,0x41,0x46,0x47,0x4b,0x50,
+0x5a,0x5b,0x5b,0x5b,0x57,0x4f,0x46,0x3f,0x44,0x42,0x3f,0x3e,0x42,0x4b,0x55,0x5c,
+0x53,0x4b,0x47,0x49,0x4a,0x4b,0x52,0x5c,0x56,0x5e,0x67,0x6b,0x66,0x5d,0x57,0x54,
+0x58,0x63,0x70,0x76,0x72,0x6b,0x6a,0x6c,0x6b,0x61,0x5b,0x5c,0x5d,0x5c,0x5e,0x61,
+0x60,0x60,0x5d,0x57,0x51,0x51,0x58,0x60,0x5c,0x58,0x50,0x4b,0x51,0x5c,0x5d,0x58,
+0x51,0x52,0x51,0x50,0x4f,0x50,0x55,0x59,0x66,0x68,0x67,0x64,0x61,0x5f,0x5d,0x5b,
+0x57,0x56,0x56,0x54,0x50,0x4e,0x51,0x55,0x59,0x5a,0x5b,0x5d,0x60,0x5f,0x57,0x4e,
+0x52,0x53,0x54,0x53,0x4e,0x47,0x41,0x3e,0x31,0x33,0x39,0x40,0x48,0x4e,0x54,0x57,
+0x62,0x62,0x5e,0x58,0x54,0x55,0x53,0x4f,0x51,0x51,0x52,0x53,0x54,0x54,0x51,0x4e,
+0x4c,0x57,0x65,0x70,0x74,0x6e,0x61,0x55,0x56,0x55,0x55,0x56,0x58,0x5a,0x5a,0x59,
+0x5a,0x58,0x56,0x57,0x5a,0x5a,0x58,0x55,0x51,0x56,0x59,0x59,0x5c,0x62,0x68,0x6a,
+0x6b,0x69,0x67,0x6a,0x6d,0x6d,0x6a,0x66,0x63,0x5f,0x60,0x64,0x63,0x5e,0x60,0x67,
+0x67,0x67,0x68,0x6c,0x71,0x74,0x76,0x77,0x70,0x6b,0x68,0x67,0x67,0x68,0x6c,0x72,
+0x73,0x72,0x6e,0x68,0x62,0x60,0x63,0x66,0x67,0x63,0x5f,0x5e,0x5f,0x60,0x5f,0x5e,
+0x64,0x67,0x6b,0x6d,0x6b,0x67,0x63,0x60,0x5e,0x5e,0x5f,0x5f,0x5f,0x60,0x60,0x5f,
+0x5d,0x60,0x64,0x66,0x68,0x6a,0x68,0x65,0x6f,0x7c,0x90,0xac,0xc6,0xcc,0xc8,0xc8,
+0xcd,0xcc,0xca,0xc6,0xbf,0xb6,0xad,0xa8,0xa6,0xab,0xb0,0xb1,0xb1,0xaf,0xac,0xa8,
+0xa8,0xa3,0x9d,0x9a,0x98,0x95,0x90,0x8d,0x87,0x85,0x82,0x7e,0x79,0x74,0x6d,0x69,
+0x6d,0x69,0x64,0x5e,0x55,0x50,0x51,0x55,0x55,0x5a,0x60,0x64,0x66,0x69,0x6e,0x72,
+0x7c,0x81,0x86,0x86,0x86,0x87,0x86,0x84,0x85,0x85,0x84,0x84,0x85,0x86,0x87,0x88,
+0x89,0x8a,0x8c,0x8e,0x8f,0x8e,0x8c,0x8b,0x8b,0x8a,0x88,0x86,0x84,0x83,0x83,0x83,
+0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x82,0x83,0x84,0x84,0x84,
+0x83,0x82,0x81,0x7f,0x7e,0x7c,0x7b,0x7b,0x7a,0x78,0x75,0x72,0x70,0x6d,0x6a,0x68,
+0x67,0x66,0x63,0x62,0x61,0x61,0x5f,0x5e,0x5f,0x5f,0x5d,0x5b,0x5a,0x5a,0x58,0x54,
+0x5b,0x5f,0x62,0x5f,0x5a,0x58,0x59,0x5d,0x5f,0x5e,0x5f,0x5f,0x5d,0x59,0x58,0x5a,
+0x5b,0x57,0x51,0x4c,0x4b,0x4b,0x4d,0x4e,0x4f,0x4c,0x52,0x60,0x65,0x5e,0x56,0x55,
+0x53,0x56,0x5b,0x62,0x66,0x62,0x57,0x4d,0x4d,0x4c,0x4e,0x54,0x5a,0x5d,0x5d,0x5c,
+0x5a,0x54,0x52,0x55,0x57,0x57,0x5b,0x61,0x73,0x85,0x87,0x71,0x57,0x43,0x3d,0x41,
+0x45,0x4f,0x5e,0x6a,0x6f,0x6c,0x66,0x61,0x4e,0x4c,0x46,0x3f,0x3b,0x40,0x4a,0x52,
+0x57,0x53,0x4f,0x4e,0x4e,0x50,0x53,0x56,0x58,0x54,0x55,0x5c,0x61,0x5f,0x5d,0x5e,
+0x5c,0x5a,0x58,0x57,0x58,0x57,0x55,0x53,0x50,0x51,0x53,0x55,0x57,0x58,0x59,0x59,
+0x57,0x53,0x50,0x53,0x58,0x5a,0x57,0x53,0x54,0x5c,0x63,0x61,0x59,0x57,0x5d,0x64,
+0x61,0x5a,0x55,0x55,0x58,0x5e,0x66,0x6d,0x62,0x67,0x6a,0x68,0x66,0x68,0x6b,0x6c,
+0x69,0x66,0x65,0x61,0x56,0x4a,0x48,0x4f,0x43,0x42,0x3c,0x42,0x57,0x66,0x67,0x66,
+0x5a,0x4d,0x39,0x31,0x42,0x58,0x59,0x4b,0x43,0x42,0x46,0x3d,0x39,0x41,0x47,0x54,
+0x54,0x5d,0x69,0x73,0x76,0x71,0x64,0x58,0x45,0x4a,0x43,0x40,0x52,0x61,0x58,0x48,
+0x34,0x29,0x1e,0x26,0x3e,0x4d,0x52,0x58,0x5c,0x53,0x4a,0x59,0x63,0x59,0x4b,0x37,
+0x30,0x26,0x2a,0x40,0x4d,0x45,0x3a,0x37,0x19,0x24,0x39,0x51,0x5d,0x5e,0x5e,0x61,
+0x5f,0x50,0x4d,0x54,0x54,0x4c,0x40,0x34,0x33,0x39,0x41,0x49,0x50,0x57,0x5d,0x61,
+0x5e,0x6a,0x6f,0x79,0x7d,0x79,0x77,0x6d,0x56,0x4d,0x45,0x42,0x3c,0x36,0x38,0x3f,
+0x3c,0x44,0x4d,0x4f,0x4b,0x46,0x41,0x3d,0x3d,0x3c,0x42,0x4e,0x58,0x58,0x53,0x4f,
+0x4c,0x4c,0x4c,0x4c,0x49,0x44,0x3d,0x38,0x40,0x3d,0x3d,0x44,0x4e,0x57,0x5a,0x5a,
+0x51,0x4c,0x4a,0x4c,0x4f,0x53,0x5d,0x67,0x5b,0x5b,0x60,0x66,0x66,0x5f,0x56,0x50,
+0x52,0x54,0x59,0x5f,0x62,0x61,0x5d,0x59,0x5a,0x5e,0x61,0x60,0x59,0x55,0x59,0x60,
+0x5f,0x61,0x61,0x5a,0x51,0x50,0x56,0x5d,0x5c,0x5a,0x54,0x4f,0x56,0x61,0x61,0x5a,
+0x58,0x59,0x59,0x57,0x53,0x50,0x50,0x51,0x5c,0x60,0x63,0x63,0x5f,0x5d,0x5d,0x5d,
+0x69,0x69,0x69,0x66,0x62,0x5e,0x5d,0x5e,0x65,0x65,0x63,0x60,0x5d,0x59,0x51,0x4a,
+0x50,0x59,0x5f,0x60,0x62,0x60,0x54,0x45,0x3f,0x44,0x4c,0x55,0x59,0x56,0x52,0x51,
+0x56,0x59,0x58,0x52,0x4d,0x4d,0x4f,0x51,0x55,0x56,0x56,0x53,0x51,0x50,0x4e,0x4c,
+0x56,0x5e,0x68,0x6c,0x67,0x5d,0x54,0x50,0x51,0x56,0x57,0x57,0x5b,0x61,0x62,0x5e,
+0x5c,0x59,0x55,0x52,0x51,0x4d,0x47,0x43,0x49,0x4d,0x55,0x5d,0x63,0x68,0x6b,0x6d,
+0x69,0x68,0x6a,0x71,0x74,0x70,0x6a,0x65,0x60,0x60,0x62,0x64,0x64,0x63,0x64,0x67,
+0x65,0x64,0x63,0x64,0x68,0x6e,0x72,0x74,0x70,0x6b,0x67,0x68,0x69,0x6a,0x72,0x7a,
+0x77,0x78,0x75,0x6e,0x64,0x60,0x62,0x66,0x66,0x65,0x66,0x67,0x68,0x67,0x63,0x60,
+0x62,0x63,0x64,0x65,0x66,0x65,0x65,0x64,0x61,0x61,0x60,0x5e,0x5e,0x61,0x61,0x5f,
+0x5e,0x5f,0x64,0x69,0x69,0x68,0x6e,0x77,0x9f,0xc9,0xe4,0xde,0xd2,0xcd,0xcd,0xd0,
+0xc9,0xca,0xc9,0xc4,0xbb,0xb1,0xaa,0xa6,0xa7,0xa8,0xa9,0xaa,0xa9,0xa9,0xaa,0xaa,
+0xaa,0xa6,0xa0,0x9c,0x98,0x95,0x91,0x8e,0x88,0x85,0x83,0x80,0x7d,0x76,0x6f,0x69,
+0x69,0x69,0x67,0x63,0x5a,0x51,0x4f,0x51,0x51,0x55,0x5b,0x5f,0x63,0x66,0x6a,0x6d,
+0x76,0x7d,0x84,0x86,0x87,0x88,0x87,0x85,0x88,0x87,0x86,0x85,0x85,0x84,0x84,0x84,
+0x85,0x87,0x8b,0x8d,0x8e,0x8d,0x8b,0x89,0x88,0x88,0x86,0x85,0x84,0x84,0x85,0x85,
+0x82,0x82,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x81,0x83,0x83,0x83,
+0x86,0x84,0x82,0x80,0x7e,0x7c,0x7b,0x7a,0x77,0x75,0x72,0x6f,0x6d,0x6a,0x67,0x65,
+0x63,0x61,0x5f,0x5e,0x5e,0x5d,0x5c,0x5b,0x5d,0x5c,0x5a,0x59,0x5c,0x60,0x61,0x5f,
+0x64,0x66,0x66,0x62,0x5c,0x5a,0x5d,0x61,0x62,0x60,0x60,0x61,0x60,0x5b,0x58,0x58,
+0x59,0x58,0x57,0x56,0x55,0x54,0x53,0x52,0x56,0x4c,0x51,0x64,0x6b,0x5f,0x53,0x52,
+0x52,0x53,0x58,0x62,0x68,0x65,0x5b,0x53,0x4f,0x4e,0x50,0x57,0x5d,0x62,0x65,0x68,
+0x66,0x58,0x4e,0x51,0x55,0x53,0x53,0x55,0x6f,0x80,0x80,0x71,0x6b,0x69,0x65,0x61,
+0x54,0x4b,0x44,0x47,0x55,0x67,0x75,0x7b,0x6b,0x5d,0x4a,0x3d,0x3e,0x47,0x4d,0x4f,
+0x54,0x4f,0x50,0x57,0x58,0x52,0x50,0x53,0x56,0x52,0x54,0x5c,0x62,0x62,0x61,0x62,
+0x61,0x5f,0x5c,0x5c,0x5c,0x5c,0x59,0x57,0x56,0x56,0x56,0x57,0x57,0x58,0x59,0x59,
+0x55,0x52,0x51,0x54,0x59,0x5c,0x5a,0x58,0x53,0x5c,0x66,0x67,0x61,0x5f,0x63,0x68,
+0x60,0x60,0x64,0x68,0x68,0x64,0x61,0x60,0x63,0x65,0x65,0x60,0x5d,0x61,0x68,0x6c,
+0x64,0x66,0x68,0x64,0x56,0x48,0x47,0x4e,0x48,0x45,0x38,0x35,0x49,0x5e,0x66,0x67,
+0x5e,0x54,0x41,0x35,0x42,0x54,0x4f,0x3c,0x3a,0x3a,0x3f,0x37,0x39,0x48,0x52,0x5d,
+0x5c,0x60,0x66,0x6a,0x6a,0x5f,0x4c,0x3b,0x49,0x53,0x4f,0x45,0x49,0x4e,0x46,0x3c,
+0x34,0x29,0x25,0x35,0x4b,0x52,0x52,0x59,0x55,0x52,0x4a,0x53,0x5a,0x54,0x4a,0x38,
+0x2b,0x27,0x2f,0x46,0x59,0x57,0x42,0x31,0x3a,0x4a,0x5a,0x5e,0x5a,0x5d,0x6d,0x7d,
+0x70,0x58,0x4a,0x4b,0x47,0x3f,0x38,0x32,0x24,0x23,0x28,0x36,0x45,0x4d,0x4f,0x4f,
+0x68,0x68,0x60,0x64,0x6b,0x70,0x77,0x72,0x6f,0x5d,0x4d,0x45,0x3d,0x36,0x39,0x42,
+0x4d,0x50,0x4e,0x45,0x3e,0x3f,0x41,0x42,0x36,0x45,0x54,0x56,0x4a,0x3f,0x40,0x46,
+0x48,0x4c,0x4f,0x4e,0x4a,0x45,0x43,0x42,0x40,0x3d,0x3e,0x48,0x56,0x5b,0x54,0x4b,
+0x48,0x49,0x4b,0x4d,0x50,0x57,0x62,0x6a,0x63,0x5d,0x5a,0x5f,0x62,0x5d,0x54,0x4e,
+0x56,0x53,0x51,0x52,0x57,0x5b,0x5c,0x5a,0x57,0x5e,0x63,0x60,0x5a,0x57,0x59,0x5b,
+0x5d,0x5e,0x5c,0x56,0x50,0x4f,0x55,0x5c,0x5d,0x5d,0x57,0x52,0x57,0x5f,0x5d,0x54,
+0x58,0x5b,0x5d,0x5c,0x56,0x50,0x4c,0x4b,0x54,0x59,0x5e,0x60,0x5e,0x5e,0x62,0x66,
+0x6d,0x6b,0x68,0x62,0x5e,0x5b,0x59,0x58,0x59,0x59,0x56,0x52,0x53,0x58,0x5d,0x5e,
+0x55,0x5c,0x63,0x69,0x70,0x71,0x63,0x51,0x57,0x5c,0x65,0x6c,0x6a,0x5d,0x51,0x4a,
+0x4a,0x4b,0x4d,0x4c,0x49,0x49,0x4e,0x55,0x56,0x59,0x58,0x54,0x53,0x59,0x5f,0x62,
+0x58,0x5b,0x61,0x65,0x60,0x57,0x53,0x54,0x54,0x57,0x5a,0x5b,0x5f,0x63,0x64,0x63,
+0x5a,0x58,0x54,0x4f,0x4a,0x46,0x44,0x43,0x4b,0x4c,0x54,0x60,0x66,0x65,0x64,0x65,
+0x65,0x67,0x6e,0x75,0x76,0x71,0x6c,0x6b,0x67,0x69,0x69,0x65,0x64,0x66,0x68,0x66,
+0x67,0x65,0x63,0x64,0x67,0x6a,0x6d,0x6e,0x68,0x63,0x61,0x63,0x63,0x62,0x68,0x70,
+0x79,0x79,0x77,0x71,0x6a,0x65,0x64,0x66,0x66,0x66,0x67,0x67,0x67,0x66,0x65,0x63,
+0x62,0x60,0x5e,0x5f,0x62,0x64,0x65,0x64,0x62,0x62,0x5f,0x5d,0x5f,0x64,0x65,0x64,
+0x64,0x61,0x63,0x66,0x65,0x6d,0x8d,0xaf,0xef,0xfc,0xf2,0xd7,0xca,0xcb,0xc8,0xc2,
+0xc5,0xc4,0xc3,0xbf,0xba,0xb3,0xac,0xa8,0xb0,0xaa,0xa5,0xa6,0xaa,0xad,0xaf,0xae,
+0xa8,0xa5,0xa1,0x9c,0x98,0x94,0x92,0x91,0x8a,0x87,0x84,0x82,0x7f,0x79,0x72,0x6c,
+0x66,0x65,0x65,0x64,0x60,0x57,0x51,0x4f,0x50,0x51,0x54,0x57,0x5b,0x60,0x64,0x66,
+0x6c,0x75,0x7e,0x83,0x85,0x87,0x87,0x86,0x89,0x88,0x88,0x87,0x86,0x85,0x84,0x83,
+0x84,0x85,0x87,0x89,0x89,0x89,0x88,0x87,0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x86,
+0x84,0x84,0x83,0x82,0x82,0x82,0x82,0x82,0x80,0x7e,0x7c,0x7c,0x7e,0x81,0x82,0x82,
+0x85,0x83,0x81,0x7e,0x7b,0x79,0x78,0x78,0x73,0x71,0x6e,0x6b,0x69,0x67,0x64,0x62,
+0x60,0x5f,0x5c,0x5b,0x5b,0x5a,0x59,0x58,0x55,0x57,0x5b,0x64,0x72,0x83,0x8d,0x90,
+0x74,0x6e,0x66,0x5e,0x5b,0x5e,0x63,0x68,0x6b,0x66,0x61,0x60,0x5f,0x5c,0x58,0x57,
+0x5a,0x5b,0x5d,0x5e,0x5e,0x5e,0x5e,0x5e,0x5e,0x57,0x5a,0x69,0x6e,0x63,0x57,0x54,
+0x57,0x54,0x57,0x60,0x66,0x62,0x5b,0x57,0x52,0x51,0x53,0x5a,0x5f,0x61,0x65,0x69,
+0x62,0x58,0x51,0x53,0x53,0x4f,0x51,0x58,0x67,0x6f,0x6c,0x67,0x71,0x80,0x89,0x8e,
+0x7d,0x6c,0x54,0x41,0x3c,0x43,0x50,0x59,0x5c,0x56,0x4f,0x4e,0x55,0x5d,0x5a,0x53,
+0x4c,0x4b,0x50,0x59,0x5d,0x58,0x53,0x54,0x54,0x50,0x52,0x5a,0x60,0x5f,0x5e,0x5f,
+0x61,0x5f,0x5c,0x5c,0x5c,0x5c,0x5a,0x57,0x52,0x53,0x54,0x56,0x57,0x58,0x58,0x58,
+0x54,0x52,0x52,0x54,0x58,0x5c,0x5c,0x5b,0x5a,0x61,0x68,0x6a,0x67,0x66,0x69,0x6e,
+0x72,0x6b,0x64,0x60,0x5e,0x60,0x67,0x6e,0x75,0x74,0x71,0x6d,0x6b,0x6b,0x6b,0x69,
+0x65,0x62,0x5f,0x5a,0x4f,0x44,0x42,0x45,0x4a,0x48,0x39,0x34,0x4a,0x5f,0x5c,0x4f,
+0x35,0x35,0x33,0x36,0x42,0x4e,0x4d,0x44,0x44,0x3f,0x3d,0x33,0x3b,0x51,0x59,0x61,
+0x59,0x57,0x5d,0x67,0x64,0x51,0x40,0x39,0x5b,0x58,0x49,0x3d,0x44,0x4c,0x47,0x41,
+0x46,0x3f,0x38,0x40,0x50,0x55,0x54,0x59,0x4f,0x53,0x4e,0x52,0x58,0x58,0x56,0x47,
+0x3e,0x38,0x34,0x37,0x39,0x30,0x21,0x15,0x2d,0x46,0x5e,0x65,0x64,0x68,0x71,0x78,
+0x75,0x68,0x60,0x5c,0x51,0x45,0x3a,0x30,0x25,0x1c,0x1f,0x33,0x48,0x4f,0x4d,0x4c,
+0x60,0x60,0x56,0x5a,0x63,0x69,0x71,0x6b,0x64,0x5a,0x58,0x5d,0x5a,0x4d,0x46,0x49,
+0x48,0x52,0x57,0x53,0x4c,0x48,0x44,0x3f,0x44,0x44,0x46,0x49,0x4a,0x47,0x41,0x3e,
+0x47,0x4d,0x52,0x50,0x47,0x41,0x40,0x42,0x3f,0x45,0x4d,0x52,0x52,0x4e,0x49,0x47,
+0x45,0x49,0x4c,0x4c,0x4c,0x52,0x5a,0x60,0x61,0x59,0x55,0x5a,0x5f,0x5c,0x55,0x50,
+0x4c,0x51,0x56,0x57,0x57,0x59,0x5b,0x5d,0x5d,0x5d,0x59,0x54,0x56,0x5b,0x5b,0x55,
+0x5a,0x58,0x52,0x4c,0x49,0x4c,0x54,0x5b,0x5b,0x5c,0x56,0x4f,0x51,0x57,0x52,0x48,
+0x4b,0x50,0x57,0x5a,0x58,0x54,0x50,0x4e,0x52,0x58,0x5f,0x62,0x63,0x65,0x6d,0x75,
+0x6a,0x67,0x61,0x5c,0x5a,0x5b,0x5b,0x5b,0x59,0x5b,0x59,0x54,0x51,0x52,0x55,0x56,
+0x5f,0x5a,0x57,0x5a,0x66,0x6f,0x6c,0x63,0x5e,0x5c,0x5e,0x60,0x5d,0x56,0x50,0x50,
+0x4f,0x4e,0x4e,0x4f,0x4c,0x4a,0x50,0x58,0x5e,0x63,0x62,0x5b,0x53,0x51,0x50,0x4f,
+0x52,0x51,0x57,0x60,0x61,0x5b,0x58,0x5a,0x5b,0x58,0x58,0x5a,0x5d,0x5e,0x60,0x63,
+0x59,0x59,0x58,0x54,0x4f,0x4e,0x51,0x55,0x56,0x52,0x56,0x61,0x65,0x5f,0x5c,0x5e,
+0x65,0x69,0x70,0x76,0x74,0x6f,0x6f,0x74,0x78,0x75,0x69,0x59,0x56,0x60,0x69,0x6b,
+0x6b,0x6b,0x6c,0x6d,0x6e,0x6e,0x6c,0x6b,0x68,0x65,0x67,0x6b,0x69,0x63,0x63,0x69,
+0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,0x6b,0x6b,0x6a,0x68,0x64,0x61,0x5f,0x61,0x63,0x65,
+0x63,0x60,0x5f,0x61,0x64,0x65,0x63,0x61,0x5f,0x60,0x5e,0x5c,0x60,0x68,0x6b,0x6a,
+0x6b,0x64,0x63,0x67,0x6a,0x81,0xbc,0xf6,0xfa,0xfc,0xf1,0xe0,0xd5,0xcc,0xc7,0xc9,
+0xc5,0xc3,0xc0,0xbf,0xbe,0xbb,0xb5,0xb0,0xa6,0xa8,0xab,0xac,0xaa,0xa6,0xa5,0xa6,
+0xa5,0xa3,0xa0,0x9b,0x96,0x93,0x91,0x91,0x8d,0x89,0x85,0x82,0x7f,0x7b,0x75,0x70,
+0x64,0x61,0x61,0x63,0x63,0x5d,0x54,0x4f,0x4d,0x4b,0x4b,0x4d,0x51,0x57,0x5b,0x5d,
+0x63,0x6d,0x78,0x7f,0x82,0x85,0x86,0x85,0x88,0x88,0x88,0x88,0x87,0x86,0x84,0x83,
+0x82,0x82,0x83,0x83,0x84,0x84,0x85,0x85,0x83,0x83,0x83,0x83,0x84,0x85,0x87,0x88,
+0x86,0x86,0x85,0x84,0x84,0x84,0x84,0x84,0x81,0x7f,0x7c,0x7c,0x7f,0x81,0x83,0x83,
+0x82,0x81,0x7e,0x7b,0x78,0x76,0x75,0x74,0x71,0x6e,0x6b,0x69,0x67,0x65,0x62,0x60,
+0x5f,0x5e,0x5c,0x5b,0x5a,0x5a,0x59,0x58,0x62,0x63,0x64,0x69,0x76,0x86,0x90,0x93,
+0x9d,0xa4,0xb0,0xb9,0xb9,0xac,0x99,0x8a,0x77,0x6e,0x65,0x62,0x61,0x5f,0x5d,0x5c,
+0x5b,0x5c,0x5c,0x5d,0x5f,0x62,0x65,0x68,0x67,0x64,0x67,0x6e,0x70,0x69,0x5f,0x5a,
+0x5e,0x58,0x57,0x5e,0x62,0x5e,0x59,0x57,0x55,0x54,0x56,0x5b,0x5d,0x5d,0x5f,0x64,
+0x55,0x56,0x5d,0x60,0x5a,0x56,0x62,0x75,0x83,0x7e,0x6a,0x56,0x52,0x58,0x65,0x74,
+0x80,0x83,0x80,0x71,0x5c,0x4c,0x48,0x4b,0x60,0x69,0x73,0x79,0x79,0x71,0x60,0x50,
+0x4c,0x4c,0x4f,0x54,0x57,0x55,0x51,0x4f,0x55,0x50,0x50,0x58,0x5c,0x5a,0x58,0x58,
+0x5e,0x5b,0x59,0x59,0x59,0x59,0x57,0x54,0x4d,0x4f,0x53,0x56,0x59,0x5a,0x5b,0x5b,
+0x5b,0x59,0x57,0x56,0x56,0x56,0x56,0x55,0x5a,0x62,0x6d,0x78,0x81,0x8b,0x97,0x9f,
+0xa1,0x9c,0x97,0x95,0x95,0x98,0x9e,0xa5,0xa2,0xa1,0x9f,0x9d,0x9b,0x95,0x89,0x7e,
+0x65,0x5c,0x53,0x4e,0x4b,0x47,0x46,0x47,0x48,0x47,0x3a,0x38,0x51,0x61,0x4d,0x30,
+0x1d,0x22,0x2e,0x3d,0x47,0x4c,0x51,0x57,0x4f,0x44,0x3c,0x31,0x3d,0x56,0x5d,0x60,
+0x55,0x51,0x5e,0x72,0x6e,0x56,0x49,0x4f,0x69,0x55,0x36,0x2d,0x44,0x59,0x59,0x51,
+0x49,0x44,0x38,0x38,0x47,0x55,0x5d,0x64,0x5f,0x60,0x58,0x60,0x6e,0x6e,0x5c,0x3b,
+0x3a,0x38,0x32,0x26,0x18,0x14,0x22,0x33,0x4a,0x59,0x65,0x68,0x6d,0x77,0x79,0x73,
+0x6c,0x61,0x53,0x42,0x32,0x2f,0x2f,0x29,0x1a,0x1b,0x26,0x35,0x38,0x35,0x3b,0x47,
+0x5d,0x56,0x4f,0x51,0x5b,0x66,0x6a,0x6b,0x5e,0x56,0x55,0x58,0x58,0x58,0x57,0x51,
+0x51,0x58,0x5f,0x5d,0x52,0x48,0x42,0x41,0x46,0x4b,0x4d,0x49,0x47,0x48,0x46,0x41,
+0x48,0x4b,0x54,0x5c,0x59,0x4d,0x46,0x47,0x55,0x55,0x50,0x47,0x42,0x43,0x45,0x45,
+0x49,0x48,0x48,0x4a,0x4c,0x4e,0x52,0x56,0x57,0x56,0x58,0x5f,0x67,0x66,0x5b,0x4f,
+0x4e,0x50,0x53,0x55,0x56,0x55,0x53,0x52,0x57,0x54,0x51,0x52,0x55,0x58,0x57,0x55,
+0x5d,0x5c,0x55,0x4c,0x4b,0x53,0x56,0x54,0x55,0x59,0x57,0x51,0x4f,0x52,0x50,0x49,
+0x4e,0x4e,0x51,0x58,0x5e,0x60,0x5c,0x57,0x60,0x64,0x6a,0x6c,0x68,0x63,0x68,0x70,
+0x69,0x68,0x66,0x67,0x67,0x65,0x60,0x5b,0x5a,0x5b,0x5a,0x55,0x51,0x53,0x5b,0x63,
+0x61,0x57,0x50,0x53,0x5b,0x64,0x6e,0x76,0x77,0x70,0x65,0x5b,0x56,0x53,0x4d,0x47,
+0x4a,0x4f,0x58,0x5e,0x5c,0x57,0x56,0x5a,0x5d,0x5d,0x59,0x51,0x4a,0x4e,0x5b,0x67,
+0x5a,0x55,0x56,0x5f,0x62,0x5b,0x51,0x4e,0x52,0x53,0x58,0x5e,0x69,0x7a,0x7c,0x6e,
+0x51,0x52,0x59,0x5e,0x5b,0x54,0x55,0x5d,0x59,0x5d,0x63,0x67,0x67,0x64,0x61,0x5f,
+0x64,0x73,0x73,0x6d,0x71,0x70,0x6d,0x74,0x77,0x67,0x59,0x54,0x58,0x65,0x6d,0x68,
+0x66,0x6d,0x74,0x78,0x78,0x76,0x71,0x6c,0x60,0x66,0x6c,0x6e,0x6c,0x6a,0x69,0x69,
+0x6b,0x70,0x6e,0x6c,0x70,0x6f,0x6b,0x6a,0x6a,0x67,0x62,0x5f,0x60,0x63,0x67,0x69,
+0x67,0x62,0x5e,0x5f,0x61,0x62,0x63,0x65,0x56,0x60,0x5e,0x5d,0x6b,0x71,0x69,0x65,
+0x66,0x70,0x77,0x81,0xa0,0xcf,0xf3,0xff,0xfb,0xff,0xf8,0xe5,0xd5,0xd0,0xcd,0xc8,
+0xc3,0xc7,0xc8,0xc5,0xc2,0xbf,0xba,0xb4,0xac,0xa8,0xa7,0xaa,0xaa,0xa7,0xa5,0xa6,
+0xa3,0x9c,0x98,0x97,0x95,0x90,0x8d,0x8d,0x8d,0x89,0x84,0x80,0x7d,0x7b,0x78,0x76,
+0x69,0x65,0x61,0x60,0x61,0x5f,0x5a,0x55,0x4d,0x4a,0x47,0x48,0x4c,0x50,0x51,0x51,
+0x5f,0x62,0x6b,0x77,0x80,0x84,0x87,0x8a,0x87,0x88,0x88,0x87,0x85,0x84,0x85,0x87,
+0x83,0x82,0x80,0x7f,0x7f,0x80,0x81,0x82,0x83,0x82,0x82,0x82,0x83,0x86,0x88,0x8a,
+0x8a,0x8a,0x8a,0x89,0x89,0x88,0x87,0x86,0x83,0x82,0x80,0x7f,0x7f,0x7f,0x81,0x82,
+0x83,0x81,0x7e,0x7b,0x77,0x74,0x6f,0x6c,0x6a,0x6a,0x6a,0x67,0x64,0x60,0x5d,0x5b,
+0x5b,0x5b,0x5b,0x59,0x57,0x58,0x5b,0x5d,0x5e,0x65,0x66,0x64,0x69,0x6d,0x74,0x7f,
+0x90,0x97,0xa2,0xb0,0xbd,0xc5,0xca,0xcb,0xcb,0xca,0xbf,0xa1,0x7b,0x60,0x5a,0x60,
+0x56,0x57,0x59,0x5a,0x5e,0x62,0x63,0x62,0x5a,0x62,0x6d,0x76,0x77,0x6e,0x5f,0x54,
+0x5d,0x57,0x54,0x58,0x5a,0x57,0x56,0x58,0x56,0x4e,0x52,0x59,0x5d,0x6a,0x6f,0x63,
+0x5b,0x5c,0x5d,0x58,0x4f,0x52,0x6a,0x84,0x82,0x7b,0x6d,0x5a,0x49,0x43,0x4d,0x5a,
+0x6c,0x7c,0x87,0x7e,0x69,0x60,0x6c,0x7c,0x8a,0x84,0x85,0x8c,0x8d,0x7d,0x65,0x54,
+0x54,0x51,0x51,0x55,0x59,0x59,0x57,0x55,0x4e,0x50,0x53,0x57,0x5b,0x5c,0x5a,0x57,
+0x60,0x5f,0x5c,0x59,0x5a,0x5c,0x5c,0x5a,0x55,0x59,0x56,0x50,0x51,0x58,0x5c,0x59,
+0x5b,0x59,0x59,0x5b,0x5a,0x56,0x52,0x52,0x67,0x83,0xa4,0xb5,0xb5,0xb1,0xaf,0xaf,
+0xa9,0xa4,0xa5,0xa4,0x9b,0x97,0x99,0x97,0x97,0x95,0x94,0x94,0x8e,0x81,0x72,0x6a,
+0x60,0x57,0x46,0x40,0x4b,0x52,0x4d,0x49,0x50,0x3e,0x35,0x45,0x5c,0x5c,0x41,0x25,
+0x1d,0x22,0x2c,0x33,0x37,0x45,0x53,0x55,0x4a,0x3b,0x2f,0x2f,0x41,0x5c,0x68,0x60,
+0x5a,0x4e,0x6e,0x78,0x7f,0x67,0x6a,0x57,0x5c,0x3d,0x2b,0x25,0x58,0x67,0x75,0x6d,
+0x59,0x3f,0x2b,0x31,0x4a,0x61,0x6d,0x72,0x46,0x45,0x4c,0x5c,0x5e,0x46,0x30,0x30,
+0x44,0x44,0x39,0x2a,0x1e,0x1d,0x32,0x4f,0x5f,0x61,0x66,0x6c,0x73,0x78,0x7b,0x7c,
+0x72,0x5a,0x45,0x43,0x4a,0x48,0x3c,0x32,0x27,0x2b,0x30,0x30,0x29,0x21,0x22,0x27,
+0x55,0x4d,0x47,0x4c,0x5a,0x66,0x6a,0x68,0x60,0x57,0x56,0x58,0x57,0x58,0x57,0x51,
+0x58,0x5f,0x67,0x69,0x65,0x5e,0x57,0x53,0x4f,0x48,0x40,0x40,0x4d,0x58,0x56,0x4c,
+0x44,0x4d,0x5f,0x6e,0x6f,0x66,0x5f,0x5f,0x5e,0x59,0x4e,0x44,0x40,0x44,0x46,0x46,
+0x46,0x47,0x48,0x4c,0x4f,0x51,0x52,0x52,0x5c,0x5e,0x5d,0x5a,0x5a,0x5d,0x5f,0x5d,
+0x56,0x55,0x55,0x54,0x53,0x52,0x51,0x51,0x4e,0x4e,0x4e,0x4e,0x50,0x53,0x55,0x57,
+0x5a,0x5b,0x58,0x53,0x54,0x59,0x59,0x53,0x52,0x55,0x56,0x55,0x56,0x58,0x57,0x54,
+0x59,0x59,0x59,0x5b,0x5e,0x60,0x5f,0x5d,0x63,0x67,0x6d,0x6f,0x6b,0x67,0x6c,0x73,
+0x6b,0x69,0x65,0x62,0x5f,0x5a,0x54,0x51,0x57,0x58,0x58,0x56,0x54,0x55,0x59,0x5c,
+0x58,0x54,0x52,0x56,0x5b,0x60,0x66,0x6c,0x67,0x66,0x61,0x5b,0x57,0x58,0x59,0x59,
+0x61,0x61,0x62,0x5f,0x58,0x50,0x50,0x55,0x55,0x58,0x59,0x54,0x4e,0x4e,0x55,0x5d,
+0x5c,0x5a,0x5e,0x66,0x67,0x60,0x5a,0x5a,0x55,0x55,0x57,0x58,0x5c,0x67,0x68,0x5a,
+0x54,0x51,0x51,0x55,0x59,0x5b,0x5d,0x60,0x70,0x71,0x71,0x70,0x6f,0x6e,0x6b,0x6a,
+0x6e,0x79,0x77,0x70,0x73,0x72,0x6f,0x72,0x6d,0x6a,0x6c,0x6c,0x69,0x69,0x67,0x5d,
+0x63,0x6b,0x76,0x7d,0x7c,0x75,0x6b,0x63,0x65,0x66,0x66,0x65,0x63,0x63,0x66,0x69,
+0x72,0x75,0x6f,0x67,0x67,0x65,0x61,0x62,0x5d,0x5f,0x62,0x65,0x66,0x66,0x66,0x66,
+0x61,0x5d,0x5b,0x5d,0x60,0x62,0x64,0x67,0x6a,0x63,0x62,0x67,0x65,0x5f,0x73,0x97,
+0xb8,0xc8,0xd9,0xe5,0xf2,0xfd,0xfe,0xf7,0xfd,0xfe,0xfa,0xed,0xdd,0xd2,0xce,0xce,
+0xc7,0xc8,0xc6,0xc4,0xc4,0xc4,0xc1,0xbc,0xb3,0xae,0xab,0xac,0xab,0xa7,0xa6,0xa8,
+0xa2,0x9c,0x97,0x96,0x94,0x8f,0x8b,0x8a,0x8c,0x8b,0x88,0x84,0x7f,0x7b,0x78,0x78,
+0x6f,0x6a,0x64,0x61,0x60,0x5f,0x5c,0x59,0x53,0x4f,0x4a,0x47,0x48,0x4a,0x4b,0x4b,
+0x55,0x58,0x62,0x70,0x7c,0x82,0x84,0x86,0x85,0x85,0x85,0x86,0x86,0x85,0x83,0x82,
+0x83,0x81,0x7f,0x7d,0x7c,0x7d,0x7d,0x7e,0x80,0x7f,0x7f,0x7f,0x81,0x83,0x85,0x87,
+0x87,0x87,0x88,0x88,0x88,0x88,0x87,0x86,0x83,0x82,0x81,0x80,0x80,0x80,0x81,0x81,
+0x80,0x7e,0x7b,0x78,0x76,0x73,0x70,0x6e,0x68,0x67,0x64,0x61,0x5e,0x5c,0x5c,0x5c,
+0x5c,0x5a,0x58,0x56,0x52,0x51,0x56,0x5c,0x60,0x5e,0x59,0x58,0x59,0x55,0x58,0x64,
+0x74,0x82,0x97,0xaa,0xb7,0xbc,0xbf,0xbf,0xc0,0xc1,0xc2,0xb5,0x95,0x71,0x60,0x60,
+0x5d,0x5b,0x5a,0x5a,0x5c,0x5e,0x5d,0x5a,0x5b,0x5c,0x61,0x69,0x6f,0x6d,0x63,0x5a,
+0x58,0x5b,0x5a,0x55,0x55,0x58,0x5a,0x58,0x58,0x4f,0x50,0x55,0x5b,0x67,0x6c,0x61,
+0x5c,0x5f,0x62,0x64,0x6a,0x74,0x80,0x87,0x73,0x6f,0x6d,0x6b,0x65,0x5e,0x58,0x56,
+0x4e,0x52,0x57,0x5d,0x62,0x68,0x6d,0x71,0x78,0x6e,0x64,0x62,0x62,0x5f,0x5a,0x57,
+0x58,0x54,0x52,0x55,0x5a,0x5d,0x5c,0x5a,0x59,0x59,0x58,0x58,0x5a,0x5c,0x5f,0x60,
+0x5e,0x5f,0x5e,0x5c,0x5d,0x5d,0x59,0x55,0x56,0x55,0x51,0x50,0x55,0x5c,0x5f,0x5d,
+0x5d,0x60,0x60,0x5e,0x61,0x73,0x8f,0xa5,0xa3,0xa5,0xa6,0xa5,0xa6,0xa7,0xa6,0xa3,
+0xa0,0x9a,0x99,0x96,0x8c,0x89,0x8b,0x8a,0x89,0x84,0x7e,0x79,0x73,0x6a,0x62,0x5e,
+0x6c,0x5e,0x4d,0x4a,0x4f,0x49,0x40,0x3f,0x45,0x3f,0x3b,0x39,0x38,0x33,0x2e,0x2c,
+0x34,0x34,0x34,0x2f,0x2e,0x40,0x57,0x61,0x52,0x40,0x32,0x33,0x43,0x5a,0x63,0x5c,
+0x50,0x3e,0x61,0x7a,0x84,0x63,0x5e,0x50,0x4c,0x35,0x2e,0x38,0x68,0x74,0x78,0x6c,
+0x53,0x3e,0x36,0x45,0x57,0x5e,0x63,0x6a,0x69,0x55,0x4b,0x55,0x57,0x44,0x3a,0x43,
+0x44,0x3b,0x28,0x1c,0x1e,0x28,0x37,0x4a,0x51,0x66,0x77,0x77,0x73,0x78,0x83,0x89,
+0x77,0x67,0x56,0x4e,0x48,0x40,0x39,0x37,0x44,0x3c,0x38,0x43,0x5b,0x6f,0x75,0x73,
+0x4e,0x46,0x40,0x46,0x55,0x63,0x67,0x66,0x62,0x5a,0x57,0x57,0x55,0x57,0x56,0x4f,
+0x52,0x56,0x5d,0x63,0x67,0x67,0x64,0x61,0x60,0x51,0x40,0x3e,0x4d,0x5c,0x5a,0x50,
+0x41,0x4d,0x61,0x72,0x74,0x6a,0x62,0x61,0x58,0x50,0x43,0x3b,0x3d,0x44,0x49,0x4a,
+0x4b,0x4a,0x4a,0x4d,0x51,0x53,0x52,0x4f,0x56,0x61,0x67,0x60,0x5a,0x5c,0x5f,0x60,
+0x5a,0x57,0x53,0x51,0x51,0x51,0x51,0x51,0x52,0x54,0x56,0x56,0x56,0x59,0x5f,0x63,
+0x60,0x5f,0x5b,0x58,0x5a,0x5d,0x59,0x51,0x5e,0x5e,0x62,0x67,0x69,0x68,0x67,0x69,
+0x67,0x65,0x61,0x5d,0x5a,0x5b,0x5d,0x5f,0x5e,0x62,0x68,0x6a,0x66,0x62,0x64,0x69,
+0x60,0x60,0x5e,0x5b,0x58,0x55,0x54,0x54,0x5a,0x5b,0x5d,0x5f,0x60,0x5f,0x5d,0x5c,
+0x5a,0x56,0x53,0x52,0x53,0x57,0x60,0x68,0x64,0x67,0x68,0x62,0x5d,0x5d,0x62,0x65,
+0x63,0x62,0x61,0x5d,0x56,0x51,0x53,0x58,0x55,0x5a,0x5f,0x5d,0x56,0x51,0x52,0x54,
+0x55,0x54,0x55,0x5a,0x5c,0x5c,0x60,0x66,0x6a,0x66,0x62,0x59,0x55,0x5b,0x5d,0x54,
+0x5a,0x5b,0x5b,0x5b,0x5e,0x65,0x6b,0x6d,0x71,0x70,0x6f,0x70,0x73,0x74,0x72,0x71,
+0x76,0x7b,0x76,0x6f,0x72,0x72,0x6e,0x6d,0x6d,0x71,0x7a,0x7b,0x72,0x6c,0x66,0x5d,
+0x66,0x6a,0x71,0x76,0x76,0x71,0x6a,0x65,0x6b,0x6a,0x66,0x62,0x5e,0x5e,0x61,0x64,
+0x66,0x6b,0x68,0x62,0x62,0x60,0x5e,0x61,0x5d,0x61,0x67,0x69,0x68,0x65,0x63,0x63,
+0x62,0x5f,0x5d,0x5e,0x5f,0x5e,0x5f,0x62,0x5c,0x60,0x68,0x69,0x6d,0x8c,0xc2,0xe9,
+0xf9,0xfd,0xff,0xff,0xff,0xff,0xff,0xfc,0xfd,0xfc,0xfc,0xf7,0xe8,0xd7,0xcf,0xd0,
+0xca,0xc8,0xc4,0xc2,0xc3,0xc5,0xc3,0xbf,0xbc,0xb7,0xb2,0xaf,0xad,0xaa,0xa9,0xa9,
+0xa4,0x9e,0x9a,0x98,0x95,0x90,0x8b,0x89,0x88,0x8a,0x8a,0x86,0x80,0x7a,0x78,0x78,
+0x74,0x6f,0x68,0x62,0x5f,0x5d,0x5c,0x5b,0x58,0x54,0x4e,0x49,0x46,0x46,0x47,0x48,
+0x4b,0x4c,0x54,0x61,0x6f,0x79,0x81,0x86,0x87,0x85,0x83,0x84,0x86,0x86,0x84,0x82,
+0x82,0x81,0x7e,0x7c,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7f,0x81,0x82,
+0x84,0x85,0x86,0x88,0x88,0x87,0x87,0x86,0x82,0x82,0x82,0x82,0x82,0x81,0x80,0x80,
+0x7d,0x7b,0x77,0x74,0x72,0x6f,0x6d,0x6b,0x69,0x66,0x60,0x5b,0x58,0x56,0x56,0x57,
+0x5a,0x55,0x52,0x51,0x4c,0x49,0x52,0x60,0x68,0x60,0x58,0x5c,0x63,0x5d,0x5a,0x63,
+0x5e,0x6a,0x7f,0x96,0xaa,0xb3,0xb5,0xb3,0xb4,0xb6,0xc0,0xc5,0xb0,0x89,0x6c,0x62,
+0x60,0x5d,0x5b,0x5c,0x5e,0x5e,0x5c,0x59,0x60,0x5c,0x5a,0x61,0x69,0x6a,0x60,0x56,
+0x5f,0x6b,0x6b,0x5b,0x53,0x5a,0x5b,0x55,0x59,0x52,0x52,0x59,0x60,0x68,0x67,0x5c,
+0x5d,0x5e,0x60,0x67,0x78,0x87,0x85,0x7a,0x79,0x6d,0x63,0x6a,0x7b,0x8d,0x98,0x9d,
+0x96,0x7f,0x62,0x54,0x57,0x64,0x6e,0x72,0x73,0x6c,0x64,0x5e,0x59,0x55,0x54,0x56,
+0x51,0x4c,0x49,0x4c,0x54,0x5b,0x5d,0x5c,0x59,0x5a,0x5a,0x5b,0x5c,0x5f,0x65,0x69,
+0x63,0x63,0x61,0x5f,0x60,0x60,0x5c,0x57,0x59,0x53,0x50,0x54,0x59,0x5c,0x5e,0x5f,
+0x5c,0x68,0x7a,0x8e,0xa2,0xae,0xac,0xa3,0x94,0x91,0x8f,0x91,0x97,0x9d,0x9c,0x97,
+0x97,0x8f,0x8b,0x87,0x7d,0x79,0x7b,0x7b,0x7e,0x77,0x6f,0x69,0x62,0x5c,0x58,0x58,
+0x57,0x4b,0x43,0x49,0x50,0x46,0x3f,0x47,0x48,0x3e,0x3a,0x42,0x4e,0x4f,0x47,0x3e,
+0x39,0x3b,0x3e,0x39,0x35,0x45,0x5a,0x62,0x57,0x40,0x33,0x3b,0x4f,0x64,0x68,0x5d,
+0x50,0x45,0x65,0x7b,0x82,0x63,0x5d,0x51,0x43,0x33,0x34,0x4d,0x70,0x75,0x69,0x59,
+0x43,0x38,0x3d,0x53,0x5e,0x5a,0x5b,0x66,0x6d,0x55,0x4b,0x56,0x55,0x42,0x3d,0x4b,
+0x43,0x3c,0x2b,0x21,0x27,0x2d,0x2c,0x2e,0x47,0x63,0x7a,0x7c,0x7b,0x81,0x85,0x83,
+0x71,0x6b,0x63,0x57,0x45,0x37,0x35,0x3b,0x49,0x3e,0x34,0x3a,0x51,0x69,0x75,0x75,
+0x4c,0x46,0x41,0x46,0x52,0x5d,0x64,0x65,0x63,0x5c,0x58,0x57,0x55,0x58,0x58,0x50,
+0x4b,0x4d,0x50,0x55,0x5c,0x62,0x66,0x68,0x6b,0x62,0x53,0x4c,0x53,0x5e,0x61,0x5c,
+0x4d,0x54,0x5e,0x64,0x5f,0x54,0x4d,0x4c,0x52,0x4b,0x42,0x3d,0x41,0x48,0x4d,0x4f,
+0x54,0x52,0x4f,0x4d,0x4f,0x52,0x52,0x4f,0x56,0x5b,0x57,0x4b,0x4a,0x56,0x61,0x64,
+0x57,0x54,0x51,0x52,0x54,0x55,0x54,0x52,0x51,0x53,0x54,0x54,0x54,0x57,0x5c,0x60,
+0x63,0x5f,0x59,0x57,0x5b,0x5f,0x5d,0x57,0x5f,0x5d,0x62,0x6b,0x6c,0x66,0x65,0x69,
+0x6e,0x6c,0x65,0x5b,0x52,0x50,0x54,0x59,0x55,0x5b,0x61,0x63,0x5e,0x59,0x56,0x57,
+0x54,0x56,0x57,0x56,0x55,0x56,0x5a,0x5e,0x5c,0x5c,0x5e,0x62,0x65,0x65,0x60,0x5c,
+0x5b,0x5a,0x57,0x54,0x52,0x55,0x5e,0x66,0x6c,0x71,0x70,0x68,0x5e,0x59,0x5a,0x5b,
+0x54,0x58,0x5b,0x5b,0x59,0x59,0x5d,0x63,0x5b,0x61,0x66,0x66,0x62,0x5d,0x5b,0x5c,
+0x5e,0x5b,0x5c,0x62,0x68,0x69,0x69,0x69,0x6d,0x68,0x61,0x55,0x4e,0x56,0x5f,0x5d,
+0x68,0x73,0x76,0x6c,0x64,0x68,0x71,0x75,0x6c,0x6c,0x6e,0x73,0x78,0x79,0x76,0x73,
+0x7a,0x7b,0x76,0x71,0x74,0x77,0x75,0x70,0x6d,0x72,0x7d,0x81,0x7a,0x74,0x6c,0x60,
+0x63,0x66,0x6c,0x73,0x75,0x72,0x6d,0x6a,0x6b,0x6b,0x6b,0x68,0x65,0x63,0x63,0x63,
+0x59,0x63,0x66,0x65,0x68,0x67,0x65,0x68,0x6b,0x6c,0x6b,0x67,0x62,0x5f,0x60,0x62,
+0x63,0x60,0x5e,0x5f,0x5f,0x5e,0x5f,0x61,0x65,0x66,0x6e,0x7b,0x9c,0xd6,0xfe,0xfe,
+0xfa,0xf9,0xfa,0xfc,0xfd,0xfc,0xfc,0xfe,0xfa,0xfc,0xfd,0xfb,0xf2,0xe2,0xd4,0xcd,
+0xca,0xc8,0xc6,0xc4,0xc3,0xc3,0xc1,0xbf,0xc0,0xbd,0xb8,0xb5,0xb2,0xaf,0xac,0xab,
+0xa7,0xa3,0x9f,0x9b,0x98,0x93,0x8e,0x8a,0x86,0x86,0x86,0x84,0x80,0x7b,0x78,0x76,
+0x75,0x71,0x6a,0x64,0x5e,0x5b,0x5a,0x5a,0x58,0x56,0x52,0x4d,0x49,0x48,0x48,0x49,
+0x48,0x47,0x48,0x4e,0x59,0x67,0x77,0x84,0x87,0x85,0x83,0x82,0x82,0x82,0x83,0x83,
+0x81,0x80,0x7e,0x7c,0x7b,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x78,0x79,0x7b,0x7d,0x7e,
+0x82,0x83,0x84,0x86,0x86,0x85,0x84,0x83,0x81,0x82,0x83,0x83,0x83,0x81,0x7f,0x7e,
+0x7b,0x78,0x74,0x70,0x6d,0x6a,0x67,0x65,0x63,0x61,0x5d,0x59,0x57,0x55,0x54,0x53,
+0x53,0x4c,0x4a,0x4b,0x47,0x45,0x53,0x66,0x74,0x69,0x5e,0x65,0x78,0x7c,0x72,0x6d,
+0x6e,0x70,0x7a,0x90,0xaa,0xba,0xbb,0xb6,0xb3,0xb4,0xbb,0xc4,0xbd,0xa0,0x7d,0x67,
+0x62,0x61,0x61,0x62,0x61,0x5e,0x5b,0x5a,0x60,0x5b,0x59,0x61,0x6a,0x6a,0x5d,0x50,
+0x61,0x70,0x73,0x64,0x57,0x58,0x59,0x55,0x59,0x56,0x58,0x61,0x6a,0x6b,0x62,0x55,
+0x5d,0x5c,0x5e,0x68,0x79,0x84,0x7f,0x74,0x63,0x59,0x53,0x5b,0x69,0x74,0x78,0x78,
+0x80,0x7c,0x78,0x75,0x76,0x76,0x76,0x75,0x76,0x73,0x6f,0x6a,0x63,0x5c,0x58,0x56,
+0x59,0x55,0x50,0x52,0x59,0x61,0x61,0x5e,0x50,0x56,0x5e,0x62,0x64,0x66,0x6b,0x6f,
+0x67,0x65,0x60,0x5d,0x5e,0x62,0x61,0x5e,0x5c,0x57,0x56,0x5a,0x5a,0x57,0x5d,0x66,
+0x72,0x8c,0xa6,0xb2,0xb3,0xae,0xa2,0x96,0x83,0x8b,0x93,0x97,0x97,0x94,0x8e,0x88,
+0x8a,0x81,0x7d,0x79,0x6f,0x6b,0x6c,0x6b,0x66,0x61,0x5c,0x57,0x51,0x4a,0x47,0x47,
+0x43,0x41,0x42,0x4b,0x52,0x4c,0x4c,0x58,0x4f,0x4c,0x4d,0x53,0x57,0x52,0x48,0x41,
+0x33,0x3a,0x43,0x43,0x43,0x50,0x5e,0x5f,0x47,0x32,0x28,0x37,0x4f,0x5f,0x5c,0x4c,
+0x49,0x4b,0x60,0x60,0x5f,0x51,0x50,0x43,0x3e,0x33,0x3b,0x5b,0x70,0x6f,0x59,0x45,
+0x3d,0x3e,0x4a,0x5c,0x60,0x5b,0x5f,0x6b,0x5d,0x4e,0x4e,0x58,0x52,0x40,0x3c,0x44,
+0x49,0x44,0x32,0x25,0x2e,0x40,0x4f,0x5a,0x53,0x5c,0x67,0x70,0x7c,0x85,0x7f,0x72,
+0x6f,0x6e,0x6c,0x61,0x4c,0x38,0x32,0x36,0x3f,0x35,0x2f,0x36,0x45,0x56,0x65,0x70,
+0x46,0x48,0x4b,0x50,0x56,0x5c,0x60,0x61,0x61,0x5b,0x59,0x59,0x5a,0x61,0x62,0x5a,
+0x51,0x52,0x54,0x56,0x5a,0x5f,0x65,0x69,0x68,0x67,0x62,0x60,0x67,0x73,0x79,0x78,
+0x73,0x70,0x6c,0x66,0x5d,0x55,0x53,0x54,0x56,0x52,0x4e,0x4c,0x4c,0x4e,0x51,0x52,
+0x55,0x56,0x55,0x51,0x51,0x52,0x52,0x4f,0x52,0x56,0x58,0x5b,0x65,0x6f,0x6c,0x62,
+0x54,0x53,0x54,0x58,0x5d,0x5d,0x58,0x54,0x55,0x55,0x55,0x55,0x56,0x57,0x59,0x59,
+0x5c,0x58,0x54,0x55,0x5b,0x61,0x60,0x5d,0x59,0x58,0x60,0x6b,0x6c,0x64,0x61,0x66,
+0x6e,0x6d,0x67,0x5b,0x4e,0x48,0x4c,0x51,0x55,0x5b,0x62,0x63,0x5f,0x58,0x52,0x4e,
+0x51,0x53,0x55,0x54,0x52,0x53,0x57,0x5c,0x58,0x57,0x57,0x5a,0x5e,0x5f,0x5d,0x5a,
+0x59,0x5b,0x5d,0x5c,0x5c,0x5e,0x63,0x66,0x6c,0x6e,0x6c,0x63,0x58,0x50,0x4b,0x48,
+0x4f,0x54,0x58,0x59,0x59,0x5d,0x64,0x69,0x65,0x68,0x6a,0x6a,0x67,0x66,0x66,0x67,
+0x65,0x62,0x64,0x6e,0x77,0x74,0x66,0x59,0x6d,0x6b,0x6a,0x63,0x5e,0x68,0x74,0x76,
+0x75,0x7e,0x7c,0x6b,0x5f,0x63,0x6b,0x6f,0x69,0x68,0x69,0x6b,0x6e,0x6e,0x6a,0x66,
+0x70,0x6f,0x6d,0x6a,0x6c,0x72,0x73,0x6d,0x69,0x6d,0x7a,0x85,0x86,0x81,0x73,0x61,
+0x5c,0x62,0x6d,0x7a,0x7e,0x77,0x6d,0x67,0x67,0x68,0x69,0x69,0x68,0x66,0x64,0x64,
+0x5e,0x67,0x6a,0x68,0x6a,0x68,0x66,0x69,0x6f,0x6d,0x68,0x61,0x5b,0x5a,0x5e,0x63,
+0x5d,0x5b,0x5b,0x5d,0x5f,0x60,0x63,0x67,0x6f,0x63,0x79,0xaf,0xdf,0xfc,0xff,0xf1,
+0xf9,0xf8,0xfb,0xff,0xff,0xff,0xfe,0xff,0xf9,0xfe,0xff,0xfc,0xf9,0xf1,0xdf,0xcc,
+0xc9,0xc9,0xc9,0xc8,0xc5,0xc2,0xc0,0xc0,0xc0,0xbf,0xbc,0xba,0xb7,0xb4,0xb0,0xac,
+0xaa,0xa8,0xa3,0x9f,0x9c,0x97,0x91,0x8c,0x87,0x84,0x80,0x7f,0x80,0x7e,0x7a,0x76,
+0x74,0x71,0x6c,0x67,0x61,0x5d,0x5a,0x58,0x56,0x56,0x55,0x52,0x4e,0x4a,0x48,0x47,
+0x48,0x46,0x44,0x44,0x46,0x50,0x62,0x72,0x7f,0x83,0x86,0x85,0x81,0x7e,0x7c,0x7d,
+0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x77,0x77,0x77,0x77,0x78,0x79,0x7a,0x7b,
+0x7e,0x7f,0x80,0x80,0x80,0x7f,0x7d,0x7c,0x7e,0x80,0x81,0x82,0x81,0x7f,0x7d,0x7b,
+0x76,0x74,0x70,0x6d,0x6a,0x67,0x64,0x62,0x5a,0x59,0x58,0x58,0x57,0x54,0x50,0x4d,
+0x47,0x42,0x42,0x45,0x44,0x45,0x56,0x6c,0x7a,0x6e,0x59,0x57,0x70,0x80,0x75,0x64,
+0x6e,0x70,0x7b,0x8f,0xa6,0xb5,0xb8,0xb5,0xb8,0xb9,0xb9,0xbc,0xbd,0xae,0x8b,0x6a,
+0x66,0x66,0x67,0x67,0x62,0x5b,0x58,0x5a,0x5c,0x58,0x58,0x61,0x6a,0x6b,0x61,0x55,
+0x57,0x63,0x6b,0x66,0x5a,0x55,0x56,0x59,0x5b,0x5a,0x5a,0x62,0x6b,0x68,0x5b,0x52,
+0x5a,0x5c,0x65,0x73,0x7a,0x7a,0x78,0x78,0x77,0x70,0x67,0x62,0x5f,0x5e,0x5f,0x62,
+0x63,0x6c,0x76,0x7b,0x7c,0x7c,0x81,0x86,0x74,0x6d,0x63,0x5b,0x58,0x59,0x5c,0x5e,
+0x62,0x5f,0x5a,0x58,0x5c,0x60,0x5d,0x57,0x54,0x5b,0x65,0x69,0x69,0x69,0x6c,0x6f,
+0x63,0x60,0x5b,0x5a,0x5d,0x62,0x63,0x60,0x5e,0x5a,0x5a,0x5b,0x58,0x59,0x6a,0x7f,
+0x9a,0xa8,0xb0,0xab,0xa3,0x9f,0x99,0x91,0x8d,0x94,0x99,0x98,0x93,0x8d,0x87,0x82,
+0x79,0x70,0x6d,0x69,0x60,0x5b,0x5a,0x57,0x51,0x4e,0x4a,0x47,0x41,0x3c,0x3c,0x3f,
+0x42,0x47,0x49,0x4a,0x4a,0x45,0x46,0x50,0x5c,0x51,0x48,0x47,0x49,0x47,0x41,0x3c,
+0x3a,0x3c,0x3f,0x3f,0x43,0x54,0x5f,0x5b,0x43,0x3b,0x3e,0x4a,0x57,0x5f,0x5b,0x4e,
+0x47,0x46,0x4b,0x43,0x43,0x3d,0x3b,0x30,0x2e,0x2b,0x40,0x64,0x73,0x6f,0x58,0x41,
+0x34,0x40,0x50,0x5a,0x5a,0x57,0x5c,0x63,0x62,0x53,0x51,0x56,0x51,0x4b,0x48,0x42,
+0x39,0x38,0x2b,0x22,0x2f,0x45,0x58,0x65,0x64,0x61,0x63,0x6e,0x7a,0x7e,0x7a,0x75,
+0x79,0x77,0x76,0x6f,0x5e,0x47,0x37,0x33,0x40,0x32,0x2d,0x3a,0x49,0x53,0x64,0x75,
+0x42,0x4a,0x55,0x5c,0x5e,0x5d,0x5b,0x5b,0x5b,0x59,0x5a,0x5c,0x61,0x6c,0x6f,0x68,
+0x55,0x57,0x59,0x5b,0x5b,0x5c,0x5d,0x5e,0x64,0x64,0x64,0x69,0x77,0x85,0x89,0x84,
+0x80,0x7a,0x70,0x67,0x62,0x61,0x63,0x65,0x52,0x50,0x4f,0x51,0x52,0x52,0x54,0x56,
+0x53,0x5a,0x5d,0x58,0x53,0x53,0x53,0x51,0x4c,0x57,0x6b,0x80,0x8d,0x88,0x6f,0x59,
+0x55,0x56,0x5a,0x62,0x68,0x66,0x5c,0x54,0x5d,0x5d,0x5e,0x5f,0x5f,0x5e,0x5c,0x5a,
+0x58,0x55,0x53,0x55,0x5a,0x5c,0x5a,0x57,0x58,0x5b,0x64,0x6f,0x70,0x68,0x65,0x69,
+0x67,0x6a,0x6a,0x61,0x54,0x4b,0x4c,0x4f,0x58,0x5f,0x65,0x66,0x63,0x5e,0x56,0x50,
+0x50,0x52,0x54,0x54,0x52,0x51,0x54,0x57,0x57,0x56,0x56,0x56,0x59,0x5b,0x5e,0x5f,
+0x62,0x61,0x5d,0x5b,0x5e,0x66,0x6c,0x6f,0x63,0x64,0x61,0x5a,0x52,0x4c,0x47,0x43,
+0x4c,0x50,0x52,0x51,0x52,0x5a,0x64,0x6b,0x72,0x70,0x6c,0x67,0x61,0x5e,0x5d,0x5e,
+0x5e,0x56,0x53,0x5a,0x65,0x68,0x5e,0x53,0x59,0x5a,0x5e,0x5c,0x56,0x5a,0x61,0x60,
+0x6d,0x6c,0x64,0x58,0x56,0x60,0x67,0x68,0x64,0x62,0x60,0x61,0x63,0x64,0x64,0x63,
+0x69,0x69,0x6b,0x69,0x67,0x6e,0x73,0x6d,0x70,0x6e,0x75,0x7e,0x81,0x83,0x7a,0x6b,
+0x64,0x64,0x6a,0x75,0x79,0x73,0x6c,0x6a,0x69,0x67,0x65,0x62,0x5f,0x5c,0x5b,0x5a,
+0x5e,0x64,0x61,0x5c,0x5e,0x5e,0x5e,0x63,0x65,0x64,0x60,0x5c,0x5a,0x5b,0x60,0x64,
+0x61,0x5e,0x5d,0x5e,0x5e,0x5f,0x63,0x67,0x5b,0x75,0xae,0xe6,0xfd,0xfb,0xfa,0xfc,
+0xff,0xfd,0xfa,0xfa,0xfa,0xfb,0xfe,0xff,0xfb,0xff,0xff,0xfd,0xfe,0xfd,0xed,0xd9,
+0xcd,0xca,0xc7,0xc6,0xc3,0xc0,0xbf,0xc1,0xbe,0xbf,0xbe,0xbb,0xb9,0xb7,0xb3,0xae,
+0xac,0xab,0xa8,0xa3,0x9f,0x9b,0x94,0x8e,0x8b,0x84,0x7d,0x7b,0x7d,0x7f,0x7c,0x79,
+0x74,0x72,0x6e,0x6a,0x66,0x62,0x5d,0x59,0x57,0x57,0x56,0x54,0x50,0x4b,0x47,0x44,
+0x47,0x46,0x46,0x43,0x3f,0x41,0x4b,0x55,0x6e,0x79,0x85,0x8b,0x87,0x80,0x7b,0x7a,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x77,0x77,0x77,0x76,0x77,0x77,0x77,0x78,
+0x7a,0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x7a,0x7b,0x7c,0x7d,0x7c,0x7a,0x77,0x76,
+0x71,0x6f,0x6c,0x6a,0x67,0x64,0x61,0x5e,0x59,0x57,0x54,0x51,0x4f,0x4a,0x43,0x3e,
+0x3e,0x3c,0x3e,0x42,0x43,0x47,0x59,0x6c,0x78,0x6d,0x52,0x44,0x58,0x6f,0x6c,0x5e,
+0x4e,0x5c,0x72,0x88,0x9c,0xaa,0xb2,0xb7,0xb7,0xb9,0xb6,0xb3,0xb7,0xb1,0x94,0x72,
+0x68,0x66,0x66,0x66,0x62,0x5b,0x5b,0x5f,0x60,0x5d,0x5c,0x5f,0x63,0x63,0x5e,0x59,
+0x56,0x5c,0x65,0x67,0x5d,0x52,0x53,0x5a,0x60,0x5e,0x58,0x5b,0x63,0x5f,0x55,0x53,
+0x56,0x5c,0x6a,0x77,0x74,0x68,0x62,0x65,0x65,0x6e,0x78,0x7a,0x6c,0x59,0x4b,0x46,
+0x4a,0x50,0x59,0x60,0x66,0x6b,0x71,0x75,0x76,0x6e,0x62,0x58,0x57,0x5c,0x60,0x61,
+0x5c,0x5d,0x5b,0x59,0x5b,0x5f,0x5d,0x57,0x5e,0x62,0x66,0x67,0x64,0x63,0x65,0x68,
+0x5d,0x5c,0x5b,0x5d,0x63,0x68,0x66,0x61,0x5f,0x5c,0x5c,0x5e,0x60,0x6b,0x86,0xa0,
+0xa9,0xaa,0xa9,0xa6,0xa4,0x9f,0x90,0x81,0x89,0x89,0x8a,0x8b,0x8e,0x8e,0x88,0x80,
+0x70,0x66,0x62,0x5d,0x53,0x4c,0x4a,0x45,0x47,0x43,0x3f,0x3a,0x36,0x36,0x3d,0x44,
+0x43,0x49,0x4a,0x4a,0x4a,0x45,0x45,0x4d,0x58,0x48,0x3c,0x3f,0x49,0x4d,0x47,0x40,
+0x3a,0x3a,0x3c,0x3c,0x43,0x52,0x54,0x46,0x2c,0x32,0x3f,0x46,0x47,0x4e,0x50,0x49,
+0x4a,0x40,0x3b,0x3c,0x3e,0x34,0x29,0x23,0x20,0x25,0x47,0x67,0x74,0x6d,0x5c,0x40,
+0x2e,0x41,0x56,0x60,0x60,0x5f,0x60,0x62,0x63,0x54,0x54,0x5a,0x5a,0x5b,0x55,0x42,
+0x46,0x44,0x3c,0x3d,0x4c,0x57,0x58,0x5a,0x61,0x68,0x76,0x83,0x82,0x7a,0x7a,0x80,
+0x7a,0x75,0x73,0x72,0x69,0x54,0x41,0x37,0x3c,0x34,0x33,0x3a,0x3d,0x43,0x59,0x72,
+0x4a,0x50,0x58,0x5c,0x5c,0x5a,0x57,0x55,0x58,0x57,0x5b,0x5e,0x64,0x70,0x75,0x6c,
+0x5a,0x59,0x59,0x5c,0x5f,0x60,0x5e,0x5b,0x62,0x64,0x66,0x69,0x73,0x7f,0x82,0x7e,
+0x73,0x6e,0x67,0x63,0x63,0x66,0x67,0x67,0x53,0x4e,0x4c,0x50,0x55,0x57,0x58,0x5a,
+0x5d,0x66,0x68,0x5d,0x52,0x52,0x56,0x59,0x5a,0x5f,0x6b,0x77,0x79,0x6f,0x60,0x57,
+0x54,0x56,0x5d,0x67,0x6f,0x6c,0x60,0x54,0x55,0x59,0x5e,0x5f,0x5d,0x59,0x56,0x55,
+0x57,0x53,0x51,0x52,0x55,0x56,0x56,0x56,0x58,0x5c,0x65,0x6c,0x6a,0x62,0x5c,0x5c,
+0x5d,0x65,0x6b,0x69,0x5e,0x55,0x53,0x54,0x59,0x5f,0x64,0x65,0x65,0x63,0x5e,0x58,
+0x56,0x58,0x5a,0x59,0x57,0x54,0x54,0x54,0x56,0x57,0x57,0x55,0x55,0x59,0x60,0x66,
+0x6a,0x67,0x61,0x5e,0x63,0x6a,0x6c,0x69,0x5e,0x5f,0x5c,0x54,0x4c,0x49,0x48,0x47,
+0x46,0x4c,0x4f,0x4e,0x4f,0x57,0x61,0x67,0x71,0x6d,0x66,0x5e,0x57,0x52,0x4f,0x4e,
+0x58,0x51,0x4b,0x4b,0x53,0x5b,0x5d,0x5b,0x58,0x59,0x5d,0x5b,0x53,0x53,0x57,0x55,
+0x60,0x5e,0x58,0x52,0x54,0x5b,0x60,0x61,0x62,0x63,0x65,0x67,0x6a,0x6c,0x6e,0x6f,
+0x71,0x71,0x77,0x74,0x6d,0x72,0x79,0x73,0x76,0x74,0x76,0x77,0x75,0x78,0x78,0x71,
+0x6a,0x63,0x61,0x66,0x6a,0x69,0x6a,0x6d,0x6b,0x69,0x66,0x63,0x61,0x5f,0x5e,0x5d,
+0x5b,0x5f,0x5a,0x56,0x5a,0x5c,0x5c,0x60,0x63,0x61,0x5e,0x5c,0x5d,0x60,0x64,0x67,
+0x6a,0x67,0x64,0x61,0x5f,0x5e,0x62,0x67,0x7a,0xb9,0xf0,0xfd,0xf8,0xf5,0xf9,0xfe,
+0xfa,0xfd,0xff,0xff,0xff,0xff,0xfe,0xfb,0xff,0xff,0xfe,0xfd,0xff,0xff,0xf8,0xef,
+0xe0,0xd4,0xc8,0xc4,0xc2,0xc1,0xc0,0xc2,0xbe,0xbf,0xbd,0xba,0xb8,0xb8,0xb5,0xb0,
+0xaf,0xaf,0xac,0xa7,0xa4,0xa0,0x99,0x91,0x8d,0x86,0x7d,0x78,0x78,0x7a,0x7b,0x7b,
+0x75,0x71,0x6d,0x6a,0x69,0x66,0x60,0x5c,0x59,0x57,0x55,0x54,0x52,0x4f,0x4a,0x46,
+0x46,0x45,0x46,0x45,0x42,0x3f,0x41,0x44,0x53,0x60,0x73,0x80,0x85,0x83,0x80,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x78,0x77,0x77,0x76,0x76,0x75,0x75,0x75,
+0x76,0x76,0x74,0x73,0x72,0x71,0x71,0x71,0x75,0x75,0x76,0x77,0x76,0x74,0x71,0x70,
+0x6d,0x6b,0x69,0x66,0x62,0x5e,0x58,0x55,0x52,0x4d,0x47,0x43,0x41,0x3e,0x3b,0x38,
+0x3e,0x40,0x43,0x45,0x47,0x4d,0x5c,0x6a,0x74,0x6f,0x59,0x47,0x4e,0x5f,0x67,0x67,
+0x52,0x5b,0x6c,0x80,0x96,0xa9,0xb7,0xbf,0xb6,0xb8,0xb5,0xb2,0xb5,0xb5,0xa5,0x92,
+0x74,0x6b,0x64,0x63,0x60,0x5c,0x5c,0x60,0x61,0x61,0x60,0x5e,0x5b,0x58,0x57,0x57,
+0x5b,0x5f,0x65,0x67,0x5f,0x56,0x56,0x5c,0x64,0x63,0x5b,0x5b,0x62,0x5c,0x52,0x55,
+0x59,0x62,0x6d,0x73,0x6f,0x62,0x57,0x51,0x5a,0x64,0x72,0x7c,0x81,0x88,0x95,0xa1,
+0x93,0x82,0x68,0x55,0x4f,0x57,0x64,0x6e,0x76,0x76,0x71,0x6a,0x66,0x65,0x62,0x5f,
+0x5c,0x60,0x60,0x5d,0x5f,0x65,0x66,0x61,0x5f,0x61,0x63,0x62,0x60,0x5f,0x60,0x62,
+0x5e,0x5d,0x5c,0x5e,0x65,0x6b,0x6a,0x65,0x62,0x60,0x62,0x6a,0x77,0x88,0x9d,0xae,
+0xa6,0xac,0xae,0xa4,0x94,0x88,0x88,0x8c,0x89,0x89,0x89,0x8b,0x8e,0x8c,0x82,0x77,
+0x70,0x64,0x5c,0x54,0x48,0x40,0x3c,0x37,0x37,0x34,0x30,0x2c,0x29,0x2c,0x37,0x42,
+0x48,0x46,0x47,0x52,0x5b,0x55,0x52,0x5a,0x46,0x45,0x46,0x45,0x42,0x3e,0x3e,0x41,
+0x34,0x38,0x3f,0x44,0x4a,0x54,0x4e,0x39,0x30,0x35,0x3b,0x3e,0x45,0x54,0x56,0x49,
+0x3c,0x40,0x3f,0x3c,0x33,0x26,0x1a,0x1a,0x23,0x2a,0x52,0x64,0x71,0x68,0x62,0x44,
+0x3f,0x4e,0x63,0x72,0x72,0x6b,0x67,0x68,0x55,0x4b,0x54,0x5c,0x51,0x4a,0x45,0x38,
+0x41,0x39,0x2e,0x31,0x43,0x50,0x57,0x60,0x5a,0x61,0x6d,0x77,0x7a,0x79,0x7b,0x7f,
+0x74,0x6d,0x68,0x67,0x60,0x50,0x3e,0x35,0x31,0x35,0x3a,0x3d,0x41,0x50,0x68,0x7c,
+0x58,0x57,0x57,0x56,0x56,0x54,0x53,0x53,0x58,0x58,0x5b,0x5e,0x63,0x6f,0x72,0x69,
+0x66,0x61,0x5d,0x61,0x68,0x6d,0x6c,0x69,0x5f,0x66,0x6b,0x69,0x6a,0x72,0x78,0x7a,
+0x79,0x77,0x74,0x75,0x79,0x7c,0x79,0x74,0x63,0x59,0x52,0x55,0x5b,0x5e,0x5d,0x5e,
+0x6d,0x74,0x71,0x5e,0x4e,0x4f,0x5a,0x62,0x67,0x6b,0x74,0x78,0x6d,0x5a,0x50,0x52,
+0x50,0x53,0x5b,0x68,0x71,0x6f,0x62,0x56,0x50,0x58,0x60,0x62,0x5d,0x57,0x55,0x56,
+0x51,0x4d,0x49,0x4a,0x4f,0x56,0x5d,0x62,0x61,0x66,0x6d,0x6f,0x68,0x5e,0x55,0x51,
+0x55,0x60,0x6b,0x6e,0x67,0x5e,0x5a,0x59,0x59,0x5e,0x62,0x63,0x65,0x67,0x65,0x60,
+0x63,0x64,0x64,0x61,0x5c,0x56,0x52,0x50,0x4f,0x52,0x52,0x50,0x4e,0x52,0x5c,0x64,
+0x65,0x67,0x6a,0x6e,0x72,0x70,0x61,0x52,0x5f,0x5f,0x5a,0x4f,0x46,0x43,0x45,0x46,
+0x47,0x4f,0x54,0x54,0x53,0x58,0x5d,0x5f,0x61,0x5e,0x5a,0x56,0x52,0x4f,0x4d,0x4c,
+0x4f,0x51,0x51,0x50,0x50,0x51,0x51,0x50,0x53,0x52,0x55,0x53,0x4d,0x50,0x57,0x58,
+0x60,0x63,0x64,0x5f,0x58,0x53,0x54,0x56,0x5c,0x60,0x66,0x6b,0x6d,0x6d,0x6c,0x6c,
+0x6b,0x6c,0x73,0x70,0x64,0x68,0x6f,0x6a,0x6f,0x74,0x7d,0x7d,0x74,0x70,0x6e,0x69,
+0x61,0x5b,0x5a,0x62,0x66,0x64,0x63,0x66,0x69,0x6a,0x6c,0x6f,0x72,0x74,0x73,0x73,
+0x62,0x66,0x63,0x60,0x65,0x65,0x62,0x63,0x6a,0x66,0x61,0x5e,0x5f,0x63,0x67,0x69,
+0x6c,0x69,0x66,0x64,0x62,0x63,0x68,0x6e,0xbb,0xe8,0xfe,0xf7,0xf9,0xff,0xfe,0xfa,
+0xfe,0xff,0xff,0xfb,0xfb,0xff,0xff,0xfe,0xff,0xfc,0xfb,0xfd,0xfe,0xfd,0xfd,0xff,
+0xf7,0xe3,0xce,0xc6,0xc6,0xc6,0xc5,0xc5,0xbf,0xbf,0xbd,0xb8,0xb6,0xb8,0xb6,0xb1,
+0xb3,0xb3,0xb0,0xab,0xa7,0xa4,0x9d,0x95,0x8e,0x87,0x7d,0x75,0x72,0x74,0x79,0x7c,
+0x76,0x70,0x6b,0x69,0x69,0x67,0x62,0x5e,0x5b,0x58,0x54,0x54,0x54,0x53,0x4f,0x4b,
+0x46,0x44,0x43,0x46,0x47,0x45,0x43,0x43,0x3b,0x46,0x59,0x6c,0x7a,0x81,0x83,0x84,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x78,0x77,0x77,0x76,0x75,0x74,0x74,0x73,
+0x76,0x74,0x73,0x71,0x70,0x71,0x71,0x72,0x71,0x72,0x72,0x72,0x71,0x6f,0x6d,0x6c,
+0x6c,0x6a,0x66,0x62,0x5d,0x56,0x4e,0x49,0x41,0x3c,0x36,0x34,0x37,0x3c,0x3f,0x40,
+0x43,0x47,0x4a,0x4a,0x4b,0x52,0x5e,0x68,0x74,0x75,0x67,0x55,0x4f,0x55,0x61,0x6e,
+0x6e,0x66,0x63,0x6f,0x88,0xa2,0xb1,0xb7,0xbb,0xb9,0xb8,0xb8,0xba,0xbd,0xbb,0xb8,
+0x8a,0x79,0x68,0x62,0x5e,0x59,0x56,0x58,0x57,0x5c,0x60,0x5e,0x59,0x55,0x56,0x58,
+0x57,0x5c,0x62,0x62,0x5e,0x5c,0x5e,0x62,0x66,0x67,0x61,0x61,0x67,0x5e,0x53,0x57,
+0x63,0x6c,0x72,0x74,0x74,0x71,0x64,0x55,0x61,0x67,0x6f,0x74,0x73,0x72,0x77,0x7e,
+0x79,0x76,0x71,0x6d,0x6b,0x6b,0x6b,0x6b,0x6e,0x73,0x74,0x6f,0x69,0x66,0x62,0x5d,
+0x5d,0x61,0x60,0x5a,0x58,0x5d,0x5e,0x5a,0x5a,0x5d,0x62,0x64,0x63,0x63,0x63,0x64,
+0x60,0x5d,0x58,0x59,0x61,0x69,0x6b,0x69,0x65,0x64,0x69,0x78,0x8d,0x9e,0xa7,0xaa,
+0xab,0xa5,0x9f,0x9b,0x94,0x8c,0x86,0x85,0x83,0x85,0x86,0x85,0x83,0x81,0x7d,0x78,
+0x72,0x63,0x58,0x4d,0x3e,0x36,0x32,0x2d,0x2f,0x2d,0x2c,0x2a,0x29,0x2c,0x37,0x41,
+0x47,0x3b,0x3a,0x4e,0x5d,0x53,0x4b,0x53,0x4d,0x3f,0x34,0x3b,0x49,0x4f,0x49,0x40,
+0x39,0x3d,0x45,0x49,0x50,0x5c,0x57,0x43,0x40,0x36,0x2e,0x2f,0x41,0x59,0x53,0x38,
+0x31,0x4f,0x57,0x43,0x2a,0x20,0x1b,0x1d,0x2d,0x32,0x5b,0x62,0x6f,0x68,0x6e,0x51,
+0x4b,0x52,0x62,0x71,0x6e,0x5e,0x56,0x59,0x4e,0x47,0x52,0x52,0x32,0x20,0x27,0x2b,
+0x2e,0x2e,0x2d,0x36,0x42,0x47,0x4d,0x58,0x5f,0x54,0x47,0x48,0x5b,0x72,0x7b,0x79,
+0x77,0x6d,0x63,0x5d,0x52,0x41,0x32,0x2b,0x2b,0x2d,0x2c,0x31,0x45,0x5f,0x6b,0x68,
+0x5e,0x5b,0x5a,0x5a,0x56,0x50,0x4e,0x50,0x5a,0x5e,0x5f,0x5c,0x60,0x6a,0x70,0x6f,
+0x65,0x64,0x61,0x5e,0x61,0x68,0x6d,0x6e,0x78,0x7d,0x80,0x7a,0x6f,0x6a,0x6e,0x75,
+0x79,0x76,0x74,0x75,0x76,0x77,0x76,0x76,0x75,0x65,0x56,0x53,0x57,0x5d,0x65,0x6c,
+0x6d,0x69,0x62,0x5e,0x5e,0x61,0x63,0x62,0x63,0x6a,0x6d,0x6b,0x65,0x56,0x4c,0x50,
+0x55,0x60,0x6c,0x71,0x6c,0x61,0x58,0x53,0x5e,0x61,0x67,0x6e,0x6e,0x67,0x60,0x5d,
+0x60,0x60,0x62,0x63,0x5e,0x5a,0x61,0x6c,0x6f,0x69,0x62,0x5c,0x57,0x51,0x4c,0x49,
+0x54,0x64,0x73,0x77,0x72,0x6a,0x5d,0x51,0x56,0x57,0x5a,0x5f,0x63,0x65,0x64,0x62,
+0x62,0x62,0x61,0x5f,0x5b,0x58,0x56,0x56,0x5b,0x5f,0x63,0x65,0x69,0x6d,0x6d,0x68,
+0x67,0x6c,0x6c,0x65,0x60,0x60,0x61,0x5f,0x61,0x62,0x63,0x5e,0x52,0x46,0x44,0x49,
+0x50,0x4c,0x48,0x49,0x4f,0x55,0x5b,0x5e,0x5d,0x55,0x4d,0x4c,0x50,0x53,0x50,0x4c,
+0x49,0x4e,0x53,0x52,0x50,0x4e,0x4d,0x4c,0x4a,0x4b,0x4d,0x4f,0x4f,0x4e,0x51,0x55,
+0x5b,0x57,0x55,0x56,0x55,0x53,0x55,0x5a,0x5b,0x5f,0x63,0x65,0x66,0x67,0x67,0x64,
+0x5f,0x65,0x65,0x60,0x60,0x66,0x68,0x66,0x73,0x75,0x76,0x71,0x68,0x61,0x5f,0x60,
+0x5f,0x61,0x65,0x69,0x6a,0x69,0x65,0x62,0x69,0x6c,0x6e,0x6d,0x6c,0x6c,0x6c,0x6c,
+0x6c,0x71,0x74,0x70,0x6a,0x65,0x60,0x5d,0x62,0x60,0x5c,0x5a,0x5c,0x62,0x66,0x67,
+0x67,0x6d,0x68,0x64,0x63,0x61,0x85,0xc4,0xf4,0xf8,0xfd,0xfe,0xfb,0xfa,0xfc,0xff,
+0xfd,0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,0xff,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,
+0xff,0xf8,0xe9,0xd7,0xca,0xc4,0xc6,0xca,0xc5,0xc1,0xbb,0xb7,0xb6,0xb7,0xb8,0xb8,
+0xb6,0xb3,0xb0,0xb0,0xaf,0xaa,0xa1,0x99,0x92,0x89,0x82,0x7e,0x78,0x72,0x74,0x7c,
+0x77,0x73,0x6e,0x6b,0x6b,0x69,0x65,0x62,0x5e,0x5a,0x55,0x53,0x53,0x52,0x50,0x4e,
+0x4b,0x48,0x44,0x41,0x41,0x42,0x42,0x43,0x38,0x3b,0x43,0x4e,0x5d,0x6e,0x7d,0x86,
+0x81,0x84,0x82,0x7d,0x7b,0x7d,0x7e,0x7d,0x7c,0x7b,0x79,0x77,0x75,0x74,0x74,0x74,
+0x74,0x75,0x74,0x71,0x6f,0x6f,0x6e,0x6c,0x71,0x70,0x6f,0x6e,0x6e,0x6d,0x6b,0x69,
+0x69,0x63,0x5c,0x54,0x4a,0x3e,0x37,0x35,0x35,0x39,0x3e,0x41,0x42,0x43,0x46,0x48,
+0x49,0x47,0x47,0x4a,0x4b,0x4d,0x56,0x60,0x6e,0x78,0x72,0x65,0x5f,0x57,0x56,0x63,
+0x7b,0x6e,0x5d,0x5e,0x79,0x97,0xad,0xbc,0xc1,0xbf,0xbd,0xbd,0xbc,0xbc,0xbe,0xc0,
+0xb0,0x8e,0x6d,0x60,0x5f,0x5d,0x5a,0x5b,0x5a,0x60,0x62,0x5d,0x58,0x59,0x5b,0x5c,
+0x5a,0x58,0x59,0x61,0x68,0x68,0x63,0x5f,0x63,0x61,0x63,0x66,0x64,0x5d,0x5a,0x5d,
+0x69,0x73,0x6f,0x67,0x75,0x86,0x84,0x7a,0x70,0x74,0x76,0x70,0x63,0x57,0x4f,0x4d,
+0x59,0x61,0x6b,0x6c,0x6c,0x75,0x7a,0x73,0x70,0x6c,0x68,0x66,0x65,0x61,0x60,0x61,
+0x64,0x5d,0x59,0x59,0x58,0x54,0x54,0x59,0x5b,0x61,0x65,0x66,0x6a,0x6c,0x65,0x5b,
+0x61,0x5b,0x55,0x56,0x5b,0x60,0x65,0x67,0x5d,0x62,0x71,0x88,0x9b,0xa3,0xa3,0xa2,
+0x9f,0x9b,0x95,0x8f,0x8c,0x8a,0x86,0x83,0x85,0x85,0x83,0x82,0x80,0x7d,0x79,0x75,
+0x72,0x6a,0x5b,0x48,0x37,0x2b,0x27,0x27,0x27,0x25,0x22,0x21,0x25,0x2e,0x36,0x3a,
+0x42,0x40,0x42,0x4d,0x55,0x4e,0x49,0x50,0x4c,0x3c,0x39,0x45,0x52,0x59,0x51,0x42,
+0x32,0x3b,0x42,0x46,0x4f,0x57,0x52,0x46,0x38,0x29,0x1d,0x23,0x38,0x48,0x48,0x40,
+0x3d,0x53,0x54,0x40,0x3c,0x45,0x44,0x3d,0x3e,0x44,0x56,0x67,0x6f,0x6e,0x5e,0x48,
+0x43,0x4d,0x60,0x6f,0x6b,0x58,0x48,0x42,0x46,0x57,0x56,0x43,0x33,0x2a,0x26,0x26,
+0x27,0x29,0x2e,0x36,0x3f,0x49,0x53,0x5a,0x5e,0x63,0x69,0x73,0x81,0x8a,0x84,0x79,
+0x75,0x70,0x6d,0x67,0x53,0x39,0x2f,0x33,0x38,0x32,0x32,0x3d,0x4e,0x5f,0x6e,0x79,
+0x5d,0x5c,0x5f,0x63,0x63,0x5e,0x5a,0x59,0x62,0x66,0x65,0x60,0x60,0x67,0x6b,0x6a,
+0x69,0x6a,0x68,0x63,0x61,0x65,0x6c,0x70,0x73,0x76,0x76,0x70,0x67,0x65,0x6b,0x72,
+0x77,0x74,0x70,0x70,0x70,0x71,0x73,0x75,0x76,0x6c,0x61,0x5e,0x60,0x64,0x68,0x6c,
+0x69,0x67,0x64,0x64,0x66,0x67,0x66,0x63,0x65,0x6a,0x69,0x65,0x5e,0x52,0x4e,0x56,
+0x5c,0x61,0x67,0x6b,0x6b,0x66,0x61,0x5c,0x61,0x63,0x68,0x6e,0x6f,0x6d,0x6b,0x6c,
+0x71,0x75,0x77,0x73,0x6a,0x64,0x67,0x6f,0x6e,0x68,0x5e,0x52,0x49,0x46,0x48,0x4c,
+0x55,0x60,0x6e,0x76,0x77,0x70,0x65,0x5b,0x4b,0x56,0x64,0x6b,0x69,0x63,0x5d,0x5b,
+0x5d,0x5b,0x59,0x57,0x57,0x5c,0x62,0x67,0x6d,0x6c,0x67,0x63,0x63,0x65,0x63,0x5f,
+0x5f,0x5f,0x5f,0x5c,0x55,0x4f,0x50,0x54,0x57,0x55,0x54,0x53,0x4b,0x45,0x49,0x53,
+0x60,0x66,0x68,0x61,0x57,0x54,0x56,0x58,0x58,0x5a,0x59,0x54,0x4c,0x48,0x49,0x4c,
+0x4f,0x51,0x52,0x52,0x4f,0x4c,0x4c,0x4e,0x4b,0x49,0x48,0x4a,0x4d,0x4e,0x50,0x53,
+0x56,0x53,0x51,0x52,0x50,0x4d,0x4d,0x50,0x55,0x5c,0x62,0x63,0x64,0x67,0x6b,0x6d,
+0x61,0x61,0x61,0x5f,0x5c,0x5d,0x64,0x6c,0x71,0x76,0x77,0x70,0x65,0x5e,0x5f,0x64,
+0x67,0x69,0x6d,0x6f,0x6d,0x69,0x64,0x61,0x66,0x69,0x6a,0x68,0x65,0x64,0x65,0x66,
+0x62,0x66,0x6a,0x6c,0x6c,0x6a,0x64,0x5d,0x5a,0x59,0x58,0x59,0x5d,0x62,0x64,0x64,
+0x68,0x61,0x6a,0x6a,0x5d,0x76,0xbb,0xf0,0xf8,0xfb,0xfd,0xfe,0xfc,0xfb,0xfd,0xfe,
+0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xf7,0xfc,0xfc,0xef,0xdb,0xcb,0xc5,0xc6,0xc0,0xc1,0xc1,0xc0,0xbd,0xb8,0xb4,0xb2,
+0xb7,0xb5,0xb2,0xb1,0xaf,0xab,0xa4,0x9f,0x96,0x8d,0x84,0x7f,0x78,0x71,0x72,0x77,
+0x77,0x73,0x6f,0x6c,0x6b,0x69,0x65,0x62,0x60,0x5c,0x58,0x55,0x54,0x53,0x50,0x4d,
+0x4d,0x4b,0x48,0x46,0x44,0x42,0x40,0x3f,0x43,0x41,0x3d,0x3c,0x42,0x50,0x63,0x71,
+0x7b,0x80,0x81,0x7f,0x7c,0x7d,0x7c,0x7a,0x76,0x74,0x73,0x74,0x76,0x78,0x78,0x77,
+0x72,0x73,0x73,0x70,0x6f,0x70,0x6f,0x6c,0x6f,0x6d,0x6a,0x69,0x69,0x69,0x69,0x69,
+0x5b,0x52,0x46,0x3d,0x38,0x37,0x3c,0x42,0x40,0x42,0x44,0x45,0x46,0x46,0x46,0x46,
+0x47,0x47,0x46,0x47,0x49,0x4d,0x53,0x58,0x64,0x74,0x78,0x72,0x6d,0x63,0x5a,0x5d,
+0x61,0x71,0x7c,0x7f,0x81,0x89,0xa1,0xbd,0xc0,0xc0,0xc1,0xc3,0xc2,0xc2,0xc2,0xc3,
+0xb9,0x9f,0x7f,0x6a,0x63,0x61,0x5e,0x5b,0x62,0x67,0x66,0x5e,0x56,0x55,0x57,0x59,
+0x55,0x53,0x57,0x60,0x67,0x63,0x5a,0x52,0x60,0x61,0x63,0x65,0x62,0x5e,0x5d,0x5e,
+0x54,0x64,0x6a,0x62,0x5e,0x61,0x6d,0x7c,0x78,0x7f,0x81,0x7c,0x77,0x74,0x6c,0x62,
+0x4f,0x50,0x56,0x59,0x58,0x62,0x6f,0x74,0x70,0x6b,0x68,0x67,0x67,0x65,0x65,0x67,
+0x61,0x5e,0x5a,0x58,0x55,0x55,0x5a,0x60,0x62,0x64,0x67,0x6a,0x6e,0x6d,0x67,0x5f,
+0x5b,0x56,0x50,0x4f,0x53,0x59,0x5e,0x61,0x5e,0x6c,0x81,0x94,0xa0,0xa4,0xa1,0x9e,
+0x9b,0x97,0x90,0x89,0x86,0x85,0x84,0x83,0x83,0x81,0x80,0x7f,0x7e,0x7c,0x7a,0x78,
+0x74,0x6b,0x5b,0x47,0x35,0x2a,0x27,0x28,0x27,0x27,0x26,0x25,0x26,0x2b,0x35,0x3c,
+0x30,0x34,0x3e,0x4d,0x54,0x4e,0x4a,0x50,0x48,0x39,0x36,0x42,0x4d,0x52,0x4a,0x3b,
+0x3d,0x3f,0x40,0x46,0x55,0x5f,0x55,0x43,0x38,0x2b,0x1d,0x1f,0x2d,0x3a,0x3d,0x3a,
+0x42,0x4e,0x49,0x3b,0x42,0x4f,0x4d,0x43,0x45,0x49,0x58,0x67,0x6f,0x6f,0x62,0x4e,
+0x43,0x52,0x62,0x6a,0x6b,0x6b,0x6d,0x6f,0x72,0x6b,0x55,0x42,0x41,0x41,0x3c,0x38,
+0x2f,0x2e,0x31,0x3d,0x4c,0x58,0x5e,0x61,0x62,0x6a,0x73,0x77,0x72,0x64,0x4e,0x3d,
+0x42,0x48,0x49,0x3e,0x2c,0x27,0x35,0x47,0x3f,0x40,0x45,0x4f,0x57,0x5a,0x5c,0x5e,
+0x72,0x6b,0x63,0x5e,0x5b,0x57,0x54,0x54,0x5a,0x5e,0x5e,0x58,0x56,0x5b,0x60,0x62,
+0x6b,0x71,0x74,0x6f,0x69,0x69,0x6d,0x71,0x76,0x75,0x72,0x6b,0x64,0x63,0x68,0x6e,
+0x70,0x6c,0x69,0x68,0x66,0x66,0x69,0x6e,0x6d,0x6a,0x63,0x5d,0x5d,0x61,0x64,0x64,
+0x5f,0x60,0x63,0x6b,0x72,0x74,0x71,0x6c,0x75,0x75,0x6d,0x62,0x5a,0x52,0x52,0x5b,
+0x69,0x6a,0x6d,0x71,0x73,0x6f,0x66,0x5e,0x66,0x66,0x69,0x6c,0x6c,0x6c,0x6f,0x73,
+0x6f,0x76,0x78,0x6f,0x63,0x5c,0x5b,0x5c,0x60,0x65,0x68,0x64,0x5a,0x52,0x4f,0x4f,
+0x5e,0x60,0x66,0x6e,0x73,0x74,0x73,0x73,0x6b,0x6d,0x6d,0x6b,0x67,0x66,0x68,0x6b,
+0x55,0x56,0x58,0x5b,0x5e,0x62,0x68,0x6b,0x72,0x6d,0x67,0x63,0x66,0x6a,0x6a,0x68,
+0x63,0x5f,0x5e,0x5f,0x59,0x50,0x50,0x56,0x52,0x4a,0x47,0x47,0x41,0x3b,0x42,0x50,
+0x55,0x61,0x67,0x63,0x60,0x65,0x6b,0x6d,0x68,0x66,0x61,0x5c,0x56,0x52,0x50,0x50,
+0x4a,0x48,0x48,0x4b,0x4b,0x48,0x48,0x4b,0x48,0x43,0x41,0x45,0x4b,0x50,0x54,0x57,
+0x5b,0x57,0x54,0x54,0x53,0x52,0x53,0x56,0x62,0x67,0x69,0x64,0x60,0x60,0x63,0x66,
+0x64,0x61,0x61,0x60,0x5a,0x57,0x61,0x71,0x69,0x70,0x73,0x6d,0x62,0x5c,0x62,0x6a,
+0x64,0x69,0x6f,0x72,0x70,0x6c,0x68,0x66,0x6d,0x6e,0x6c,0x67,0x60,0x5c,0x5e,0x61,
+0x67,0x67,0x68,0x6c,0x72,0x75,0x71,0x6b,0x63,0x5f,0x5c,0x5c,0x5e,0x61,0x64,0x65,
+0x60,0x6b,0x65,0x65,0x8a,0xbf,0xe8,0xfe,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfc,0xfe,0xff,0xfe,0xf5,0xe5,0xd2,0xc4,0xc3,0xc3,0xc2,0xbf,0xbb,0xb7,0xb5,0xb5,
+0xb5,0xb4,0xb2,0xb1,0xaf,0xac,0xa8,0xa4,0x9b,0x93,0x8a,0x83,0x7a,0x71,0x70,0x74,
+0x76,0x73,0x6f,0x6d,0x6c,0x69,0x65,0x62,0x62,0x5f,0x5b,0x58,0x57,0x54,0x50,0x4d,
+0x4d,0x4c,0x4b,0x4a,0x48,0x45,0x41,0x3e,0x3f,0x40,0x3f,0x3a,0x37,0x3a,0x43,0x4b,
+0x5f,0x6a,0x78,0x7f,0x81,0x80,0x7e,0x7b,0x7d,0x79,0x76,0x76,0x78,0x79,0x76,0x73,
+0x76,0x78,0x77,0x73,0x70,0x6e,0x6b,0x67,0x6d,0x6d,0x6f,0x6f,0x6b,0x64,0x5c,0x56,
+0x45,0x41,0x3d,0x3c,0x3c,0x3e,0x42,0x47,0x48,0x48,0x48,0x48,0x49,0x49,0x47,0x46,
+0x47,0x49,0x47,0x45,0x49,0x50,0x52,0x4f,0x5b,0x6f,0x7b,0x7a,0x77,0x6e,0x60,0x59,
+0x4b,0x5d,0x70,0x7b,0x7e,0x80,0x95,0xb2,0xbd,0xc0,0xc2,0xc3,0xc4,0xc4,0xc5,0xc5,
+0xc0,0xb3,0x99,0x7d,0x6d,0x67,0x62,0x5d,0x5e,0x61,0x60,0x5a,0x54,0x54,0x57,0x5a,
+0x55,0x51,0x51,0x57,0x5d,0x5d,0x59,0x56,0x5d,0x62,0x65,0x62,0x5e,0x5d,0x5c,0x5b,
+0x65,0x6a,0x6a,0x66,0x5a,0x48,0x43,0x4d,0x5e,0x72,0x86,0x91,0x9b,0xa0,0x94,0x81,
+0x73,0x57,0x42,0x42,0x4c,0x5d,0x6c,0x70,0x75,0x70,0x6a,0x67,0x65,0x63,0x63,0x65,
+0x6a,0x6a,0x64,0x5b,0x54,0x56,0x5b,0x5f,0x63,0x61,0x63,0x69,0x6c,0x68,0x62,0x5e,
+0x57,0x55,0x52,0x4f,0x4e,0x52,0x58,0x5c,0x6b,0x7e,0x93,0x9d,0xa0,0xa0,0x9d,0x99,
+0x94,0x8e,0x87,0x83,0x82,0x83,0x84,0x85,0x7e,0x7d,0x7c,0x7b,0x7c,0x7c,0x7b,0x7a,
+0x74,0x6a,0x59,0x44,0x32,0x28,0x26,0x27,0x22,0x23,0x25,0x26,0x26,0x2a,0x35,0x3f,
+0x3c,0x3e,0x45,0x4e,0x4e,0x48,0x49,0x51,0x41,0x36,0x36,0x43,0x4d,0x50,0x47,0x38,
+0x3c,0x3e,0x42,0x4b,0x5c,0x65,0x5b,0x49,0x3c,0x2f,0x20,0x1c,0x22,0x2b,0x30,0x30,
+0x41,0x50,0x4e,0x42,0x44,0x4f,0x56,0x58,0x49,0x4e,0x5f,0x6f,0x73,0x6c,0x58,0x40,
+0x33,0x4d,0x67,0x6f,0x6e,0x6f,0x6e,0x6b,0x6f,0x5f,0x48,0x44,0x50,0x52,0x44,0x39,
+0x35,0x31,0x33,0x40,0x55,0x63,0x65,0x61,0x5c,0x61,0x67,0x68,0x5e,0x4d,0x40,0x3b,
+0x34,0x35,0x31,0x28,0x24,0x25,0x25,0x22,0x28,0x2f,0x3d,0x4b,0x51,0x4f,0x4a,0x47,
+0x64,0x5c,0x54,0x50,0x51,0x54,0x56,0x57,0x59,0x5a,0x57,0x4f,0x4b,0x50,0x58,0x5d,
+0x69,0x71,0x77,0x77,0x73,0x71,0x70,0x6f,0x6f,0x6e,0x6c,0x68,0x64,0x64,0x66,0x69,
+0x68,0x67,0x67,0x69,0x66,0x62,0x63,0x67,0x6d,0x6e,0x69,0x60,0x5d,0x61,0x64,0x62,
+0x59,0x5a,0x60,0x6c,0x76,0x77,0x73,0x6f,0x65,0x64,0x5c,0x57,0x5b,0x5f,0x64,0x6d,
+0x67,0x62,0x5e,0x5e,0x63,0x69,0x6c,0x6c,0x67,0x67,0x69,0x6b,0x69,0x66,0x68,0x6c,
+0x70,0x75,0x75,0x6b,0x62,0x5d,0x5a,0x55,0x55,0x63,0x73,0x78,0x73,0x6a,0x62,0x5e,
+0x6c,0x69,0x6b,0x71,0x74,0x73,0x75,0x7a,0x85,0x80,0x7a,0x76,0x70,0x65,0x55,0x48,
+0x49,0x4e,0x56,0x5f,0x67,0x6d,0x72,0x75,0x6b,0x68,0x65,0x68,0x6f,0x74,0x74,0x71,
+0x65,0x60,0x5c,0x5b,0x58,0x54,0x50,0x50,0x52,0x48,0x43,0x45,0x42,0x3b,0x40,0x4c,
+0x5f,0x61,0x5d,0x57,0x5e,0x6e,0x74,0x6e,0x6c,0x68,0x61,0x5b,0x57,0x55,0x53,0x51,
+0x58,0x51,0x4f,0x55,0x57,0x51,0x4c,0x4c,0x49,0x44,0x41,0x43,0x48,0x4d,0x53,0x58,
+0x58,0x53,0x4f,0x4d,0x4e,0x51,0x56,0x59,0x6a,0x6c,0x6a,0x63,0x5d,0x5c,0x5d,0x5e,
+0x5d,0x66,0x73,0x7a,0x74,0x68,0x64,0x66,0x69,0x6e,0x70,0x6b,0x61,0x5d,0x61,0x67,
+0x57,0x5f,0x68,0x6e,0x6f,0x6e,0x6d,0x6e,0x6e,0x6d,0x6b,0x64,0x5d,0x5a,0x60,0x68,
+0x70,0x6d,0x68,0x67,0x6c,0x73,0x74,0x72,0x64,0x5f,0x5a,0x59,0x5b,0x5e,0x63,0x68,
+0x68,0x6f,0x64,0x7a,0xc2,0xf5,0xfd,0xff,0xfe,0xfd,0xfb,0xfc,0xfd,0xfe,0xfe,0xfd,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,
+0xff,0xfe,0xfc,0xff,0xff,0xf9,0xe8,0xd9,0xc8,0xc4,0xbf,0xbc,0xba,0xb9,0xb7,0xb6,
+0xb0,0xb0,0xb0,0xb0,0xae,0xac,0xa9,0xa8,0xa0,0x9a,0x91,0x89,0x7f,0x76,0x73,0x75,
+0x74,0x72,0x70,0x6e,0x6d,0x6a,0x66,0x64,0x63,0x61,0x5e,0x5c,0x59,0x56,0x52,0x4f,
+0x4d,0x4c,0x4b,0x4b,0x4a,0x47,0x44,0x41,0x3a,0x3e,0x42,0x42,0x3d,0x38,0x36,0x35,
+0x3f,0x4a,0x59,0x66,0x6e,0x75,0x7a,0x7d,0x78,0x77,0x76,0x77,0x79,0x7a,0x79,0x78,
+0x6e,0x71,0x73,0x72,0x72,0x72,0x71,0x6e,0x6d,0x6d,0x6c,0x68,0x61,0x55,0x48,0x40,
+0x3d,0x3e,0x42,0x47,0x49,0x47,0x46,0x46,0x48,0x47,0x46,0x47,0x49,0x4a,0x48,0x46,
+0x48,0x4b,0x49,0x46,0x4d,0x57,0x56,0x4b,0x56,0x68,0x76,0x78,0x77,0x74,0x69,0x5e,
+0x4c,0x4c,0x4e,0x59,0x65,0x70,0x89,0xa7,0xba,0xbe,0xc0,0xbf,0xbf,0xc1,0xc4,0xc5,
+0xc2,0xbd,0xae,0x95,0x7c,0x6a,0x63,0x61,0x5c,0x5c,0x5c,0x59,0x57,0x56,0x58,0x59,
+0x50,0x50,0x53,0x5a,0x5d,0x5e,0x5e,0x60,0x62,0x69,0x6b,0x64,0x5e,0x5d,0x5b,0x58,
+0x5d,0x5a,0x59,0x60,0x63,0x55,0x47,0x47,0x4c,0x5e,0x72,0x7f,0x89,0x8f,0x8c,0x83,
+0x7a,0x77,0x78,0x75,0x6a,0x69,0x71,0x75,0x75,0x6f,0x68,0x65,0x63,0x61,0x62,0x64,
+0x72,0x72,0x6b,0x5f,0x58,0x5b,0x5d,0x5d,0x5d,0x59,0x5a,0x62,0x65,0x5f,0x5a,0x58,
+0x5a,0x5d,0x5b,0x54,0x4f,0x53,0x5e,0x67,0x81,0x91,0x9d,0x9c,0x99,0x99,0x97,0x93,
+0x90,0x87,0x7f,0x7e,0x81,0x82,0x81,0x7f,0x78,0x77,0x76,0x77,0x78,0x79,0x78,0x78,
+0x70,0x67,0x56,0x42,0x30,0x26,0x23,0x24,0x23,0x24,0x24,0x25,0x27,0x2f,0x3b,0x45,
+0x43,0x3c,0x3c,0x3e,0x3a,0x3b,0x45,0x4f,0x48,0x40,0x43,0x4f,0x54,0x51,0x44,0x35,
+0x32,0x3c,0x48,0x52,0x5b,0x5e,0x55,0x49,0x41,0x34,0x26,0x21,0x25,0x2a,0x2d,0x2f,
+0x44,0x53,0x53,0x48,0x46,0x4f,0x59,0x61,0x57,0x56,0x5e,0x68,0x6a,0x64,0x55,0x42,
+0x43,0x56,0x68,0x6d,0x6a,0x68,0x68,0x69,0x68,0x52,0x38,0x34,0x42,0x45,0x3f,0x3e,
+0x39,0x35,0x35,0x41,0x56,0x65,0x67,0x61,0x69,0x6a,0x6f,0x73,0x71,0x6d,0x71,0x79,
+0x8f,0x7a,0x5c,0x49,0x43,0x3e,0x2f,0x1e,0x1b,0x24,0x35,0x47,0x54,0x57,0x54,0x50,
+0x5f,0x5f,0x5f,0x62,0x67,0x6a,0x68,0x65,0x69,0x68,0x61,0x56,0x50,0x52,0x5a,0x60,
+0x65,0x68,0x6c,0x6d,0x6f,0x70,0x6f,0x6c,0x6a,0x6c,0x6d,0x6e,0x6f,0x6f,0x70,0x71,
+0x69,0x6a,0x6f,0x76,0x73,0x6a,0x66,0x68,0x6c,0x70,0x6f,0x68,0x63,0x62,0x5f,0x5a,
+0x5b,0x5a,0x5e,0x68,0x6f,0x6f,0x6b,0x69,0x5b,0x59,0x52,0x53,0x5f,0x67,0x6a,0x6e,
+0x68,0x69,0x6a,0x6b,0x6a,0x67,0x63,0x60,0x5b,0x5d,0x61,0x65,0x64,0x5f,0x5d,0x5e,
+0x73,0x75,0x73,0x6d,0x69,0x68,0x63,0x5c,0x5f,0x66,0x6c,0x6d,0x6d,0x6f,0x70,0x6e,
+0x71,0x70,0x73,0x78,0x75,0x6e,0x6c,0x70,0x6f,0x6d,0x6e,0x72,0x76,0x74,0x6b,0x63,
+0x61,0x65,0x6b,0x6f,0x72,0x72,0x73,0x73,0x70,0x6e,0x6e,0x72,0x76,0x73,0x6c,0x65,
+0x62,0x61,0x5a,0x55,0x59,0x5e,0x58,0x4d,0x4f,0x47,0x46,0x4d,0x4d,0x48,0x49,0x51,
+0x6b,0x67,0x5c,0x54,0x5d,0x6f,0x73,0x6b,0x67,0x6b,0x6c,0x65,0x5a,0x54,0x56,0x5c,
+0x63,0x5b,0x57,0x5b,0x5b,0x53,0x48,0x42,0x4b,0x48,0x44,0x43,0x43,0x45,0x4b,0x52,
+0x58,0x56,0x53,0x52,0x55,0x58,0x5b,0x5b,0x5f,0x5f,0x5d,0x5b,0x5b,0x5e,0x5e,0x5d,
+0x5d,0x65,0x6a,0x68,0x65,0x66,0x68,0x67,0x6f,0x6f,0x6e,0x68,0x61,0x5c,0x5a,0x5a,
+0x54,0x5a,0x62,0x67,0x68,0x68,0x69,0x6b,0x65,0x63,0x60,0x5c,0x59,0x5a,0x65,0x70,
+0x6f,0x6d,0x68,0x62,0x60,0x64,0x67,0x68,0x62,0x61,0x62,0x65,0x65,0x64,0x66,0x6a,
+0x69,0x6e,0x99,0xd2,0xee,0xf9,0xfe,0xfc,0xfd,0xfb,0xfa,0xfb,0xfe,0xff,0xff,0xfd,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,
+0xfd,0xfe,0xff,0xff,0xfe,0xfb,0xf8,0xf7,0xd3,0xcc,0xc4,0xc0,0xbe,0xbc,0xb6,0xb1,
+0xad,0xae,0xaf,0xb0,0xb0,0xae,0xac,0xaa,0xa3,0x9e,0x97,0x8f,0x85,0x7c,0x78,0x78,
+0x75,0x73,0x71,0x6f,0x6d,0x6a,0x68,0x66,0x63,0x62,0x60,0x5e,0x5c,0x59,0x56,0x54,
+0x51,0x4f,0x4d,0x4b,0x49,0x48,0x46,0x44,0x42,0x41,0x40,0x3f,0x3e,0x3c,0x3a,0x38,
+0x35,0x36,0x3a,0x3f,0x47,0x52,0x61,0x6c,0x78,0x79,0x7a,0x79,0x76,0x75,0x75,0x76,
+0x79,0x7b,0x7a,0x77,0x74,0x71,0x6d,0x69,0x65,0x5f,0x55,0x4d,0x46,0x42,0x3f,0x3d,
+0x43,0x42,0x42,0x45,0x46,0x46,0x47,0x49,0x47,0x46,0x45,0x46,0x48,0x49,0x47,0x46,
+0x48,0x4b,0x4a,0x48,0x51,0x5d,0x59,0x4c,0x4f,0x5e,0x6f,0x76,0x78,0x7a,0x76,0x6c,
+0x5d,0x57,0x4f,0x4d,0x52,0x5e,0x7e,0xa4,0xb5,0xbb,0xc0,0xc0,0xc0,0xc1,0xc2,0xc1,
+0xc1,0xc0,0xbc,0xad,0x8e,0x6f,0x62,0x63,0x65,0x63,0x61,0x60,0x5d,0x59,0x55,0x53,
+0x47,0x51,0x5f,0x69,0x68,0x62,0x5f,0x60,0x68,0x6e,0x6f,0x68,0x62,0x60,0x5c,0x58,
+0x57,0x5e,0x60,0x60,0x5e,0x54,0x4d,0x4f,0x49,0x56,0x69,0x76,0x78,0x76,0x79,0x7e,
+0x8f,0x91,0x90,0x84,0x78,0x7e,0x89,0x8a,0x6f,0x6a,0x65,0x64,0x64,0x65,0x68,0x6b,
+0x6b,0x6a,0x65,0x5e,0x5e,0x63,0x63,0x5e,0x5b,0x57,0x59,0x60,0x63,0x5e,0x58,0x57,
+0x5a,0x5e,0x5a,0x4f,0x4a,0x56,0x6c,0x7d,0x92,0x9b,0x9e,0x99,0x96,0x97,0x94,0x8d,
+0x8d,0x82,0x7a,0x7e,0x84,0x84,0x7e,0x79,0x76,0x75,0x74,0x74,0x75,0x75,0x73,0x72,
+0x6d,0x64,0x54,0x41,0x30,0x26,0x23,0x24,0x27,0x27,0x23,0x1f,0x26,0x36,0x45,0x4c,
+0x3a,0x32,0x34,0x3a,0x3a,0x42,0x4f,0x54,0x4f,0x49,0x4e,0x57,0x56,0x4c,0x3c,0x2b,
+0x31,0x3d,0x4a,0x53,0x58,0x55,0x4a,0x3e,0x3d,0x30,0x26,0x27,0x2f,0x33,0x34,0x34,
+0x4b,0x51,0x4b,0x43,0x4c,0x58,0x5a,0x59,0x55,0x54,0x5f,0x6d,0x6e,0x66,0x53,0x3f,
+0x42,0x4d,0x5d,0x6a,0x6b,0x65,0x64,0x67,0x60,0x4c,0x34,0x31,0x3b,0x38,0x2e,0x2d,
+0x3a,0x38,0x39,0x42,0x55,0x66,0x6b,0x68,0x5f,0x62,0x6a,0x74,0x75,0x6e,0x6b,0x6c,
+0x6e,0x61,0x52,0x44,0x37,0x28,0x1e,0x19,0x24,0x2b,0x37,0x47,0x56,0x5c,0x5a,0x54,
+0x74,0x73,0x70,0x6e,0x6f,0x71,0x6f,0x6c,0x6f,0x6e,0x69,0x63,0x5d,0x5e,0x63,0x68,
+0x64,0x61,0x5e,0x5d,0x62,0x68,0x69,0x67,0x69,0x6a,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6b,0x6c,0x74,0x7e,0x7d,0x71,0x69,0x69,0x6f,0x74,0x77,0x75,0x70,0x68,0x5f,0x58,
+0x5e,0x5b,0x5f,0x67,0x6d,0x6c,0x6c,0x6e,0x6f,0x6d,0x66,0x65,0x6f,0x73,0x6e,0x6c,
+0x71,0x75,0x7a,0x79,0x74,0x6c,0x65,0x61,0x60,0x63,0x6b,0x72,0x74,0x70,0x6b,0x69,
+0x70,0x70,0x6f,0x6d,0x6c,0x6a,0x65,0x5f,0x69,0x6b,0x69,0x65,0x65,0x6b,0x6f,0x6e,
+0x6b,0x69,0x68,0x69,0x6a,0x6b,0x6e,0x71,0x84,0x7d,0x71,0x65,0x5f,0x63,0x6e,0x78,
+0x7c,0x83,0x8d,0x92,0x8f,0x85,0x79,0x71,0x7e,0x7a,0x79,0x7b,0x79,0x70,0x64,0x5d,
+0x5a,0x5c,0x58,0x54,0x5e,0x6c,0x69,0x5a,0x4b,0x48,0x49,0x4f,0x51,0x4e,0x4c,0x4d,
+0x56,0x5a,0x5a,0x59,0x60,0x6d,0x74,0x73,0x69,0x68,0x67,0x64,0x61,0x5f,0x5e,0x5e,
+0x5c,0x59,0x55,0x53,0x50,0x4a,0x42,0x3c,0x43,0x41,0x41,0x41,0x41,0x43,0x4a,0x52,
+0x53,0x54,0x55,0x56,0x59,0x5a,0x57,0x52,0x5b,0x5b,0x5a,0x58,0x5a,0x5b,0x58,0x53,
+0x5e,0x61,0x5b,0x50,0x4e,0x5b,0x68,0x6d,0x6a,0x66,0x62,0x5e,0x5c,0x5a,0x57,0x54,
+0x5c,0x5e,0x61,0x61,0x60,0x5e,0x5e,0x5e,0x62,0x5e,0x5b,0x59,0x57,0x58,0x61,0x6d,
+0x71,0x73,0x71,0x6a,0x64,0x63,0x64,0x65,0x6a,0x6c,0x72,0x75,0x6f,0x66,0x63,0x66,
+0x85,0xb2,0xe4,0xff,0xff,0xfc,0xf7,0xf7,0xfd,0xfb,0xfb,0xfc,0xfe,0xff,0xff,0xfd,
+0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,
+0xfe,0xfd,0xfc,0xfd,0xff,0xff,0xfe,0xfd,0xef,0xe2,0xd0,0xc3,0xbe,0xbc,0xbb,0xb9,
+0xb1,0xb1,0xb1,0xb1,0xb2,0xb1,0xae,0xac,0xa4,0xa2,0x9c,0x95,0x8c,0x84,0x7f,0x7e,
+0x7a,0x78,0x75,0x72,0x6e,0x6b,0x69,0x68,0x64,0x63,0x61,0x5f,0x5d,0x5b,0x59,0x58,
+0x58,0x55,0x50,0x4c,0x4a,0x48,0x46,0x45,0x44,0x42,0x40,0x3f,0x40,0x40,0x3c,0x39,
+0x38,0x35,0x34,0x35,0x36,0x39,0x3f,0x45,0x44,0x4a,0x53,0x5a,0x60,0x66,0x6e,0x74,
+0x6b,0x6c,0x69,0x63,0x5e,0x5a,0x55,0x50,0x4b,0x48,0x42,0x3f,0x3e,0x40,0x41,0x42,
+0x44,0x43,0x43,0x45,0x46,0x45,0x46,0x49,0x4a,0x49,0x48,0x48,0x48,0x48,0x47,0x46,
+0x48,0x4a,0x49,0x49,0x54,0x60,0x5b,0x4e,0x46,0x52,0x68,0x78,0x7c,0x80,0x81,0x7a,
+0x6f,0x6a,0x5f,0x5a,0x5e,0x67,0x7f,0x9d,0xae,0xb9,0xc2,0xc4,0xc3,0xc3,0xc0,0xbc,
+0xc2,0xc1,0xc2,0xbc,0xa1,0x7d,0x68,0x64,0x66,0x65,0x65,0x64,0x60,0x59,0x55,0x54,
+0x53,0x5b,0x65,0x6a,0x66,0x60,0x60,0x64,0x67,0x6b,0x6b,0x68,0x63,0x5e,0x58,0x54,
+0x5e,0x6c,0x73,0x70,0x6a,0x5d,0x51,0x4e,0x54,0x56,0x5b,0x5f,0x5c,0x5a,0x65,0x75,
+0x7a,0x7b,0x7e,0x81,0x85,0x8b,0x7f,0x66,0x73,0x6d,0x68,0x67,0x68,0x68,0x6a,0x6e,
+0x67,0x64,0x60,0x5e,0x60,0x63,0x60,0x5c,0x60,0x5e,0x60,0x65,0x67,0x64,0x5d,0x59,
+0x52,0x52,0x4b,0x40,0x43,0x5a,0x7a,0x8f,0x98,0x9b,0x9b,0x98,0x97,0x97,0x90,0x88,
+0x83,0x7b,0x79,0x82,0x8c,0x8d,0x89,0x86,0x7d,0x7b,0x79,0x77,0x75,0x74,0x72,0x71,
+0x6a,0x61,0x51,0x3f,0x2e,0x26,0x25,0x26,0x1a,0x20,0x1f,0x1a,0x23,0x38,0x44,0x43,
+0x3a,0x35,0x41,0x4b,0x47,0x49,0x4f,0x49,0x41,0x3e,0x46,0x50,0x4d,0x44,0x37,0x29,
+0x37,0x3c,0x45,0x4f,0x56,0x55,0x49,0x3b,0x2e,0x24,0x1e,0x26,0x32,0x37,0x37,0x36,
+0x49,0x53,0x4e,0x44,0x4c,0x59,0x5c,0x59,0x55,0x52,0x5c,0x68,0x69,0x5f,0x4d,0x3a,
+0x36,0x3f,0x52,0x66,0x6a,0x61,0x5a,0x5a,0x4f,0x44,0x3b,0x46,0x5a,0x5c,0x4f,0x48,
+0x34,0x37,0x3a,0x42,0x52,0x65,0x6e,0x6e,0x67,0x6b,0x74,0x7c,0x7c,0x70,0x62,0x58,
+0x4e,0x4f,0x53,0x52,0x48,0x38,0x31,0x31,0x29,0x2f,0x39,0x45,0x51,0x57,0x53,0x4d,
+0x68,0x67,0x62,0x5d,0x5e,0x65,0x6b,0x6c,0x6c,0x6d,0x70,0x71,0x6f,0x6c,0x6b,0x6b,
+0x69,0x65,0x5f,0x5c,0x60,0x65,0x66,0x63,0x5f,0x5f,0x5e,0x5d,0x5c,0x5d,0x60,0x63,
+0x6d,0x6b,0x72,0x7d,0x7d,0x72,0x6a,0x6a,0x74,0x75,0x79,0x7d,0x7b,0x74,0x6c,0x68,
+0x64,0x61,0x63,0x6a,0x6c,0x6a,0x6b,0x70,0x71,0x75,0x73,0x74,0x7d,0x7f,0x79,0x75,
+0x6b,0x67,0x61,0x5d,0x60,0x6a,0x77,0x80,0x77,0x78,0x7d,0x85,0x88,0x85,0x7f,0x7b,
+0x6f,0x70,0x72,0x73,0x70,0x68,0x63,0x61,0x67,0x6e,0x72,0x71,0x70,0x71,0x6e,0x68,
+0x67,0x63,0x5f,0x60,0x68,0x71,0x75,0x74,0x67,0x68,0x68,0x65,0x62,0x65,0x6e,0x75,
+0x74,0x7e,0x8d,0x97,0x98,0x91,0x86,0x7f,0x80,0x7b,0x78,0x77,0x75,0x6e,0x67,0x65,
+0x58,0x58,0x55,0x53,0x5b,0x64,0x62,0x58,0x49,0x47,0x46,0x48,0x4b,0x4c,0x48,0x44,
+0x48,0x4f,0x56,0x59,0x5d,0x62,0x66,0x68,0x61,0x55,0x49,0x4a,0x54,0x5e,0x5f,0x5b,
+0x65,0x68,0x63,0x55,0x4b,0x49,0x4b,0x4a,0x3e,0x3c,0x3c,0x3f,0x42,0x45,0x4b,0x51,
+0x5e,0x60,0x61,0x62,0x65,0x67,0x64,0x5e,0x5d,0x60,0x61,0x60,0x5f,0x5c,0x56,0x50,
+0x58,0x60,0x67,0x66,0x61,0x5f,0x61,0x65,0x69,0x63,0x5c,0x58,0x58,0x58,0x58,0x57,
+0x5e,0x5d,0x5c,0x5a,0x59,0x58,0x58,0x58,0x5e,0x5a,0x58,0x59,0x58,0x57,0x5d,0x66,
+0x72,0x75,0x73,0x6e,0x69,0x68,0x6a,0x6b,0x6d,0x6e,0x72,0x75,0x74,0x75,0x83,0x92,
+0xd1,0xfd,0xff,0xed,0xf8,0xff,0xfb,0xff,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xfe,0xfd,
+0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,
+0xff,0xfb,0xf9,0xfb,0xff,0xff,0xfd,0xf8,0xff,0xf7,0xe5,0xd4,0xc8,0xc2,0xc1,0xc2,
+0xba,0xb6,0xb2,0xb0,0xb1,0xb1,0xaf,0xac,0xa8,0xa7,0xa3,0x9c,0x93,0x8c,0x87,0x84,
+0x83,0x80,0x7b,0x75,0x6f,0x6b,0x69,0x69,0x65,0x64,0x62,0x5f,0x5d,0x5b,0x5a,0x5a,
+0x5b,0x58,0x54,0x50,0x4d,0x4b,0x48,0x47,0x43,0x43,0x43,0x43,0x42,0x40,0x3c,0x39,
+0x3b,0x39,0x39,0x3b,0x3b,0x36,0x32,0x31,0x3a,0x3c,0x3d,0x3c,0x39,0x36,0x36,0x37,
+0x39,0x3c,0x3e,0x3e,0x40,0x43,0x44,0x42,0x3c,0x3d,0x3f,0x42,0x45,0x46,0x45,0x44,
+0x43,0x43,0x46,0x4a,0x4b,0x48,0x47,0x47,0x4c,0x4c,0x4c,0x4b,0x4a,0x49,0x49,0x4a,
+0x49,0x49,0x49,0x4c,0x57,0x61,0x5c,0x51,0x41,0x48,0x61,0x77,0x7a,0x7c,0x81,0x7e,
+0x7c,0x77,0x6c,0x69,0x72,0x7a,0x85,0x93,0xa9,0xb5,0xbe,0xbf,0xbe,0xc0,0xc0,0xbc,
+0xc1,0xc0,0xc2,0xc1,0xb2,0x96,0x79,0x69,0x60,0x64,0x68,0x68,0x5f,0x58,0x59,0x5f,
+0x69,0x68,0x66,0x62,0x5d,0x5c,0x62,0x69,0x68,0x67,0x67,0x67,0x63,0x5a,0x51,0x4c,
+0x47,0x53,0x5f,0x6a,0x75,0x75,0x71,0x72,0x74,0x67,0x54,0x44,0x3d,0x43,0x52,0x60,
+0x61,0x68,0x71,0x70,0x68,0x6b,0x73,0x72,0x7a,0x74,0x6f,0x6d,0x6b,0x6a,0x6b,0x6d,
+0x6e,0x69,0x65,0x64,0x62,0x5f,0x5d,0x5c,0x60,0x62,0x64,0x65,0x67,0x65,0x5d,0x55,
+0x4f,0x4e,0x48,0x44,0x51,0x6e,0x8a,0x99,0x9c,0x99,0x96,0x95,0x94,0x91,0x89,0x83,
+0x7a,0x77,0x7a,0x85,0x8b,0x8c,0x8c,0x8f,0x86,0x82,0x7b,0x75,0x72,0x70,0x6f,0x6e,
+0x68,0x5e,0x4c,0x38,0x29,0x23,0x25,0x29,0x46,0x5c,0x67,0x61,0x61,0x6a,0x63,0x51,
+0x39,0x37,0x47,0x50,0x44,0x41,0x43,0x39,0x36,0x34,0x3e,0x49,0x48,0x44,0x3d,0x34,
+0x3b,0x3d,0x40,0x44,0x47,0x47,0x41,0x3b,0x28,0x1f,0x1d,0x27,0x32,0x36,0x36,0x37,
+0x46,0x55,0x51,0x42,0x45,0x54,0x5a,0x58,0x5b,0x50,0x4e,0x54,0x56,0x55,0x50,0x47,
+0x48,0x4f,0x5a,0x61,0x62,0x5d,0x59,0x58,0x5d,0x4f,0x3a,0x32,0x37,0x36,0x2d,0x29,
+0x30,0x35,0x3a,0x42,0x52,0x64,0x6d,0x6d,0x6c,0x71,0x77,0x7b,0x7a,0x72,0x63,0x56,
+0x5c,0x55,0x4a,0x3d,0x35,0x32,0x30,0x2e,0x30,0x39,0x44,0x4c,0x54,0x5b,0x5d,0x5b,
+0x62,0x65,0x64,0x61,0x60,0x64,0x66,0x65,0x71,0x75,0x7b,0x80,0x7e,0x76,0x6e,0x69,
+0x6f,0x6d,0x69,0x66,0x67,0x69,0x66,0x61,0x5f,0x5e,0x5d,0x5c,0x5e,0x65,0x6d,0x74,
+0x6f,0x6b,0x70,0x7a,0x7c,0x73,0x6c,0x6d,0x69,0x65,0x67,0x6e,0x70,0x6d,0x6b,0x6d,
+0x6e,0x69,0x69,0x6a,0x67,0x60,0x60,0x65,0x6f,0x76,0x75,0x72,0x75,0x72,0x6a,0x66,
+0x60,0x60,0x61,0x63,0x67,0x6c,0x70,0x72,0x75,0x73,0x74,0x79,0x7b,0x77,0x70,0x6c,
+0x69,0x6b,0x71,0x74,0x6c,0x5f,0x59,0x5a,0x64,0x70,0x7b,0x7c,0x7a,0x79,0x73,0x6b,
+0x68,0x69,0x6a,0x70,0x7a,0x7f,0x75,0x66,0x5d,0x60,0x67,0x6f,0x75,0x76,0x73,0x70,
+0x77,0x79,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x74,0x6e,0x6d,0x6b,0x69,0x69,0x6c,
+0x6d,0x68,0x62,0x5e,0x5b,0x58,0x52,0x4e,0x45,0x45,0x43,0x42,0x46,0x4c,0x4a,0x44,
+0x43,0x46,0x4c,0x54,0x5b,0x5e,0x5e,0x5e,0x59,0x4e,0x40,0x3c,0x45,0x55,0x66,0x6f,
+0x75,0x7b,0x73,0x59,0x45,0x44,0x4b,0x4f,0x45,0x40,0x3e,0x40,0x44,0x45,0x46,0x48,
+0x47,0x47,0x45,0x44,0x49,0x4f,0x50,0x4d,0x55,0x5d,0x64,0x68,0x68,0x67,0x64,0x61,
+0x5e,0x5f,0x62,0x60,0x56,0x4e,0x56,0x63,0x76,0x6e,0x64,0x5c,0x58,0x58,0x58,0x59,
+0x58,0x56,0x54,0x53,0x55,0x58,0x5a,0x5b,0x52,0x4f,0x51,0x57,0x5a,0x59,0x5e,0x66,
+0x6b,0x6b,0x67,0x62,0x60,0x64,0x68,0x6a,0x70,0x6f,0x72,0x7b,0x88,0xa3,0xcc,0xee,
+0xfb,0xf7,0xfc,0xff,0xfd,0xfa,0xfc,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xfd,0xfd,
+0xff,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xf8,0xfc,0xff,0xff,0xfa,0xf8,0xfa,0xfe,0xfe,0xfe,0xfa,0xef,0xdf,0xce,0xc2,0xbd,
+0xc1,0xba,0xb2,0xae,0xae,0xaf,0xae,0xac,0xad,0xac,0xa9,0xa2,0x9a,0x93,0x8e,0x8a,
+0x89,0x86,0x7f,0x78,0x70,0x6c,0x69,0x69,0x67,0x66,0x63,0x5f,0x5c,0x5b,0x5a,0x5b,
+0x5a,0x58,0x55,0x53,0x51,0x4e,0x4c,0x4a,0x47,0x46,0x44,0x40,0x3d,0x3d,0x3f,0x41,
+0x40,0x39,0x34,0x36,0x38,0x38,0x38,0x3b,0x37,0x38,0x39,0x3b,0x3d,0x3d,0x3d,0x3d,
+0x3b,0x3d,0x3e,0x3d,0x3e,0x41,0x42,0x41,0x43,0x41,0x40,0x40,0x42,0x44,0x46,0x46,
+0x49,0x47,0x46,0x47,0x48,0x47,0x49,0x4c,0x4b,0x4c,0x4d,0x4c,0x4a,0x4a,0x4c,0x4e,
+0x4c,0x4a,0x4a,0x4f,0x5a,0x61,0x5d,0x54,0x41,0x44,0x5b,0x71,0x72,0x73,0x7b,0x7c,
+0x82,0x83,0x7c,0x75,0x77,0x7d,0x85,0x90,0xa7,0xb1,0xb6,0xb4,0xb4,0xba,0xbf,0xbf,
+0xbf,0xbf,0xbf,0xc0,0xbd,0xab,0x8b,0x6e,0x62,0x69,0x70,0x6d,0x60,0x56,0x5d,0x69,
+0x70,0x6c,0x68,0x64,0x61,0x5f,0x61,0x66,0x6e,0x69,0x68,0x6a,0x66,0x59,0x4d,0x48,
+0x4a,0x4f,0x51,0x56,0x5e,0x64,0x70,0x82,0x82,0x80,0x7b,0x76,0x75,0x76,0x70,0x66,
+0x54,0x59,0x6a,0x76,0x74,0x73,0x77,0x79,0x78,0x73,0x6f,0x6e,0x6e,0x6e,0x70,0x72,
+0x74,0x6e,0x6a,0x6a,0x66,0x60,0x60,0x64,0x5c,0x60,0x62,0x61,0x62,0x61,0x58,0x4c,
+0x56,0x56,0x54,0x58,0x6c,0x88,0x9b,0xa0,0xa1,0x9a,0x92,0x90,0x8d,0x88,0x82,0x80,
+0x7a,0x79,0x7d,0x82,0x81,0x7c,0x7e,0x85,0x88,0x81,0x77,0x6e,0x69,0x68,0x68,0x68,
+0x66,0x5a,0x47,0x32,0x24,0x20,0x25,0x2a,0x64,0x87,0x9d,0x92,0x84,0x79,0x5c,0x38,
+0x38,0x37,0x48,0x4f,0x42,0x44,0x4e,0x49,0x3f,0x3d,0x45,0x4d,0x4c,0x48,0x45,0x3e,
+0x3c,0x40,0x40,0x39,0x2f,0x2b,0x2e,0x32,0x2d,0x26,0x24,0x2d,0x35,0x36,0x37,0x39,
+0x4b,0x52,0x45,0x35,0x40,0x55,0x54,0x48,0x3c,0x3d,0x4d,0x63,0x6a,0x63,0x52,0x41,
+0x40,0x53,0x67,0x6c,0x68,0x5d,0x4d,0x3f,0x2f,0x32,0x30,0x2f,0x36,0x39,0x39,0x3c,
+0x32,0x38,0x3d,0x45,0x55,0x66,0x6d,0x6a,0x6b,0x73,0x79,0x7a,0x77,0x70,0x60,0x50,
+0x47,0x4b,0x46,0x39,0x34,0x3a,0x3a,0x34,0x34,0x40,0x4a,0x4f,0x54,0x5d,0x66,0x6a,
+0x6b,0x66,0x63,0x68,0x6c,0x6c,0x6c,0x6d,0x71,0x80,0x83,0x81,0x7f,0x72,0x66,0x69,
+0x73,0x6e,0x6a,0x6a,0x6c,0x6c,0x68,0x64,0x60,0x5f,0x5e,0x5e,0x62,0x6b,0x78,0x81,
+0x84,0x7e,0x79,0x78,0x78,0x76,0x73,0x70,0x6a,0x60,0x5b,0x60,0x67,0x6c,0x71,0x77,
+0x6c,0x6f,0x6f,0x66,0x5a,0x55,0x59,0x5f,0x6e,0x6e,0x6e,0x6e,0x6d,0x69,0x65,0x61,
+0x63,0x62,0x61,0x64,0x68,0x6b,0x69,0x67,0x6e,0x70,0x73,0x73,0x71,0x70,0x6f,0x6f,
+0x6e,0x70,0x70,0x6c,0x66,0x61,0x5f,0x60,0x67,0x6f,0x78,0x79,0x73,0x6e,0x6e,0x70,
+0x6c,0x65,0x5f,0x65,0x75,0x82,0x82,0x7b,0x7d,0x81,0x83,0x81,0x84,0x89,0x88,0x83,
+0x82,0x79,0x70,0x6f,0x71,0x74,0x78,0x7a,0x76,0x74,0x72,0x6e,0x6b,0x6b,0x6d,0x6f,
+0x7b,0x75,0x6b,0x62,0x5c,0x5a,0x5a,0x5b,0x54,0x48,0x3f,0x3f,0x46,0x4b,0x4e,0x4f,
+0x47,0x43,0x41,0x45,0x4f,0x58,0x5c,0x5c,0x56,0x53,0x49,0x43,0x4d,0x63,0x71,0x73,
+0x83,0x8c,0x86,0x65,0x41,0x39,0x4e,0x65,0x57,0x47,0x3d,0x40,0x40,0x39,0x3a,0x42,
+0x44,0x47,0x4b,0x4c,0x4c,0x4b,0x4c,0x4d,0x56,0x5c,0x62,0x66,0x67,0x64,0x5e,0x58,
+0x53,0x5c,0x61,0x5c,0x53,0x54,0x64,0x74,0x74,0x77,0x62,0x54,0x54,0x55,0x57,0x4e,
+0x4f,0x50,0x53,0x57,0x60,0x67,0x64,0x5d,0x5a,0x5c,0x5c,0x59,0x5a,0x5e,0x66,0x6b,
+0x75,0x6c,0x68,0x69,0x66,0x61,0x68,0x76,0x75,0x6e,0x70,0x8c,0xc1,0xf1,0xff,0xfa,
+0xfd,0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xff,0xfe,0xfc,0xfa,0xf9,0xf8,0xf8,0xf8,0xf9,0xf9,0xfb,0xfc,0xfd,0xfd,0xfd,0xfd,
+0xfe,0xfd,0xfd,0xfd,0xfd,0xfe,0xff,0xff,0xfd,0xfe,0xfd,0xfb,0xfa,0xf2,0xdb,0xc4,
+0xc4,0xc1,0xbf,0xbb,0xb2,0xaa,0xaa,0xaf,0xae,0xab,0xa9,0xa7,0xa6,0xa1,0x98,0x92,
+0x8b,0x87,0x82,0x7e,0x76,0x6d,0x69,0x6b,0x68,0x66,0x65,0x63,0x62,0x60,0x5d,0x5b,
+0x5a,0x59,0x58,0x56,0x54,0x51,0x4f,0x4d,0x4a,0x48,0x46,0x45,0x44,0x43,0x41,0x3f,
+0x3f,0x3b,0x3a,0x3b,0x3b,0x39,0x38,0x39,0x3d,0x3c,0x3b,0x3b,0x3c,0x3d,0x3f,0x40,
+0x41,0x41,0x40,0x40,0x40,0x41,0x41,0x42,0x44,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,
+0x47,0x48,0x49,0x4b,0x4c,0x4d,0x4d,0x4e,0x4d,0x4c,0x4b,0x4a,0x4a,0x4b,0x4c,0x4c,
+0x4e,0x4c,0x4d,0x52,0x59,0x5e,0x5e,0x5c,0x47,0x33,0x4d,0x6e,0x77,0x81,0x7f,0x73,
+0x7b,0x84,0x8c,0x8d,0x8b,0x8a,0x8a,0x8a,0x9f,0xb2,0xc0,0xbf,0xbb,0xbc,0xbb,0xb5,
+0xbf,0xc0,0xc1,0xc4,0xc6,0xb8,0x94,0x73,0x7a,0x7a,0x73,0x64,0x5b,0x5b,0x5f,0x60,
+0x72,0x74,0x6b,0x60,0x5d,0x5b,0x5c,0x63,0x6b,0x6e,0x6c,0x6b,0x66,0x57,0x4a,0x49,
+0x4f,0x5a,0x5b,0x52,0x49,0x43,0x47,0x54,0x72,0x76,0x7b,0x7f,0x85,0x8b,0x8c,0x89,
+0x76,0x7a,0x7c,0x7a,0x78,0x77,0x70,0x69,0x6f,0x77,0x7b,0x76,0x70,0x70,0x72,0x73,
+0x71,0x6e,0x69,0x65,0x5d,0x56,0x54,0x56,0x5f,0x5d,0x59,0x58,0x5c,0x5e,0x5a,0x54,
+0x56,0x53,0x59,0x6f,0x89,0x9b,0xa1,0xa2,0x9c,0x9c,0x98,0x8e,0x87,0x84,0x80,0x7b,
+0x74,0x7e,0x89,0x8d,0x8a,0x82,0x77,0x6e,0x77,0x6f,0x69,0x67,0x68,0x69,0x6a,0x6c,
+0x62,0x54,0x41,0x30,0x24,0x25,0x31,0x3f,0x72,0x93,0x9f,0x96,0x88,0x68,0x4b,0x46,
+0x3d,0x39,0x49,0x47,0x44,0x4b,0x47,0x4a,0x40,0x45,0x4e,0x56,0x53,0x47,0x3a,0x33,
+0x36,0x3a,0x39,0x30,0x2a,0x2c,0x30,0x32,0x31,0x22,0x23,0x2b,0x2d,0x34,0x3e,0x3c,
+0x44,0x4d,0x3a,0x2f,0x3d,0x50,0x57,0x49,0x43,0x46,0x51,0x5f,0x69,0x6e,0x65,0x52,
+0x4a,0x5a,0x6d,0x6e,0x62,0x5c,0x57,0x4c,0x41,0x39,0x3d,0x56,0x6f,0x6e,0x53,0x39,
+0x33,0x3d,0x3e,0x39,0x3a,0x41,0x4e,0x5f,0x68,0x72,0x7c,0x7e,0x78,0x6a,0x57,0x47,
+0x42,0x47,0x49,0x42,0x39,0x34,0x36,0x3a,0x41,0x50,0x59,0x56,0x5a,0x65,0x69,0x64,
+0x6b,0x67,0x64,0x66,0x67,0x64,0x63,0x64,0x6a,0x76,0x79,0x79,0x7a,0x6f,0x62,0x62,
+0x5d,0x60,0x66,0x6b,0x6c,0x69,0x62,0x5d,0x5f,0x5e,0x5e,0x5f,0x64,0x6e,0x79,0x80,
+0x83,0x7e,0x78,0x75,0x73,0x72,0x6f,0x6e,0x6f,0x6d,0x6a,0x67,0x64,0x66,0x71,0x7d,
+0x80,0x7b,0x76,0x72,0x6f,0x6c,0x67,0x63,0x65,0x64,0x65,0x66,0x68,0x67,0x64,0x61,
+0x63,0x63,0x64,0x67,0x69,0x66,0x60,0x5b,0x60,0x67,0x70,0x74,0x74,0x76,0x7b,0x7f,
+0x77,0x79,0x7b,0x79,0x76,0x73,0x73,0x74,0x79,0x7d,0x7f,0x7d,0x76,0x6e,0x68,0x66,
+0x63,0x63,0x62,0x62,0x67,0x6d,0x6f,0x6d,0x73,0x77,0x75,0x70,0x72,0x7c,0x86,0x89,
+0x8c,0x88,0x87,0x8b,0x8e,0x89,0x81,0x7b,0x79,0x7d,0x82,0x83,0x80,0x79,0x72,0x6e,
+0x64,0x67,0x6b,0x6d,0x6c,0x6b,0x6c,0x6d,0x57,0x50,0x4a,0x4b,0x4f,0x50,0x4f,0x4e,
+0x48,0x46,0x45,0x4b,0x55,0x5e,0x62,0x62,0x68,0x6a,0x66,0x5c,0x5b,0x65,0x73,0x7a,
+0x8b,0x91,0x89,0x6a,0x4b,0x46,0x5c,0x74,0x6f,0x59,0x46,0x40,0x40,0x3f,0x41,0x46,
+0x4a,0x4b,0x4b,0x49,0x46,0x46,0x49,0x4d,0x49,0x4d,0x54,0x5c,0x5f,0x5b,0x54,0x4f,
+0x59,0x63,0x68,0x60,0x56,0x55,0x5c,0x61,0x70,0x76,0x64,0x55,0x53,0x54,0x57,0x50,
+0x50,0x56,0x5e,0x63,0x67,0x66,0x5e,0x55,0x55,0x58,0x5c,0x5f,0x61,0x64,0x66,0x67,
+0x5b,0x64,0x69,0x66,0x69,0x74,0x7c,0x7c,0x80,0x92,0xb8,0xe2,0xfa,0xfc,0xfa,0xfc,
+0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,0xfd,0xfd,
+0xfd,0xfc,0xfb,0xf9,0xf8,0xf7,0xf6,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfb,0xfb,0xfb,
+0xfc,0xfc,0xfc,0xfb,0xfc,0xfc,0xfd,0xfe,0xfb,0xff,0xff,0xfe,0xff,0xff,0xf4,0xe7,
+0xd4,0xc8,0xbd,0xba,0xb9,0xb4,0xad,0xa9,0xad,0xac,0xac,0xac,0xab,0xa5,0x9c,0x95,
+0x93,0x8e,0x89,0x85,0x7e,0x73,0x6c,0x6b,0x69,0x67,0x64,0x62,0x61,0x60,0x5d,0x5c,
+0x5a,0x5a,0x5a,0x58,0x57,0x54,0x52,0x51,0x4c,0x4a,0x48,0x47,0x46,0x44,0x42,0x40,
+0x43,0x3f,0x3e,0x3f,0x3f,0x3d,0x3c,0x3d,0x3e,0x3d,0x3d,0x3d,0x3e,0x3f,0x41,0x42,
+0x42,0x42,0x42,0x42,0x42,0x42,0x43,0x43,0x44,0x45,0x45,0x46,0x47,0x48,0x49,0x4a,
+0x48,0x49,0x4a,0x4c,0x4d,0x4d,0x4e,0x4e,0x4d,0x4d,0x4c,0x4b,0x4b,0x4b,0x4c,0x4d,
+0x4b,0x4a,0x4c,0x53,0x5c,0x63,0x64,0x63,0x51,0x37,0x46,0x65,0x79,0x87,0x89,0x88,
+0x81,0x86,0x88,0x87,0x87,0x89,0x8a,0x89,0x99,0xab,0xbd,0xc3,0xc4,0xc6,0xc6,0xc3,
+0xbe,0xbe,0xbd,0xbf,0xc4,0xc3,0xb3,0xa1,0x83,0x75,0x6c,0x6e,0x6d,0x64,0x5e,0x5f,
+0x6e,0x70,0x68,0x5c,0x56,0x52,0x52,0x59,0x69,0x6d,0x6d,0x6c,0x69,0x5b,0x4e,0x4d,
+0x4a,0x56,0x5a,0x57,0x51,0x49,0x47,0x4e,0x4e,0x60,0x76,0x85,0x8b,0x8a,0x83,0x7c,
+0x77,0x7b,0x7d,0x7a,0x76,0x72,0x6b,0x64,0x64,0x68,0x6a,0x67,0x66,0x6c,0x73,0x76,
+0x73,0x6d,0x65,0x5f,0x58,0x53,0x53,0x55,0x58,0x53,0x50,0x53,0x5a,0x5f,0x5f,0x5d,
+0x55,0x61,0x74,0x89,0x9a,0xa2,0xa3,0xa1,0x9e,0x9d,0x98,0x91,0x8c,0x88,0x81,0x7b,
+0x72,0x7c,0x87,0x8d,0x8e,0x8b,0x85,0x80,0x72,0x6b,0x66,0x64,0x64,0x62,0x62,0x64,
+0x5d,0x5c,0x55,0x47,0x3b,0x3f,0x51,0x63,0x8b,0xa2,0xa9,0x9c,0x85,0x62,0x45,0x3e,
+0x3d,0x37,0x43,0x41,0x42,0x4d,0x4c,0x4e,0x4b,0x54,0x5e,0x5f,0x51,0x3e,0x30,0x2b,
+0x36,0x41,0x46,0x40,0x37,0x35,0x38,0x3a,0x2b,0x20,0x24,0x2e,0x30,0x35,0x3b,0x39,
+0x3f,0x46,0x3b,0x3e,0x50,0x5c,0x5b,0x4d,0x43,0x46,0x52,0x5f,0x65,0x66,0x5f,0x52,
+0x57,0x5d,0x63,0x5c,0x4f,0x50,0x5c,0x62,0x63,0x59,0x50,0x52,0x58,0x54,0x42,0x31,
+0x3b,0x40,0x41,0x43,0x4d,0x57,0x62,0x6d,0x78,0x7f,0x82,0x7c,0x72,0x68,0x5d,0x56,
+0x4b,0x50,0x52,0x4e,0x43,0x39,0x37,0x39,0x42,0x44,0x4c,0x58,0x61,0x65,0x67,0x6a,
+0x6b,0x6a,0x69,0x6b,0x6a,0x67,0x65,0x66,0x6f,0x77,0x7b,0x7d,0x81,0x79,0x6d,0x6a,
+0x61,0x64,0x68,0x69,0x67,0x65,0x64,0x64,0x62,0x61,0x61,0x62,0x67,0x6e,0x76,0x7c,
+0x83,0x82,0x80,0x7d,0x7a,0x77,0x75,0x74,0x69,0x6c,0x6b,0x65,0x63,0x6a,0x76,0x7f,
+0x75,0x74,0x72,0x6f,0x6b,0x68,0x66,0x65,0x60,0x5f,0x5e,0x60,0x65,0x67,0x66,0x65,
+0x64,0x65,0x67,0x6a,0x6c,0x6a,0x64,0x5f,0x62,0x69,0x70,0x6e,0x66,0x61,0x63,0x68,
+0x77,0x7b,0x81,0x85,0x87,0x89,0x8c,0x8f,0x8e,0x8c,0x88,0x84,0x7d,0x75,0x6c,0x66,
+0x67,0x73,0x7d,0x7e,0x79,0x75,0x73,0x72,0x71,0x77,0x78,0x74,0x74,0x7f,0x8c,0x94,
+0x91,0x8a,0x85,0x87,0x88,0x85,0x7f,0x7a,0x80,0x81,0x81,0x7e,0x7a,0x76,0x73,0x72,
+0x63,0x6b,0x74,0x79,0x77,0x74,0x73,0x73,0x6f,0x69,0x65,0x63,0x61,0x5d,0x5a,0x59,
+0x5d,0x57,0x51,0x52,0x5a,0x66,0x6f,0x74,0x67,0x6a,0x71,0x7a,0x83,0x89,0x8b,0x8a,
+0x89,0x8b,0x83,0x6e,0x56,0x4a,0x4a,0x4e,0x4e,0x4c,0x4c,0x50,0x52,0x50,0x4d,0x4c,
+0x41,0x46,0x4a,0x49,0x45,0x42,0x43,0x45,0x47,0x47,0x4d,0x57,0x5d,0x59,0x53,0x50,
+0x4f,0x59,0x60,0x5e,0x5d,0x61,0x64,0x64,0x6e,0x77,0x67,0x57,0x51,0x50,0x55,0x52,
+0x57,0x60,0x6a,0x70,0x72,0x6f,0x68,0x61,0x58,0x5b,0x5f,0x64,0x68,0x68,0x67,0x65,
+0x67,0x62,0x63,0x6b,0x74,0x78,0x7b,0x7e,0xb8,0xda,0xf9,0xff,0xfb,0xfc,0xff,0xff,
+0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfc,0xfc,
+0xfb,0xfa,0xf9,0xf7,0xf6,0xf5,0xf4,0xf4,0xf4,0xf4,0xf5,0xf6,0xf7,0xf7,0xf8,0xf8,
+0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xfc,0xfd,0xfd,0xff,0xff,0xfe,0xfd,0xff,0xff,0xfc,
+0xf4,0xe0,0xca,0xbe,0xbb,0xb9,0xb6,0xb3,0xaa,0xaa,0xab,0xac,0xab,0xa9,0xa4,0xa0,
+0x98,0x93,0x8e,0x8a,0x83,0x79,0x70,0x6c,0x6d,0x6a,0x66,0x63,0x61,0x60,0x5f,0x5e,
+0x59,0x59,0x58,0x57,0x56,0x55,0x53,0x53,0x4f,0x4d,0x4b,0x49,0x48,0x46,0x44,0x42,
+0x44,0x41,0x3f,0x40,0x40,0x3f,0x3e,0x3f,0x3f,0x3f,0x40,0x40,0x41,0x42,0x43,0x43,
+0x44,0x44,0x44,0x44,0x44,0x45,0x45,0x45,0x46,0x47,0x47,0x48,0x49,0x4a,0x4a,0x4b,
+0x4a,0x4b,0x4c,0x4d,0x4d,0x4e,0x4e,0x4e,0x4d,0x4c,0x4c,0x4b,0x4b,0x4c,0x4d,0x4e,
+0x4a,0x4a,0x4e,0x56,0x60,0x66,0x68,0x68,0x5a,0x3d,0x39,0x4c,0x67,0x7a,0x80,0x8c,
+0x8b,0x8b,0x8a,0x88,0x89,0x8c,0x8e,0x8d,0x90,0x9e,0xb2,0xc2,0xc8,0xc9,0xc9,0xc9,
+0xc4,0xc3,0xbf,0xbd,0xc1,0xc7,0xc7,0xc2,0x9d,0x79,0x61,0x66,0x6c,0x63,0x5d,0x62,
+0x68,0x6c,0x67,0x5c,0x53,0x4a,0x49,0x51,0x67,0x6b,0x6c,0x6d,0x6b,0x5f,0x52,0x50,
+0x50,0x5a,0x5e,0x5d,0x5d,0x5a,0x59,0x60,0x52,0x55,0x53,0x4c,0x47,0x4a,0x52,0x59,
+0x67,0x6b,0x6f,0x6f,0x6d,0x6a,0x64,0x5e,0x5a,0x5c,0x5d,0x5c,0x5f,0x66,0x6f,0x74,
+0x73,0x6c,0x64,0x5e,0x58,0x53,0x53,0x55,0x52,0x4f,0x51,0x5a,0x5f,0x5d,0x58,0x56,
+0x5a,0x73,0x8e,0x9d,0xa2,0xa3,0xa0,0x9d,0x9c,0x99,0x94,0x8f,0x8d,0x89,0x81,0x79,
+0x7a,0x81,0x88,0x8a,0x8a,0x89,0x85,0x81,0x79,0x73,0x6d,0x6a,0x69,0x69,0x6c,0x70,
+0x8c,0x9f,0xaf,0xaf,0xa2,0x93,0x87,0x7f,0x84,0x90,0x98,0x8e,0x76,0x5c,0x4c,0x46,
+0x3e,0x3b,0x46,0x48,0x4b,0x58,0x5b,0x5c,0x49,0x54,0x5e,0x5c,0x4b,0x3a,0x34,0x36,
+0x39,0x41,0x46,0x42,0x3d,0x3b,0x38,0x34,0x22,0x1d,0x24,0x30,0x33,0x35,0x38,0x36,
+0x3e,0x41,0x3a,0x48,0x5e,0x64,0x60,0x54,0x4a,0x47,0x4f,0x59,0x5c,0x61,0x64,0x62,
+0x66,0x50,0x40,0x3f,0x49,0x5b,0x6a,0x6d,0x62,0x5d,0x55,0x4d,0x4e,0x53,0x51,0x4b,
+0x3e,0x3f,0x3d,0x45,0x57,0x65,0x6b,0x71,0x76,0x7d,0x83,0x7e,0x73,0x68,0x5f,0x5a,
+0x5b,0x56,0x50,0x46,0x38,0x2c,0x2c,0x32,0x3f,0x41,0x4c,0x5f,0x6e,0x70,0x6d,0x6b,
+0x66,0x68,0x6b,0x6e,0x6e,0x6d,0x6d,0x6e,0x6c,0x71,0x77,0x7b,0x7e,0x7a,0x74,0x72,
+0x76,0x75,0x72,0x6d,0x68,0x66,0x67,0x69,0x66,0x64,0x62,0x61,0x64,0x69,0x6e,0x71,
+0x73,0x7d,0x8a,0x94,0x9c,0xa2,0xa5,0xa5,0xac,0xa8,0x9d,0x92,0x8e,0x8e,0x88,0x80,
+0x84,0x82,0x7d,0x77,0x71,0x6e,0x6f,0x71,0x64,0x60,0x5d,0x5e,0x61,0x63,0x62,0x60,
+0x59,0x5a,0x5c,0x60,0x65,0x68,0x68,0x67,0x6b,0x72,0x79,0x79,0x74,0x71,0x74,0x78,
+0x77,0x7c,0x82,0x88,0x8d,0x90,0x94,0x96,0x99,0x96,0x92,0x8e,0x8a,0x85,0x81,0x7d,
+0x8b,0x8c,0x87,0x7b,0x73,0x77,0x84,0x8e,0x97,0x9e,0xa3,0xa2,0xa0,0xa2,0xa7,0xaa,
+0xad,0xa5,0x9d,0x9b,0x9c,0x9e,0xa2,0xa6,0xa3,0x9e,0x97,0x8f,0x8c,0x8d,0x92,0x96,
+0x93,0x95,0x97,0x95,0x91,0x8c,0x89,0x88,0x84,0x80,0x7c,0x79,0x75,0x72,0x71,0x73,
+0x6e,0x72,0x77,0x7c,0x7c,0x76,0x6d,0x66,0x57,0x55,0x5b,0x67,0x72,0x72,0x6d,0x68,
+0x66,0x63,0x5f,0x5d,0x5b,0x54,0x46,0x3a,0x35,0x41,0x4e,0x52,0x4f,0x4c,0x4a,0x49,
+0x54,0x58,0x5c,0x5b,0x55,0x51,0x51,0x53,0x4e,0x4a,0x4c,0x57,0x5e,0x5b,0x57,0x57,
+0x53,0x53,0x56,0x5b,0x5f,0x61,0x63,0x65,0x6d,0x79,0x6b,0x5a,0x53,0x53,0x5d,0x5d,
+0x5c,0x60,0x65,0x69,0x6b,0x6c,0x6b,0x69,0x62,0x60,0x62,0x67,0x6b,0x6c,0x6a,0x69,
+0x66,0x6c,0x76,0x76,0x6c,0x73,0x9b,0xc7,0xe5,0xfe,0xff,0xfd,0xf5,0xfd,0xff,0xf8,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfb,0xfb,
+0xf9,0xf9,0xf7,0xf6,0xf4,0xf3,0xf2,0xf2,0xf0,0xf0,0xf0,0xf0,0xf1,0xf2,0xf3,0xf4,
+0xf5,0xf6,0xf7,0xf8,0xf9,0xfb,0xfc,0xfc,0xfd,0xff,0xff,0xfb,0xf9,0xfb,0xfd,0xfd,
+0xff,0xf7,0xe6,0xd4,0xc6,0xbd,0xba,0xba,0xb1,0xaf,0xac,0xab,0xaa,0xa9,0xa9,0xa8,
+0x9b,0x97,0x91,0x8d,0x88,0x81,0x78,0x72,0x73,0x6f,0x6a,0x66,0x63,0x62,0x62,0x61,
+0x5a,0x5a,0x59,0x58,0x57,0x55,0x54,0x53,0x52,0x50,0x4e,0x4c,0x4b,0x49,0x47,0x45,
+0x46,0x43,0x41,0x42,0x43,0x41,0x40,0x41,0x40,0x41,0x42,0x43,0x44,0x45,0x45,0x45,
+0x47,0x46,0x46,0x46,0x46,0x47,0x47,0x48,0x4a,0x4a,0x4a,0x4b,0x4b,0x4c,0x4c,0x4c,
+0x4c,0x4c,0x4d,0x4d,0x4e,0x4e,0x4d,0x4d,0x4c,0x4c,0x4c,0x4b,0x4c,0x4c,0x4d,0x4d,
+0x4b,0x4d,0x51,0x58,0x61,0x66,0x68,0x67,0x63,0x4b,0x36,0x31,0x46,0x5a,0x63,0x78,
+0x8b,0x8e,0x8f,0x8d,0x8e,0x90,0x91,0x90,0x8c,0x96,0xa9,0xbd,0xc7,0xc6,0xc4,0xc5,
+0xc6,0xc6,0xc2,0xc0,0xc2,0xc6,0xc8,0xc5,0xb6,0x8e,0x67,0x5b,0x5e,0x5f,0x5c,0x5c,
+0x60,0x66,0x65,0x5c,0x53,0x49,0x48,0x51,0x67,0x6c,0x6c,0x6c,0x6b,0x5f,0x51,0x4d,
+0x58,0x5d,0x5c,0x58,0x59,0x5a,0x61,0x6c,0x63,0x63,0x60,0x57,0x50,0x50,0x56,0x5c,
+0x53,0x55,0x59,0x5e,0x62,0x63,0x5f,0x5c,0x58,0x5c,0x5e,0x5e,0x5d,0x60,0x67,0x6d,
+0x75,0x6e,0x68,0x64,0x60,0x5c,0x59,0x59,0x56,0x52,0x55,0x5c,0x5b,0x54,0x53,0x58,
+0x71,0x87,0x9c,0xa2,0xa1,0xa1,0x9f,0x9a,0x9c,0x97,0x90,0x8d,0x8c,0x89,0x83,0x7d,
+0x82,0x86,0x89,0x88,0x87,0x84,0x80,0x7b,0x84,0x7d,0x75,0x71,0x70,0x72,0x7a,0x81,
+0x99,0xa5,0xaf,0xb4,0xb7,0xb5,0xa6,0x95,0x88,0x88,0x87,0x79,0x60,0x4e,0x47,0x43,
+0x46,0x40,0x43,0x48,0x50,0x5b,0x56,0x49,0x40,0x4a,0x55,0x55,0x48,0x3a,0x35,0x37,
+0x3b,0x39,0x36,0x35,0x3a,0x3e,0x36,0x2a,0x1a,0x1b,0x24,0x31,0x36,0x35,0x36,0x38,
+0x3f,0x41,0x38,0x42,0x56,0x5d,0x5e,0x56,0x4c,0x49,0x51,0x5d,0x60,0x62,0x65,0x63,
+0x4b,0x3a,0x3e,0x5c,0x76,0x7b,0x6b,0x55,0x5c,0x5b,0x53,0x49,0x4a,0x52,0x54,0x4f,
+0x44,0x41,0x3c,0x43,0x55,0x5f,0x64,0x69,0x66,0x6d,0x74,0x74,0x6d,0x65,0x5e,0x5b,
+0x61,0x5a,0x52,0x49,0x3b,0x2f,0x2e,0x35,0x36,0x42,0x52,0x62,0x73,0x7b,0x72,0x63,
+0x64,0x68,0x6c,0x6e,0x6f,0x70,0x6f,0x6e,0x69,0x6e,0x76,0x7c,0x7b,0x7b,0x7c,0x7b,
+0x7d,0x7a,0x77,0x74,0x71,0x6d,0x67,0x63,0x66,0x65,0x63,0x61,0x62,0x65,0x69,0x6c,
+0x70,0x80,0x96,0xa7,0xb2,0xb9,0xba,0xb8,0xb1,0xb0,0xac,0xac,0xb2,0xb7,0xb0,0xa5,
+0x9f,0x91,0x81,0x79,0x79,0x79,0x74,0x6f,0x68,0x65,0x63,0x64,0x67,0x69,0x69,0x67,
+0x69,0x6a,0x6e,0x72,0x78,0x7c,0x7f,0x80,0x81,0x85,0x8b,0x8f,0x91,0x93,0x96,0x98,
+0x9e,0xa0,0xa4,0xa7,0xa8,0xa8,0xa8,0xa8,0xa9,0xa9,0xa8,0xa6,0xa3,0xa3,0xa6,0xa8,
+0xa5,0x9f,0x92,0x85,0x80,0x87,0x93,0x9b,0x9e,0xa2,0xa4,0xa4,0xa2,0xa1,0x9f,0x9d,
+0x99,0x98,0x97,0x98,0x98,0x98,0x9c,0xa1,0xa4,0xa3,0x9f,0x9b,0x98,0x98,0x9a,0x9c,
+0x9b,0x98,0x93,0x8f,0x8d,0x8a,0x87,0x84,0x92,0x91,0x91,0x92,0x91,0x8f,0x91,0x95,
+0x94,0x95,0x93,0x8c,0x7c,0x67,0x52,0x45,0x52,0x50,0x4d,0x4a,0x45,0x43,0x49,0x51,
+0x4a,0x42,0x3c,0x40,0x48,0x4c,0x47,0x41,0x42,0x45,0x45,0x41,0x41,0x49,0x52,0x56,
+0x5e,0x5f,0x5e,0x58,0x51,0x4e,0x50,0x53,0x51,0x4e,0x50,0x59,0x5f,0x5c,0x57,0x55,
+0x52,0x4b,0x4e,0x5b,0x64,0x62,0x63,0x69,0x6f,0x7b,0x6c,0x5b,0x55,0x58,0x65,0x68,
+0x63,0x61,0x5f,0x61,0x65,0x68,0x69,0x69,0x61,0x5f,0x61,0x69,0x71,0x72,0x71,0x71,
+0x71,0x7b,0x7b,0x74,0x81,0xab,0xdc,0xf9,0xfc,0xfa,0xfa,0xfd,0xff,0xfd,0xfc,0xfc,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,0xfb,0xfa,
+0xf9,0xf8,0xf7,0xf6,0xf5,0xf3,0xf2,0xf2,0xee,0xee,0xed,0xec,0xec,0xec,0xed,0xee,
+0xf1,0xf2,0xf3,0xf5,0xf7,0xf9,0xfb,0xfb,0xf9,0xfb,0xfc,0xfc,0xfd,0xff,0xff,0xfe,
+0xf9,0xfc,0xfc,0xf3,0xe2,0xcf,0xbf,0xb6,0xb8,0xb5,0xb1,0xae,0xac,0xab,0xa9,0xa7,
+0xa3,0x9f,0x98,0x92,0x8e,0x89,0x83,0x7d,0x79,0x75,0x6f,0x6a,0x67,0x65,0x63,0x62,
+0x61,0x60,0x5e,0x5c,0x5a,0x58,0x57,0x56,0x54,0x53,0x50,0x4f,0x4e,0x4c,0x4a,0x48,
+0x4b,0x48,0x46,0x47,0x48,0x46,0x45,0x46,0x43,0x44,0x45,0x46,0x47,0x47,0x48,0x48,
+0x49,0x49,0x48,0x48,0x48,0x49,0x49,0x4a,0x4b,0x4b,0x4c,0x4c,0x4c,0x4c,0x4c,0x4d,
+0x4c,0x4c,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,
+0x4c,0x4e,0x53,0x5a,0x61,0x66,0x67,0x66,0x68,0x5d,0x43,0x28,0x2d,0x3f,0x4c,0x65,
+0x7f,0x88,0x90,0x92,0x91,0x91,0x91,0x90,0x91,0x95,0xa5,0xba,0xc6,0xc6,0xc3,0xc4,
+0xc2,0xc1,0xc1,0xc2,0xc6,0xc9,0xc8,0xc5,0xbf,0xa8,0x80,0x60,0x59,0x60,0x5e,0x53,
+0x59,0x61,0x64,0x60,0x58,0x4e,0x4e,0x59,0x6a,0x6f,0x6e,0x6c,0x6a,0x5f,0x50,0x4b,
+0x56,0x5b,0x5a,0x55,0x53,0x51,0x54,0x5e,0x73,0x75,0x78,0x76,0x6d,0x60,0x55,0x4f,
+0x5a,0x58,0x59,0x5e,0x62,0x62,0x5d,0x59,0x5d,0x5f,0x60,0x5c,0x57,0x57,0x5f,0x68,
+0x76,0x6e,0x66,0x63,0x62,0x60,0x5f,0x5f,0x5d,0x58,0x55,0x54,0x51,0x52,0x62,0x76,
+0x8f,0x9b,0xa3,0xa2,0xa2,0xa4,0xa1,0x9a,0x99,0x93,0x8b,0x88,0x87,0x85,0x83,0x81,
+0x81,0x85,0x88,0x89,0x8a,0x89,0x86,0x81,0x78,0x73,0x6c,0x67,0x63,0x62,0x68,0x6f,
+0x5b,0x66,0x74,0x84,0x99,0xa8,0xa3,0x96,0x95,0x8c,0x7e,0x68,0x52,0x4a,0x49,0x45,
+0x42,0x3d,0x3c,0x45,0x52,0x5e,0x5c,0x49,0x49,0x4e,0x55,0x56,0x4d,0x3e,0x33,0x30,
+0x39,0x38,0x34,0x33,0x38,0x3b,0x32,0x26,0x17,0x1d,0x27,0x33,0x39,0x37,0x37,0x3d,
+0x41,0x47,0x3c,0x3d,0x4b,0x54,0x59,0x51,0x3e,0x43,0x57,0x6a,0x6c,0x65,0x58,0x4a,
+0x3b,0x36,0x45,0x5f,0x6c,0x6c,0x68,0x62,0x55,0x52,0x4a,0x47,0x51,0x63,0x69,0x64,
+0x4f,0x4c,0x45,0x45,0x4c,0x50,0x55,0x5f,0x60,0x60,0x60,0x61,0x60,0x5f,0x60,0x61,
+0x5e,0x5e,0x5f,0x5e,0x55,0x48,0x40,0x40,0x30,0x39,0x49,0x5c,0x6e,0x75,0x6e,0x63,
+0x6f,0x72,0x74,0x74,0x74,0x74,0x71,0x6e,0x6c,0x70,0x7b,0x83,0x81,0x82,0x86,0x83,
+0x7d,0x77,0x71,0x70,0x72,0x72,0x6d,0x68,0x64,0x67,0x69,0x6a,0x6a,0x6b,0x6e,0x71,
+0x85,0x93,0xa3,0xac,0xb1,0xb4,0xb1,0xab,0xaf,0xae,0xa8,0x9e,0x94,0x8c,0x85,0x80,
+0x80,0x79,0x6f,0x68,0x66,0x67,0x6a,0x6b,0x71,0x73,0x77,0x7d,0x84,0x89,0x8d,0x8f,
+0x96,0x99,0x9d,0xa1,0xa3,0xa4,0xa3,0xa3,0xab,0xaa,0xa8,0xa9,0xaa,0xaa,0xa8,0xa6,
+0xa2,0xa3,0xa5,0xa7,0xa6,0xa5,0xa3,0xa1,0x9f,0xa2,0xa5,0xa4,0xa2,0xa2,0xa6,0xab,
+0xa8,0xa8,0xa8,0xa6,0xa7,0xaa,0xaa,0xa9,0xa8,0xa7,0xa6,0xa6,0xa8,0xa9,0xa9,0xa7,
+0xad,0xad,0xaf,0xb0,0xad,0xab,0xac,0xb0,0xaf,0xae,0xac,0xa9,0xa8,0xa8,0xaa,0xac,
+0xa5,0xa1,0x9d,0x9c,0x9c,0x9b,0x97,0x92,0x8b,0x8d,0x90,0x93,0x92,0x8d,0x8c,0x8d,
+0x8e,0x8c,0x88,0x83,0x7f,0x7e,0x7f,0x80,0x73,0x6e,0x67,0x61,0x5d,0x5d,0x5e,0x60,
+0x57,0x52,0x4f,0x4e,0x4e,0x4e,0x50,0x53,0x57,0x54,0x52,0x55,0x5d,0x64,0x64,0x60,
+0x64,0x68,0x6d,0x6e,0x6a,0x64,0x60,0x5d,0x5b,0x5c,0x5f,0x63,0x67,0x66,0x60,0x5b,
+0x54,0x4e,0x52,0x61,0x6a,0x68,0x67,0x6b,0x75,0x7e,0x6c,0x59,0x52,0x52,0x5c,0x5d,
+0x5b,0x58,0x58,0x5e,0x64,0x67,0x69,0x6a,0x5b,0x5a,0x60,0x6d,0x77,0x79,0x79,0x7a,
+0x7c,0x73,0x74,0x93,0xc8,0xf3,0xfc,0xf2,0xff,0xfe,0xf9,0xf7,0xfa,0xff,0xff,0xff,
+0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfc,0xfb,
+0xfa,0xfa,0xf9,0xf8,0xf7,0xf5,0xf4,0xf3,0xf0,0xee,0xeb,0xe9,0xe8,0xe8,0xe9,0xe9,
+0xec,0xed,0xef,0xf1,0xf3,0xf4,0xf6,0xf6,0xf7,0xf8,0xfa,0xfc,0xfe,0xff,0xfd,0xfc,
+0xfa,0xfd,0xff,0xfd,0xf7,0xe9,0xd6,0xc7,0xb8,0xb4,0xb1,0xb0,0xb1,0xb0,0xac,0xa8,
+0xa9,0xa6,0x9f,0x98,0x92,0x8e,0x89,0x83,0x80,0x7c,0x77,0x72,0x6e,0x6a,0x66,0x64,
+0x64,0x63,0x60,0x5e,0x5b,0x59,0x58,0x57,0x57,0x55,0x53,0x52,0x51,0x50,0x4e,0x4c,
+0x4d,0x4a,0x49,0x4a,0x4a,0x48,0x47,0x48,0x48,0x48,0x48,0x49,0x49,0x4a,0x4a,0x4a,
+0x4c,0x4b,0x4b,0x4b,0x4b,0x4c,0x4c,0x4d,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,0x4c,
+0x4c,0x4c,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4c,0x4c,0x4c,0x4c,
+0x4a,0x4e,0x54,0x5c,0x63,0x68,0x69,0x69,0x68,0x67,0x55,0x33,0x28,0x31,0x41,0x5f,
+0x76,0x82,0x8e,0x93,0x92,0x92,0x91,0x90,0x92,0x94,0x9f,0xb3,0xc1,0xc6,0xc5,0xc5,
+0xc5,0xc3,0xc2,0xc4,0xc8,0xca,0xc9,0xc6,0xc4,0xbb,0x98,0x6a,0x56,0x5d,0x60,0x56,
+0x5c,0x65,0x69,0x69,0x64,0x5a,0x5a,0x66,0x6e,0x73,0x70,0x6c,0x6a,0x60,0x51,0x4a,
+0x54,0x5e,0x65,0x69,0x6b,0x65,0x5f,0x61,0x63,0x61,0x61,0x65,0x6a,0x6e,0x70,0x73,
+0x6e,0x6d,0x6d,0x6d,0x6a,0x63,0x5b,0x58,0x5f,0x5c,0x58,0x52,0x4c,0x4e,0x5a,0x66,
+0x6f,0x65,0x5b,0x57,0x59,0x5a,0x5a,0x5c,0x5f,0x60,0x61,0x60,0x5e,0x64,0x79,0x8e,
+0x9f,0xa2,0xa4,0xa2,0xa2,0xa3,0x9f,0x97,0x8f,0x89,0x83,0x7e,0x7a,0x78,0x79,0x7c,
+0x80,0x83,0x86,0x88,0x8a,0x8b,0x88,0x84,0x84,0x82,0x7f,0x7a,0x72,0x6d,0x6d,0x72,
+0x7a,0x78,0x71,0x6d,0x76,0x89,0x9a,0xa2,0x93,0x8a,0x71,0x54,0x49,0x4c,0x4e,0x4b,
+0x37,0x43,0x47,0x4a,0x46,0x4d,0x5c,0x58,0x4d,0x4b,0x4a,0x46,0x3f,0x37,0x34,0x35,
+0x3c,0x43,0x45,0x3d,0x33,0x2b,0x23,0x1c,0x1a,0x24,0x2d,0x37,0x3e,0x3a,0x3a,0x43,
+0x49,0x52,0x49,0x4a,0x54,0x58,0x59,0x4f,0x31,0x3d,0x54,0x67,0x6a,0x65,0x55,0x42,
+0x2b,0x31,0x4a,0x64,0x6b,0x67,0x65,0x62,0x68,0x5d,0x4d,0x46,0x4c,0x56,0x57,0x50,
+0x4e,0x4e,0x48,0x42,0x3d,0x39,0x41,0x51,0x5b,0x5a,0x5b,0x5f,0x61,0x61,0x61,0x62,
+0x61,0x61,0x60,0x5b,0x53,0x4a,0x43,0x3f,0x35,0x2e,0x39,0x57,0x6b,0x6c,0x6a,0x6e,
+0x74,0x76,0x77,0x76,0x77,0x77,0x73,0x6e,0x67,0x68,0x76,0x80,0x7f,0x80,0x81,0x79,
+0x76,0x71,0x6d,0x6e,0x71,0x72,0x6e,0x69,0x5f,0x67,0x70,0x74,0x73,0x71,0x72,0x74,
+0x82,0x8b,0x94,0x98,0xa0,0xa9,0xad,0xab,0xa9,0xa0,0x92,0x80,0x6e,0x63,0x62,0x66,
+0x65,0x6c,0x72,0x71,0x6e,0x71,0x7c,0x87,0x89,0x8e,0x95,0x9c,0xa2,0xa6,0xaa,0xad,
+0xaa,0xab,0xac,0xac,0xac,0xab,0xaa,0xa9,0x9e,0x9c,0x9b,0x9c,0x9f,0xa1,0xa2,0xa1,
+0xa5,0xa6,0xa8,0xaa,0xaa,0xa9,0xa6,0xa4,0xab,0xb0,0xb4,0xb4,0xb1,0xae,0xae,0xb0,
+0xa9,0xa9,0xa7,0xa3,0xa5,0xac,0xb3,0xb7,0xac,0xab,0xaa,0xab,0xa9,0xa3,0x9c,0x98,
+0x96,0x96,0x9b,0xa2,0xa8,0xaa,0xab,0xad,0xb2,0xb0,0xad,0xa9,0xa8,0xaa,0xae,0xb2,
+0xad,0xab,0xa9,0xa9,0xaa,0xa9,0xa6,0xa3,0xa3,0xa4,0xa6,0xa8,0xa6,0xa0,0x9d,0x9d,
+0xa4,0xa6,0xa7,0xa5,0xa0,0x9a,0x97,0x96,0x9b,0x98,0x92,0x8d,0x8d,0x8a,0x7e,0x71,
+0x75,0x74,0x75,0x78,0x79,0x75,0x74,0x75,0x74,0x76,0x7c,0x86,0x8b,0x87,0x7c,0x74,
+0x74,0x79,0x80,0x84,0x83,0x7c,0x73,0x6d,0x6f,0x71,0x6e,0x6a,0x6b,0x71,0x72,0x6e,
+0x71,0x6f,0x6d,0x6c,0x6c,0x6b,0x67,0x63,0x75,0x7c,0x69,0x58,0x52,0x52,0x58,0x55,
+0x4d,0x4d,0x52,0x5a,0x60,0x63,0x66,0x6b,0x64,0x61,0x65,0x70,0x77,0x79,0x7b,0x7f,
+0x6f,0x81,0xa9,0xd8,0xf7,0xfe,0xfe,0xff,0xf9,0xff,0xff,0xff,0xff,0xff,0xfe,0xf6,
+0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfc,
+0xfc,0xfc,0xfb,0xfb,0xf9,0xf7,0xf6,0xf5,0xf3,0xf0,0xec,0xe9,0xe6,0xe6,0xe6,0xe7,
+0xe8,0xe8,0xea,0xeb,0xed,0xed,0xed,0xed,0xf2,0xf3,0xf4,0xf6,0xf7,0xf7,0xf8,0xfa,
+0xff,0xff,0xfc,0xfa,0xfb,0xfa,0xf1,0xe6,0xcb,0xc2,0xb8,0xb4,0xb4,0xb4,0xb0,0xab,
+0xa9,0xa9,0xa6,0x9e,0x98,0x95,0x90,0x8b,0x88,0x86,0x82,0x7d,0x78,0x72,0x6b,0x68,
+0x65,0x64,0x61,0x5e,0x5c,0x5a,0x58,0x58,0x59,0x58,0x56,0x55,0x55,0x54,0x52,0x51,
+0x4f,0x4c,0x4a,0x4b,0x4b,0x4a,0x49,0x49,0x4d,0x4d,0x4c,0x4b,0x4c,0x4c,0x4d,0x4e,
+0x4f,0x4f,0x4e,0x4e,0x4f,0x4f,0x50,0x50,0x4e,0x4e,0x4e,0x4e,0x4e,0x4d,0x4d,0x4d,
+0x4c,0x4d,0x4d,0x4e,0x4e,0x4f,0x4f,0x4e,0x4f,0x4f,0x4f,0x4f,0x4e,0x4d,0x4c,0x4c,
+0x4c,0x50,0x57,0x5f,0x66,0x6a,0x6b,0x6b,0x6b,0x6a,0x64,0x48,0x30,0x2b,0x3b,0x5f,
+0x71,0x7b,0x86,0x8c,0x8f,0x91,0x90,0x8f,0x90,0x91,0x98,0xa8,0xb9,0xc4,0xc5,0xc4,
+0xc8,0xc7,0xc5,0xc6,0xc7,0xc6,0xc5,0xc5,0xc8,0xc4,0xab,0x83,0x63,0x5b,0x5d,0x5d,
+0x64,0x6a,0x6e,0x70,0x6c,0x62,0x61,0x6c,0x6e,0x72,0x6f,0x69,0x69,0x61,0x53,0x4c,
+0x55,0x5f,0x68,0x74,0x81,0x7f,0x75,0x71,0x64,0x5f,0x5d,0x5e,0x5d,0x5a,0x57,0x58,
+0x67,0x6c,0x73,0x75,0x6c,0x60,0x5a,0x5b,0x5d,0x56,0x4e,0x4a,0x49,0x4d,0x58,0x62,
+0x67,0x5e,0x56,0x55,0x58,0x57,0x55,0x53,0x58,0x61,0x6a,0x6f,0x73,0x7c,0x8c,0x99,
+0x9f,0x9f,0xa0,0x9f,0x9d,0x9b,0x98,0x97,0x8d,0x8a,0x87,0x81,0x79,0x73,0x76,0x7d,
+0x85,0x86,0x86,0x85,0x86,0x87,0x84,0x80,0x7d,0x7c,0x7b,0x77,0x70,0x6c,0x6f,0x75,
+0x8b,0x8b,0x89,0x83,0x7d,0x7c,0x81,0x85,0x99,0x92,0x6c,0x45,0x40,0x47,0x43,0x3d,
+0x3b,0x45,0x45,0x48,0x46,0x4c,0x5b,0x51,0x53,0x57,0x59,0x55,0x48,0x3b,0x38,0x3b,
+0x41,0x4a,0x4c,0x3e,0x2c,0x20,0x19,0x16,0x21,0x2d,0x36,0x3e,0x45,0x3e,0x3b,0x47,
+0x51,0x56,0x51,0x5b,0x66,0x60,0x5a,0x50,0x35,0x44,0x58,0x62,0x62,0x63,0x5b,0x49,
+0x45,0x3d,0x44,0x55,0x63,0x6b,0x6a,0x62,0x3e,0x3b,0x3a,0x40,0x49,0x4d,0x49,0x43,
+0x43,0x48,0x46,0x3e,0x33,0x2b,0x34,0x49,0x59,0x5a,0x5f,0x65,0x66,0x64,0x64,0x67,
+0x67,0x65,0x5b,0x4d,0x45,0x44,0x42,0x3e,0x3d,0x31,0x37,0x57,0x6f,0x71,0x6d,0x70,
+0x6c,0x6d,0x6e,0x6e,0x71,0x74,0x70,0x6a,0x68,0x66,0x75,0x82,0x81,0x83,0x80,0x72,
+0x67,0x6a,0x6f,0x76,0x77,0x70,0x63,0x59,0x58,0x63,0x70,0x76,0x74,0x6f,0x6e,0x6f,
+0x6c,0x70,0x70,0x6f,0x77,0x86,0x90,0x92,0x88,0x78,0x66,0x59,0x51,0x4f,0x58,0x63,
+0x75,0x7a,0x82,0x8a,0x92,0x99,0x9f,0xa4,0xa3,0xa7,0xac,0xad,0xaa,0xa8,0xa7,0xa8,
+0xa6,0xa4,0xa1,0x9e,0x9d,0x9e,0xa0,0xa3,0xa7,0xa6,0xa6,0xa9,0xae,0xb3,0xb7,0xb8,
+0xad,0xae,0xae,0xaf,0xae,0xab,0xa7,0xa4,0xaa,0xaf,0xb4,0xb5,0xb2,0xac,0xa7,0xa4,
+0xa2,0xa7,0xa9,0xa5,0xa0,0xa1,0xa6,0xa9,0xa9,0xab,0xae,0xab,0x9f,0x8a,0x75,0x69,
+0x66,0x6c,0x7c,0x93,0xa7,0xaf,0xaf,0xac,0xab,0xac,0xad,0xad,0xac,0xab,0xab,0xac,
+0xaa,0xaa,0xab,0xab,0xab,0xac,0xad,0xae,0xa8,0xa7,0xa7,0xa9,0xa9,0xa7,0xa8,0xaa,
+0xac,0xac,0xac,0xa8,0xa3,0xa1,0xa1,0xa3,0xa3,0xab,0xac,0xa4,0x9f,0x9f,0x9c,0x95,
+0x90,0x86,0x7f,0x83,0x88,0x85,0x7d,0x78,0x84,0x89,0x92,0x9b,0x9e,0xa0,0xa7,0xb0,
+0xaa,0xa6,0xa0,0x9c,0x99,0x96,0x93,0x91,0x7e,0x7d,0x73,0x65,0x65,0x73,0x7c,0x7c,
+0x7e,0x82,0x7b,0x6e,0x6d,0x76,0x77,0x6f,0x6d,0x76,0x66,0x5a,0x5a,0x5d,0x63,0x5e,
+0x5a,0x5b,0x60,0x65,0x67,0x68,0x6d,0x75,0x76,0x6f,0x6c,0x71,0x74,0x74,0x79,0x81,
+0x90,0xbf,0xef,0xff,0xfb,0xf9,0xfb,0xfc,0xff,0xf9,0xf8,0xff,0xff,0xfa,0xfc,0xff,
+0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,
+0xfd,0xfd,0xfd,0xfc,0xfb,0xf9,0xf7,0xf6,0xf5,0xf2,0xee,0xe9,0xe6,0xe5,0xe5,0xe6,
+0xe5,0xe6,0xe7,0xe7,0xe8,0xe7,0xe7,0xe6,0xe8,0xea,0xee,0xf0,0xf2,0xf4,0xfa,0xff,
+0xf9,0xfc,0xfd,0xfb,0xfc,0xfd,0xfa,0xf5,0xef,0xdf,0xca,0xbc,0xb7,0xb5,0xb1,0xac,
+0xa9,0xac,0xac,0xa6,0xa1,0x9e,0x99,0x94,0x8f,0x8d,0x8a,0x86,0x80,0x78,0x71,0x6c,
+0x68,0x66,0x64,0x61,0x5f,0x5d,0x5c,0x5c,0x5b,0x5a,0x58,0x58,0x58,0x57,0x55,0x54,
+0x53,0x50,0x4e,0x4f,0x4f,0x4e,0x4d,0x4d,0x51,0x50,0x4e,0x4d,0x4d,0x4e,0x4f,0x50,
+0x51,0x51,0x51,0x51,0x51,0x51,0x52,0x52,0x51,0x51,0x51,0x50,0x50,0x50,0x4f,0x4f,
+0x4d,0x4d,0x4e,0x4f,0x50,0x50,0x50,0x50,0x51,0x51,0x51,0x50,0x4f,0x4e,0x4d,0x4d,
+0x50,0x54,0x5b,0x62,0x68,0x6b,0x6b,0x6b,0x71,0x6c,0x6e,0x5b,0x3b,0x2a,0x38,0x60,
+0x6e,0x74,0x7c,0x82,0x88,0x8c,0x8d,0x8a,0x90,0x90,0x95,0xa1,0xb4,0xc2,0xc5,0xc2,
+0xc3,0xc4,0xc6,0xc8,0xc6,0xc4,0xc4,0xc5,0xc7,0xc5,0xbd,0xa4,0x7f,0x60,0x56,0x5b,
+0x66,0x6b,0x6e,0x6f,0x6c,0x61,0x5f,0x6a,0x6b,0x70,0x6c,0x67,0x67,0x61,0x54,0x4d,
+0x54,0x58,0x5b,0x67,0x79,0x7d,0x75,0x70,0x78,0x75,0x73,0x71,0x6a,0x5d,0x53,0x50,
+0x4b,0x59,0x6a,0x70,0x67,0x5b,0x5a,0x5f,0x5a,0x51,0x49,0x49,0x4d,0x51,0x57,0x5c,
+0x66,0x60,0x5d,0x60,0x63,0x5e,0x56,0x50,0x50,0x59,0x63,0x6b,0x76,0x88,0x9a,0xa5,
+0x9c,0x9c,0x9d,0x9c,0x98,0x93,0x95,0x9a,0x99,0x99,0x97,0x91,0x85,0x7d,0x80,0x89,
+0x89,0x89,0x87,0x84,0x85,0x86,0x85,0x81,0x7f,0x7d,0x7a,0x77,0x74,0x76,0x80,0x8a,
+0x82,0x7c,0x78,0x78,0x7c,0x84,0x90,0x9b,0x98,0x95,0x6b,0x40,0x41,0x4c,0x45,0x3d,
+0x3e,0x34,0x28,0x44,0x6f,0x89,0x89,0x63,0x77,0x89,0x9b,0x9a,0x81,0x60,0x4b,0x44,
+0x41,0x46,0x43,0x36,0x2a,0x24,0x20,0x1d,0x25,0x34,0x3d,0x44,0x4a,0x41,0x3c,0x48,
+0x53,0x51,0x4d,0x60,0x6d,0x61,0x56,0x50,0x40,0x53,0x68,0x6c,0x65,0x63,0x59,0x45,
+0x3b,0x37,0x42,0x56,0x62,0x5f,0x4c,0x34,0x2c,0x33,0x42,0x52,0x58,0x4e,0x40,0x37,
+0x3e,0x46,0x48,0x41,0x35,0x2c,0x36,0x4d,0x5f,0x5e,0x5f,0x60,0x5f,0x61,0x6b,0x76,
+0x68,0x6a,0x63,0x55,0x50,0x53,0x50,0x49,0x3e,0x39,0x3e,0x57,0x72,0x7b,0x72,0x66,
+0x68,0x69,0x68,0x69,0x6d,0x71,0x72,0x70,0x68,0x6e,0x78,0x82,0x88,0x85,0x7e,0x78,
+0x6e,0x6d,0x70,0x76,0x77,0x72,0x6d,0x6b,0x69,0x6e,0x77,0x7f,0x7e,0x77,0x72,0x72,
+0x75,0x6c,0x68,0x6a,0x68,0x62,0x62,0x69,0x5d,0x5d,0x5d,0x61,0x68,0x73,0x80,0x88,
+0x8f,0x94,0x9b,0x9f,0xa2,0xa5,0xaa,0xad,0xae,0xac,0xa8,0xa5,0xa4,0xa2,0xa1,0xa0,
+0xa4,0xac,0xb1,0xb0,0xae,0xb0,0xb2,0xb3,0xb1,0xb1,0xb0,0xaf,0xad,0xad,0xaf,0xb1,
+0xb3,0xb0,0xac,0xaa,0xab,0xac,0xac,0xab,0xab,0xab,0xad,0xb0,0xb2,0xaf,0xa7,0xa0,
+0x9f,0xa8,0xaf,0xac,0xa3,0xa0,0xa8,0xb1,0xb6,0xb3,0xb0,0xb0,0xb1,0xb0,0xab,0xa6,
+0xa0,0xa1,0xa3,0xa8,0xae,0xb2,0xb3,0xb3,0xb1,0xb4,0xb6,0xb5,0xb1,0xaf,0xaf,0xb1,
+0xb3,0xb1,0xaf,0xae,0xae,0xaf,0xb0,0xb1,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0xab,
+0xa9,0xa8,0xa8,0xa9,0xaa,0xab,0xa9,0xa7,0xa6,0xa6,0xa6,0xa8,0xaa,0xac,0xab,0xaa,
+0xa5,0x9f,0x9a,0x9b,0xa1,0xa5,0xa3,0xa0,0x99,0x95,0x90,0x8e,0x8f,0x93,0x96,0x98,
+0x98,0x9b,0xa1,0xa7,0xab,0xac,0xa9,0xa6,0xa5,0xa4,0xa1,0x9c,0x95,0x8e,0x89,0x87,
+0x8b,0x89,0x88,0x88,0x85,0x7e,0x78,0x76,0x73,0x72,0x6c,0x66,0x64,0x65,0x62,0x5d,
+0x58,0x5a,0x5a,0x5b,0x65,0x71,0x75,0x70,0x63,0x6d,0x72,0x7b,0x83,0x7d,0x7c,0x8c,
+0xca,0xe4,0xfa,0xfd,0xfc,0xff,0xff,0xfb,0xfd,0xfd,0xfd,0xfe,0xfe,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,0xfd,0xfa,0xf9,0xf7,0xf4,0xf0,0xec,0xe9,0xe7,
+0xe7,0xe4,0xe1,0xdf,0xe0,0xe2,0xe3,0xe4,0xe6,0xe8,0xea,0xec,0xed,0xf0,0xf4,0xf7,
+0xfa,0xfa,0xfa,0xf9,0xf8,0xf8,0xfa,0xfc,0xfd,0xf5,0xe4,0xce,0xbd,0xb5,0xb3,0xb2,
+0xab,0xaa,0xaa,0xa8,0xa5,0xa1,0x9d,0x9a,0x97,0x90,0x8b,0x8a,0x87,0x80,0x79,0x77,
+0x70,0x6c,0x67,0x64,0x64,0x63,0x60,0x5d,0x5d,0x5c,0x5a,0x58,0x57,0x56,0x56,0x57,
+0x54,0x54,0x54,0x54,0x53,0x53,0x53,0x53,0x52,0x51,0x4f,0x4e,0x4f,0x51,0x53,0x55,
+0x54,0x55,0x56,0x55,0x53,0x53,0x54,0x55,0x55,0x55,0x55,0x54,0x54,0x53,0x53,0x52,
+0x54,0x54,0x54,0x54,0x54,0x53,0x53,0x53,0x55,0x56,0x56,0x54,0x52,0x50,0x50,0x50,
+0x53,0x56,0x5c,0x62,0x66,0x6a,0x6e,0x70,0x77,0x6a,0x70,0x67,0x49,0x35,0x40,0x62,
+0x6f,0x7a,0x7d,0x7c,0x82,0x87,0x89,0x8d,0x90,0x8e,0x8d,0x94,0xa8,0xbd,0xc4,0xc0,
+0xc2,0xc2,0xc1,0xc1,0xc1,0xc0,0xc0,0xc0,0xc2,0xbb,0xb7,0xaf,0x96,0x78,0x6b,0x6e,
+0x70,0x70,0x6f,0x6c,0x67,0x64,0x66,0x6b,0x6e,0x6b,0x6e,0x73,0x70,0x62,0x56,0x53,
+0x55,0x55,0x5b,0x69,0x76,0x74,0x66,0x59,0x54,0x59,0x66,0x72,0x73,0x69,0x5e,0x5a,
+0x5d,0x62,0x62,0x67,0x60,0x53,0x5a,0x5e,0x59,0x4f,0x4f,0x4b,0x4b,0x4e,0x4f,0x5a,
+0x64,0x67,0x67,0x60,0x57,0x52,0x54,0x58,0x5d,0x58,0x58,0x64,0x79,0x8c,0x96,0x9a,
+0x9f,0x9d,0x9b,0x98,0x95,0x93,0x92,0x92,0x8f,0x91,0x91,0x8e,0x8c,0x8d,0x8f,0x8e,
+0x8c,0x8a,0x87,0x85,0x83,0x81,0x7f,0x7e,0x76,0x7b,0x79,0x73,0x76,0x87,0x97,0x9f,
+0x8d,0x7d,0x71,0x73,0x79,0x7c,0x83,0x8c,0x95,0x7e,0x60,0x4d,0x4a,0x4c,0x4b,0x47,
+0x43,0x50,0x5a,0x64,0x6c,0x68,0x5c,0x56,0x60,0x61,0x75,0x93,0x9e,0x92,0x89,0x8b,
+0x7f,0x75,0x69,0x4e,0x2d,0x23,0x24,0x1d,0x26,0x31,0x3c,0x44,0x42,0x38,0x3d,0x4f,
+0x58,0x4f,0x56,0x5f,0x71,0x66,0x57,0x43,0x47,0x54,0x63,0x6a,0x6a,0x64,0x5c,0x55,
+0x41,0x3f,0x48,0x58,0x5c,0x54,0x53,0x5a,0x57,0x69,0x70,0x67,0x5c,0x4f,0x43,0x3f,
+0x4d,0x52,0x51,0x43,0x33,0x32,0x45,0x59,0x67,0x6f,0x6e,0x60,0x55,0x59,0x60,0x62,
+0x5f,0x60,0x55,0x52,0x4e,0x48,0x49,0x42,0x42,0x35,0x40,0x64,0x78,0x6e,0x62,0x62,
+0x6b,0x66,0x61,0x64,0x6e,0x77,0x77,0x72,0x67,0x6e,0x79,0x84,0x89,0x87,0x7f,0x79,
+0x69,0x6e,0x74,0x77,0x77,0x76,0x75,0x74,0x7a,0x80,0x89,0x8d,0x88,0x7d,0x78,0x79,
+0x75,0x6d,0x66,0x63,0x61,0x62,0x69,0x71,0x8c,0x8e,0x90,0x92,0x94,0x97,0x9a,0x9c,
+0xa9,0xaa,0xaa,0xa6,0xa0,0x9c,0x9a,0x9b,0x9e,0xa2,0xa9,0xb1,0xb6,0xb6,0xb3,0xb0,
+0xb2,0xb6,0xb8,0xb5,0xb2,0xb2,0xb3,0xb2,0xb1,0xb1,0xb1,0xae,0xab,0xaa,0xa9,0xaa,
+0xb1,0xaf,0xad,0xad,0xaf,0xb0,0xb1,0xb0,0xae,0xae,0xae,0xaf,0xaf,0xab,0xa4,0x9f,
+0x9f,0xa6,0xac,0xa8,0xa1,0x9e,0xa4,0xab,0xac,0xaa,0xaa,0xab,0xad,0xad,0xab,0xa8,
+0xa8,0xa9,0xaa,0xac,0xaf,0xb1,0xb1,0xb0,0xab,0xad,0xaf,0xb0,0xae,0xad,0xae,0xaf,
+0xb1,0xb0,0xaf,0xad,0xac,0xab,0xab,0xab,0xa8,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,0xa7,
+0xa8,0xa8,0xaa,0xac,0xaf,0xaf,0xad,0xaa,0xb0,0xaf,0xac,0xa7,0xa1,0x9b,0x98,0x96,
+0xa5,0xa3,0xa1,0xa2,0xa5,0xa8,0xa9,0xa9,0xab,0xab,0xac,0xad,0xaf,0xae,0xad,0xab,
+0xa0,0x9b,0x93,0x8e,0x8d,0x8f,0x93,0x95,0x9f,0xa3,0xa8,0xac,0xad,0xa9,0xa3,0x9e,
+0x9b,0x98,0x96,0x93,0x8b,0x7f,0x73,0x6e,0x67,0x66,0x64,0x62,0x65,0x69,0x68,0x64,
+0x6a,0x6e,0x6d,0x69,0x68,0x6b,0x69,0x63,0x5f,0x66,0x70,0x77,0x73,0x76,0x9c,0xce,
+0xef,0xfb,0xff,0xfe,0xfb,0xfe,0xfe,0xfa,0xfd,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfd,0xfd,0xfc,0xfb,0xfa,0xf8,0xf5,0xf2,0xef,0xee,
+0xe8,0xe5,0xe1,0xde,0xdd,0xde,0xdf,0xdf,0xdf,0xe1,0xe3,0xe4,0xe6,0xe8,0xec,0xef,
+0xf5,0xf7,0xf9,0xfa,0xfa,0xf9,0xf9,0xf9,0xed,0xfc,0xff,0xf5,0xd6,0xbc,0xaf,0xad,
+0xba,0xa6,0x9f,0xab,0xad,0x9f,0x9c,0xa6,0x9d,0x98,0x93,0x91,0x8d,0x86,0x80,0x7f,
+0x7c,0x76,0x6f,0x69,0x66,0x63,0x61,0x5f,0x61,0x60,0x5f,0x5d,0x5b,0x59,0x57,0x57,
+0x57,0x57,0x57,0x57,0x57,0x56,0x56,0x56,0x54,0x53,0x52,0x51,0x51,0x53,0x54,0x55,
+0x57,0x58,0x59,0x58,0x56,0x56,0x56,0x58,0x57,0x57,0x57,0x57,0x56,0x56,0x56,0x55,
+0x56,0x56,0x56,0x56,0x56,0x55,0x55,0x55,0x57,0x57,0x57,0x55,0x53,0x52,0x52,0x53,
+0x56,0x5a,0x5f,0x65,0x69,0x6c,0x6f,0x71,0x73,0x6d,0x76,0x73,0x5c,0x44,0x46,0x66,
+0x72,0x7a,0x7d,0x7e,0x84,0x87,0x88,0x8e,0x8e,0x8e,0x8f,0x95,0xa6,0xb9,0xc1,0xbf,
+0xbf,0xc0,0xc0,0xc1,0xc0,0xc0,0xbf,0xbe,0xba,0xb7,0xb7,0xb5,0xa5,0x89,0x6f,0x63,
+0x6d,0x6e,0x6e,0x69,0x64,0x64,0x67,0x6a,0x6e,0x6c,0x6d,0x70,0x6b,0x5f,0x56,0x54,
+0x53,0x5a,0x5d,0x5d,0x69,0x74,0x6d,0x5b,0x48,0x46,0x48,0x4e,0x53,0x57,0x60,0x6a,
+0x71,0x77,0x75,0x71,0x5f,0x4f,0x5a,0x66,0x58,0x4b,0x4b,0x4c,0x4f,0x51,0x4d,0x55,
+0x63,0x64,0x63,0x5c,0x53,0x4f,0x52,0x56,0x5c,0x59,0x5f,0x71,0x85,0x91,0x96,0x98,
+0x99,0x9b,0x9f,0xa2,0xa1,0x9c,0x97,0x93,0x92,0x8f,0x89,0x83,0x84,0x88,0x8b,0x8b,
+0x8e,0x8c,0x89,0x86,0x85,0x83,0x81,0x7f,0x81,0x79,0x6f,0x6c,0x73,0x86,0x9d,0xad,
+0xbc,0xb6,0xad,0xa0,0x8d,0x7a,0x73,0x75,0x7d,0x6d,0x55,0x43,0x3e,0x4d,0x6b,0x85,
+0x8a,0x87,0x7b,0x6e,0x6b,0x6d,0x78,0x88,0x8d,0x95,0x9b,0x9a,0x97,0x9c,0xa6,0xae,
+0xb5,0xb8,0xb3,0x8e,0x52,0x25,0x18,0x19,0x26,0x2e,0x2f,0x2c,0x2d,0x31,0x40,0x53,
+0x5a,0x58,0x5e,0x5c,0x68,0x63,0x5d,0x4f,0x52,0x59,0x61,0x65,0x62,0x58,0x46,0x38,
+0x38,0x47,0x58,0x60,0x61,0x61,0x61,0x62,0x64,0x70,0x74,0x6e,0x63,0x55,0x50,0x56,
+0x51,0x4e,0x47,0x3b,0x2f,0x32,0x48,0x5f,0x7a,0x76,0x7a,0x7c,0x6f,0x5a,0x54,0x5d,
+0x65,0x64,0x60,0x65,0x5e,0x4d,0x4c,0x4b,0x40,0x44,0x52,0x64,0x69,0x62,0x5f,0x63,
+0x75,0x6c,0x62,0x64,0x72,0x7e,0x7d,0x76,0x6b,0x71,0x7b,0x83,0x86,0x82,0x79,0x73,
+0x75,0x81,0x8a,0x88,0x84,0x85,0x88,0x89,0x87,0x86,0x82,0x79,0x6e,0x67,0x69,0x70,
+0x74,0x74,0x75,0x78,0x7d,0x86,0x91,0x99,0x9e,0xa2,0xa7,0xac,0xae,0xaf,0xaf,0xb0,
+0xa3,0xa5,0xa7,0xa8,0xa9,0xaa,0xad,0xb0,0xb2,0xb3,0xb4,0xb5,0xb6,0xb5,0xb3,0xb0,
+0xb3,0xb4,0xb3,0xb0,0xad,0xad,0xab,0xa9,0xac,0xad,0xae,0xae,0xac,0xab,0xab,0xac,
+0xac,0xaa,0xa8,0xa7,0xa7,0xa6,0xa4,0xa3,0xa2,0xa3,0xa5,0xa6,0xa6,0xa5,0xa4,0xa3,
+0xa4,0xa7,0xa8,0xa3,0x9b,0x98,0x9a,0x9e,0xa1,0xa1,0xa2,0xa3,0xa4,0xa3,0xa2,0xa1,
+0x9e,0x9f,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa4,0xa5,0xa7,0xa8,0xa8,0xa8,0xa8,0xa7,
+0xa9,0xa9,0xaa,0xab,0xab,0xab,0xaa,0xaa,0xa5,0xa5,0xa6,0xa6,0xa6,0xa6,0xa6,0xa5,
+0xa9,0xaa,0xad,0xb0,0xb2,0xb2,0xb0,0xad,0xaa,0xad,0xb0,0xb0,0xaf,0xaf,0xb1,0xb3,
+0xb1,0xb2,0xb2,0xaf,0xac,0xab,0xad,0xb0,0xb0,0xae,0xac,0xab,0xac,0xad,0xae,0xae,
+0xad,0xac,0xac,0xab,0xaa,0xa7,0xa4,0xa1,0xa8,0xa2,0x9a,0x97,0x9a,0xa1,0xa7,0xab,
+0xac,0xa4,0x9b,0x96,0x93,0x92,0x94,0x97,0x94,0x8e,0x84,0x7d,0x7e,0x82,0x83,0x81,
+0x78,0x7e,0x81,0x7d,0x79,0x77,0x73,0x6e,0x76,0x7c,0x7e,0x77,0x7a,0x9f,0xd5,0xf8,
+0xff,0xff,0xfe,0xfb,0xfa,0xfd,0xfe,0xfe,0xfd,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfa,0xf8,0xf6,0xf5,
+0xef,0xec,0xe7,0xe3,0xe1,0xe0,0xde,0xdd,0xde,0xdf,0xe0,0xe0,0xe1,0xe3,0xe6,0xe8,
+0xed,0xf1,0xf6,0xfa,0xfa,0xf9,0xf7,0xf7,0xfc,0xf8,0xf6,0xf7,0xf7,0xea,0xce,0xb6,
+0xaa,0xb0,0xaf,0xa7,0xa5,0xaa,0xa8,0xa0,0xa2,0x9e,0x99,0x96,0x90,0x89,0x85,0x84,
+0x86,0x83,0x7d,0x76,0x70,0x6a,0x65,0x62,0x62,0x62,0x60,0x5f,0x5d,0x5b,0x59,0x58,
+0x5b,0x5b,0x5b,0x5b,0x5a,0x5a,0x59,0x59,0x57,0x57,0x56,0x56,0x56,0x56,0x56,0x57,
+0x57,0x57,0x58,0x57,0x56,0x56,0x56,0x57,0x5a,0x5a,0x59,0x59,0x59,0x59,0x59,0x59,
+0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x58,0x5a,0x59,0x58,0x56,0x54,0x54,0x55,0x57,
+0x5b,0x5f,0x64,0x69,0x6c,0x6e,0x70,0x72,0x70,0x6f,0x77,0x79,0x6d,0x53,0x4c,0x6b,
+0x7a,0x7e,0x7f,0x82,0x87,0x87,0x88,0x8f,0x8d,0x8f,0x90,0x95,0xa2,0xb2,0xba,0xb9,
+0xbb,0xbd,0xbf,0xc0,0xc1,0xbf,0xbd,0xbc,0xb5,0xb5,0xb6,0xb9,0xb5,0x9f,0x7c,0x61,
+0x6c,0x6f,0x6e,0x68,0x64,0x67,0x69,0x69,0x6d,0x6b,0x6c,0x6c,0x66,0x5c,0x57,0x58,
+0x59,0x5e,0x5d,0x59,0x62,0x70,0x6f,0x64,0x6a,0x67,0x64,0x62,0x5b,0x53,0x53,0x59,
+0x65,0x6f,0x71,0x6f,0x5f,0x4d,0x53,0x59,0x54,0x4a,0x4f,0x51,0x50,0x4c,0x49,0x54,
+0x59,0x5a,0x58,0x53,0x4e,0x4d,0x52,0x57,0x5a,0x59,0x63,0x78,0x8a,0x90,0x92,0x95,
+0x9b,0x9b,0x9c,0x9c,0x9b,0x99,0x97,0x96,0x90,0x8c,0x88,0x87,0x8c,0x93,0x95,0x94,
+0x90,0x8e,0x8b,0x88,0x86,0x84,0x82,0x80,0x79,0x7a,0x7d,0x7c,0x76,0x76,0x89,0xa0,
+0xab,0xa5,0xa1,0xa4,0xa8,0xa0,0x8d,0x7b,0x74,0x62,0x59,0x63,0x72,0x76,0x72,0x6f,
+0x77,0x7b,0x7d,0x82,0x8a,0x8f,0x9a,0xac,0xba,0xbd,0xb5,0xa1,0x90,0x8c,0x8c,0x8c,
+0xa1,0xb7,0xc2,0xaa,0x71,0x35,0x1b,0x20,0x1a,0x29,0x31,0x30,0x33,0x37,0x3b,0x42,
+0x4a,0x4f,0x5b,0x5d,0x6c,0x69,0x61,0x4e,0x43,0x51,0x61,0x68,0x63,0x56,0x45,0x39,
+0x2e,0x3e,0x4e,0x55,0x56,0x59,0x5f,0x65,0x6a,0x73,0x79,0x77,0x67,0x4b,0x3c,0x41,
+0x4c,0x47,0x42,0x3e,0x36,0x32,0x3c,0x4b,0x5f,0x64,0x6b,0x6d,0x67,0x5f,0x5b,0x5b,
+0x61,0x64,0x5b,0x53,0x45,0x3b,0x42,0x44,0x40,0x48,0x51,0x55,0x57,0x58,0x57,0x55,
+0x7c,0x74,0x6a,0x67,0x6f,0x78,0x7a,0x77,0x75,0x79,0x7f,0x83,0x82,0x7d,0x75,0x70,
+0x7f,0x8e,0x96,0x8d,0x83,0x83,0x87,0x89,0x80,0x7b,0x71,0x65,0x5e,0x5e,0x66,0x6e,
+0x7b,0x84,0x8e,0x96,0x9d,0xa5,0xab,0xac,0xae,0xae,0xad,0xaa,0xa6,0xa3,0xa1,0xa1,
+0xa6,0xa8,0xab,0xad,0xb0,0xb3,0xb8,0xbb,0xb7,0xb5,0xb3,0xb2,0xb3,0xb4,0xb4,0xb4,
+0xaf,0xaf,0xae,0xae,0xaf,0xae,0xab,0xa8,0xa8,0xa9,0xaa,0xab,0xaa,0xaa,0xac,0xad,
+0xa9,0xa7,0xa4,0xa1,0x9f,0x9d,0x9c,0x9c,0x9e,0xa0,0xa2,0xa3,0xa3,0xa5,0xa8,0xab,
+0xb0,0xb1,0xaf,0xab,0xa7,0xa5,0xa6,0xa8,0xaa,0xac,0xad,0xac,0xa9,0xa6,0xa5,0xa4,
+0xa7,0xa9,0xac,0xac,0xab,0xab,0xad,0xaf,0xaf,0xae,0xae,0xaf,0xaf,0xae,0xac,0xaa,
+0xad,0xaf,0xb1,0xb2,0xb2,0xb1,0xb0,0xae,0xac,0xad,0xae,0xaf,0xb0,0xb0,0xaf,0xaf,
+0xaa,0xac,0xae,0xb1,0xb2,0xb2,0xb1,0xb0,0xab,0xac,0xaf,0xb1,0xb2,0xb3,0xb5,0xb6,
+0xb7,0xb9,0xb9,0xb5,0xb1,0xae,0xb0,0xb2,0xb2,0xaf,0xab,0xa9,0xaa,0xac,0xad,0xae,
+0xad,0xac,0xab,0xac,0xad,0xad,0xad,0xac,0xa4,0xa4,0xa6,0xaa,0xac,0xa9,0xa2,0x9b,
+0x93,0x95,0x9a,0xa1,0xa4,0xa2,0x9e,0x9d,0x9d,0x97,0x90,0x8e,0x91,0x95,0x95,0x93,
+0x9f,0x98,0x89,0x7a,0x75,0x7c,0x86,0x8d,0x94,0x89,0x87,0x8f,0xac,0xde,0xfc,0xf8,
+0xfc,0xf9,0xf8,0xfb,0xfe,0xfe,0xfe,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfb,0xfa,0xf8,0xf7,
+0xf6,0xf3,0xee,0xe9,0xe6,0xe3,0xe0,0xde,0xe0,0xdf,0xde,0xdd,0xdd,0xdf,0xe1,0xe2,
+0xe6,0xea,0xf0,0xf5,0xf7,0xf7,0xf7,0xf7,0xf9,0xf6,0xf3,0xf3,0xf7,0xf7,0xef,0xe4,
+0xc2,0xb6,0xae,0xb0,0xae,0xa7,0xa6,0xab,0xa6,0xa4,0xa0,0x9b,0x94,0x8d,0x89,0x88,
+0x87,0x89,0x89,0x86,0x7f,0x76,0x6e,0x69,0x65,0x64,0x62,0x60,0x5f,0x5f,0x5f,0x5f,
+0x5e,0x5d,0x5d,0x5d,0x5c,0x5c,0x5b,0x5b,0x5a,0x5a,0x5a,0x5a,0x5a,0x59,0x58,0x58,
+0x58,0x58,0x58,0x58,0x57,0x57,0x57,0x57,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,
+0x5a,0x5a,0x5a,0x5a,0x5a,0x5b,0x5b,0x5b,0x5c,0x5b,0x5a,0x58,0x56,0x57,0x59,0x5b,
+0x60,0x63,0x68,0x6b,0x6e,0x6f,0x71,0x72,0x74,0x74,0x77,0x78,0x76,0x60,0x54,0x71,
+0x82,0x85,0x84,0x86,0x89,0x87,0x87,0x8f,0x8f,0x8f,0x8f,0x93,0xa0,0xae,0xb3,0xb0,
+0xb8,0xba,0xbd,0xbf,0xbf,0xbe,0xbb,0xba,0xb7,0xb7,0xb6,0xb8,0xbb,0xb0,0x8f,0x70,
+0x6c,0x70,0x6f,0x69,0x68,0x6c,0x6c,0x68,0x6d,0x6e,0x70,0x6f,0x68,0x5f,0x5d,0x5f,
+0x63,0x5d,0x5b,0x60,0x65,0x66,0x68,0x6a,0x74,0x76,0x7b,0x80,0x7a,0x6b,0x61,0x5e,
+0x53,0x5a,0x5b,0x61,0x5d,0x53,0x56,0x55,0x57,0x53,0x5c,0x5c,0x53,0x4c,0x4c,0x5d,
+0x59,0x59,0x56,0x51,0x4d,0x4e,0x52,0x57,0x5e,0x5b,0x64,0x79,0x88,0x8d,0x91,0x97,
+0x9a,0x99,0x96,0x93,0x90,0x8e,0x8c,0x8b,0x79,0x7d,0x83,0x8a,0x92,0x98,0x97,0x93,
+0x91,0x8f,0x8b,0x89,0x87,0x85,0x83,0x81,0x7b,0x79,0x75,0x69,0x59,0x54,0x64,0x79,
+0x81,0x85,0x8a,0x8c,0x8d,0x8c,0x86,0x7e,0x58,0x52,0x54,0x5b,0x55,0x46,0x3d,0x40,
+0x48,0x4d,0x58,0x6e,0x86,0x93,0x9d,0xaa,0xb1,0xbb,0xc7,0xc6,0xad,0x86,0x65,0x55,
+0x85,0xa3,0xb5,0xae,0x8f,0x5b,0x33,0x2a,0x1e,0x26,0x28,0x29,0x2f,0x35,0x3c,0x45,
+0x54,0x51,0x59,0x60,0x70,0x64,0x51,0x38,0x44,0x51,0x5e,0x63,0x60,0x58,0x4f,0x49,
+0x55,0x49,0x43,0x48,0x49,0x48,0x53,0x63,0x6c,0x6e,0x6a,0x62,0x57,0x49,0x45,0x4d,
+0x49,0x3c,0x33,0x33,0x36,0x3c,0x4d,0x60,0x5f,0x64,0x68,0x66,0x65,0x64,0x60,0x5b,
+0x69,0x6d,0x57,0x42,0x3d,0x43,0x47,0x35,0x3b,0x3a,0x3a,0x40,0x48,0x48,0x39,0x27,
+0x76,0x75,0x6f,0x67,0x65,0x69,0x6f,0x72,0x7a,0x7d,0x81,0x83,0x82,0x7f,0x7c,0x79,
+0x84,0x90,0x93,0x85,0x78,0x76,0x7a,0x7c,0x82,0x81,0x81,0x83,0x89,0x90,0x95,0x97,
+0x9c,0xa2,0xa7,0xa8,0xa8,0xaa,0xa9,0xa6,0xa3,0xa4,0xa6,0xa8,0xaa,0xae,0xb2,0xb5,
+0xb3,0xb3,0xb3,0xb2,0xb1,0xb1,0xb2,0xb3,0xae,0xaf,0xb1,0xb3,0xb5,0xb4,0xb2,0xb0,
+0xb3,0xb2,0xb3,0xb7,0xb9,0xb7,0xb3,0xb0,0xac,0xac,0xab,0xa9,0xa7,0xa6,0xa7,0xa8,
+0xad,0xab,0xa9,0xa6,0xa5,0xa6,0xa8,0xa9,0xac,0xad,0xac,0xaa,0xa8,0xa8,0xaa,0xad,
+0xad,0xac,0xab,0xaa,0xaa,0xac,0xae,0xb0,0xac,0xaf,0xb1,0xb0,0xad,0xaa,0xa9,0xa9,
+0xa3,0xa5,0xa7,0xa8,0xa7,0xa8,0xab,0xad,0xb3,0xb2,0xb2,0xb2,0xb2,0xb0,0xae,0xac,
+0xaf,0xaf,0xaf,0xae,0xab,0xa8,0xa4,0xa2,0xa9,0xab,0xad,0xaf,0xb0,0xaf,0xae,0xae,
+0xaa,0xab,0xad,0xae,0xb0,0xb2,0xb4,0xb6,0xb2,0xaf,0xae,0xae,0xb0,0xb1,0xae,0xab,
+0xb0,0xb1,0xb2,0xb2,0xb1,0xb2,0xb3,0xb4,0xaf,0xb0,0xb3,0xb6,0xb8,0xb7,0xb4,0xb1,
+0xb5,0xb4,0xb5,0xb5,0xb5,0xb3,0xb0,0xae,0xaf,0xad,0xad,0xb0,0xb3,0xb5,0xb3,0xb1,
+0xae,0xa6,0x9e,0x9b,0x9a,0x9b,0x9e,0xa3,0xa9,0xa6,0xa3,0xa2,0x9f,0x98,0x8e,0x87,
+0x91,0x94,0x96,0x96,0x94,0x90,0x89,0x83,0x8e,0x80,0x94,0xc3,0xe5,0xf8,0xfe,0xf9,
+0xfd,0xfb,0xfd,0xff,0xff,0xfe,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xff,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfc,0xfa,0xf9,0xf8,
+0xf7,0xf4,0xf0,0xec,0xe8,0xe4,0xe0,0xdd,0xdd,0xdc,0xda,0xd9,0xda,0xdc,0xdd,0xde,
+0xe2,0xe5,0xea,0xef,0xf2,0xf5,0xf8,0xf9,0xf2,0xf9,0xfd,0xfa,0xf5,0xf3,0xf4,0xf6,
+0xee,0xd4,0xba,0xb0,0xae,0xac,0xad,0xb0,0xae,0xad,0xaa,0xa4,0x9d,0x97,0x92,0x90,
+0x87,0x8a,0x8c,0x8b,0x87,0x80,0x7a,0x77,0x6f,0x6c,0x68,0x65,0x63,0x62,0x63,0x64,
+0x5f,0x5f,0x5f,0x5e,0x5d,0x5d,0x5c,0x5c,0x5e,0x5e,0x5e,0x5e,0x5d,0x5c,0x5b,0x5a,
+0x5c,0x5b,0x5b,0x5b,0x5b,0x5b,0x5b,0x5a,0x5b,0x5b,0x5b,0x5b,0x5b,0x5c,0x5c,0x5c,
+0x5b,0x5b,0x5b,0x5c,0x5c,0x5c,0x5c,0x5d,0x5d,0x5d,0x5c,0x5a,0x59,0x5a,0x5c,0x5f,
+0x64,0x66,0x6a,0x6d,0x6e,0x6f,0x71,0x72,0x78,0x79,0x79,0x79,0x7d,0x6d,0x5c,0x70,
+0x86,0x8a,0x8a,0x8a,0x8b,0x88,0x87,0x8f,0x90,0x8e,0x8d,0x92,0xa2,0xb2,0xb5,0xb0,
+0xb4,0xb6,0xb9,0xbb,0xbb,0xba,0xb8,0xb6,0xb7,0xb9,0xb8,0xb7,0xbb,0xb8,0xa0,0x84,
+0x6d,0x6d,0x6b,0x68,0x6b,0x70,0x6f,0x69,0x6d,0x71,0x75,0x74,0x6e,0x66,0x64,0x66,
+0x64,0x5f,0x5f,0x65,0x67,0x64,0x63,0x66,0x5f,0x5e,0x61,0x6a,0x6f,0x6e,0x6f,0x72,
+0x61,0x63,0x5e,0x61,0x5f,0x5c,0x65,0x67,0x61,0x5c,0x63,0x61,0x5c,0x59,0x59,0x66,
+0x64,0x61,0x5d,0x57,0x53,0x53,0x56,0x58,0x61,0x61,0x6a,0x7c,0x88,0x8c,0x92,0x99,
+0x94,0x95,0x97,0x97,0x93,0x8c,0x84,0x7f,0x7a,0x83,0x8e,0x96,0x9a,0x9a,0x96,0x92,
+0x90,0x8e,0x8b,0x88,0x87,0x85,0x82,0x81,0x8b,0x83,0x77,0x6d,0x68,0x66,0x65,0x63,
+0x52,0x4f,0x4b,0x4a,0x54,0x67,0x78,0x81,0x88,0x74,0x62,0x58,0x4b,0x37,0x2b,0x2a,
+0x35,0x48,0x62,0x7e,0x8d,0x87,0x7a,0x79,0x97,0xa8,0xbf,0xcb,0xbe,0x9e,0x7e,0x6e,
+0x80,0x9f,0xb4,0xb6,0xae,0x91,0x6a,0x56,0x25,0x21,0x1b,0x1e,0x27,0x2c,0x36,0x48,
+0x5e,0x4f,0x52,0x5a,0x66,0x53,0x45,0x3a,0x52,0x59,0x61,0x65,0x68,0x6c,0x6c,0x6b,
+0x5b,0x48,0x40,0x4c,0x59,0x5b,0x5e,0x64,0x85,0x90,0x95,0x98,0xa3,0xae,0xb6,0xbd,
+0xb9,0xa6,0x8f,0x7c,0x66,0x51,0x47,0x47,0x56,0x4c,0x50,0x60,0x65,0x5c,0x59,0x60,
+0x4e,0x51,0x44,0x43,0x4f,0x5a,0x57,0x3e,0x36,0x2e,0x2a,0x2f,0x32,0x2b,0x1c,0x10,
+0x70,0x74,0x73,0x69,0x5f,0x5f,0x67,0x6d,0x70,0x74,0x79,0x7e,0x80,0x81,0x81,0x82,
+0x83,0x89,0x87,0x7b,0x71,0x70,0x75,0x78,0x7f,0x80,0x83,0x8a,0x96,0xa1,0xa6,0xa5,
+0xae,0xab,0xa7,0xa4,0xa4,0xa5,0xa8,0xaa,0xb0,0xb1,0xb2,0xb1,0xaf,0xad,0xac,0xac,
+0xb1,0xb1,0xb1,0xb1,0xb2,0xb2,0xb3,0xb3,0xb5,0xb3,0xb1,0xaf,0xaf,0xaf,0xaf,0xae,
+0xb1,0xb0,0xb2,0xb6,0xb8,0xb5,0xb1,0xaf,0xaf,0xaf,0xaf,0xae,0xac,0xab,0xac,0xad,
+0xb4,0xb3,0xb0,0xad,0xab,0xab,0xac,0xae,0xae,0xaf,0xae,0xac,0xa9,0xa9,0xab,0xad,
+0xa9,0xa6,0xa3,0xa2,0xa2,0xa4,0xa6,0xa7,0xa3,0xa7,0xab,0xac,0xac,0xaa,0xaa,0xab,
+0xae,0xae,0xaf,0xae,0xae,0xaf,0xb0,0xb1,0xaf,0xb0,0xb1,0xb1,0xb1,0xb1,0xb0,0xb0,
+0xab,0xab,0xaa,0xa9,0xa7,0xa5,0xa3,0xa2,0xa9,0xaa,0xad,0xaf,0xaf,0xae,0xad,0xab,
+0xaa,0xab,0xad,0xae,0xb0,0xb3,0xb6,0xb9,0xb1,0xae,0xad,0xb1,0xb8,0xbc,0xba,0xb7,
+0xb1,0xb0,0xb0,0xb1,0xb3,0xb3,0xb2,0xb1,0xaf,0xaf,0xb0,0xb3,0xb6,0xb7,0xb7,0xb6,
+0xb0,0xb2,0xb6,0xb9,0xb9,0xb5,0xae,0xa9,0xa4,0xa8,0xaf,0xb7,0xbb,0xba,0xb5,0xb0,
+0xb5,0xb4,0xb5,0xb6,0xb3,0xaa,0xa1,0x9d,0x9e,0x9c,0x9e,0xa5,0xac,0xb1,0xb4,0xb6,
+0xa8,0xa4,0x9e,0x99,0x97,0x96,0x95,0x93,0x82,0x9c,0xca,0xef,0xfb,0xfa,0xfd,0xff,
+0xff,0xff,0xff,0xff,0xff,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfa,0xf9,
+0xf9,0xf7,0xf4,0xf1,0xee,0xea,0xe6,0xe3,0xde,0xdc,0xda,0xd9,0xda,0xdd,0xde,0xdf,
+0xe0,0xe2,0xe5,0xe8,0xec,0xf1,0xf6,0xf9,0xfc,0xf8,0xf4,0xf4,0xf8,0xfa,0xf5,0xed,
+0xf4,0xf5,0xe4,0xc6,0xb4,0xb4,0xb3,0xac,0xb2,0xb2,0xb0,0xaa,0xa5,0xa1,0x9b,0x96,
+0x8e,0x8c,0x8b,0x89,0x87,0x86,0x85,0x84,0x79,0x75,0x70,0x6a,0x66,0x64,0x64,0x64,
+0x62,0x62,0x62,0x61,0x60,0x5f,0x5f,0x5e,0x61,0x61,0x61,0x61,0x60,0x5f,0x5f,0x5e,
+0x5e,0x5d,0x5d,0x5d,0x5d,0x5e,0x5d,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,0x5c,
+0x5c,0x5c,0x5d,0x5d,0x5d,0x5e,0x5e,0x5e,0x5e,0x5f,0x5f,0x5e,0x5d,0x5e,0x60,0x62,
+0x67,0x69,0x6b,0x6c,0x6e,0x6f,0x71,0x73,0x76,0x77,0x7b,0x7a,0x7f,0x77,0x62,0x65,
+0x7d,0x89,0x8f,0x8e,0x8e,0x8b,0x8a,0x8e,0x90,0x8d,0x8c,0x93,0xa6,0xb8,0xbc,0xb7,
+0xb3,0xb4,0xb5,0xb6,0xb6,0xb6,0xb5,0xb4,0xb3,0xb8,0xba,0xb9,0xbb,0xbb,0xab,0x97,
+0x76,0x6e,0x66,0x67,0x6e,0x72,0x70,0x6b,0x68,0x6d,0x72,0x72,0x6c,0x66,0x64,0x64,
+0x62,0x68,0x6a,0x68,0x6a,0x6e,0x6a,0x62,0x61,0x59,0x55,0x56,0x58,0x5b,0x62,0x6a,
+0x6d,0x76,0x74,0x72,0x68,0x5f,0x67,0x69,0x63,0x5b,0x5c,0x5a,0x5f,0x66,0x61,0x62,
+0x60,0x5f,0x5c,0x5a,0x5a,0x5b,0x5d,0x5f,0x5e,0x64,0x70,0x7f,0x89,0x8d,0x90,0x93,
+0x99,0x99,0x99,0x99,0x97,0x93,0x90,0x8e,0x99,0x9f,0xa4,0xa4,0xa2,0x9e,0x99,0x94,
+0x8e,0x8c,0x89,0x87,0x86,0x84,0x82,0x81,0x76,0x78,0x77,0x73,0x6f,0x6b,0x64,0x5d,
+0x65,0x69,0x75,0x86,0x91,0x8b,0x77,0x65,0x6c,0x6f,0x73,0x6c,0x56,0x3f,0x3a,0x42,
+0x5f,0x76,0x8c,0x95,0x95,0x8e,0x8c,0x93,0x87,0x94,0xa7,0xba,0xc7,0xc1,0xa3,0x84,
+0x76,0x91,0xa3,0xa3,0x9f,0x94,0x7f,0x6d,0x45,0x39,0x2a,0x26,0x28,0x28,0x31,0x45,
+0x50,0x44,0x4b,0x52,0x56,0x3e,0x3b,0x40,0x51,0x65,0x76,0x73,0x64,0x59,0x5a,0x5e,
+0x5e,0x4d,0x3b,0x3c,0x55,0x75,0x8b,0x93,0x86,0x98,0xa3,0xa9,0xb6,0xbf,0xc1,0xc2,
+0xc2,0xc4,0xc7,0xc9,0xc1,0xb0,0x9f,0x94,0x72,0x67,0x5e,0x5c,0x5d,0x5b,0x56,0x52,
+0x4b,0x49,0x44,0x48,0x40,0x30,0x33,0x36,0x42,0x35,0x29,0x22,0x1d,0x1f,0x2d,0x3e,
+0x71,0x76,0x75,0x6c,0x62,0x5f,0x63,0x67,0x65,0x6a,0x72,0x79,0x7c,0x7d,0x7e,0x7f,
+0x7e,0x7c,0x79,0x75,0x75,0x79,0x80,0x86,0x9b,0x9c,0x9c,0x9e,0xa4,0xad,0xaf,0xad,
+0xa4,0x9d,0x99,0x9d,0xa2,0xa5,0xaa,0xb0,0xaa,0xab,0xad,0xaf,0xaf,0xb0,0xb2,0xb3,
+0xb3,0xb3,0xb2,0xb2,0xb2,0xb1,0xb0,0xaf,0xb5,0xb1,0xad,0xab,0xad,0xb2,0xb6,0xb9,
+0xaf,0xac,0xad,0xb0,0xb1,0xad,0xac,0xad,0xae,0xb1,0xb3,0xb4,0xb4,0xb2,0xb1,0xb1,
+0xb2,0xb2,0xb1,0xaf,0xab,0xa8,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xac,0xad,0xaf,0xb0,
+0xb4,0xb1,0xad,0xa9,0xa8,0xa9,0xaa,0xab,0xaa,0xad,0xb1,0xb3,0xb4,0xb3,0xb2,0xb1,
+0xb1,0xb0,0xae,0xae,0xae,0xae,0xae,0xae,0xb2,0xb4,0xb7,0xb8,0xb7,0xb6,0xb8,0xb9,
+0xb1,0xb1,0xb1,0xb1,0xb2,0xb4,0xb5,0xb6,0xb6,0xb8,0xba,0xbb,0xbb,0xb8,0xb6,0xb4,
+0xaf,0xb1,0xb2,0xb2,0xb1,0xb1,0xb3,0xb4,0xb1,0xaf,0xae,0xb0,0xb4,0xb6,0xb4,0xb1,
+0xb4,0xb4,0xb5,0xb5,0xb4,0xb3,0xb2,0xb1,0xb7,0xb3,0xb0,0xae,0xb0,0xb3,0xb7,0xb9,
+0xbb,0xb7,0xb4,0xb2,0xb4,0xb9,0xbd,0xbf,0xba,0xb6,0xb0,0xac,0xae,0xb3,0xba,0xbe,
+0xb9,0xb3,0xae,0xad,0xae,0xae,0xb1,0xb4,0xaa,0xa4,0xa0,0xa1,0xa2,0xa5,0xac,0xb3,
+0xb7,0xb8,0xb8,0xb5,0xad,0xa2,0x99,0x95,0xa9,0xd8,0xfb,0xfe,0xfb,0xfe,0xff,0xff,
+0xfe,0xfe,0xfd,0xfc,0xfd,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xfd,0xfe,0xfe,0xff,0xfe,0xfd,0xfc,0xfc,
+0xfb,0xfb,0xf9,0xf8,0xf6,0xf3,0xef,0xec,0xe6,0xe3,0xdf,0xdd,0xdd,0xde,0xde,0xde,
+0xdd,0xde,0xe0,0xe2,0xe5,0xe9,0xef,0xf2,0xf5,0xf7,0xf7,0xf3,0xf1,0xf3,0xf7,0xf8,
+0xf5,0xf2,0xf5,0xf5,0xe0,0xc1,0xb5,0xba,0xb1,0xb2,0xb1,0xae,0xac,0xa9,0xa2,0x9b,
+0x98,0x93,0x8e,0x8a,0x8a,0x8a,0x89,0x89,0x81,0x7e,0x7a,0x74,0x6f,0x6a,0x67,0x66,
+0x67,0x67,0x66,0x66,0x65,0x64,0x63,0x63,0x64,0x64,0x64,0x63,0x63,0x63,0x62,0x62,
+0x61,0x5f,0x5e,0x5e,0x60,0x60,0x5f,0x5d,0x5f,0x5f,0x5f,0x5e,0x5e,0x5e,0x5d,0x5d,
+0x5d,0x5e,0x5e,0x5f,0x5f,0x60,0x60,0x60,0x60,0x61,0x62,0x62,0x62,0x62,0x64,0x65,
+0x6a,0x6b,0x6c,0x6c,0x6d,0x6f,0x72,0x75,0x75,0x75,0x7b,0x79,0x7d,0x7d,0x69,0x5c,
+0x6b,0x83,0x91,0x92,0x92,0x91,0x8d,0x8d,0x8f,0x8e,0x8e,0x94,0xa6,0xb8,0xbf,0xbc,
+0xb7,0xb6,0xb6,0xb5,0xb5,0xb5,0xb6,0xb6,0xb4,0xb9,0xbc,0xbb,0xbc,0xbd,0xb5,0xa9,
+0x8f,0x7b,0x6b,0x6b,0x72,0x73,0x70,0x6e,0x68,0x6c,0x6f,0x6e,0x69,0x64,0x62,0x60,
+0x63,0x68,0x6b,0x6c,0x6f,0x73,0x6f,0x67,0x67,0x64,0x63,0x61,0x5b,0x55,0x58,0x60,
+0x66,0x73,0x76,0x77,0x6c,0x5f,0x5f,0x5b,0x5a,0x58,0x5a,0x54,0x58,0x63,0x5e,0x5a,
+0x59,0x58,0x59,0x5a,0x5d,0x5f,0x61,0x61,0x5d,0x68,0x76,0x7f,0x87,0x8e,0x91,0x91,
+0x9f,0x9d,0x9b,0x9a,0x9b,0x9e,0xa1,0xa4,0xa5,0xa6,0xa4,0xa0,0x9c,0x98,0x93,0x8e,
+0x8d,0x8b,0x89,0x87,0x86,0x85,0x83,0x81,0x7f,0x7f,0x7c,0x74,0x66,0x61,0x6b,0x79,
+0x90,0x94,0x9b,0x9e,0x9b,0x98,0xa0,0xab,0x96,0x8b,0x7e,0x71,0x60,0x4b,0x37,0x2c,
+0x48,0x68,0x82,0x86,0x7f,0x72,0x69,0x6a,0x64,0x72,0x8c,0xa9,0xbb,0xb1,0x8f,0x6f,
+0x53,0x64,0x77,0x7f,0x81,0x8b,0x95,0x94,0x7f,0x6e,0x51,0x3c,0x36,0x38,0x44,0x56,
+0x50,0x45,0x4a,0x4c,0x50,0x40,0x47,0x51,0x57,0x70,0x89,0x8e,0x86,0x83,0x8a,0x93,
+0x91,0x8f,0x89,0x7e,0x6f,0x5c,0x45,0x35,0x2a,0x33,0x38,0x3d,0x4c,0x5e,0x71,0x83,
+0xa4,0xad,0xb8,0xbf,0xc2,0xc0,0xb9,0xb2,0xbe,0xbd,0xac,0x93,0x88,0x85,0x71,0x55,
+0x4a,0x3e,0x36,0x43,0x43,0x39,0x4d,0x64,0x5a,0x44,0x2d,0x25,0x2c,0x3d,0x55,0x68,
+0x75,0x78,0x75,0x6d,0x64,0x60,0x5f,0x5f,0x63,0x6a,0x73,0x79,0x7b,0x7a,0x79,0x78,
+0x87,0x81,0x7e,0x82,0x89,0x92,0x9c,0xa4,0xa1,0xa7,0xad,0xaf,0xaf,0xae,0xa9,0xa2,
+0xa8,0xa1,0xa2,0xac,0xb3,0xb1,0xb0,0xb4,0xb7,0xb6,0xb3,0xaf,0xac,0xab,0xad,0xae,
+0xaf,0xaf,0xb1,0xb3,0xb5,0xb5,0xb5,0xb4,0xb5,0xb5,0xb5,0xb5,0xb5,0xb2,0xaf,0xac,
+0xb5,0xb2,0xb1,0xb3,0xb3,0xb1,0xb2,0xb6,0xaf,0xb3,0xb6,0xb7,0xb4,0xb0,0xab,0xa9,
+0xaa,0xad,0xb0,0xb0,0xad,0xab,0xaa,0xa9,0xaf,0xaf,0xb1,0xb2,0xb4,0xb5,0xb6,0xb6,
+0xb3,0xb1,0xae,0xac,0xad,0xaf,0xb3,0xb5,0xb0,0xb2,0xb3,0xb5,0xb4,0xb2,0xaf,0xad,
+0xb0,0xae,0xab,0xab,0xac,0xad,0xac,0xab,0xab,0xaf,0xb2,0xb2,0xb0,0xaf,0xb1,0xb3,
+0xb1,0xb0,0xaf,0xae,0xaf,0xb1,0xb4,0xb5,0xb6,0xb7,0xb9,0xb9,0xb8,0xb5,0xb1,0xae,
+0xb7,0xb8,0xb9,0xb7,0xb3,0xaf,0xae,0xae,0xb0,0xb0,0xb0,0xb1,0xb2,0xb2,0xb1,0xb0,
+0xae,0xb1,0xb4,0xb5,0xb4,0xb3,0xb4,0xb5,0xb2,0xb1,0xb0,0xb0,0xaf,0xae,0xab,0xa9,
+0xaa,0xad,0xb1,0xb6,0xb8,0xb8,0xb5,0xb2,0xb1,0xb5,0xb9,0xbc,0xba,0xb6,0xb2,0xaf,
+0xb2,0xb0,0xb0,0xb3,0xb5,0xb5,0xb6,0xb8,0xba,0xb8,0xb7,0xb7,0xb1,0xa9,0xa6,0xa7,
+0xaa,0xb0,0xb8,0xbd,0xbb,0xb7,0xb7,0xb9,0xe4,0xf8,0xff,0xfb,0xff,0xff,0xfc,0xff,
+0xfe,0xff,0xfe,0xfc,0xff,0xff,0xff,0xfa,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xfc,0xfd,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,
+0xfc,0xfb,0xfb,0xfb,0xfa,0xf8,0xf4,0xf1,0xee,0xe9,0xe3,0xde,0xdc,0xdb,0xd9,0xd8,
+0xd9,0xda,0xdb,0xdc,0xdf,0xe2,0xe7,0xea,0xf1,0xf4,0xf5,0xf5,0xf6,0xf8,0xf8,0xf6,
+0xf8,0xf9,0xf9,0xf9,0xfa,0xf1,0xd7,0xbb,0xb1,0xb3,0xb3,0xb1,0xb1,0xb0,0xa9,0xa0,
+0x9f,0x9a,0x94,0x91,0x90,0x8e,0x8a,0x87,0x87,0x86,0x84,0x80,0x7b,0x75,0x71,0x6e,
+0x6c,0x6b,0x6a,0x6a,0x69,0x68,0x67,0x67,0x67,0x66,0x65,0x65,0x65,0x65,0x65,0x66,
+0x65,0x63,0x62,0x63,0x64,0x64,0x63,0x62,0x61,0x61,0x61,0x60,0x60,0x5f,0x5f,0x5e,
+0x5e,0x5f,0x5f,0x60,0x60,0x61,0x61,0x61,0x62,0x63,0x64,0x65,0x65,0x65,0x66,0x68,
+0x6c,0x6c,0x6c,0x6c,0x6d,0x70,0x73,0x76,0x7a,0x78,0x7e,0x78,0x7b,0x83,0x71,0x5d,
+0x5d,0x7c,0x92,0x94,0x95,0x95,0x90,0x8c,0x8f,0x90,0x90,0x95,0xa3,0xb4,0xbd,0xbd,
+0xbb,0xba,0xb8,0xb6,0xb6,0xb7,0xb8,0xb9,0xba,0xbd,0xbd,0xbb,0xbc,0xbf,0xbd,0xb7,
+0xa8,0x8c,0x73,0x71,0x76,0x75,0x70,0x6f,0x6e,0x71,0x72,0x6f,0x6b,0x67,0x64,0x63,
+0x64,0x5e,0x61,0x6c,0x71,0x6d,0x6a,0x6d,0x6c,0x6e,0x70,0x6c,0x5f,0x51,0x50,0x57,
+0x62,0x68,0x65,0x68,0x67,0x61,0x61,0x59,0x53,0x5b,0x63,0x56,0x52,0x5b,0x59,0x59,
+0x5d,0x5d,0x5c,0x5d,0x5f,0x5f,0x5e,0x5c,0x62,0x70,0x7b,0x80,0x87,0x91,0x97,0x96,
+0x99,0x9b,0x9e,0xa2,0xa4,0xa6,0xa7,0xa7,0xa4,0xa2,0x9e,0x9b,0x9a,0x9a,0x94,0x8e,
+0x8c,0x8b,0x88,0x87,0x86,0x85,0x84,0x82,0x82,0x79,0x76,0x74,0x67,0x58,0x5b,0x69,
+0x53,0x47,0x42,0x48,0x52,0x5c,0x6c,0x7b,0x96,0x9d,0x9c,0x88,0x6a,0x55,0x50,0x54,
+0x68,0x79,0x7b,0x6c,0x5e,0x54,0x4d,0x4a,0x45,0x4b,0x5e,0x70,0x6d,0x5f,0x63,0x74,
+0x92,0x8c,0x8c,0x84,0x74,0x74,0x7e,0x7f,0x8d,0x8b,0x7a,0x66,0x5e,0x5a,0x57,0x59,
+0x4f,0x41,0x3f,0x41,0x57,0x63,0x7d,0x8b,0x96,0x91,0x89,0x86,0x8b,0x91,0x92,0x8e,
+0x8b,0x88,0x89,0x83,0x69,0x45,0x32,0x33,0x44,0x44,0x3c,0x33,0x2b,0x24,0x2c,0x3f,
+0x5a,0x71,0x8b,0x9f,0xad,0xb6,0xb2,0xa9,0xaf,0xb4,0xbc,0xc7,0xcc,0xc1,0xa6,0x8d,
+0x71,0x4f,0x31,0x41,0x5a,0x62,0x67,0x65,0x66,0x4b,0x33,0x37,0x51,0x66,0x66,0x5d,
+0x88,0x89,0x85,0x7a,0x6b,0x61,0x5f,0x61,0x6a,0x77,0x80,0x80,0x77,0x6a,0x6a,0x78,
+0x82,0x86,0x82,0x82,0x8c,0x96,0x9e,0xa6,0xa5,0xa4,0xa8,0xad,0xaa,0xa1,0x9d,0x9e,
+0xad,0xb4,0xb8,0xb5,0xb2,0xb3,0xb2,0xb0,0xb1,0xb2,0xb4,0xb4,0xb1,0xad,0xad,0xaf,
+0xb5,0xb6,0xb8,0xb8,0xb6,0xb3,0xaf,0xac,0xb6,0xb7,0xb7,0xb4,0xb0,0xae,0xae,0xb0,
+0xb3,0xb4,0xb5,0xb5,0xb6,0xb6,0xb6,0xb6,0xb2,0xb1,0xaf,0xae,0xae,0xae,0xad,0xac,
+0xab,0xab,0xab,0xad,0xb0,0xb1,0xb0,0xb0,0xb3,0xb4,0xb4,0xb3,0xb2,0xb2,0xb5,0xb7,
+0xb6,0xb2,0xaf,0xad,0xa9,0xa7,0xab,0xb1,0xb4,0xb0,0xae,0xb2,0xb7,0xb8,0xb4,0xb1,
+0xb6,0xb8,0xba,0xbb,0xbb,0xba,0xb7,0xb6,0xb6,0xb5,0xb3,0xb2,0xb3,0xb5,0xb9,0xbb,
+0xbb,0xb7,0xb0,0xab,0xa9,0xa9,0xab,0xac,0xaa,0xab,0xad,0xaf,0xb1,0xb1,0xaf,0xad,
+0xad,0xb2,0xb8,0xba,0xb5,0xae,0xab,0xac,0xae,0xb2,0xb4,0xb4,0xb5,0xb8,0xb8,0xb5,
+0xb2,0xaf,0xad,0xad,0xad,0xad,0xb0,0xb3,0xb4,0xb5,0xb7,0xb9,0xb9,0xb8,0xb7,0xb6,
+0xb5,0xb3,0xb1,0xaf,0xae,0xb2,0xb9,0xbe,0xba,0xbc,0xbe,0xbe,0xbb,0xb9,0xb9,0xba,
+0xba,0xb6,0xb2,0xb0,0xb1,0xb3,0xb4,0xb4,0xb4,0xb4,0xb4,0xb5,0xb7,0xb8,0xb6,0xb2,
+0xab,0xa3,0xa4,0xad,0xb4,0xbe,0xd5,0xef,0xfb,0xfe,0xff,0xfc,0xfb,0xfc,0xff,0xff,
+0xff,0xfd,0xfb,0xfd,0xfe,0xfd,0xfe,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfc,0xfd,0xfd,0xfd,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,
+0xfb,0xfb,0xfc,0xfb,0xfa,0xf9,0xf7,0xf6,0xf1,0xf0,0xee,0xe8,0xe1,0xda,0xd4,0xd1,
+0xd9,0xd9,0xdb,0xdf,0xe1,0xe3,0xe6,0xea,0xec,0xf1,0xf7,0xfa,0xf7,0xf4,0xf3,0xf3,
+0xfc,0xf6,0xf0,0xed,0xef,0xf2,0xf2,0xf0,0xcf,0xbb,0xad,0xae,0xb2,0xb0,0xaf,0xb3,
+0xa6,0xa2,0x9e,0x9a,0x98,0x95,0x91,0x8d,0x8c,0x8a,0x88,0x88,0x87,0x83,0x7c,0x76,
+0x6a,0x6b,0x6b,0x6c,0x6c,0x6b,0x6a,0x69,0x67,0x67,0x67,0x67,0x66,0x66,0x65,0x65,
+0x64,0x65,0x66,0x67,0x67,0x66,0x65,0x64,0x64,0x64,0x64,0x64,0x64,0x63,0x61,0x61,
+0x62,0x62,0x62,0x62,0x63,0x63,0x63,0x63,0x65,0x65,0x65,0x66,0x66,0x66,0x67,0x67,
+0x69,0x6a,0x6b,0x6d,0x6f,0x71,0x73,0x74,0x78,0x78,0x7c,0x7d,0x7c,0x7b,0x72,0x61,
+0x4f,0x6b,0x8a,0x8f,0x92,0x95,0x8d,0x90,0x90,0x8f,0x90,0x92,0x9d,0xb3,0xbf,0xb9,
+0xbc,0xbc,0xbb,0xb7,0xb4,0xb5,0xb9,0xbd,0xbe,0xbe,0xc0,0xbf,0xbc,0xba,0xbc,0xc1,
+0xb9,0xa7,0x80,0x6d,0x75,0x71,0x69,0x72,0x70,0x73,0x75,0x73,0x71,0x6f,0x6c,0x68,
+0x62,0x63,0x63,0x64,0x69,0x6d,0x68,0x60,0x6c,0x76,0x7b,0x74,0x69,0x63,0x5c,0x55,
+0x5d,0x5d,0x5d,0x5f,0x62,0x64,0x60,0x5a,0x5a,0x5f,0x5f,0x5a,0x5b,0x61,0x5f,0x58,
+0x58,0x57,0x59,0x5d,0x5e,0x5e,0x63,0x69,0x73,0x76,0x7c,0x82,0x89,0x8e,0x93,0x95,
+0x97,0x9a,0x9d,0x9f,0xa0,0xa0,0xa1,0xa2,0xa0,0xa0,0x9f,0x9e,0x9c,0x97,0x92,0x8e,
+0x8e,0x8c,0x89,0x87,0x85,0x85,0x85,0x85,0x86,0x7e,0x7b,0x74,0x62,0x51,0x48,0x40,
+0x2a,0x20,0x23,0x2f,0x29,0x14,0x0f,0x19,0x41,0x69,0x8c,0x8b,0x8c,0x6a,0x61,0x6b,
+0x79,0x78,0x72,0x6c,0x6b,0x6a,0x60,0x54,0x50,0x4b,0x43,0x3a,0x3b,0x4d,0x6b,0x82,
+0x7e,0x72,0x72,0x6e,0x62,0x6b,0x7e,0x7d,0x81,0x83,0x85,0x85,0x85,0x7e,0x6d,0x5d,
+0x59,0x4b,0x41,0x47,0x54,0x59,0x56,0x52,0x53,0x57,0x63,0x73,0x79,0x70,0x62,0x59,
+0x5f,0x97,0xab,0x82,0x4f,0x3d,0x58,0x81,0xa0,0x93,0x7e,0x60,0x3d,0x22,0x1d,0x26,
+0x24,0x27,0x3c,0x5f,0x79,0x85,0x90,0x9c,0x9e,0x9e,0xa6,0xb2,0xb9,0xbc,0xc4,0xcd,
+0xae,0x95,0x72,0x56,0x45,0x40,0x47,0x50,0x53,0x4b,0x44,0x45,0x4a,0x4e,0x4c,0x47,
+0x76,0x7a,0x7c,0x77,0x6e,0x67,0x67,0x69,0x70,0x7a,0x80,0x7f,0x76,0x6b,0x6e,0x7d,
+0x86,0x8b,0x8a,0x8a,0x95,0x9f,0xa6,0xad,0xae,0xaa,0xa6,0xa5,0xa6,0xaa,0xb1,0xb7,
+0xb4,0xb6,0xb4,0xb1,0xaf,0xaf,0xac,0xa7,0xa9,0xaa,0xab,0xae,0xaf,0xb0,0xb0,0xb1,
+0xb0,0xb0,0xb0,0xaf,0xaf,0xae,0xae,0xae,0xb1,0xb3,0xb5,0xb4,0xb3,0xb2,0xb3,0xb5,
+0xb5,0xb6,0xb8,0xb8,0xb8,0xb6,0xb4,0xb3,0xad,0xad,0xae,0xb0,0xb3,0xb5,0xb6,0xb6,
+0xad,0xae,0xb0,0xb0,0xaf,0xaf,0xb0,0xb1,0xb9,0xb9,0xb7,0xb3,0xaf,0xad,0xae,0xaf,
+0xac,0xaa,0xab,0xaf,0xb1,0xb1,0xb1,0xb4,0xb2,0xb0,0xb1,0xb6,0xbb,0xbd,0xba,0xb8,
+0xb2,0xb2,0xb3,0xb3,0xb3,0xb2,0xb2,0xb1,0xb8,0xb7,0xb5,0xb4,0xb4,0xb6,0xb8,0xba,
+0xbc,0xbb,0xb8,0xb5,0xb3,0xb3,0xb3,0xb4,0xb2,0xb2,0xb4,0xb6,0xb8,0xb9,0xb7,0xb6,
+0xaa,0xac,0xae,0xaf,0xad,0xab,0xac,0xae,0xaf,0xb2,0xb3,0xb2,0xb3,0xb5,0xb4,0xb1,
+0xb2,0xb0,0xb0,0xb2,0xb2,0xb0,0xb0,0xb2,0xb7,0xb5,0xb3,0xb1,0xb1,0xb2,0xb4,0xb5,
+0xbb,0xba,0xb7,0xb2,0xae,0xac,0xad,0xaf,0xb5,0xb7,0xb8,0xb7,0xb6,0xb6,0xb8,0xb9,
+0xbb,0xba,0xb9,0xb8,0xb7,0xb5,0xb2,0xb0,0xb8,0xb6,0xb2,0xb2,0xb4,0xb6,0xb5,0xb3,
+0xb3,0xb9,0xb0,0xa1,0xaf,0xd7,0xf1,0xf2,0xf9,0xfb,0xfd,0xfe,0xfe,0xfe,0xfd,0xfc,
+0xff,0xfd,0xfc,0xfe,0xfe,0xfc,0xfc,0xfe,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfc,0xfd,0xfd,0xfc,0xfc,0xfa,0xf9,0xf8,0xf6,0xf5,0xf2,0xee,0xe9,0xe3,0xde,0xda,
+0xda,0xd8,0xd9,0xdd,0xdf,0xe1,0xe4,0xe8,0xe9,0xee,0xf3,0xf6,0xf6,0xf5,0xf6,0xf8,
+0xf1,0xf4,0xf6,0xf4,0xf0,0xec,0xed,0xef,0xf4,0xe0,0xca,0xbd,0xb6,0xaf,0xad,0xaf,
+0xaa,0xa9,0xa6,0xa2,0x9d,0x99,0x98,0x98,0x90,0x8f,0x8d,0x8c,0x8b,0x88,0x83,0x7f,
+0x7d,0x7a,0x77,0x72,0x6f,0x6d,0x6d,0x6d,0x6a,0x6b,0x6b,0x6b,0x6b,0x6a,0x68,0x67,
+0x69,0x68,0x68,0x67,0x67,0x67,0x67,0x67,0x65,0x66,0x66,0x66,0x65,0x64,0x63,0x63,
+0x64,0x64,0x64,0x64,0x65,0x65,0x65,0x65,0x67,0x67,0x68,0x68,0x68,0x69,0x69,0x69,
+0x6a,0x6b,0x6c,0x6e,0x70,0x72,0x74,0x75,0x79,0x79,0x7c,0x7e,0x7c,0x7d,0x75,0x65,
+0x4b,0x5f,0x83,0x93,0x95,0x95,0x8e,0x90,0x92,0x91,0x93,0x94,0x9d,0xb2,0xbf,0xba,
+0xbd,0xbd,0xbc,0xb8,0xb6,0xb6,0xba,0xbf,0xc0,0xc0,0xc1,0xc1,0xbd,0xb9,0xbb,0xc0,
+0xbd,0xb1,0x90,0x74,0x73,0x73,0x6d,0x6c,0x71,0x74,0x76,0x74,0x71,0x6f,0x6a,0x66,
+0x62,0x62,0x64,0x69,0x70,0x72,0x6a,0x5f,0x63,0x70,0x7a,0x79,0x76,0x75,0x74,0x72,
+0x5b,0x62,0x69,0x6b,0x6b,0x67,0x5f,0x58,0x5e,0x62,0x62,0x60,0x63,0x69,0x66,0x5f,
+0x5e,0x60,0x64,0x68,0x67,0x65,0x68,0x6d,0x70,0x74,0x7a,0x81,0x86,0x8b,0x90,0x93,
+0x97,0x99,0x9b,0x9d,0x9d,0x9e,0x9f,0xa0,0x9e,0x9e,0x9c,0x9b,0x9a,0x96,0x92,0x8f,
+0x8f,0x8d,0x8a,0x89,0x88,0x88,0x88,0x88,0x8a,0x83,0x78,0x69,0x5c,0x52,0x3b,0x1d,
+0x1c,0x2d,0x3e,0x43,0x45,0x46,0x44,0x3f,0x36,0x57,0x73,0x82,0x90,0x82,0x79,0x80,
+0x7d,0x79,0x6f,0x63,0x5b,0x59,0x59,0x59,0x5b,0x4f,0x4f,0x63,0x78,0x7b,0x70,0x67,
+0x68,0x61,0x63,0x63,0x5f,0x65,0x6d,0x68,0x6f,0x6f,0x72,0x7c,0x86,0x83,0x6e,0x57,
+0x40,0x3b,0x45,0x5e,0x6a,0x5d,0x49,0x3e,0x3d,0x3b,0x3f,0x47,0x4c,0x54,0x68,0x7d,
+0x83,0x75,0x57,0x49,0x55,0x65,0x70,0x7b,0x87,0x90,0x92,0x89,0x85,0x85,0x7b,0x6c,
+0x61,0x64,0x68,0x6d,0x71,0x77,0x7e,0x84,0x87,0x97,0xa6,0xa9,0xa5,0xa8,0xb3,0xbd,
+0xc7,0xbd,0xa3,0x7c,0x5c,0x4e,0x50,0x55,0x71,0x6a,0x5f,0x57,0x53,0x53,0x55,0x56,
+0x70,0x73,0x74,0x71,0x6a,0x68,0x6b,0x70,0x76,0x80,0x86,0x86,0x80,0x76,0x79,0x87,
+0x8f,0x93,0x90,0x8f,0x96,0x9c,0xa0,0xa5,0xa2,0xa3,0xa2,0xa2,0xa7,0xaf,0xb5,0xb6,
+0xb7,0xb6,0xb3,0xb2,0xb3,0xb3,0xaf,0xa9,0xa4,0xa5,0xa9,0xaf,0xb5,0xb9,0xba,0xba,
+0xb6,0xb6,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb2,0xb4,0xb6,0xb7,0xb8,0xb8,0xb9,0xb9,
+0xb6,0xb7,0xb9,0xba,0xb8,0xb6,0xb2,0xb0,0xb3,0xb2,0xb3,0xb4,0xb6,0xb7,0xb6,0xb5,
+0xb2,0xb4,0xb5,0xb2,0xad,0xa9,0xaa,0xac,0xa8,0xa9,0xac,0xae,0xb0,0xb3,0xb7,0xb9,
+0xb1,0xae,0xae,0xb2,0xb5,0xb4,0xb2,0xb1,0xac,0xad,0xaf,0xb2,0xb6,0xb7,0xb7,0xb5,
+0xb2,0xb1,0xb0,0xb0,0xb0,0xb0,0xb1,0xb2,0xaa,0xaa,0xa8,0xa7,0xa7,0xa7,0xa8,0xa8,
+0xb2,0xb3,0xb4,0xb3,0xb0,0xae,0xad,0xae,0xb3,0xb3,0xb4,0xb5,0xb8,0xb9,0xb8,0xb8,
+0xb3,0xb3,0xb2,0xb0,0xb0,0xb0,0xb1,0xb2,0xb1,0xb3,0xb4,0xb2,0xb2,0xb2,0xb0,0xae,
+0xaa,0xab,0xae,0xb3,0xb5,0xb2,0xb1,0xb2,0xae,0xac,0xab,0xaa,0xab,0xae,0xb1,0xb3,
+0xae,0xb1,0xb3,0xb6,0xb7,0xb9,0xbb,0xbc,0xb5,0xb5,0xb5,0xb4,0xb3,0xb4,0xb7,0xb9,
+0xb5,0xb7,0xb9,0xba,0xba,0xb9,0xb8,0xb8,0xb9,0xb9,0xba,0xbd,0xc0,0xbf,0xbb,0xb7,
+0xc0,0xbf,0xbc,0xc0,0xd3,0xed,0xfb,0xfc,0xff,0xff,0xfb,0xfa,0xfb,0xfd,0xfe,0xff,
+0xfd,0xfd,0xfe,0xff,0xff,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfa,0xf9,0xfb,0xf9,0xf6,0xf4,0xf1,0xee,0xe8,0xe4,
+0xdd,0xda,0xd9,0xdb,0xdd,0xde,0xe1,0xe5,0xe8,0xec,0xf0,0xf3,0xf4,0xf6,0xf9,0xfb,
+0xf0,0xf5,0xf8,0xf7,0xf4,0xf1,0xf1,0xf3,0xf1,0xf9,0xf9,0xe6,0xc8,0xb1,0xac,0xaf,
+0xb2,0xb1,0xad,0xa6,0xa0,0x9c,0x9d,0xa0,0x94,0x94,0x93,0x91,0x8f,0x8c,0x89,0x88,
+0x89,0x86,0x81,0x7c,0x77,0x74,0x71,0x70,0x6d,0x6e,0x6f,0x6f,0x6f,0x6e,0x6c,0x6b,
+0x6d,0x6c,0x6a,0x69,0x68,0x69,0x6a,0x6a,0x68,0x68,0x68,0x68,0x67,0x67,0x66,0x65,
+0x67,0x67,0x67,0x67,0x67,0x68,0x68,0x68,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,
+0x6c,0x6d,0x6f,0x70,0x72,0x74,0x75,0x76,0x7a,0x79,0x7c,0x7e,0x7d,0x7e,0x79,0x6b,
+0x4c,0x51,0x77,0x92,0x94,0x92,0x8f,0x92,0x94,0x94,0x96,0x97,0x9e,0xb2,0xbf,0xbc,
+0xbf,0xbe,0xbd,0xba,0xb7,0xb9,0xbd,0xc0,0xc2,0xc2,0xc3,0xc2,0xbd,0xb9,0xb9,0xbd,
+0xc0,0xbc,0xa4,0x82,0x72,0x73,0x71,0x69,0x6c,0x70,0x72,0x70,0x6e,0x6d,0x6a,0x67,
+0x66,0x66,0x66,0x6b,0x72,0x74,0x6c,0x62,0x5d,0x68,0x71,0x71,0x70,0x76,0x7d,0x81,
+0x71,0x74,0x72,0x6b,0x64,0x61,0x60,0x60,0x6b,0x6c,0x6b,0x69,0x6b,0x6d,0x67,0x5e,
+0x5d,0x62,0x68,0x6a,0x66,0x61,0x64,0x69,0x6b,0x71,0x79,0x7f,0x83,0x86,0x8b,0x8f,
+0x95,0x96,0x97,0x98,0x98,0x99,0x9a,0x9c,0x9a,0x99,0x97,0x96,0x95,0x94,0x91,0x8f,
+0x8e,0x8c,0x8a,0x89,0x8a,0x8a,0x89,0x89,0x7f,0x7e,0x77,0x71,0x7d,0x8f,0x7a,0x4e,
+0x32,0x42,0x44,0x33,0x27,0x27,0x21,0x13,0x32,0x4d,0x61,0x75,0x81,0x81,0x77,0x7e,
+0x6f,0x56,0x38,0x28,0x29,0x32,0x3b,0x41,0x43,0x55,0x64,0x60,0x4d,0x3c,0x37,0x3a,
+0x36,0x33,0x39,0x4d,0x6b,0x83,0x87,0x7f,0x5e,0x5b,0x5d,0x68,0x7b,0x88,0x88,0x81,
+0x6a,0x5c,0x5a,0x67,0x68,0x54,0x41,0x3c,0x36,0x35,0x2b,0x29,0x49,0x73,0x7b,0x68,
+0x5c,0x56,0x53,0x60,0x6c,0x62,0x55,0x54,0x40,0x4e,0x65,0x79,0x83,0x85,0x87,0x8a,
+0x70,0x7a,0x79,0x69,0x5e,0x62,0x6a,0x6c,0x5d,0x72,0x88,0x95,0x9c,0x9f,0x9a,0x92,
+0x84,0x9a,0xab,0xac,0xa2,0x92,0x79,0x62,0x5c,0x69,0x79,0x81,0x7d,0x72,0x67,0x61,
+0x77,0x75,0x6e,0x64,0x5d,0x5e,0x66,0x6e,0x74,0x7f,0x89,0x8d,0x8a,0x80,0x81,0x8d,
+0x94,0x97,0x91,0x8c,0x90,0x94,0x96,0x9a,0x99,0x9f,0xa4,0xa5,0xaa,0xb0,0xaf,0xa9,
+0xac,0xad,0xae,0xb0,0xb2,0xb1,0xad,0xa8,0xab,0xb0,0xb4,0xb6,0xb6,0xb4,0xb0,0xac,
+0xb2,0xb5,0xb8,0xbb,0xbb,0xb8,0xb4,0xb1,0xb7,0xb7,0xb8,0xb9,0xb9,0xb9,0xb8,0xb7,
+0xb4,0xb5,0xb7,0xb7,0xb7,0xb5,0xb3,0xb1,0xb9,0xb8,0xb7,0xb7,0xb6,0xb5,0xb2,0xb0,
+0xb4,0xb5,0xb6,0xb4,0xaf,0xac,0xac,0xae,0xac,0xad,0xb0,0xb2,0xb3,0xb3,0xb3,0xb3,
+0xb8,0xb5,0xb2,0xb1,0xb1,0xb1,0xb1,0xb0,0xb1,0xb2,0xb2,0xb1,0xb1,0xb4,0xb5,0xb6,
+0xb7,0xb7,0xb6,0xb6,0xb6,0xb6,0xb7,0xb8,0xb8,0xb8,0xb8,0xb7,0xb7,0xb6,0xb6,0xb6,
+0xb6,0xb9,0xbb,0xb9,0xb5,0xb1,0xb1,0xb3,0xb1,0xb1,0xb0,0xb1,0xb2,0xb3,0xb3,0xb3,
+0xb6,0xb6,0xb6,0xb5,0xb7,0xb9,0xb7,0xb4,0xb3,0xb4,0xb5,0xb5,0xb4,0xb3,0xb1,0xaf,
+0xad,0xae,0xb3,0xb9,0xbc,0xbb,0xba,0xba,0xba,0xba,0xb9,0xb8,0xb5,0xb0,0xad,0xaa,
+0xb1,0xb2,0xb4,0xb7,0xb8,0xb9,0xb9,0xba,0xb6,0xb6,0xb5,0xb4,0xb3,0xb3,0xb4,0xb5,
+0xb4,0xb5,0xb7,0xb7,0xb7,0xb8,0xbc,0xbf,0xb5,0xb3,0xb5,0xb9,0xbb,0xba,0xb7,0xb5,
+0xb5,0xb3,0xc3,0xe3,0xf6,0xf7,0xf8,0xff,0xf9,0xf9,0xfa,0xfc,0xfb,0xf9,0xf9,0xf9,
+0xfc,0xfd,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xfd,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,0xfb,0xfb,0xfa,0xfa,0xfb,0xfc,0xfc,0xfd,0xfd,0xfe,
+0xfe,0xfe,0xff,0xfe,0xfe,0xfd,0xfb,0xfa,0xfd,0xfa,0xf7,0xf6,0xf6,0xf3,0xee,0xea,
+0xe3,0xde,0xdb,0xdb,0xdc,0xdc,0xdd,0xe0,0xe7,0xea,0xee,0xf1,0xf3,0xf5,0xf7,0xf9,
+0xfa,0xf6,0xf2,0xf2,0xf5,0xf8,0xf8,0xf6,0xf2,0xf6,0xf8,0xf5,0xed,0xdd,0xc4,0xae,
+0xae,0xad,0xac,0xac,0xaa,0xa6,0xa2,0x9e,0x98,0x98,0x97,0x94,0x90,0x8e,0x8c,0x8c,
+0x87,0x88,0x88,0x86,0x83,0x7e,0x7a,0x77,0x72,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,
+0x6d,0x6d,0x6c,0x6b,0x6b,0x6b,0x6c,0x6c,0x6a,0x6a,0x6a,0x6a,0x69,0x69,0x69,0x69,
+0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,
+0x6e,0x6f,0x70,0x72,0x74,0x75,0x76,0x76,0x79,0x79,0x7c,0x7d,0x7c,0x7f,0x7b,0x6f,
+0x52,0x46,0x67,0x8a,0x8f,0x8f,0x90,0x94,0x95,0x95,0x98,0x99,0x9f,0xb1,0xc0,0xc0,
+0xbf,0xbe,0xbd,0xba,0xb9,0xba,0xbe,0xc1,0xc4,0xc4,0xc5,0xc3,0xbd,0xb7,0xb7,0xba,
+0xbe,0xc0,0xb4,0x94,0x76,0x70,0x72,0x6d,0x71,0x73,0x72,0x6d,0x69,0x69,0x68,0x67,
+0x6c,0x6b,0x6a,0x6b,0x6e,0x6f,0x6d,0x69,0x69,0x6c,0x6b,0x64,0x60,0x67,0x73,0x7b,
+0x82,0x7e,0x74,0x67,0x60,0x63,0x6b,0x70,0x7a,0x77,0x72,0x70,0x6f,0x6a,0x60,0x56,
+0x5a,0x60,0x65,0x64,0x5e,0x5a,0x5d,0x62,0x69,0x70,0x79,0x7f,0x81,0x83,0x88,0x8c,
+0x91,0x92,0x93,0x93,0x93,0x93,0x95,0x96,0x96,0x94,0x92,0x91,0x91,0x90,0x90,0x8f,
+0x8d,0x8b,0x89,0x88,0x89,0x88,0x87,0x85,0x7d,0x78,0x6a,0x5e,0x6a,0x7f,0x6c,0x3e,
+0x36,0x39,0x3c,0x41,0x49,0x52,0x57,0x57,0x73,0x77,0x62,0x54,0x44,0x51,0x5e,0x78,
+0x64,0x46,0x26,0x17,0x17,0x1c,0x20,0x25,0x29,0x46,0x5e,0x66,0x70,0x87,0x99,0x9f,
+0xa1,0x9e,0x8f,0x7e,0x75,0x6f,0x67,0x64,0x76,0x74,0x71,0x6d,0x6d,0x74,0x7f,0x87,
+0x7d,0x72,0x6b,0x6a,0x60,0x4a,0x34,0x2b,0x22,0x29,0x41,0x62,0x75,0x73,0x6e,0x6f,
+0x7c,0x75,0x72,0x75,0x6e,0x5d,0x54,0x59,0x5e,0x4e,0x4d,0x66,0x7f,0x81,0x73,0x69,
+0x65,0x60,0x56,0x50,0x55,0x58,0x47,0x30,0x36,0x47,0x61,0x7a,0x87,0x7f,0x64,0x4a,
+0x72,0x84,0x96,0x9e,0x9d,0x93,0x7f,0x6c,0x75,0x82,0x92,0x9a,0x97,0x90,0x8b,0x8a,
+0x76,0x71,0x67,0x5b,0x54,0x58,0x62,0x6c,0x70,0x7a,0x82,0x87,0x86,0x7e,0x7f,0x8b,
+0x96,0x98,0x90,0x8a,0x8e,0x93,0x96,0x9b,0xa5,0xa9,0xa9,0xa7,0xaa,0xb0,0xb2,0xaf,
+0xad,0xb0,0xb4,0xb4,0xaf,0xa7,0xa1,0x9f,0x9c,0xa8,0xb3,0xb7,0xb6,0xb4,0xb1,0xae,
+0xb1,0xb4,0xb7,0xba,0xba,0xb8,0xb5,0xb3,0xb8,0xb7,0xb6,0xb7,0xb8,0xb7,0xb5,0xb3,
+0xb4,0xb4,0xb4,0xb5,0xb6,0xb6,0xb7,0xb7,0xb7,0xb7,0xb7,0xb8,0xb8,0xb7,0xb4,0xb2,
+0xb2,0xb2,0xb3,0xb4,0xb5,0xb6,0xb6,0xb6,0xb5,0xb6,0xb8,0xb9,0xb8,0xb4,0xb0,0xad,
+0xb1,0xb2,0xb2,0xb1,0xb0,0xb0,0xb2,0xb4,0xbc,0xbc,0xb9,0xb3,0xb2,0xb7,0xbc,0xbd,
+0xb9,0xb9,0xba,0xba,0xba,0xba,0xbb,0xbb,0xb4,0xb5,0xb5,0xb6,0xb6,0xb6,0xb5,0xb5,
+0xbb,0xbd,0xbe,0xbc,0xb9,0xb7,0xb8,0xba,0xb5,0xb4,0xb2,0xb2,0xb3,0xb4,0xb4,0xb3,
+0xaf,0xb0,0xae,0xae,0xb1,0xb6,0xb7,0xb4,0xb4,0xb4,0xb5,0xb6,0xb6,0xb4,0xb3,0xb3,
+0xb0,0xaf,0xb1,0xb4,0xb5,0xb3,0xb2,0xb3,0xb5,0xb7,0xb9,0xbb,0xba,0xb7,0xb4,0xb1,
+0xb4,0xb3,0xb2,0xb1,0xb1,0xb1,0xb1,0xb0,0xb5,0xb5,0xb6,0xb6,0xb6,0xb6,0xb5,0xb4,
+0xb8,0xb9,0xb9,0xb8,0xb6,0xb7,0xb9,0xbb,0xbf,0xba,0xb6,0xb5,0xb4,0xb3,0xb6,0xbb,
+0xb4,0xca,0xe3,0xf3,0xfa,0xfc,0xf7,0xf0,0xe5,0xe0,0xdc,0xd9,0xd9,0xe0,0xef,0xfd,
+0xfb,0xfd,0xfd,0xfc,0xfa,0xfb,0xfc,0xfd,0xfd,0xfd,0xfe,0xff,0xff,0xff,0xfe,0xfe,
+0xfd,0xfd,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfd,0xfd,0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xf9,0xfa,0xfa,0xfb,0xfc,0xfd,0xfd,0xfe,
+0xfd,0xfe,0xfe,0xfe,0xfe,0xfd,0xfb,0xfb,0xfe,0xfb,0xf8,0xf7,0xf7,0xf6,0xf1,0xed,
+0xe9,0xe3,0xde,0xdc,0xdb,0xd9,0xd9,0xda,0xe0,0xe3,0xe8,0xed,0xf0,0xf2,0xf4,0xf5,
+0xfc,0xf7,0xf1,0xf0,0xf3,0xf6,0xf6,0xf5,0xfa,0xf7,0xf1,0xef,0xf4,0xf5,0xe6,0xd3,
+0xb5,0xb0,0xad,0xaf,0xb2,0xb1,0xa8,0x9f,0x9e,0x9e,0x9c,0x98,0x93,0x90,0x8e,0x8e,
+0x87,0x88,0x89,0x89,0x88,0x85,0x83,0x81,0x7c,0x7a,0x78,0x75,0x72,0x71,0x71,0x71,
+0x6c,0x6d,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,
+0x6f,0x70,0x72,0x73,0x75,0x75,0x76,0x76,0x78,0x78,0x7b,0x7c,0x7b,0x7e,0x7c,0x70,
+0x53,0x41,0x5f,0x84,0x8e,0x91,0x91,0x93,0x95,0x95,0x99,0x9b,0x9f,0xaf,0xbf,0xc3,
+0xc0,0xbe,0xbc,0xba,0xba,0xbc,0xc0,0xc2,0xc4,0xc5,0xc6,0xc4,0xbd,0xb6,0xb5,0xb7,
+0xbc,0xbf,0xbd,0xa6,0x81,0x6c,0x6d,0x73,0x7c,0x7c,0x76,0x6d,0x65,0x64,0x65,0x66,
+0x6a,0x6c,0x6e,0x6d,0x6b,0x6a,0x6d,0x70,0x77,0x76,0x6f,0x65,0x5f,0x63,0x6d,0x75,
+0x76,0x73,0x6e,0x69,0x6a,0x70,0x75,0x76,0x79,0x73,0x6f,0x6e,0x6e,0x68,0x5f,0x58,
+0x62,0x66,0x67,0x63,0x5d,0x5c,0x61,0x66,0x6a,0x71,0x7a,0x7e,0x80,0x82,0x86,0x8a,
+0x8e,0x8f,0x90,0x8f,0x8f,0x90,0x91,0x93,0x92,0x90,0x8e,0x8d,0x8e,0x8f,0x8f,0x8f,
+0x8d,0x8b,0x88,0x87,0x87,0x86,0x82,0x7f,0x78,0x6f,0x61,0x56,0x5e,0x6f,0x69,0x4e,
+0x38,0x34,0x3c,0x55,0x71,0x83,0x8c,0x91,0x8c,0x9e,0x9f,0x9b,0x80,0x71,0x5d,0x5b,
+0x63,0x4e,0x35,0x24,0x1f,0x29,0x40,0x56,0x68,0x85,0xa2,0xad,0xac,0xaa,0xa8,0xa6,
+0xac,0xb5,0xb8,0xba,0xbd,0xb3,0x99,0x85,0x72,0x7b,0x85,0x87,0x81,0x7d,0x81,0x86,
+0x98,0x90,0x7f,0x69,0x55,0x42,0x2f,0x21,0x25,0x43,0x53,0x46,0x3b,0x49,0x60,0x6c,
+0x71,0x6a,0x67,0x68,0x68,0x69,0x71,0x77,0x8c,0x8b,0x81,0x74,0x72,0x77,0x73,0x69,
+0x51,0x4e,0x48,0x40,0x38,0x2f,0x26,0x20,0x3b,0x39,0x40,0x52,0x66,0x75,0x80,0x88,
+0x94,0x9b,0xa3,0xa6,0xa6,0xab,0xb8,0xc6,0xcc,0xcd,0xcc,0xc6,0xbf,0xbb,0xbb,0xbe,
+0x6a,0x67,0x62,0x5b,0x59,0x5e,0x68,0x71,0x72,0x78,0x7a,0x7c,0x7c,0x78,0x7d,0x8a,
+0x99,0x9a,0x92,0x8a,0x8d,0x91,0x94,0x99,0xa5,0xa8,0xaa,0xaa,0xaa,0xad,0xaf,0xaf,
+0xb2,0xb4,0xb5,0xae,0xa1,0x93,0x8e,0x90,0x95,0xa4,0xb3,0xb8,0xb9,0xbb,0xbd,0xbd,
+0xb7,0xb8,0xb8,0xba,0xbb,0xbd,0xbe,0xbf,0xb9,0xb7,0xb5,0xb6,0xb9,0xba,0xb9,0xb6,
+0xb6,0xb5,0xb5,0xb6,0xb7,0xb9,0xba,0xbc,0xb8,0xb8,0xb8,0xb9,0xb9,0xb7,0xb4,0xb1,
+0xb3,0xb2,0xb1,0xb2,0xb4,0xb5,0xb3,0xb2,0xaf,0xb0,0xb3,0xb6,0xb8,0xb7,0xb4,0xb2,
+0xac,0xb1,0xb5,0xb4,0xb1,0xb1,0xb1,0xb0,0xb6,0xb6,0xb1,0xa9,0xa9,0xb0,0xb8,0xb9,
+0xb5,0xb5,0xb6,0xb6,0xb6,0xb7,0xb7,0xb7,0xb5,0xb5,0xb7,0xb8,0xb8,0xb8,0xb8,0xb7,
+0xb2,0xb3,0xb4,0xb4,0xb3,0xb3,0xb5,0xb7,0xb9,0xb7,0xb6,0xb6,0xb7,0xb7,0xb7,0xb6,
+0xb6,0xb4,0xae,0xa8,0xaa,0xb0,0xb3,0xb1,0xb3,0xb2,0xb4,0xb7,0xb7,0xb5,0xb4,0xb5,
+0xb5,0xb2,0xb0,0xaf,0xac,0xa8,0xa7,0xa7,0xaf,0xb0,0xb2,0xb5,0xb8,0xba,0xbc,0xbd,
+0xb5,0xb3,0xb1,0xb1,0xb3,0xb6,0xb8,0xb9,0xb7,0xb8,0xb9,0xbb,0xbd,0xbd,0xbc,0xba,
+0xb6,0xb8,0xba,0xbc,0xbc,0xbb,0xbb,0xbb,0xc4,0xc2,0xc2,0xc2,0xbd,0xb9,0xbb,0xc1,
+0xd7,0xef,0xff,0xf8,0xe9,0xdd,0xcf,0xc0,0xb9,0xb3,0xad,0xaa,0xac,0xb9,0xd1,0xe7,
+0xf9,0xfb,0xfb,0xf7,0xf3,0xf3,0xf5,0xf5,0xfa,0xfb,0xfc,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xfc,0xfc,0xfd,0xfd,
+0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfb,0xfb,0xfe,0xfc,0xfa,0xf9,0xf9,0xf8,0xf5,0xf2,
+0xee,0xe8,0xe2,0xdf,0xdd,0xda,0xd7,0xd7,0xd8,0xdb,0xe0,0xe6,0xeb,0xee,0xf0,0xf1,
+0xf5,0xf8,0xfa,0xf8,0xf4,0xf1,0xf2,0xf4,0xf4,0xf9,0xf8,0xef,0xe9,0xec,0xf2,0xf6,
+0xdf,0xd0,0xbc,0xb0,0xad,0xae,0xae,0xac,0xa7,0xa5,0xa2,0x9e,0x9a,0x96,0x93,0x91,
+0x8b,0x89,0x86,0x83,0x82,0x82,0x83,0x84,0x85,0x83,0x7f,0x7b,0x78,0x76,0x75,0x75,
+0x6f,0x70,0x71,0x72,0x72,0x71,0x70,0x6f,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,
+0x71,0x72,0x74,0x75,0x76,0x76,0x76,0x76,0x78,0x78,0x7c,0x7c,0x7a,0x7d,0x7b,0x70,
+0x51,0x48,0x65,0x85,0x91,0x94,0x90,0x92,0x94,0x95,0x9a,0x9b,0x9d,0xab,0xbd,0xc3,
+0xc0,0xbf,0xbc,0xbb,0xbb,0xbe,0xc1,0xc4,0xc5,0xc6,0xc7,0xc5,0xbe,0xb7,0xb5,0xb7,
+0xbb,0xbf,0xc0,0xb2,0x90,0x6f,0x69,0x75,0x78,0x77,0x72,0x68,0x62,0x62,0x66,0x68,
+0x65,0x6b,0x72,0x73,0x6e,0x6a,0x6d,0x74,0x73,0x71,0x6d,0x68,0x66,0x68,0x6d,0x71,
+0x6c,0x69,0x64,0x63,0x68,0x70,0x72,0x70,0x6d,0x67,0x64,0x69,0x6c,0x69,0x66,0x65,
+0x6d,0x6d,0x69,0x63,0x61,0x65,0x6a,0x6d,0x6d,0x72,0x79,0x7d,0x7e,0x80,0x83,0x86,
+0x8a,0x8b,0x8d,0x8d,0x8d,0x8d,0x8e,0x8f,0x8f,0x8d,0x8b,0x8b,0x8c,0x8e,0x8e,0x8e,
+0x8d,0x8a,0x86,0x85,0x85,0x83,0x7e,0x79,0x78,0x6b,0x5e,0x53,0x4f,0x54,0x55,0x4b,
+0x4d,0x42,0x36,0x37,0x46,0x58,0x5f,0x5f,0x66,0x79,0x8e,0xa1,0xa3,0xa3,0x95,0x89,
+0x6f,0x5e,0x49,0x3d,0x41,0x53,0x6c,0x7f,0x6f,0x5d,0x4e,0x4b,0x4a,0x4a,0x54,0x61,
+0x6b,0x74,0x82,0x92,0xa1,0xa5,0x92,0x7b,0x65,0x6f,0x81,0x91,0x98,0x95,0x91,0x8f,
+0x94,0x8b,0x72,0x53,0x42,0x42,0x43,0x3e,0x3c,0x44,0x5a,0x6d,0x64,0x4c,0x47,0x54,
+0x51,0x51,0x56,0x56,0x4d,0x4b,0x4b,0x47,0x35,0x3f,0x54,0x6f,0x82,0x7c,0x5e,0x41,
+0x4b,0x49,0x44,0x37,0x29,0x2e,0x4c,0x6b,0x7c,0x66,0x51,0x51,0x5f,0x76,0x91,0xa6,
+0xa0,0xa1,0xa6,0xac,0xae,0xae,0xb2,0xba,0xaf,0xae,0xad,0xa9,0xa5,0xa1,0xa0,0x9f,
+0x5f,0x5e,0x5c,0x59,0x59,0x5f,0x68,0x6f,0x6e,0x73,0x74,0x77,0x79,0x77,0x7d,0x8c,
+0x98,0x9a,0x92,0x8a,0x8d,0x90,0x92,0x96,0x9b,0x9f,0xa7,0xac,0xab,0xa7,0xa6,0xa8,
+0xaa,0xa9,0xa6,0x9e,0x92,0x8a,0x8d,0x95,0xaf,0xb8,0xbc,0xb7,0xb3,0xb4,0xb5,0xb3,
+0xb4,0xb4,0xb4,0xb4,0xb6,0xb8,0xba,0xbc,0xb9,0xb5,0xb2,0xb4,0xb9,0xbc,0xbc,0xb9,
+0xb7,0xb7,0xb8,0xb8,0xb9,0xb9,0xba,0xba,0xb9,0xb9,0xb9,0xb9,0xb8,0xb4,0xaf,0xac,
+0xb4,0xb4,0xb4,0xb3,0xb1,0xb0,0xaf,0xae,0xb4,0xb3,0xb2,0xb2,0xb3,0xb2,0xb0,0xae,
+0xb3,0xb6,0xb7,0xb5,0xb4,0xb5,0xb3,0xb0,0xaf,0xaf,0xa8,0xa0,0xa1,0xab,0xb1,0xb2,
+0xb2,0xb1,0xb0,0xaf,0xb0,0xb1,0xb3,0xb4,0xb3,0xb3,0xb4,0xb5,0xb5,0xb5,0xb5,0xb5,
+0xb2,0xb3,0xb4,0xb5,0xb5,0xb6,0xb7,0xb7,0xb7,0xb6,0xb6,0xb7,0xb8,0xb9,0xb8,0xb7,
+0xba,0xba,0xb4,0xab,0xab,0xb1,0xb4,0xb2,0xb3,0xb2,0xb3,0xb7,0xb8,0xb5,0xb4,0xb6,
+0xbf,0xbc,0xb9,0xb9,0xb6,0xb2,0xb1,0xb2,0xc3,0xc1,0xbe,0xbc,0xba,0xba,0xbb,0xbb,
+0xbf,0xbb,0xb7,0xb5,0xb5,0xb7,0xb7,0xb8,0xbb,0xba,0xba,0xbc,0xbe,0xc0,0xbf,0xbe,
+0xb6,0xb7,0xb8,0xba,0xbd,0xbe,0xbe,0xbd,0xb8,0xba,0xbe,0xc2,0xbf,0xbd,0xc6,0xd2,
+0xf3,0xf3,0xef,0xe1,0xcb,0xb6,0xad,0xad,0xbc,0xbe,0xc7,0xd0,0xd2,0xd1,0xd7,0xe0,
+0xf2,0xf7,0xf8,0xf4,0xf0,0xf1,0xf1,0xf0,0xf8,0xf9,0xfb,0xfd,0xfe,0xfe,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfc,0xfc,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xfa,0xfa,0xfb,0xfb,0xfc,0xfc,0xfd,0xfd,
+0xfd,0xfd,0xfe,0xfe,0xfe,0xfd,0xfc,0xfb,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf8,
+0xf5,0xee,0xe8,0xe6,0xe3,0xdf,0xdc,0xda,0xd6,0xd8,0xdb,0xe0,0xe5,0xea,0xec,0xee,
+0xee,0xf3,0xf9,0xfa,0xf7,0xf4,0xf3,0xf4,0xf3,0xef,0xeb,0xec,0xf0,0xf4,0xf3,0xf0,
+0xf9,0xee,0xdc,0xc7,0xb7,0xb0,0xb1,0xb4,0xae,0xab,0xa8,0xa5,0xa2,0x9e,0x99,0x96,
+0x91,0x8e,0x89,0x84,0x81,0x80,0x80,0x81,0x82,0x82,0x82,0x81,0x80,0x7f,0x7d,0x7d,
+0x77,0x77,0x76,0x76,0x75,0x74,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x73,0x74,
+0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,
+0x73,0x74,0x76,0x77,0x78,0x78,0x77,0x77,0x79,0x7a,0x7e,0x7d,0x7b,0x7d,0x7b,0x70,
+0x57,0x5c,0x76,0x88,0x90,0x92,0x8c,0x92,0x95,0x96,0x9b,0x9b,0x9a,0xa7,0xb9,0xc1,
+0xc2,0xc0,0xbd,0xbc,0xbd,0xc0,0xc3,0xc5,0xc5,0xc6,0xc8,0xc7,0xc1,0xb9,0xb7,0xb8,
+0xb8,0xbf,0xbe,0xb5,0xa0,0x7c,0x6c,0x77,0x71,0x72,0x6f,0x67,0x62,0x63,0x67,0x6a,
+0x6b,0x6f,0x75,0x76,0x70,0x6b,0x6e,0x75,0x6a,0x68,0x66,0x66,0x67,0x69,0x6b,0x6d,
+0x71,0x6c,0x64,0x61,0x65,0x6c,0x70,0x6f,0x69,0x62,0x60,0x65,0x69,0x67,0x67,0x6b,
+0x71,0x6d,0x66,0x60,0x62,0x6a,0x6f,0x6f,0x6f,0x72,0x76,0x79,0x7b,0x7e,0x80,0x82,
+0x84,0x85,0x88,0x89,0x88,0x88,0x89,0x8a,0x89,0x88,0x87,0x87,0x88,0x8a,0x8a,0x8a,
+0x8a,0x86,0x83,0x82,0x82,0x7f,0x79,0x74,0x67,0x5e,0x58,0x53,0x4d,0x4e,0x51,0x4e,
+0x50,0x43,0x30,0x25,0x2e,0x45,0x5a,0x65,0x6f,0x73,0x7d,0x7f,0x82,0x7d,0x73,0x60,
+0x58,0x4c,0x3f,0x3a,0x40,0x47,0x45,0x3e,0x3b,0x48,0x57,0x5e,0x5e,0x66,0x7e,0x96,
+0xa1,0x9f,0x9a,0x84,0x6d,0x75,0x8a,0x8f,0x94,0x96,0x9d,0xa8,0xaf,0xae,0xab,0xa9,
+0xa6,0x9f,0x8c,0x6f,0x56,0x47,0x3d,0x35,0x37,0x51,0x64,0x61,0x5c,0x5d,0x5a,0x51,
+0x58,0x48,0x42,0x41,0x3e,0x43,0x49,0x45,0x4f,0x56,0x66,0x6f,0x62,0x4a,0x43,0x4b,
+0x43,0x39,0x31,0x32,0x3d,0x50,0x68,0x7a,0x8a,0x87,0x87,0x8a,0x90,0x96,0x9c,0xa0,
+0x92,0x90,0x91,0x96,0x9f,0xa3,0xa0,0x9a,0x99,0x95,0x8e,0x8a,0x8a,0x90,0x98,0x9e,
+0x5a,0x58,0x55,0x51,0x50,0x55,0x5e,0x65,0x64,0x6a,0x6f,0x75,0x7a,0x78,0x7d,0x8b,
+0x91,0x94,0x8f,0x8c,0x91,0x95,0x98,0x9c,0x9e,0xa0,0xa5,0xaa,0xa7,0xa2,0xa5,0xac,
+0xae,0xaa,0xa6,0xa1,0x9d,0x9f,0xac,0xb9,0xb2,0xb5,0xb2,0xaa,0xa8,0xae,0xb2,0xb1,
+0xb4,0xb5,0xb7,0xb8,0xb9,0xb8,0xb7,0xb7,0xb6,0xb1,0xad,0xaf,0xb5,0xb9,0xb8,0xb6,
+0xb7,0xb8,0xb9,0xb9,0xb9,0xb8,0xb6,0xb5,0xb3,0xb4,0xb5,0xb6,0xb6,0xb3,0xaf,0xac,
+0xb0,0xb3,0xb7,0xb6,0xb4,0xb3,0xb6,0xb9,0xb5,0xb3,0xb1,0xb1,0xb3,0xb6,0xb7,0xb7,
+0xba,0xb9,0xb6,0xb3,0xb6,0xbb,0xbc,0xb9,0xb6,0xb6,0xaf,0xa7,0xa8,0xb1,0xb6,0xb4,
+0xb2,0xb0,0xae,0xac,0xad,0xaf,0xb3,0xb5,0xb7,0xb7,0xb8,0xb8,0xb8,0xb8,0xb8,0xb8,
+0xb4,0xb4,0xb5,0xb7,0xb8,0xb7,0xb6,0xb4,0xb5,0xb5,0xb5,0xb7,0xb9,0xba,0xb9,0xb8,
+0xad,0xb1,0xb1,0xad,0xae,0xb5,0xb7,0xb5,0xb5,0xb3,0xb4,0xb9,0xb9,0xb6,0xb5,0xb7,
+0xb8,0xb7,0xb6,0xb8,0xb9,0xb7,0xb8,0xba,0xb5,0xb5,0xb5,0xb6,0xb8,0xba,0xbb,0xbc,
+0xb5,0xb2,0xb0,0xb0,0xb2,0xb6,0xb7,0xb8,0xbb,0xb9,0xb7,0xb7,0xb9,0xba,0xba,0xba,
+0xc0,0xbc,0xb8,0xb6,0xb8,0xba,0xbb,0xbb,0xbc,0xb9,0xb8,0xb9,0xbb,0xc6,0xdf,0xf8,
+0xfd,0xf1,0xda,0xc3,0xb8,0xbe,0xcd,0xd8,0xd2,0xcc,0xcb,0xcd,0xce,0xcd,0xd4,0xdd,
+0xeb,0xf2,0xf6,0xf4,0xf1,0xf2,0xf2,0xf1,0xf6,0xf8,0xfa,0xfc,0xfe,0xfe,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfd,0xfd,
+0xfd,0xfe,0xfe,0xff,0xff,0xfe,0xfd,0xfc,0xfc,0xfc,0xfd,0xfc,0xfb,0xfa,0xfa,0xfb,
+0xfa,0xf3,0xee,0xec,0xea,0xe5,0xe1,0xdf,0xdb,0xda,0xdb,0xde,0xe2,0xe7,0xea,0xec,
+0xeb,0xea,0xeb,0xf1,0xf6,0xf9,0xf6,0xf3,0xe6,0xea,0xef,0xf1,0xef,0xee,0xf2,0xf8,
+0xe8,0xf1,0xf7,0xec,0xd5,0xbf,0xb3,0xb0,0xb2,0xae,0xaa,0xa8,0xa7,0xa3,0x9d,0x98,
+0x96,0x94,0x91,0x8c,0x88,0x85,0x82,0x81,0x7a,0x7d,0x80,0x84,0x86,0x86,0x85,0x84,
+0x7e,0x7d,0x7a,0x78,0x77,0x76,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x75,0x76,0x76,
+0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x76,
+0x74,0x76,0x77,0x79,0x79,0x79,0x78,0x78,0x7a,0x7b,0x7f,0x7f,0x7b,0x7d,0x7a,0x6f,
+0x63,0x70,0x84,0x88,0x8c,0x8d,0x89,0x94,0x96,0x97,0x9b,0x9b,0x98,0xa3,0xb6,0xbe,
+0xc3,0xc1,0xbe,0xbd,0xbf,0xc2,0xc5,0xc7,0xc6,0xc7,0xc9,0xc9,0xc2,0xbb,0xb8,0xba,
+0xb3,0xbe,0xbb,0xb4,0xaa,0x8a,0x72,0x78,0x78,0x79,0x76,0x6d,0x65,0x63,0x65,0x67,
+0x77,0x77,0x76,0x75,0x6f,0x6a,0x6e,0x76,0x6e,0x69,0x64,0x65,0x67,0x6a,0x6c,0x6d,
+0x71,0x70,0x6d,0x6c,0x70,0x75,0x76,0x74,0x6e,0x66,0x62,0x65,0x66,0x62,0x63,0x69,
+0x71,0x6b,0x62,0x5d,0x62,0x6c,0x6f,0x6d,0x70,0x71,0x74,0x76,0x79,0x7c,0x7d,0x7e,
+0x7e,0x80,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x83,0x84,0x85,0x86,0x85,
+0x86,0x82,0x7f,0x7e,0x7f,0x7c,0x76,0x70,0x67,0x61,0x5e,0x59,0x51,0x4f,0x4d,0x47,
+0x54,0x46,0x37,0x2e,0x2d,0x37,0x4e,0x64,0x7f,0x82,0x91,0x8b,0x8d,0x82,0x7d,0x69,
+0x5a,0x51,0x40,0x32,0x32,0x3e,0x47,0x48,0x51,0x55,0x53,0x56,0x73,0x94,0x93,0x7c,
+0x68,0x58,0x52,0x50,0x54,0x70,0x84,0x79,0x6a,0x6e,0x7a,0x8a,0x98,0xa2,0xac,0xb4,
+0xc0,0xbe,0xb9,0xae,0x9f,0x91,0x89,0x86,0x7e,0x7a,0x6e,0x62,0x63,0x6c,0x6b,0x63,
+0x68,0x6a,0x78,0x73,0x4f,0x31,0x2a,0x27,0x2d,0x45,0x57,0x54,0x45,0x3b,0x37,0x36,
+0x5b,0x71,0x88,0x8d,0x83,0x7a,0x7d,0x83,0x75,0x87,0x90,0x82,0x6e,0x69,0x72,0x7b,
+0x8d,0x95,0x96,0x8f,0x8c,0x90,0x8f,0x88,0x7d,0x79,0x71,0x6a,0x66,0x68,0x6e,0x73,
+0x4e,0x54,0x59,0x57,0x56,0x58,0x5a,0x5a,0x65,0x67,0x6c,0x71,0x73,0x77,0x80,0x89,
+0x94,0x94,0x96,0x99,0x9a,0x9b,0x9c,0x9f,0xa4,0xa9,0xae,0xad,0xa9,0xa7,0xa9,0xad,
+0xae,0xae,0xaa,0xa7,0xa8,0xae,0xb3,0xb5,0xb7,0xb7,0xb4,0xb0,0xae,0xb2,0xb5,0xb7,
+0xbe,0xbb,0xb9,0xb8,0xb9,0xba,0xba,0xb9,0xad,0xa6,0xa8,0xb3,0xbc,0xbb,0xb7,0xb6,
+0xb7,0xb6,0xb6,0xb8,0xbb,0xba,0xb6,0xb2,0xb4,0xb4,0xb6,0xb7,0xb7,0xb6,0xb5,0xb5,
+0xb2,0xb3,0xb6,0xb8,0xb6,0xb4,0xb6,0xbb,0xb9,0xb7,0xb5,0xb3,0xb3,0xb5,0xb6,0xb8,
+0xb9,0xb8,0xb5,0xb4,0xb7,0xba,0xb9,0xb5,0xb2,0xb0,0xac,0xab,0xaf,0xb5,0xb6,0xb4,
+0xb5,0xb4,0xb1,0xb0,0xaf,0xad,0xab,0xa9,0xad,0xaf,0xb3,0xb5,0xb6,0xb6,0xb4,0xb2,
+0xaf,0xb2,0xb6,0xb8,0xb9,0xb8,0xb7,0xb7,0xb6,0xb6,0xb7,0xb8,0xb7,0xb6,0xb5,0xb4,
+0xb2,0xb1,0xaf,0xac,0xae,0xb4,0xb9,0xba,0xb9,0xb5,0xb2,0xb1,0xb3,0xb7,0xb9,0xb9,
+0xbc,0xb6,0xb2,0xb5,0xbb,0xbf,0xbb,0xb6,0xa9,0xaf,0xb7,0xba,0xb9,0xb6,0xb4,0xb4,
+0xb3,0xb3,0xb3,0xb3,0xb4,0xb4,0xb5,0xb5,0xbc,0xbf,0xbf,0xbb,0xba,0xbd,0xbf,0xbe,
+0xc2,0xc0,0xbd,0xba,0xb8,0xba,0xbd,0xbf,0xbe,0xbe,0xbe,0xbd,0xcb,0xe8,0xf9,0xf4,
+0xde,0xd3,0xc8,0xc6,0xcb,0xcb,0xc2,0xb9,0xb9,0xbd,0xc1,0xc3,0xc3,0xc4,0xc5,0xc6,
+0xcd,0xd7,0xe5,0xf4,0xfd,0xff,0xff,0xfd,0xf9,0xfc,0xfe,0xfe,0xfe,0xff,0xff,0xfd,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfd,0xfd,
+0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfc,0xfa,0xfb,0xfc,0xfd,0xfd,0xfc,0xfb,0xfa,
+0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfb,0xfa,
+0xf8,0xf7,0xf5,0xf3,0xf1,0xed,0xe8,0xe4,0xe0,0xde,0xdc,0xdc,0xde,0xe0,0xe1,0xe2,
+0xe4,0xe9,0xed,0xee,0xed,0xef,0xf6,0xfc,0xf5,0xf2,0xee,0xee,0xf0,0xf4,0xf6,0xf7,
+0xf2,0xef,0xef,0xf1,0xf0,0xe6,0xd3,0xc4,0xb3,0xaf,0xac,0xad,0xab,0xa6,0xa2,0xa3,
+0x9a,0x98,0x96,0x93,0x90,0x8d,0x89,0x86,0x7d,0x7e,0x7d,0x7c,0x7c,0x7e,0x82,0x85,
+0x87,0x87,0x86,0x84,0x82,0x7f,0x7c,0x7b,0x79,0x77,0x75,0x75,0x77,0x78,0x77,0x76,
+0x76,0x75,0x74,0x74,0x74,0x74,0x75,0x75,0x77,0x76,0x75,0x75,0x77,0x78,0x78,0x78,
+0x78,0x78,0x77,0x78,0x78,0x79,0x79,0x7a,0x7d,0x7b,0x79,0x7b,0x7d,0x7b,0x76,0x71,
+0x6d,0x84,0x94,0x90,0x87,0x88,0x8b,0x8c,0x96,0x9a,0x99,0x9b,0x96,0x9c,0xb5,0xbe,
+0xc5,0xc3,0xc0,0xbf,0xc1,0xc4,0xc7,0xc8,0xc8,0xc8,0xca,0xc9,0xc4,0xbd,0xb9,0xba,
+0xb9,0xb0,0xbd,0xba,0xae,0x9f,0x7d,0x6d,0x75,0x6e,0x6f,0x71,0x69,0x64,0x6a,0x6f,
+0x75,0x78,0x7a,0x78,0x73,0x6f,0x6e,0x70,0x72,0x72,0x71,0x6f,0x6c,0x6a,0x6b,0x6e,
+0x71,0x6e,0x69,0x66,0x69,0x6f,0x72,0x71,0x61,0x64,0x67,0x66,0x65,0x66,0x69,0x6a,
+0x70,0x65,0x61,0x63,0x66,0x6e,0x71,0x6d,0x6d,0x6e,0x71,0x75,0x78,0x7b,0x7d,0x7d,
+0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x81,0x81,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x82,
+0x83,0x81,0x80,0x7e,0x7b,0x77,0x72,0x6f,0x6c,0x66,0x62,0x5c,0x49,0x37,0x3b,0x4c,
+0x57,0x49,0x39,0x2f,0x2e,0x34,0x41,0x4e,0x62,0x6a,0x77,0x80,0x7d,0x70,0x63,0x5b,
+0x4f,0x41,0x33,0x33,0x3e,0x47,0x46,0x42,0x4e,0x66,0x7f,0x84,0x75,0x5b,0x3e,0x2b,
+0x33,0x4c,0x57,0x5b,0x5d,0x4c,0x3f,0x4a,0x48,0x48,0x4a,0x52,0x63,0x7c,0x91,0x9d,
+0xa6,0xaf,0xb7,0xb9,0xb7,0xb2,0xab,0xa4,0x99,0x91,0x8a,0x8b,0x8f,0x85,0x69,0x4f,
+0x4b,0x56,0x6a,0x76,0x67,0x45,0x28,0x1d,0x1d,0x3f,0x50,0x58,0x30,0x33,0x2d,0x33,
+0x37,0x32,0x29,0x20,0x1f,0x28,0x36,0x3f,0x4d,0x45,0x3d,0x3f,0x49,0x4e,0x49,0x41,
+0x40,0x3e,0x41,0x4a,0x50,0x52,0x55,0x5a,0x5c,0x66,0x64,0x5e,0x60,0x62,0x5d,0x59,
+0x55,0x55,0x57,0x5a,0x59,0x56,0x57,0x5d,0x67,0x68,0x6a,0x70,0x74,0x79,0x7f,0x85,
+0x94,0x9a,0xa0,0xa3,0xa3,0xa4,0xa4,0xa5,0xaa,0xaf,0xb1,0xad,0xa6,0xa3,0xa9,0xb0,
+0xb6,0xb6,0xb4,0xb0,0xaf,0xb1,0xb4,0xb4,0xb7,0xb8,0xb5,0xb0,0xae,0xb1,0xb6,0xb8,
+0xb9,0xb7,0xb5,0xb5,0xb7,0xb8,0xb9,0xb9,0xb5,0xad,0xa9,0xae,0xb4,0xb5,0xb5,0xb8,
+0xb7,0xb5,0xb5,0xb6,0xb8,0xb7,0xb4,0xb0,0xb1,0xb3,0xb6,0xb8,0xb9,0xb8,0xb6,0xb5,
+0xb1,0xb2,0xb6,0xb7,0xb5,0xb1,0xb1,0xb4,0xb5,0xb5,0xb5,0xb4,0xb4,0xb3,0xb3,0xb3,
+0xb4,0xb5,0xb5,0xb4,0xb6,0xb9,0xb9,0xb7,0xb1,0xb0,0xae,0xae,0xb2,0xb9,0xbc,0xbb,
+0xb5,0xb3,0xaf,0xad,0xac,0xad,0xae,0xae,0xae,0xaf,0xb2,0xb4,0xb5,0xb5,0xb5,0xb4,
+0xb4,0xb6,0xb9,0xbb,0xbb,0xbc,0xbc,0xbd,0xbf,0xbd,0xba,0xb8,0xb7,0xb7,0xb8,0xb9,
+0xbc,0xbc,0xba,0xb9,0xbb,0xbf,0xc0,0xbe,0xbb,0xba,0xb8,0xb7,0xb8,0xba,0xbb,0xbc,
+0xb4,0xb5,0xb9,0xbe,0xc0,0xb8,0xaa,0x9e,0xa5,0xac,0xb6,0xbd,0xbe,0xbc,0xbb,0xba,
+0xbf,0xbf,0xbe,0xbe,0xbd,0xbd,0xbe,0xbe,0xbe,0xc1,0xc1,0xbd,0xbd,0xc0,0xc3,0xc2,
+0xc0,0xbe,0xbb,0xb9,0xb8,0xb9,0xbb,0xbd,0xc2,0xb7,0xb9,0xce,0xea,0xfd,0xf3,0xd9,
+0xcf,0xce,0xcc,0xc6,0xbf,0xbb,0xb9,0xb9,0xbf,0xc2,0xc6,0xc7,0xc4,0xbf,0xbb,0xb9,
+0xbf,0xc5,0xd1,0xde,0xea,0xf3,0xf9,0xfc,0xfe,0xfe,0xfc,0xfa,0xfc,0xff,0xff,0xfe,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfd,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfc,0xfc,0xfd,0xfe,0xfe,0xfd,0xfc,0xfc,
+0xfb,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xff,0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfb,0xfb,
+0xfc,0xfb,0xf9,0xf8,0xf5,0xf2,0xee,0xeb,0xe6,0xe2,0xde,0xdb,0xda,0xdb,0xdb,0xdc,
+0xe1,0xe2,0xe5,0xe6,0xe7,0xea,0xef,0xf3,0xf6,0xf5,0xf3,0xf3,0xf2,0xf2,0xf1,0xef,
+0xf3,0xf0,0xef,0xef,0xf1,0xf0,0xec,0xe9,0xcf,0xbc,0xab,0xaa,0xb1,0xb3,0xac,0xa4,
+0xa7,0xa5,0xa1,0x99,0x91,0x8d,0x8c,0x8d,0x86,0x86,0x84,0x81,0x7e,0x7d,0x7e,0x7f,
+0x82,0x84,0x85,0x87,0x88,0x87,0x86,0x85,0x83,0x81,0x7f,0x7e,0x7e,0x7d,0x7a,0x78,
+0x78,0x78,0x78,0x78,0x78,0x79,0x7b,0x7b,0x78,0x77,0x77,0x77,0x79,0x7a,0x7b,0x7a,
+0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7a,0x74,0x6f,
+0x76,0x85,0x90,0x8d,0x87,0x89,0x8e,0x91,0x98,0x9a,0x99,0x9c,0x95,0x99,0xb3,0xbe,
+0xc5,0xc2,0xc0,0xc0,0xc2,0xc5,0xc7,0xc9,0xc9,0xc9,0xca,0xc9,0xc4,0xbc,0xb9,0xb9,
+0xb9,0xb2,0xbe,0xbc,0xb3,0xa8,0x87,0x72,0x74,0x6e,0x70,0x74,0x71,0x71,0x75,0x76,
+0x75,0x77,0x77,0x75,0x72,0x70,0x71,0x73,0x74,0x76,0x75,0x71,0x6c,0x6a,0x6b,0x6c,
+0x71,0x6f,0x6a,0x67,0x68,0x6d,0x6f,0x6e,0x66,0x6a,0x6d,0x6e,0x6d,0x6e,0x6f,0x70,
+0x71,0x68,0x65,0x64,0x63,0x69,0x6e,0x6c,0x6d,0x6f,0x71,0x74,0x76,0x78,0x79,0x7a,
+0x7b,0x7b,0x7c,0x7e,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x7f,
+0x80,0x7f,0x7d,0x7b,0x79,0x75,0x70,0x6d,0x6e,0x64,0x5b,0x52,0x40,0x30,0x34,0x44,
+0x4d,0x44,0x3b,0x3f,0x51,0x63,0x64,0x5d,0x4c,0x43,0x42,0x47,0x42,0x37,0x39,0x44,
+0x41,0x3d,0x39,0x38,0x3e,0x4a,0x57,0x60,0x69,0x63,0x56,0x44,0x33,0x2a,0x29,0x2b,
+0x3d,0x61,0x71,0x68,0x5d,0x48,0x36,0x38,0x51,0x59,0x5c,0x51,0x3e,0x34,0x35,0x3b,
+0x5f,0x79,0x8e,0x96,0xa6,0xc1,0xce,0xcb,0xbe,0xb7,0xa6,0x91,0x81,0x7a,0x79,0x7a,
+0x69,0x73,0x78,0x75,0x74,0x71,0x61,0x4c,0x22,0x4f,0x65,0x63,0x33,0x33,0x31,0x38,
+0x29,0x26,0x25,0x2d,0x3b,0x44,0x41,0x3a,0x3f,0x45,0x4a,0x47,0x40,0x3c,0x3d,0x40,
+0x4b,0x51,0x5b,0x69,0x7a,0x8b,0x96,0x9a,0x81,0x7f,0x74,0x64,0x55,0x47,0x44,0x4f,
+0x57,0x53,0x57,0x5f,0x5f,0x58,0x5c,0x66,0x6d,0x6b,0x6e,0x75,0x7e,0x85,0x8b,0x90,
+0x90,0x97,0x9d,0x9c,0x9c,0xa0,0xa2,0xa2,0xaa,0xb0,0xb3,0xaf,0xa7,0xa5,0xab,0xb2,
+0xb4,0xb7,0xb8,0xb5,0xb4,0xb6,0xb7,0xb8,0xb8,0xb9,0xb7,0xb2,0xaf,0xb2,0xb7,0xbb,
+0xbb,0xb9,0xb6,0xb6,0xb7,0xb8,0xb9,0xba,0xba,0xb2,0xad,0xaf,0xb2,0xb3,0xb6,0xba,
+0xba,0xb9,0xb8,0xb9,0xbb,0xbb,0xb8,0xb6,0xb0,0xb3,0xb6,0xb9,0xbb,0xb9,0xb7,0xb6,
+0xb3,0xb4,0xb8,0xbb,0xb9,0xb4,0xb3,0xb5,0xb8,0xb9,0xba,0xba,0xba,0xb8,0xb6,0xb4,
+0xb7,0xba,0xbb,0xb9,0xb7,0xb8,0xb8,0xb7,0xb4,0xb5,0xb3,0xb1,0xb3,0xb7,0xb9,0xb9,
+0xb9,0xb6,0xb0,0xab,0xa7,0xa7,0xa9,0xac,0xac,0xac,0xac,0xab,0xab,0xaa,0xaa,0xa9,
+0xa6,0xa7,0xaa,0xac,0xad,0xb0,0xb3,0xb5,0xb7,0xb6,0xb6,0xb6,0xb7,0xba,0xbd,0xbf,
+0xbb,0xbb,0xba,0xba,0xbd,0xbe,0xbb,0xb6,0xb7,0xb8,0xb9,0xb9,0xb9,0xb9,0xb9,0xba,
+0xbc,0xbb,0xba,0xbc,0xbe,0xbe,0xbc,0xb9,0xa9,0xae,0xb5,0xb9,0xba,0xbb,0xbb,0xbc,
+0xbd,0xbc,0xba,0xb9,0xb8,0xb8,0xb8,0xb8,0xba,0xbb,0xba,0xb7,0xb6,0xb9,0xbb,0xbb,
+0xbe,0xbc,0xba,0xb9,0xba,0xbb,0xbd,0xbd,0xbb,0xbc,0xcc,0xe2,0xec,0xe9,0xdb,0xcb,
+0xc9,0xca,0xc9,0xc1,0xb8,0xb4,0xb7,0xbd,0xc0,0xc2,0xc5,0xc5,0xc3,0xbf,0xbb,0xb9,
+0xbb,0xbd,0xc2,0xca,0xd4,0xdf,0xe9,0xef,0xf6,0xfb,0xff,0xfe,0xfc,0xfd,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfc,
+0xfd,0xfc,0xfc,0xfb,0xfb,0xfc,0xfd,0xfd,0xfc,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfc,
+0xf9,0xfa,0xfa,0xfc,0xfd,0xfe,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfb,0xfb,
+0xfc,0xfb,0xfa,0xf9,0xf8,0xf5,0xf1,0xef,0xed,0xe8,0xe1,0xdb,0xd8,0xd6,0xd5,0xd5,
+0xdb,0xda,0xda,0xdc,0xdf,0xe3,0xe6,0xe8,0xf1,0xf3,0xf6,0xf7,0xf6,0xf2,0xef,0xed,
+0xef,0xf0,0xf0,0xef,0xef,0xf0,0xf3,0xf6,0xed,0xdf,0xcd,0xbf,0xb5,0xaf,0xad,0xaf,
+0xa4,0xa2,0xa1,0xa3,0xa5,0xa3,0x9c,0x96,0x92,0x91,0x8e,0x8a,0x85,0x81,0x80,0x7f,
+0x7d,0x7f,0x82,0x85,0x87,0x89,0x89,0x89,0x86,0x85,0x85,0x85,0x85,0x85,0x84,0x82,
+0x81,0x80,0x7e,0x7c,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x7a,0x7b,0x7b,0x7b,
+0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x7a,0x7b,0x7c,0x7b,0x79,0x76,0x74,
+0x86,0x89,0x8c,0x8c,0x89,0x8b,0x91,0x96,0x9b,0x9b,0x9a,0x9e,0x96,0x96,0xb1,0xc0,
+0xc4,0xc2,0xc0,0xc0,0xc3,0xc6,0xc8,0xc9,0xca,0xca,0xcb,0xc9,0xc3,0xbb,0xb7,0xb8,
+0xb9,0xb6,0xbe,0xbc,0xb8,0xb1,0x92,0x76,0x6e,0x6a,0x6e,0x73,0x73,0x75,0x76,0x71,
+0x75,0x75,0x73,0x71,0x6f,0x6f,0x71,0x73,0x78,0x7c,0x7c,0x73,0x6c,0x6a,0x6b,0x6a,
+0x6f,0x6e,0x6b,0x68,0x69,0x6c,0x6d,0x6c,0x6b,0x6e,0x71,0x73,0x72,0x72,0x73,0x75,
+0x74,0x6e,0x6b,0x67,0x62,0x65,0x6c,0x6c,0x6e,0x6f,0x70,0x72,0x73,0x75,0x75,0x75,
+0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x7c,0x7b,0x79,0x78,0x75,0x71,0x6d,0x69,0x66,0x5e,0x58,0x51,0x42,0x32,0x33,0x3e,
+0x3f,0x42,0x3e,0x37,0x3a,0x44,0x45,0x3d,0x33,0x35,0x31,0x29,0x29,0x30,0x33,0x2f,
+0x26,0x31,0x43,0x55,0x61,0x63,0x5e,0x58,0x4b,0x43,0x3b,0x36,0x30,0x2b,0x2f,0x36,
+0x59,0x74,0x71,0x58,0x51,0x59,0x65,0x72,0x78,0x7b,0x78,0x6d,0x5d,0x54,0x54,0x59,
+0x56,0x5d,0x6d,0x82,0x95,0xa2,0xac,0xb2,0xbf,0xbf,0xb9,0xac,0x9c,0x8f,0x85,0x7f,
+0x73,0x62,0x4e,0x44,0x46,0x4d,0x55,0x5a,0x6f,0x86,0x82,0x6b,0x36,0x2d,0x1d,0x13,
+0x1d,0x2b,0x39,0x3e,0x3e,0x3c,0x3b,0x39,0x2d,0x36,0x42,0x4a,0x4d,0x50,0x55,0x5a,
+0x5f,0x66,0x6c,0x71,0x75,0x71,0x5e,0x49,0x48,0x34,0x1b,0x13,0x17,0x1c,0x29,0x3e,
+0x59,0x5b,0x62,0x68,0x64,0x5e,0x61,0x6b,0x6e,0x6a,0x68,0x6a,0x6e,0x72,0x76,0x7a,
+0x8a,0x8e,0x8d,0x8a,0x8d,0x98,0x9f,0xa0,0xa7,0xad,0xb4,0xb5,0xb2,0xb0,0xb2,0xb5,
+0xb3,0xb6,0xb8,0xb6,0xb5,0xb7,0xb9,0xba,0xba,0xbc,0xba,0xb4,0xb1,0xb4,0xba,0xbe,
+0xbe,0xbc,0xba,0xb8,0xb7,0xb8,0xb9,0xb9,0xb6,0xb4,0xb3,0xb6,0xb8,0xb8,0xba,0xbd,
+0xbb,0xba,0xba,0xbb,0xbd,0xbe,0xbd,0xbc,0xb3,0xb5,0xb7,0xba,0xba,0xba,0xb9,0xb8,
+0xb4,0xb5,0xb8,0xbc,0xbb,0xb8,0xb7,0xb9,0xb8,0xb9,0xba,0xbb,0xbb,0xba,0xb8,0xb7,
+0xb9,0xbb,0xbc,0xba,0xb9,0xb9,0xb8,0xb6,0xb9,0xba,0xb7,0xb2,0xaf,0xb0,0xb0,0xb0,
+0xb4,0xb2,0xaf,0xaa,0xa6,0xa5,0xa6,0xa7,0xa9,0xa9,0xa8,0xa7,0xa7,0xa7,0xa8,0xa9,
+0xb3,0xb3,0xb3,0xb3,0xb4,0xb6,0xb9,0xbb,0xb6,0xb7,0xb7,0xb7,0xb6,0xb5,0xb3,0xb2,
+0xb5,0xb4,0xb3,0xb3,0xb7,0xb9,0xb4,0xad,0xae,0xb1,0xb5,0xb6,0xb5,0xb3,0xb3,0xb3,
+0xa9,0xab,0xaf,0xb2,0xb4,0xb5,0xb5,0xb4,0xba,0xba,0xb8,0xb5,0xb4,0xb5,0xb8,0xbb,
+0xbf,0xbe,0xbd,0xbc,0xbb,0xba,0xba,0xbb,0xc2,0xc2,0xc1,0xbe,0xbc,0xbd,0xbe,0xbf,
+0xbf,0xbe,0xbc,0xbb,0xbc,0xbe,0xbf,0xc0,0xbc,0xcc,0xe3,0xe5,0xd2,0xc6,0xcb,0xd0,
+0xc8,0xc3,0xbc,0xb7,0xb7,0xba,0xbe,0xc1,0xc3,0xc3,0xc2,0xc1,0xc0,0xbf,0xbf,0xc0,
+0xc1,0xc0,0xc1,0xc3,0xc7,0xcd,0xd4,0xd7,0xde,0xed,0xfc,0xff,0xfe,0xfb,0xfb,0xfc,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,
+0xfe,0xfd,0xfb,0xfa,0xfa,0xfb,0xfc,0xfd,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,
+0xfa,0xfa,0xfb,0xfc,0xfd,0xfe,0xff,0xff,0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,
+0xfc,0xfb,0xfa,0xfa,0xf9,0xf7,0xf4,0xf2,0xf1,0xed,0xe7,0xe1,0xdc,0xd9,0xd5,0xd4,
+0xd6,0xd6,0xd5,0xd6,0xd9,0xdc,0xdf,0xe1,0xe6,0xec,0xf3,0xf7,0xf7,0xf5,0xf3,0xf3,
+0xe8,0xeb,0xef,0xef,0xee,0xeb,0xea,0xea,0xee,0xf2,0xf1,0xe2,0xcb,0xb7,0xaf,0xb0,
+0xb4,0xae,0xa7,0xa3,0xa2,0xa2,0xa2,0xa1,0x99,0x99,0x97,0x94,0x90,0x8c,0x8a,0x88,
+0x82,0x82,0x83,0x83,0x85,0x86,0x87,0x87,0x88,0x87,0x87,0x87,0x87,0x88,0x89,0x89,
+0x88,0x86,0x84,0x81,0x7e,0x7d,0x7c,0x7b,0x7d,0x7b,0x7a,0x7a,0x7b,0x7c,0x7b,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7e,0x82,0x86,
+0x92,0x8d,0x8b,0x8d,0x8d,0x8d,0x92,0x98,0x9d,0x9c,0x9a,0x9f,0x96,0x95,0xb1,0xc2,
+0xc3,0xc2,0xc1,0xc2,0xc5,0xc8,0xca,0xcb,0xcb,0xcb,0xca,0xc8,0xc1,0xb9,0xb6,0xb6,
+0xba,0xba,0xbe,0xbc,0xba,0xb7,0x9c,0x7a,0x6a,0x69,0x6e,0x73,0x72,0x73,0x71,0x68,
+0x76,0x75,0x75,0x73,0x72,0x72,0x73,0x75,0x79,0x80,0x7f,0x75,0x6c,0x6a,0x6a,0x67,
+0x6c,0x6e,0x6d,0x6a,0x6a,0x6d,0x6e,0x6d,0x6e,0x6f,0x71,0x71,0x70,0x6f,0x72,0x75,
+0x78,0x71,0x6e,0x6a,0x63,0x66,0x6d,0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x73,0x73,
+0x76,0x76,0x77,0x78,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,
+0x78,0x77,0x75,0x74,0x72,0x6e,0x6a,0x67,0x5d,0x5c,0x5a,0x53,0x41,0x2f,0x2b,0x30,
+0x3a,0x44,0x46,0x3a,0x2f,0x2f,0x33,0x35,0x3b,0x40,0x3d,0x36,0x39,0x40,0x3a,0x2b,
+0x3a,0x47,0x5a,0x67,0x69,0x61,0x56,0x4f,0x4c,0x43,0x40,0x40,0x3b,0x34,0x38,0x43,
+0x64,0x6b,0x68,0x71,0x99,0xbc,0xbe,0xb3,0xa9,0xa2,0x9d,0x9f,0x9f,0x93,0x7f,0x6f,
+0x5d,0x50,0x54,0x70,0x89,0x96,0xa2,0xb0,0xb5,0xae,0xa3,0x97,0x8f,0x88,0x80,0x78,
+0x78,0x6a,0x5c,0x50,0x3f,0x2d,0x25,0x27,0x49,0x66,0x72,0x61,0x2d,0x1d,0x16,0x1a,
+0x19,0x1e,0x23,0x2a,0x34,0x3b,0x3a,0x33,0x2c,0x2f,0x37,0x45,0x51,0x58,0x5c,0x5d,
+0x62,0x5d,0x58,0x5a,0x61,0x61,0x54,0x46,0x12,0x1e,0x2e,0x47,0x65,0x71,0x6c,0x68,
+0x5e,0x69,0x72,0x70,0x69,0x65,0x67,0x6a,0x6d,0x6a,0x69,0x69,0x6b,0x6e,0x75,0x7c,
+0x81,0x82,0x81,0x83,0x8d,0x9c,0xa5,0xa6,0xa7,0xaa,0xaf,0xb4,0xb8,0xb9,0xb8,0xb7,
+0xb9,0xbb,0xba,0xb6,0xb4,0xb5,0xb7,0xb8,0xba,0xbb,0xb8,0xb3,0xb0,0xb4,0xba,0xbe,
+0xbc,0xbb,0xba,0xb9,0xb7,0xb7,0xb8,0xb9,0xb5,0xb5,0xb7,0xba,0xbb,0xbb,0xbc,0xbe,
+0xba,0xb9,0xb9,0xba,0xba,0xba,0xba,0xb9,0xb8,0xb8,0xb8,0xb8,0xb9,0xb9,0xba,0xba,
+0xb5,0xb4,0xb5,0xb8,0xb7,0xb5,0xb5,0xb7,0xb3,0xb4,0xb4,0xb5,0xb5,0xb6,0xb6,0xb6,
+0xb5,0xb5,0xb4,0xb4,0xb7,0xba,0xb8,0xb4,0xb5,0xb6,0xb5,0xb1,0xaf,0xaf,0xb0,0xaf,
+0xa9,0xab,0xad,0xae,0xae,0xae,0xad,0xad,0xad,0xad,0xad,0xae,0xb0,0xb3,0xb5,0xb7,
+0xb3,0xb2,0xb1,0xaf,0xad,0xad,0xae,0xb0,0xb7,0xb8,0xb9,0xba,0xba,0xb9,0xb8,0xb7,
+0xb7,0xb6,0xb3,0xb3,0xb7,0xbb,0xb8,0xb3,0xb8,0xbc,0xc0,0xc2,0xc0,0xbf,0xbe,0xbe,
+0xc2,0xc3,0xc3,0xc0,0xbd,0xbb,0xbb,0xbc,0xc4,0xc1,0xbd,0xb9,0xb6,0xb7,0xb9,0xbc,
+0xc0,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xbf,0xc4,0xc4,0xc3,0xc2,0xc1,0xc0,0xc1,0xc3,
+0xc1,0xc0,0xbe,0xbc,0xbb,0xbc,0xbe,0xc1,0xd3,0xdb,0xe2,0xd9,0xc9,0xc6,0xca,0xc8,
+0xbc,0xb8,0xb4,0xb5,0xb9,0xbf,0xc2,0xc3,0xc9,0xc7,0xc5,0xc2,0xbf,0xbd,0xbb,0xb9,
+0xbc,0xbd,0xbf,0xc1,0xc4,0xc8,0xca,0xcb,0xce,0xdb,0xeb,0xf7,0xfd,0xff,0xfc,0xf8,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xfe,0xfe,
+0xfe,0xfd,0xfb,0xfa,0xfa,0xfb,0xfc,0xfc,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfc,0xfc,
+0xfd,0xfc,0xfb,0xfb,0xfb,0xfa,0xf8,0xf6,0xf3,0xf1,0xee,0xea,0xe6,0xe1,0xdc,0xd9,
+0xd8,0xd9,0xd9,0xd7,0xd5,0xd4,0xd7,0xd9,0xde,0xe3,0xeb,0xf0,0xf3,0xf5,0xf7,0xf8,
+0xea,0xeb,0xec,0xed,0xed,0xec,0xea,0xe8,0xe3,0xe8,0xee,0xf1,0xea,0xda,0xc5,0xb5,
+0xb0,0xb2,0xb1,0xad,0xa5,0xa1,0xa1,0xa4,0x9f,0x9e,0x9d,0x9b,0x99,0x96,0x94,0x92,
+0x8f,0x8d,0x8a,0x88,0x87,0x88,0x8a,0x8b,0x90,0x8e,0x8b,0x88,0x86,0x86,0x88,0x89,
+0x8a,0x89,0x88,0x87,0x87,0x88,0x88,0x89,0x85,0x83,0x81,0x81,0x81,0x80,0x7f,0x7e,
+0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x80,0x84,0x85,0x85,0x84,0x83,0x86,0x8b,0x8f,
+0x8f,0x88,0x87,0x8d,0x91,0x90,0x93,0x98,0x9b,0x9a,0x98,0x9c,0x95,0x97,0xb3,0xc3,
+0xc2,0xc1,0xc1,0xc3,0xc6,0xc9,0xcb,0xcc,0xcc,0xcb,0xca,0xc7,0xc0,0xb8,0xb5,0xb5,
+0xb9,0xbd,0xbe,0xbc,0xbc,0xbc,0xa9,0x86,0x6f,0x6d,0x73,0x79,0x79,0x78,0x76,0x6e,
+0x74,0x76,0x79,0x7a,0x79,0x78,0x79,0x7a,0x78,0x7d,0x7d,0x74,0x6c,0x69,0x67,0x64,
+0x6a,0x6d,0x6f,0x6d,0x6c,0x6f,0x71,0x71,0x74,0x72,0x71,0x71,0x6f,0x6e,0x71,0x77,
+0x79,0x71,0x6d,0x69,0x65,0x68,0x6e,0x6c,0x6c,0x6d,0x6d,0x6e,0x6f,0x71,0x71,0x72,
+0x72,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x77,0x77,0x77,0x78,0x78,0x78,0x77,0x77,
+0x74,0x73,0x72,0x71,0x6f,0x6c,0x68,0x65,0x5e,0x5e,0x5a,0x4d,0x3a,0x2c,0x2d,0x34,
+0x3c,0x36,0x30,0x2d,0x2b,0x28,0x24,0x21,0x24,0x24,0x34,0x4c,0x4f,0x40,0x39,0x41,
+0x40,0x5b,0x78,0x7f,0x6f,0x5a,0x4f,0x4e,0x54,0x48,0x40,0x3c,0x32,0x2b,0x35,0x46,
+0x54,0x6e,0x85,0x90,0x95,0x96,0x93,0x92,0x98,0x92,0x93,0x9e,0xa8,0xa5,0x98,0x8d,
+0x81,0x76,0x68,0x61,0x6a,0x7b,0x88,0x8c,0x81,0x8f,0x9f,0xa7,0xa1,0x8b,0x6e,0x58,
+0x62,0x6d,0x6f,0x69,0x6d,0x7c,0x82,0x7c,0x89,0x80,0x74,0x6b,0x4b,0x35,0x20,0x15,
+0x1e,0x20,0x1e,0x1d,0x22,0x29,0x2a,0x25,0x28,0x2b,0x32,0x3d,0x46,0x4c,0x52,0x59,
+0x50,0x4d,0x50,0x55,0x4f,0x3f,0x32,0x2e,0x5e,0x86,0xa5,0xad,0xb3,0xaf,0x95,0x7b,
+0x5f,0x6c,0x75,0x73,0x6f,0x6f,0x71,0x71,0x63,0x62,0x62,0x64,0x66,0x6a,0x71,0x78,
+0x73,0x75,0x7b,0x86,0x92,0x9c,0xa2,0xa3,0xa3,0xa2,0xa3,0xa9,0xb0,0xb4,0xb4,0xb2,
+0xb4,0xb4,0xb2,0xb0,0xb1,0xb5,0xb7,0xb7,0xb8,0xb7,0xb3,0xae,0xae,0xb2,0xb8,0xba,
+0xb9,0xba,0xbc,0xbc,0xbb,0xbb,0xbc,0xbd,0xb8,0xb7,0xb6,0xb6,0xb7,0xb9,0xbb,0xbc,
+0xbb,0xbb,0xbb,0xba,0xb9,0xb7,0xb6,0xb5,0xba,0xb9,0xb8,0xb7,0xb7,0xb8,0xba,0xbb,
+0xba,0xb8,0xb7,0xb7,0xb6,0xb3,0xb2,0xb3,0xb5,0xb5,0xb5,0xb5,0xb6,0xb8,0xba,0xbb,
+0xbc,0xb9,0xb5,0xb3,0xb6,0xb8,0xb5,0xb0,0xac,0xae,0xaf,0xaf,0xb2,0xb6,0xb7,0xb6,
+0xad,0xaf,0xb3,0xb7,0xba,0xbb,0xb8,0xb6,0xb4,0xb4,0xb5,0xb5,0xb6,0xb6,0xb6,0xb6,
+0xb7,0xb8,0xb9,0xb9,0xb9,0xba,0xbc,0xbe,0xbe,0xbd,0xbc,0xbc,0xbd,0xbf,0xc2,0xc3,
+0xba,0xb9,0xb6,0xb5,0xb8,0xbd,0xbd,0xba,0xbe,0xc0,0xc2,0xc3,0xc2,0xc1,0xbf,0xbe,
+0xc4,0xc3,0xbf,0xbb,0xb8,0xb8,0xbc,0xc0,0xbb,0xbb,0xbc,0xbc,0xbc,0xbb,0xbb,0xbb,
+0xb7,0xb8,0xb9,0xbb,0xbc,0xbc,0xbb,0xbb,0xba,0xba,0xbb,0xbc,0xbc,0xba,0xbc,0xbe,
+0xc0,0xc0,0xbf,0xbb,0xb9,0xbc,0xc3,0xc9,0xe6,0xe1,0xda,0xcf,0xc6,0xc7,0xc1,0xb2,
+0xb0,0xb5,0xbb,0xbf,0xc0,0xc1,0xc4,0xc7,0xc7,0xc7,0xc7,0xc6,0xc3,0xbe,0xb7,0xb3,
+0xb0,0xb2,0xb7,0xbd,0xc3,0xc9,0xcd,0xd0,0xd1,0xd2,0xd7,0xe4,0xf6,0xff,0xff,0xfb,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xff,0xff,0xff,0xfe,
+0xfd,0xfd,0xfc,0xfb,0xfa,0xfa,0xfb,0xfb,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfd,0xfd,0xfc,0xfc,
+0xfc,0xfb,0xfa,0xfa,0xfb,0xfa,0xf9,0xf7,0xf5,0xf4,0xf3,0xf2,0xf0,0xeb,0xe6,0xe2,
+0xe0,0xe1,0xe1,0xdd,0xd7,0xd4,0xd3,0xd4,0xda,0xdd,0xe2,0xe7,0xec,0xf0,0xf4,0xf6,
+0xf7,0xf3,0xed,0xe9,0xe9,0xea,0xeb,0xeb,0xeb,0xe8,0xe5,0xe7,0xed,0xed,0xe4,0xd9,
+0xc1,0xb9,0xb1,0xaf,0xb1,0xb1,0xaa,0xa4,0xa5,0xa3,0xa1,0xa0,0x9e,0x9c,0x99,0x97,
+0x98,0x95,0x92,0x8e,0x8d,0x8e,0x90,0x91,0x92,0x91,0x8f,0x8c,0x8b,0x8b,0x8d,0x8f,
+0x8e,0x8d,0x8c,0x8b,0x8b,0x8b,0x8c,0x8c,0x8d,0x8c,0x8a,0x89,0x88,0x88,0x87,0x86,
+0x86,0x87,0x88,0x88,0x88,0x87,0x86,0x85,0x84,0x86,0x88,0x88,0x86,0x85,0x84,0x85,
+0x82,0x80,0x82,0x8b,0x91,0x92,0x94,0x98,0x96,0x97,0x94,0x97,0x93,0x9a,0xb7,0xc3,
+0xc1,0xc1,0xc2,0xc4,0xc8,0xcb,0xcd,0xcd,0xcd,0xcc,0xcb,0xc8,0xc1,0xb9,0xb5,0xb6,
+0xb8,0xbf,0xbd,0xbf,0xc0,0xc0,0xb8,0x9b,0x7b,0x71,0x72,0x7b,0x7e,0x7e,0x7f,0x7b,
+0x6f,0x75,0x7a,0x7c,0x7a,0x78,0x79,0x7a,0x76,0x77,0x77,0x73,0x6e,0x69,0x66,0x65,
+0x6b,0x70,0x72,0x6f,0x6d,0x6f,0x71,0x73,0x77,0x73,0x72,0x73,0x71,0x6f,0x73,0x7a,
+0x75,0x6d,0x6b,0x68,0x64,0x67,0x6d,0x6b,0x6b,0x6b,0x6b,0x6c,0x6d,0x6f,0x70,0x71,
+0x6f,0x70,0x71,0x71,0x72,0x72,0x72,0x71,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x74,
+0x71,0x70,0x6f,0x6e,0x6d,0x6a,0x66,0x63,0x60,0x5e,0x56,0x4a,0x41,0x44,0x53,0x61,
+0x5e,0x4b,0x36,0x2c,0x27,0x22,0x20,0x20,0x2f,0x30,0x39,0x3f,0x39,0x32,0x3f,0x56,
+0x88,0x84,0x76,0x5e,0x45,0x39,0x3e,0x47,0x43,0x3a,0x34,0x31,0x2c,0x2b,0x3c,0x50,
+0x6a,0x67,0x6a,0x75,0x80,0x86,0x87,0x86,0x88,0x88,0x89,0x89,0x82,0x7d,0x81,0x8a,
+0x8d,0x87,0x7f,0x75,0x6c,0x69,0x6d,0x74,0x76,0x79,0x7e,0x86,0x8e,0x8d,0x80,0x72,
+0x7c,0x84,0x8a,0x8b,0x89,0x7f,0x67,0x50,0x45,0x4b,0x60,0x6f,0x5d,0x42,0x33,0x30,
+0x3c,0x44,0x46,0x3f,0x3d,0x42,0x48,0x48,0x22,0x21,0x26,0x31,0x39,0x3c,0x40,0x44,
+0x41,0x39,0x34,0x30,0x24,0x1e,0x2e,0x45,0x6d,0x86,0x8a,0x80,0x8f,0xac,0xb7,0xb1,
+0x67,0x69,0x6e,0x73,0x75,0x75,0x76,0x77,0x78,0x74,0x73,0x74,0x75,0x74,0x74,0x76,
+0x74,0x77,0x81,0x8e,0x93,0x91,0x91,0x96,0x99,0x99,0x9c,0xa2,0xa9,0xae,0xae,0xad,
+0xac,0xab,0xaa,0xab,0xb0,0xb6,0xb8,0xb7,0xb6,0xb4,0xaf,0xaa,0xac,0xb2,0xb6,0xb6,
+0xb9,0xbb,0xbe,0xbf,0xbf,0xbe,0xbf,0xbf,0xb8,0xb6,0xb4,0xb3,0xb5,0xb8,0xb9,0xb9,
+0xba,0xbb,0xbc,0xbc,0xbb,0xb9,0xb7,0xb6,0xb7,0xb6,0xb6,0xb6,0xb7,0xb8,0xb9,0xb9,
+0xbd,0xbb,0xba,0xbb,0xb9,0xb5,0xb2,0xb2,0xb7,0xb7,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,
+0xbe,0xbd,0xb9,0xb5,0xb4,0xb6,0xb5,0xb2,0xae,0xaf,0xaf,0xb0,0xb3,0xb7,0xb7,0xb4,
+0xb1,0xb0,0xb1,0xb5,0xba,0xbc,0xba,0xb7,0xb6,0xb7,0xb8,0xb7,0xb6,0xb4,0xb1,0xb0,
+0xb3,0xb5,0xb8,0xba,0xbb,0xbb,0xbc,0xbd,0xc5,0xc3,0xbf,0xbc,0xb9,0xb8,0xb8,0xb9,
+0xbb,0xba,0xb8,0xb7,0xb9,0xbd,0xbf,0xbe,0xb6,0xb6,0xb5,0xb5,0xb4,0xb2,0xb0,0xae,
+0xac,0xb2,0xba,0xbf,0xc0,0xbd,0xb9,0xb6,0xb4,0xb5,0xb8,0xba,0xbc,0xbc,0xbb,0xba,
+0xb9,0xbb,0xbd,0xc0,0xc1,0xc1,0xc0,0xbf,0xbd,0xbc,0xbe,0xc1,0xc0,0xbc,0xbc,0xbe,
+0xbb,0xbe,0xc0,0xbe,0xbf,0xc6,0xd5,0xe1,0xe4,0xd9,0xd0,0xc6,0xbb,0xb8,0xb6,0xaf,
+0xb7,0xbd,0xc4,0xc7,0xc6,0xc6,0xc8,0xca,0xc7,0xc7,0xc8,0xc8,0xc6,0xc1,0xba,0xb5,
+0xab,0xab,0xac,0xaf,0xb6,0xbe,0xc6,0xcb,0xcd,0xcc,0xcc,0xd2,0xe0,0xf0,0xfa,0xfd,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xff,0xff,0xff,0xfe,0xfe,
+0xfd,0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xfa,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfc,
+0xfc,0xfb,0xfa,0xfa,0xfa,0xfa,0xf9,0xf8,0xf9,0xf8,0xf7,0xf6,0xf5,0xf1,0xed,0xea,
+0xe8,0xe8,0xe7,0xe5,0xe2,0xde,0xda,0xd8,0xd8,0xd8,0xdb,0xdf,0xe4,0xe9,0xed,0xee,
+0xf9,0xf6,0xf1,0xed,0xeb,0xe9,0xe7,0xe6,0xf0,0xee,0xe8,0xe2,0xe3,0xea,0xf1,0xf3,
+0xf5,0xdf,0xc3,0xb3,0xb0,0xb2,0xaf,0xab,0xaa,0xa8,0xa5,0xa3,0xa3,0xa1,0x9f,0x9d,
+0x9c,0x9a,0x98,0x96,0x94,0x94,0x95,0x95,0x91,0x92,0x93,0x93,0x92,0x92,0x94,0x95,
+0x92,0x91,0x8f,0x8e,0x8c,0x8c,0x8c,0x8c,0x8f,0x8e,0x8c,0x8c,0x8c,0x8c,0x8b,0x8a,
+0x88,0x89,0x8a,0x8a,0x8a,0x89,0x88,0x87,0x83,0x84,0x85,0x85,0x82,0x7e,0x7a,0x78,
+0x79,0x7c,0x83,0x8a,0x8f,0x92,0x94,0x96,0x92,0x95,0x92,0x93,0x93,0xa1,0xbd,0xc5,
+0xc0,0xc0,0xc2,0xc5,0xc9,0xcc,0xce,0xce,0xcf,0xce,0xcc,0xc9,0xc2,0xbb,0xb7,0xb8,
+0xba,0xc1,0xbe,0xc2,0xc1,0xc1,0xc1,0xab,0x8f,0x77,0x6c,0x75,0x7b,0x7c,0x7d,0x7c,
+0x72,0x79,0x7e,0x7e,0x78,0x73,0x74,0x76,0x77,0x73,0x73,0x76,0x74,0x6d,0x69,0x6b,
+0x70,0x74,0x75,0x71,0x6c,0x6c,0x6f,0x70,0x71,0x6e,0x6f,0x72,0x70,0x6d,0x6f,0x76,
+0x70,0x6c,0x6c,0x6a,0x63,0x65,0x6b,0x6c,0x6a,0x6a,0x6a,0x6a,0x6b,0x6c,0x6d,0x6e,
+0x6d,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,0x71,0x71,0x71,
+0x6e,0x6d,0x6c,0x6c,0x6a,0x68,0x64,0x61,0x5d,0x59,0x52,0x4a,0x4a,0x54,0x63,0x6e,
+0x58,0x50,0x3f,0x2b,0x1c,0x18,0x1c,0x21,0x21,0x2b,0x2f,0x2e,0x38,0x54,0x74,0x86,
+0x66,0x59,0x49,0x3e,0x3c,0x3f,0x42,0x42,0x47,0x3c,0x32,0x2c,0x2a,0x32,0x47,0x5b,
+0x6b,0x67,0x69,0x6c,0x6e,0x75,0x81,0x87,0x83,0x89,0x91,0x94,0x8b,0x81,0x81,0x89,
+0x8a,0x83,0x83,0x87,0x7c,0x68,0x60,0x65,0x6a,0x66,0x61,0x62,0x6b,0x74,0x75,0x72,
+0x74,0x6c,0x6a,0x6f,0x74,0x72,0x70,0x72,0x6c,0x5b,0x5a,0x68,0x76,0x80,0x8a,0x8d,
+0x8d,0x7b,0x63,0x55,0x5a,0x61,0x55,0x41,0x37,0x37,0x3b,0x3c,0x35,0x28,0x23,0x26,
+0x22,0x21,0x24,0x29,0x28,0x25,0x2b,0x36,0x57,0x5f,0x60,0x65,0x80,0xa2,0xba,0xc6,
+0x76,0x6c,0x6a,0x72,0x77,0x73,0x70,0x72,0x6a,0x68,0x6a,0x73,0x7c,0x7f,0x7f,0x7e,
+0x84,0x86,0x8f,0x98,0x93,0x87,0x85,0x8c,0x92,0x96,0x9e,0xa6,0xad,0xb0,0xaf,0xad,
+0xaf,0xae,0xac,0xad,0xb2,0xb7,0xb7,0xb3,0xb7,0xb3,0xad,0xa9,0xac,0xb2,0xb6,0xb5,
+0xb7,0xba,0xbe,0xbf,0xbd,0xbb,0xbb,0xbb,0xb4,0xb4,0xb4,0xb5,0xb8,0xbb,0xba,0xb7,
+0xb5,0xb7,0xba,0xbc,0xbc,0xbb,0xba,0xb9,0xb3,0xb3,0xb5,0xb6,0xb7,0xb7,0xb8,0xb8,
+0xba,0xb9,0xba,0xbc,0xbc,0xb7,0xb3,0xb2,0xb1,0xb2,0xb2,0xb3,0xb4,0xb4,0xb4,0xb4,
+0xb3,0xb5,0xb5,0xb2,0xb2,0xb6,0xba,0xbb,0xb7,0xb6,0xb3,0xb1,0xb2,0xb3,0xaf,0xaa,
+0xa7,0xa4,0xa3,0xa8,0xb0,0xb7,0xb8,0xb6,0xb3,0xb5,0xb8,0xbb,0xbb,0xba,0xb8,0xb6,
+0xb2,0xb4,0xb5,0xb4,0xb1,0xad,0xaa,0xa9,0xaa,0xac,0xb0,0xb5,0xb9,0xbb,0xbd,0xbe,
+0xbe,0xbf,0xbe,0xbc,0xbd,0xc1,0xc3,0xc3,0xc2,0xbf,0xbc,0xbb,0xba,0xb8,0xb5,0xb3,
+0xb5,0xb5,0xb4,0xb3,0xb2,0xb3,0xb4,0xb5,0xb8,0xb8,0xb8,0xb9,0xbb,0xbc,0xbc,0xbb,
+0xba,0xbd,0xc0,0xc4,0xc5,0xc4,0xc2,0xc1,0xc0,0xbe,0xc0,0xc3,0xc0,0xba,0xb8,0xba,
+0xb7,0xbc,0xc1,0xc3,0xc7,0xd4,0xe8,0xf8,0xdb,0xca,0xbf,0xbb,0xb3,0xb0,0xb7,0xbd,
+0xc5,0xc3,0xc3,0xc4,0xc7,0xc9,0xc9,0xc9,0xd0,0xce,0xcb,0xc9,0xc6,0xc1,0xbb,0xb7,
+0xad,0xa9,0xa3,0x9f,0xa2,0xaa,0xb3,0xba,0xbd,0xc4,0xc8,0xc5,0xc6,0xd4,0xea,0xfb,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfc,0xfc,0xfc,0xfc,0xfb,0xfa,0xfa,0xf9,0xfc,0xfc,0xfc,0xfb,0xfb,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,
+0xff,0xfe,0xfd,0xfd,0xfe,0xfe,0xfc,0xfb,0xfc,0xfa,0xf9,0xf7,0xf6,0xf3,0xf0,0xee,
+0xed,0xeb,0xea,0xeb,0xec,0xea,0xe5,0xe0,0xd5,0xd4,0xd6,0xda,0xe0,0xe5,0xe8,0xe9,
+0xec,0xf0,0xf5,0xf7,0xf4,0xee,0xe8,0xe4,0xe2,0xe7,0xea,0xe9,0xea,0xec,0xeb,0xe8,
+0xe6,0xeb,0xea,0xdc,0xc6,0xb5,0xb0,0xb2,0xac,0xaa,0xa7,0xa6,0xa6,0xa6,0xa4,0xa3,
+0xa0,0x9f,0x9e,0x9d,0x9c,0x9a,0x99,0x98,0x96,0x98,0x9a,0x99,0x96,0x93,0x92,0x92,
+0x92,0x91,0x91,0x91,0x91,0x92,0x93,0x93,0x8c,0x8b,0x8a,0x8a,0x8a,0x8b,0x8b,0x8a,
+0x87,0x88,0x89,0x89,0x89,0x88,0x86,0x85,0x86,0x85,0x83,0x81,0x7e,0x7b,0x78,0x77,
+0x78,0x7f,0x86,0x8b,0x8e,0x91,0x94,0x94,0x91,0x96,0x93,0x92,0x94,0xa7,0xc3,0xc8,
+0xc0,0xc0,0xc2,0xc6,0xca,0xcd,0xce,0xce,0xd0,0xcf,0xce,0xcb,0xc4,0xbc,0xb9,0xba,
+0xbc,0xc3,0xbe,0xc3,0xc1,0xbe,0xc3,0xb2,0xa2,0x7e,0x69,0x6f,0x76,0x76,0x76,0x76,
+0x7c,0x83,0x87,0x82,0x78,0x71,0x71,0x74,0x7a,0x73,0x73,0x7a,0x7a,0x72,0x6e,0x71,
+0x73,0x77,0x78,0x71,0x6b,0x69,0x6b,0x6d,0x67,0x65,0x68,0x6e,0x6d,0x68,0x6a,0x70,
+0x6d,0x6d,0x70,0x6d,0x63,0x63,0x6b,0x6e,0x6a,0x69,0x69,0x69,0x69,0x6a,0x6b,0x6b,
+0x6c,0x6c,0x6d,0x6d,0x6e,0x6e,0x6d,0x6d,0x6c,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6c,0x6b,0x6a,0x6a,0x69,0x66,0x62,0x5f,0x5a,0x56,0x4e,0x46,0x43,0x45,0x45,0x43,
+0x47,0x4e,0x4a,0x38,0x26,0x1c,0x14,0x0c,0x11,0x22,0x41,0x62,0x74,0x6f,0x5d,0x50,
+0x49,0x40,0x33,0x2a,0x29,0x2c,0x30,0x32,0x3a,0x38,0x38,0x3b,0x3e,0x43,0x4d,0x56,
+0x60,0x5c,0x5f,0x66,0x6f,0x7f,0x8d,0x8e,0x7a,0x6f,0x66,0x66,0x66,0x62,0x60,0x61,
+0x5b,0x5e,0x5f,0x60,0x69,0x73,0x6e,0x62,0x63,0x6f,0x76,0x6e,0x5e,0x54,0x54,0x57,
+0x66,0x73,0x78,0x76,0x80,0x9b,0xb1,0xb6,0xb5,0xac,0xaa,0xa5,0x98,0x86,0x7a,0x6d,
+0x5b,0x4e,0x39,0x30,0x3e,0x56,0x5e,0x58,0x51,0x62,0x72,0x69,0x48,0x2b,0x2c,0x3b,
+0x3e,0x36,0x32,0x39,0x45,0x4b,0x45,0x3d,0x31,0x42,0x5a,0x73,0x83,0x88,0x97,0xae,
+0x7b,0x79,0x77,0x76,0x75,0x74,0x71,0x6f,0x5e,0x5f,0x63,0x68,0x6a,0x6b,0x70,0x75,
+0x7a,0x80,0x8a,0x92,0x91,0x8a,0x89,0x8b,0x90,0x97,0xa0,0xa7,0xab,0xaf,0xb0,0xb0,
+0xaf,0xb0,0xad,0xaa,0xac,0xb3,0xb5,0xb2,0xb8,0xb9,0xaf,0xa0,0x9c,0xa5,0xac,0xab,
+0xb4,0xb6,0xb9,0xbc,0xbb,0xb8,0xb9,0xbc,0xba,0xb8,0xaf,0xac,0xb3,0xb4,0xb2,0xb4,
+0xb0,0xb4,0xb3,0xb4,0xb7,0xb4,0xb3,0xba,0xba,0xb8,0xb6,0xb5,0xb4,0xb3,0xb3,0xb5,
+0xb7,0xb7,0xb5,0xb3,0xb4,0xb7,0xb6,0xb3,0xba,0xb7,0xb6,0xb7,0xb5,0xb1,0xb0,0xb3,
+0xaf,0xb1,0xb0,0xaf,0xb2,0xb7,0xb8,0xb5,0xb9,0xb8,0xb6,0xb4,0xb3,0xb4,0xb6,0xb7,
+0xb1,0xae,0xab,0xab,0xaf,0xb5,0xb6,0xb5,0xb6,0xb4,0xb1,0xb0,0xb3,0xb7,0xb7,0xb5,
+0xb3,0xb3,0xb3,0xb6,0xb9,0xba,0xb9,0xb7,0xbb,0xbe,0xc1,0xc1,0xbd,0xb7,0xb2,0xb0,
+0xb8,0xb8,0xb9,0xbb,0xbf,0xc3,0xc6,0xc6,0xbb,0xba,0xba,0xb9,0xb9,0xb9,0xba,0xbb,
+0xc1,0xbb,0xb5,0xb2,0xb3,0xb5,0xb4,0xb3,0xb5,0xb8,0xb8,0xb7,0xb7,0xba,0xb9,0xb6,
+0xbb,0xbb,0xbb,0xba,0xb9,0xb8,0xb8,0xb9,0xbd,0xb7,0xb5,0xb8,0xba,0xba,0xbc,0xbf,
+0xbd,0xb9,0xb4,0xb9,0xcf,0xe5,0xe6,0xdb,0xc2,0xbb,0xb7,0xb9,0xbb,0xbb,0xbd,0xc1,
+0xc3,0xc4,0xc4,0xc5,0xc6,0xc6,0xc7,0xc7,0xcc,0xc9,0xc7,0xc5,0xc3,0xc2,0xc0,0xbf,
+0xba,0xba,0xb3,0xa7,0xa0,0xa0,0xa1,0xa1,0xab,0xb3,0xbe,0xc0,0xb8,0xb7,0xc9,0xdf,
+0xfa,0xf5,0xfc,0xff,0xf7,0xf9,0xff,0xfe,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,
+0xfe,0xfe,0xfd,0xfc,0xfb,0xfa,0xf9,0xf9,0xfb,0xfc,0xfc,0xfd,0xfe,0xfe,0xfe,0xfe,
+0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfe,0xfe,0xfd,0xfc,0xfc,0xfd,0xfe,0xfe,
+0xfc,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf7,0xf7,0xf7,0xf8,0xf8,
+0xf6,0xf1,0xed,0xee,0xf2,0xf3,0xf0,0xec,0xe4,0xe0,0xdb,0xd8,0xd9,0xdc,0xe0,0xe2,
+0xe7,0xed,0xf2,0xf3,0xf4,0xf5,0xf2,0xed,0xe6,0xe4,0xe3,0xe4,0xe8,0xec,0xee,0xee,
+0xec,0xe5,0xe6,0xee,0xec,0xd7,0xbd,0xac,0xb1,0xb1,0xaf,0xad,0xaa,0xa8,0xa6,0xa5,
+0x9f,0xa5,0xa7,0xa2,0x9f,0xa1,0x9e,0x98,0x9b,0x9a,0x99,0x98,0x98,0x97,0x95,0x93,
+0x94,0x94,0x93,0x92,0x92,0x92,0x92,0x92,0x90,0x90,0x91,0x91,0x90,0x8f,0x8e,0x8d,
+0x8e,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x87,0x88,0x87,0x85,0x81,0x7e,0x7d,0x7e,
+0x84,0x87,0x8b,0x90,0x93,0x94,0x94,0x93,0x93,0x93,0x97,0x95,0x98,0xb2,0xc5,0xc0,
+0xc0,0xc3,0xc5,0xc5,0xc8,0xcd,0xcf,0xce,0xd1,0xcf,0xcc,0xc7,0xbf,0xb8,0xb7,0xbb,
+0xbf,0xbf,0xc0,0xc1,0xc1,0xc1,0xc0,0xc0,0xaf,0x8f,0x6e,0x6d,0x79,0x70,0x6b,0x7b,
+0x7e,0x89,0x8f,0x88,0x79,0x71,0x73,0x78,0x79,0x74,0x74,0x79,0x78,0x71,0x6f,0x72,
+0x73,0x79,0x7a,0x74,0x6d,0x6b,0x6f,0x72,0x69,0x67,0x6a,0x71,0x72,0x6c,0x69,0x6b,
+0x6a,0x6c,0x6d,0x6b,0x68,0x68,0x6c,0x6f,0x70,0x6a,0x66,0x66,0x67,0x66,0x67,0x68,
+0x6b,0x6b,0x6b,0x6c,0x6d,0x6e,0x6d,0x6c,0x6b,0x6c,0x6d,0x6d,0x6c,0x6c,0x6c,0x6d,
+0x6d,0x6b,0x69,0x68,0x66,0x64,0x61,0x5f,0x58,0x4e,0x48,0x47,0x3f,0x32,0x2d,0x30,
+0x39,0x43,0x49,0x41,0x30,0x21,0x17,0x12,0x13,0x1e,0x42,0x61,0x65,0x5e,0x52,0x43,
+0x43,0x2f,0x1c,0x1a,0x22,0x2a,0x2f,0x33,0x36,0x37,0x40,0x43,0x3d,0x3d,0x48,0x51,
+0x65,0x64,0x5f,0x59,0x58,0x5d,0x62,0x65,0x5e,0x63,0x6e,0x76,0x6d,0x59,0x4d,0x4c,
+0x4e,0x54,0x65,0x73,0x67,0x4d,0x44,0x4c,0x64,0x5d,0x4f,0x3f,0x3a,0x44,0x51,0x58,
+0x4d,0x56,0x6f,0x92,0xad,0xb7,0xbc,0xc0,0xc1,0xbd,0xb3,0xa0,0x85,0x71,0x70,0x79,
+0x74,0x60,0x58,0x5a,0x5c,0x69,0x74,0x71,0x80,0x8b,0x8b,0x74,0x57,0x4d,0x56,0x62,
+0x57,0x4d,0x49,0x38,0x47,0x56,0x60,0x4b,0x3c,0x34,0x4d,0x64,0x77,0x79,0x72,0x7e,
+0x76,0x74,0x71,0x6c,0x67,0x63,0x61,0x60,0x60,0x5f,0x5f,0x62,0x66,0x70,0x7f,0x8c,
+0x89,0x84,0x7f,0x7a,0x74,0x72,0x77,0x7e,0x91,0x97,0x9e,0xa3,0xa5,0xa8,0xab,0xac,
+0xac,0xa5,0xa2,0xa5,0xad,0xb2,0xb5,0xb7,0xb0,0xad,0xa3,0x99,0x99,0xa2,0xa9,0xaa,
+0xb9,0xb9,0xba,0xb8,0xb3,0xb0,0xb4,0xba,0xbc,0xbc,0xb7,0xb4,0xb7,0xb5,0xaf,0xaf,
+0xac,0xb0,0xb0,0xb1,0xb3,0xaf,0xad,0xb2,0xb8,0xb7,0xb6,0xb6,0xb5,0xb4,0xb3,0xb4,
+0xb2,0xb2,0xb1,0xb1,0xb3,0xb7,0xb7,0xb5,0xb1,0xb0,0xb2,0xb5,0xb5,0xb3,0xb5,0xb9,
+0xb6,0xb7,0xb6,0xb2,0xb1,0xb4,0xb5,0xb3,0xb4,0xb2,0xb1,0xb1,0xb3,0xb5,0xb7,0xb7,
+0xad,0xac,0xac,0xae,0xb5,0xbc,0xc0,0xc2,0xba,0xb8,0xb5,0xb4,0xb5,0xb8,0xba,0xba,
+0xb1,0xb1,0xb1,0xb3,0xb6,0xb7,0xb7,0xb6,0xb5,0xb8,0xbc,0xbe,0xbc,0xba,0xb7,0xb6,
+0xb8,0xb7,0xb6,0xb6,0xb8,0xb9,0xb9,0xb9,0xbe,0xbc,0xba,0xb8,0xb8,0xba,0xbc,0xbe,
+0xbd,0xb7,0xb1,0xae,0xae,0xaf,0xaf,0xad,0xaf,0xb5,0xb8,0xb7,0xb7,0xb9,0xba,0xb9,
+0xb9,0xbb,0xbd,0xbf,0xbf,0xbf,0xc0,0xc1,0xbd,0xbb,0xba,0xba,0xba,0xb9,0xba,0xbc,
+0xba,0xb9,0xbf,0xd1,0xe3,0xe5,0xd3,0xbf,0xb8,0xb4,0xb4,0xb8,0xbc,0xbe,0xc1,0xc4,
+0xc4,0xc4,0xc5,0xc5,0xc6,0xc6,0xc6,0xc7,0xc5,0xc2,0xc0,0xbe,0xbe,0xbe,0xbe,0xbe,
+0xbc,0xbf,0xc1,0xbf,0xbb,0xb5,0xab,0xa1,0xa1,0xa2,0xa9,0xb5,0xb9,0xb5,0xb1,0xb2,
+0xc2,0xf0,0xff,0xf7,0xfe,0xff,0xf7,0xfa,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfc,
+0xfe,0xfe,0xfd,0xfc,0xfb,0xfa,0xfa,0xf9,0xfb,0xfb,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfc,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xfa,0xf9,0xf9,0xf9,0xfa,0xfa,
+0xf8,0xf5,0xf2,0xf2,0xf5,0xf6,0xf4,0xf1,0xee,0xe9,0xe1,0xdb,0xd8,0xd8,0xd9,0xda,
+0xe1,0xe7,0xec,0xef,0xf2,0xf6,0xf6,0xf3,0xf1,0xed,0xe9,0xe7,0xe7,0xe8,0xe9,0xe9,
+0xea,0xe8,0xe6,0xe6,0xe7,0xe4,0xdc,0xd4,0xb1,0xb1,0xb0,0xaf,0xae,0xab,0xa9,0xa7,
+0xb1,0xa7,0xa3,0xa7,0xa4,0x9b,0x9b,0xa4,0x9f,0x9e,0x9c,0x9c,0x9c,0x9b,0x99,0x97,
+0x99,0x99,0x98,0x97,0x97,0x96,0x96,0x97,0x93,0x94,0x94,0x94,0x93,0x92,0x91,0x91,
+0x8e,0x8d,0x8b,0x8b,0x8b,0x8a,0x89,0x88,0x86,0x87,0x87,0x85,0x83,0x82,0x83,0x84,
+0x89,0x8b,0x8f,0x92,0x94,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0xa0,0xb7,0xc4,0xbf,
+0xc1,0xc3,0xc5,0xc6,0xc8,0xcd,0xcf,0xce,0xd2,0xd0,0xcd,0xc7,0xbf,0xb8,0xb8,0xbb,
+0xbf,0xbf,0xc0,0xc2,0xc2,0xc3,0xc3,0xc3,0xbc,0xa4,0x84,0x74,0x73,0x71,0x71,0x76,
+0x79,0x85,0x8e,0x89,0x7a,0x71,0x74,0x7b,0x7f,0x7c,0x7b,0x7a,0x76,0x70,0x6e,0x71,
+0x75,0x77,0x77,0x73,0x6f,0x6f,0x6f,0x6e,0x70,0x70,0x73,0x74,0x71,0x6b,0x68,0x68,
+0x68,0x6c,0x6f,0x6f,0x6d,0x6f,0x75,0x7a,0x70,0x6b,0x67,0x68,0x69,0x69,0x69,0x6a,
+0x6a,0x69,0x69,0x6a,0x6b,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6c,0x6c,0x6b,0x6b,0x6c,
+0x6c,0x6a,0x68,0x66,0x64,0x62,0x5e,0x5c,0x55,0x57,0x54,0x4f,0x51,0x54,0x4b,0x3e,
+0x4a,0x50,0x52,0x4d,0x40,0x30,0x1f,0x13,0x1f,0x25,0x3c,0x53,0x58,0x57,0x51,0x44,
+0x2f,0x26,0x22,0x29,0x2f,0x2c,0x24,0x1f,0x24,0x2f,0x3f,0x45,0x38,0x2a,0x36,0x4f,
+0x60,0x5e,0x58,0x53,0x51,0x4f,0x4a,0x44,0x4c,0x4f,0x57,0x5f,0x5e,0x58,0x56,0x5a,
+0x5f,0x61,0x5c,0x50,0x48,0x45,0x41,0x3b,0x4b,0x50,0x59,0x5f,0x5b,0x59,0x63,0x73,
+0x9d,0xb0,0xbb,0xb2,0xa4,0xa3,0xab,0xb3,0xb6,0xb1,0xa4,0x8e,0x74,0x65,0x69,0x73,
+0x81,0x80,0x75,0x62,0x5a,0x69,0x79,0x7b,0x86,0x91,0x88,0x62,0x40,0x3a,0x47,0x54,
+0x56,0x32,0x27,0x33,0x5a,0x6e,0x6f,0x53,0x4a,0x41,0x4c,0x4f,0x57,0x67,0x6b,0x70,
+0x77,0x7d,0x83,0x84,0x7d,0x72,0x69,0x64,0x61,0x64,0x69,0x71,0x79,0x82,0x8e,0x98,
+0x93,0x8b,0x80,0x78,0x74,0x76,0x7f,0x87,0x8e,0x93,0x9a,0x9e,0x9f,0xa1,0xa4,0xa7,
+0xa5,0x9b,0x96,0x9f,0xa9,0xac,0xaf,0xb4,0xb2,0xa9,0xa0,0x9c,0xa0,0xa8,0xad,0xb0,
+0xb5,0xb7,0xb9,0xb8,0xb3,0xb0,0xb4,0xba,0xba,0xbd,0xba,0xb8,0xba,0xb8,0xb4,0xb7,
+0xb3,0xb6,0xb4,0xb3,0xb4,0xaf,0xad,0xb2,0xb6,0xb6,0xb7,0xb6,0xb6,0xb5,0xb4,0xb4,
+0xb7,0xb6,0xb3,0xaf,0xad,0xad,0xac,0xa9,0xb3,0xb3,0xb5,0xb6,0xb5,0xb2,0xb3,0xb6,
+0xb4,0xb6,0xb5,0xb3,0xb0,0xb0,0xaf,0xae,0xaa,0xa9,0xa9,0xac,0xb1,0xb5,0xb6,0xb6,
+0xaf,0xae,0xae,0xb0,0xb2,0xb6,0xb9,0xba,0xb6,0xb5,0xb3,0xb1,0xb1,0xb2,0xb5,0xb8,
+0xb7,0xb6,0xb6,0xb7,0xb9,0xba,0xbb,0xbb,0xb3,0xb5,0xb9,0xbb,0xbb,0xbb,0xbb,0xbb,
+0xbc,0xbc,0xbb,0xbc,0xbd,0xbf,0xbf,0xbe,0xbd,0xbd,0xbb,0xba,0xb9,0xb9,0xba,0xba,
+0xbc,0xb7,0xb1,0xaf,0xb0,0xb2,0xb2,0xb1,0xae,0xb2,0xb4,0xb1,0xaf,0xb0,0xb4,0xb7,
+0xba,0xbc,0xbc,0xbb,0xb9,0xb6,0xb4,0xb3,0xb5,0xb9,0xbc,0xbc,0xbe,0xc1,0xc5,0xc7,
+0xb6,0xc0,0xd3,0xe7,0xea,0xd6,0xbc,0xac,0xb1,0xb1,0xb4,0xba,0xc0,0xc2,0xc4,0xc6,
+0xc5,0xc5,0xc5,0xc6,0xc6,0xc6,0xc6,0xc6,0xbc,0xb9,0xb5,0xb2,0xb2,0xb3,0xb3,0xb3,
+0xb6,0xb7,0xb8,0xbb,0xc1,0xc2,0xbc,0xb5,0xa6,0x9a,0x93,0x9b,0xa8,0xac,0xa9,0xa7,
+0xa3,0xc3,0xe5,0xf3,0xf5,0xfd,0xff,0xfa,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfc,0xfc,
+0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,0xfa,0xfa,0xfa,0xfb,0xfc,0xfd,0xfd,0xfd,0xfd,
+0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfb,0xfc,0xfd,0xfe,0xfe,0xfd,0xfc,0xfb,
+0xfc,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,
+0xfb,0xf9,0xf8,0xf7,0xf8,0xf8,0xf8,0xf7,0xf9,0xf3,0xeb,0xe3,0xde,0xdb,0xd9,0xd7,
+0xdd,0xe0,0xe4,0xe7,0xec,0xf2,0xf6,0xf6,0xf7,0xf4,0xf1,0xee,0xeb,0xe8,0xe6,0xe4,
+0xe5,0xe9,0xe7,0xe1,0xe1,0xe8,0xeb,0xe8,0xea,0xcb,0xab,0xa1,0xac,0xb5,0xae,0xa2,
+0xa1,0xa5,0xa8,0xaa,0xaa,0xaa,0xa7,0xa3,0xa4,0xa3,0xa2,0xa1,0xa1,0xa0,0x9e,0x9d,
+0x9e,0x9e,0x9d,0x9c,0x9b,0x9b,0x9b,0x9b,0x98,0x98,0x98,0x98,0x97,0x97,0x96,0x95,
+0x91,0x90,0x8f,0x8e,0x8e,0x8e,0x8c,0x8b,0x87,0x87,0x87,0x87,0x87,0x88,0x8a,0x8c,
+0x90,0x91,0x93,0x94,0x95,0x96,0x96,0x95,0x94,0x97,0x94,0x99,0xad,0xbf,0xc3,0xc0,
+0xc3,0xc5,0xc7,0xc7,0xca,0xce,0xd0,0xd0,0xcf,0xcd,0xca,0xc5,0xbe,0xb7,0xb8,0xbc,
+0xc0,0xc0,0xc1,0xc2,0xc3,0xc5,0xc6,0xc7,0xc4,0xb7,0x9d,0x7d,0x6b,0x6e,0x73,0x6e,
+0x85,0x86,0x88,0x89,0x88,0x84,0x7f,0x7b,0x6c,0x6f,0x73,0x75,0x74,0x72,0x72,0x73,
+0x75,0x74,0x71,0x6f,0x70,0x71,0x6f,0x6b,0x6d,0x72,0x74,0x73,0x70,0x6f,0x6e,0x6c,
+0x6c,0x6f,0x72,0x71,0x6e,0x6f,0x73,0x78,0x70,0x6b,0x69,0x6b,0x6c,0x6c,0x6b,0x6b,
+0x68,0x67,0x67,0x67,0x69,0x69,0x69,0x68,0x69,0x6a,0x6b,0x6b,0x6a,0x6a,0x6a,0x6b,
+0x6a,0x69,0x67,0x65,0x63,0x60,0x5c,0x59,0x4d,0x58,0x60,0x65,0x72,0x83,0x85,0x7c,
+0x62,0x5e,0x56,0x4c,0x41,0x35,0x25,0x18,0x1a,0x22,0x36,0x4a,0x51,0x51,0x46,0x34,
+0x21,0x1f,0x23,0x2b,0x2e,0x28,0x22,0x21,0x26,0x41,0x4e,0x43,0x2e,0x1d,0x26,0x42,
+0x55,0x5b,0x60,0x5f,0x5a,0x54,0x4d,0x48,0x36,0x3e,0x45,0x47,0x45,0x4a,0x56,0x62,
+0x5f,0x44,0x31,0x31,0x2a,0x20,0x2b,0x43,0x47,0x4c,0x4a,0x48,0x5a,0x7e,0x99,0xa2,
+0x98,0x91,0x89,0x8e,0xa3,0xb5,0xb3,0xa5,0x9d,0x95,0x84,0x6f,0x5b,0x4b,0x3e,0x36,
+0x56,0x64,0x63,0x54,0x4e,0x5a,0x6e,0x7e,0x98,0x93,0x72,0x3d,0x1f,0x2c,0x4c,0x61,
+0x57,0x34,0x31,0x44,0x65,0x7f,0x8b,0x76,0x4a,0x3c,0x3f,0x42,0x44,0x58,0x62,0x66,
+0x71,0x6f,0x6c,0x68,0x67,0x69,0x6d,0x70,0x65,0x65,0x6a,0x72,0x78,0x7b,0x7c,0x7e,
+0x7c,0x7a,0x77,0x76,0x76,0x78,0x7b,0x7e,0x84,0x8a,0x94,0x9b,0x9e,0x9e,0x9f,0xa1,
+0x9f,0x9a,0x98,0x9d,0xa4,0xa7,0xa8,0xa8,0x9e,0x94,0x8d,0x92,0x9b,0xa2,0xa8,0xad,
+0xac,0xae,0xb2,0xb2,0xae,0xa9,0xa9,0xac,0xb0,0xb3,0xb0,0xad,0xaf,0xaf,0xb1,0xb7,
+0xb5,0xb7,0xb3,0xaf,0xad,0xa7,0xa4,0xab,0xb5,0xb5,0xb5,0xb3,0xb3,0xb4,0xb4,0xb3,
+0xad,0xaf,0xaf,0xae,0xaf,0xb3,0xb4,0xb2,0xb5,0xb6,0xb7,0xb6,0xb2,0xaf,0xae,0xaf,
+0xaa,0xab,0xab,0xac,0xae,0xae,0xab,0xa8,0xa2,0xa2,0xa4,0xa8,0xae,0xb2,0xb2,0xb1,
+0xae,0xae,0xaf,0xb0,0xae,0xab,0xab,0xac,0xaf,0xae,0xad,0xac,0xaa,0xaa,0xae,0xb3,
+0xbb,0xba,0xb9,0xb8,0xb9,0xba,0xbb,0xbb,0xb8,0xb8,0xb9,0xb9,0xb9,0xb8,0xb8,0xb8,
+0xb3,0xb3,0xb2,0xb4,0xb6,0xb7,0xb7,0xb7,0xb2,0xb3,0xb6,0xb9,0xba,0xba,0xba,0xb9,
+0xbd,0xb8,0xb4,0xb3,0xb6,0xb9,0xba,0xb9,0xba,0xb9,0xb5,0xaf,0xac,0xae,0xb2,0xb5,
+0xb4,0xb6,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,0xba,0xbc,0xbb,0xb6,0xb3,0xb4,0xb5,0xb3,
+0xba,0xd0,0xe7,0xe9,0xd5,0xbc,0xaf,0xae,0xb1,0xb4,0xb9,0xc0,0xc4,0xc6,0xc6,0xc6,
+0xc7,0xc6,0xc6,0xc6,0xc6,0xc5,0xc5,0xc5,0xbd,0xb9,0xb2,0xad,0xaa,0xa8,0xa7,0xa7,
+0xaa,0xa7,0xa6,0xa9,0xb2,0xbb,0xc1,0xc3,0xb5,0xa5,0x93,0x8c,0x90,0x9a,0xa6,0xaf,
+0xa5,0x9c,0xba,0xe6,0xf4,0xf9,0xfe,0xf9,0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,
+0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xfb,0xfa,0xf9,0xfa,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,
+0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xfa,0xfb,0xfd,0xf9,0xf4,0xef,0xeb,0xe6,0xe2,0xdf,
+0xde,0xde,0xdf,0xe1,0xe5,0xeb,0xf0,0xf2,0xf3,0xf4,0xf5,0xf5,0xf2,0xed,0xe8,0xe4,
+0xe0,0xe5,0xe6,0xe3,0xe2,0xe4,0xe5,0xe3,0xe0,0xe8,0xe8,0xd6,0xb9,0xa6,0xa5,0xac,
+0xab,0xb0,0xad,0xa3,0xa3,0xaa,0xab,0xa4,0xa7,0xa6,0xa5,0xa5,0xa5,0xa4,0xa3,0xa1,
+0xa1,0xa0,0x9f,0x9e,0x9d,0x9d,0x9d,0x9d,0x9c,0x9c,0x9b,0x9b,0x9a,0x99,0x99,0x98,
+0x96,0x95,0x94,0x94,0x94,0x93,0x91,0x90,0x8b,0x8a,0x8a,0x89,0x8a,0x8c,0x8f,0x91,
+0x94,0x94,0x95,0x95,0x96,0x96,0x96,0x97,0x94,0x98,0x95,0x9f,0xba,0xc7,0xc3,0xc2,
+0xc6,0xc8,0xc9,0xc9,0xcb,0xcf,0xd1,0xd1,0xca,0xc8,0xc6,0xc2,0xbb,0xb6,0xb8,0xbc,
+0xc1,0xc1,0xc1,0xc2,0xc3,0xc5,0xc7,0xc8,0xca,0xc3,0xb3,0x92,0x75,0x76,0x7c,0x72,
+0x80,0x7c,0x7b,0x7f,0x82,0x80,0x7a,0x76,0x79,0x78,0x76,0x73,0x72,0x72,0x71,0x70,
+0x73,0x71,0x6d,0x6b,0x6d,0x71,0x71,0x6e,0x6f,0x74,0x75,0x72,0x73,0x76,0x75,0x70,
+0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6a,0x69,0x6b,0x6e,0x6d,0x6b,0x6b,
+0x68,0x67,0x66,0x66,0x67,0x68,0x68,0x67,0x68,0x69,0x6b,0x6a,0x69,0x68,0x69,0x69,
+0x69,0x68,0x66,0x64,0x62,0x5f,0x5b,0x58,0x5a,0x64,0x6f,0x75,0x72,0x6d,0x6a,0x6b,
+0x70,0x6b,0x61,0x52,0x42,0x32,0x22,0x16,0x13,0x1c,0x2c,0x3c,0x47,0x48,0x3b,0x2a,
+0x21,0x24,0x27,0x25,0x1c,0x16,0x1c,0x27,0x48,0x65,0x5b,0x33,0x1f,0x19,0x1c,0x28,
+0x40,0x4d,0x56,0x53,0x4d,0x52,0x62,0x70,0x84,0x7f,0x78,0x73,0x70,0x66,0x51,0x3d,
+0x34,0x36,0x35,0x30,0x2b,0x2f,0x3a,0x43,0x4a,0x54,0x5b,0x61,0x76,0x90,0x95,0x88,
+0x7e,0x78,0x7a,0x85,0x8d,0x8b,0x88,0x88,0x6d,0x60,0x48,0x30,0x26,0x27,0x27,0x24,
+0x2e,0x45,0x5a,0x67,0x65,0x50,0x44,0x4f,0x58,0x44,0x29,0x1f,0x33,0x50,0x5c,0x57,
+0x4a,0x3d,0x3f,0x41,0x48,0x69,0x87,0x81,0x72,0x4c,0x37,0x3b,0x33,0x3f,0x4b,0x56,
+0x6e,0x68,0x61,0x60,0x67,0x71,0x7a,0x7f,0x84,0x7a,0x73,0x73,0x78,0x7b,0x7c,0x7c,
+0x7c,0x7d,0x7e,0x7d,0x7c,0x7a,0x78,0x76,0x78,0x7f,0x8c,0x99,0x9f,0x9d,0x9c,0x9c,
+0x9c,0xa3,0xa6,0xa4,0xa5,0xa9,0xa7,0xa0,0x89,0x82,0x81,0x8c,0x99,0xa1,0xa7,0xae,
+0xb4,0xb2,0xb2,0xb0,0xab,0xa4,0xa0,0xa1,0xac,0xb0,0xae,0xab,0xad,0xae,0xaf,0xb6,
+0xb6,0xbb,0xba,0xb5,0xb0,0xa5,0xa0,0xa5,0xb2,0xb2,0xaf,0xab,0xaa,0xae,0xb1,0xb0,
+0xad,0xb0,0xb2,0xb3,0xb4,0xb7,0xb8,0xb7,0xb0,0xb1,0xb3,0xb3,0xb3,0xb2,0xb0,0xaf,
+0xa8,0xa3,0x9f,0xa1,0xa7,0xaa,0xaa,0xa9,0xa3,0xa4,0xa6,0xa9,0xad,0xae,0xac,0xaa,
+0xa4,0xa5,0xaa,0xb0,0xb1,0xad,0xac,0xad,0xae,0xae,0xae,0xae,0xab,0xa9,0xad,0xb3,
+0xb7,0xb7,0xb6,0xb5,0xb4,0xb4,0xb5,0xb5,0xbb,0xba,0xb8,0xb7,0xb6,0xb5,0xb4,0xb4,
+0xae,0xad,0xac,0xad,0xad,0xad,0xac,0xab,0xaa,0xac,0xaf,0xb3,0xb6,0xb9,0xbb,0xbc,
+0xbd,0xb8,0xb4,0xb4,0xb8,0xbb,0xbc,0xbb,0xc4,0xbf,0xb9,0xb6,0xb5,0xb5,0xb4,0xb3,
+0xb6,0xb7,0xb8,0xb9,0xb9,0xbb,0xbd,0xbf,0xc0,0xbe,0xb9,0xb3,0xb1,0xb3,0xb4,0xb3,
+0xcd,0xe1,0xeb,0xd8,0xbb,0xac,0xad,0xb2,0xb2,0xb7,0xbe,0xc4,0xc7,0xc8,0xc7,0xc6,
+0xc7,0xc7,0xc7,0xc6,0xc6,0xc6,0xc5,0xc5,0xc4,0xbf,0xb8,0xb1,0xac,0xa8,0xa5,0xa3,
+0xa1,0xa2,0xa3,0xa6,0xa9,0xaf,0xb5,0xbb,0xbd,0xb2,0xa3,0x94,0x8b,0x8b,0x93,0x9b,
+0x9f,0xa2,0xa4,0xc1,0xee,0xf9,0xf2,0xfa,0xfa,0xfb,0xfc,0xfd,0xfe,0xfe,0xff,0xff,
+0xfe,0xfe,0xfd,0xfd,0xfc,0xfc,0xfb,0xfb,0xf9,0xf9,0xfa,0xfb,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfc,0xfb,0xfb,0xfc,0xfd,0xfd,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfb,0xfb,
+0xfb,0xfc,0xfc,0xfc,0xfa,0xfa,0xfb,0xfd,0xfc,0xfb,0xfa,0xf9,0xf7,0xf2,0xed,0xe9,
+0xe3,0xe1,0xe0,0xe1,0xe3,0xe7,0xec,0xf0,0xf0,0xf2,0xf4,0xf4,0xf3,0xf0,0xed,0xeb,
+0xe5,0xe2,0xe3,0xe7,0xe7,0xe3,0xe3,0xe5,0xe7,0xe4,0xe3,0xe7,0xe7,0xd8,0xbe,0xa8,
+0xb2,0xa9,0xa7,0xad,0xae,0xa7,0xa7,0xad,0xa9,0xa8,0xa7,0xa7,0xa7,0xa7,0xa5,0xa3,
+0xa3,0xa2,0xa1,0xa0,0x9f,0x9f,0x9f,0x9f,0x9e,0x9e,0x9d,0x9c,0x9b,0x9a,0x9a,0x9a,
+0x9a,0x99,0x98,0x98,0x98,0x97,0x95,0x93,0x91,0x90,0x8e,0x8d,0x8e,0x90,0x91,0x92,
+0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x98,0x93,0x96,0x97,0xa6,0xc1,0xc8,0xc1,0xc2,
+0xc6,0xc8,0xc8,0xc8,0xca,0xce,0xd0,0xd0,0xc8,0xc6,0xc4,0xc0,0xbb,0xb7,0xb9,0xbe,
+0xc3,0xc2,0xc2,0xc2,0xc3,0xc4,0xc5,0xc6,0xc4,0xbe,0xb9,0xa5,0x88,0x7e,0x7e,0x76,
+0x70,0x76,0x7d,0x7c,0x73,0x6d,0x72,0x7c,0x81,0x7a,0x72,0x6f,0x70,0x71,0x71,0x70,
+0x72,0x71,0x6d,0x6a,0x6b,0x71,0x75,0x76,0x7d,0x7d,0x79,0x75,0x75,0x78,0x74,0x6c,
+0x67,0x66,0x68,0x6e,0x75,0x78,0x75,0x72,0x6c,0x69,0x68,0x6b,0x6d,0x6c,0x6b,0x6b,
+0x6a,0x69,0x67,0x67,0x68,0x68,0x68,0x67,0x68,0x69,0x6a,0x6a,0x68,0x67,0x67,0x68,
+0x68,0x67,0x65,0x64,0x62,0x5e,0x5a,0x57,0x56,0x52,0x4d,0x47,0x41,0x41,0x48,0x50,
+0x51,0x59,0x5e,0x57,0x46,0x32,0x20,0x14,0x17,0x19,0x1b,0x22,0x2f,0x36,0x33,0x2f,
+0x29,0x2e,0x30,0x26,0x13,0x0c,0x1c,0x33,0x6b,0x70,0x4c,0x1d,0x13,0x16,0x12,0x14,
+0x1d,0x33,0x49,0x52,0x52,0x55,0x5e,0x67,0x64,0x5f,0x53,0x46,0x3d,0x38,0x31,0x2b,
+0x36,0x38,0x36,0x33,0x35,0x41,0x52,0x5e,0x4f,0x49,0x59,0x7c,0x91,0x84,0x6d,0x60,
+0x5c,0x6e,0x8b,0xa0,0x96,0x72,0x4e,0x3b,0x32,0x2f,0x24,0x16,0x14,0x1d,0x27,0x2b,
+0x37,0x44,0x55,0x6a,0x70,0x57,0x3d,0x3d,0x40,0x46,0x4e,0x51,0x4e,0x4f,0x59,0x66,
+0x59,0x4e,0x49,0x45,0x42,0x62,0x84,0x8d,0x82,0x5c,0x39,0x3f,0x35,0x38,0x33,0x33,
+0x64,0x61,0x60,0x65,0x6e,0x74,0x74,0x73,0x7b,0x71,0x6a,0x6d,0x74,0x78,0x78,0x77,
+0x7e,0x7f,0x7c,0x77,0x74,0x74,0x75,0x75,0x74,0x78,0x84,0x94,0x9d,0x9b,0x98,0x97,
+0x99,0xa8,0xae,0xaa,0xa8,0xac,0xa7,0x9b,0x8e,0x8c,0x8f,0x99,0xa1,0xa4,0xa8,0xac,
+0xb1,0xae,0xa9,0xa5,0x9f,0x9b,0x9c,0xa0,0xa1,0xa8,0xa9,0xaa,0xae,0xad,0xad,0xb2,
+0xb2,0xbb,0xbe,0xba,0xb1,0xa2,0x9b,0xa1,0xad,0xad,0xa9,0xa3,0xa2,0xa8,0xab,0xaa,
+0xb0,0xb4,0xb6,0xb5,0xb4,0xb3,0xb2,0xb0,0xb3,0xb4,0xb5,0xb5,0xb7,0xb7,0xb3,0xae,
+0xab,0xa1,0x98,0x98,0x9e,0xa4,0xa8,0xab,0xa6,0xa8,0xab,0xad,0xad,0xab,0xa8,0xa6,
+0x9e,0x9f,0xa5,0xaf,0xb4,0xb2,0xb1,0xb3,0xb3,0xb1,0xb2,0xb3,0xb0,0xab,0xad,0xb3,
+0xb8,0xb9,0xb9,0xb8,0xb7,0xb6,0xb7,0xb8,0xba,0xb8,0xb6,0xb5,0xb5,0xb5,0xb5,0xb5,
+0xb2,0xb2,0xb2,0xb4,0xb5,0xb6,0xb6,0xb5,0xb6,0xb4,0xb2,0xb0,0xb0,0xb3,0xb6,0xb8,
+0xbe,0xba,0xb5,0xb4,0xb7,0xb9,0xb8,0xb7,0xb8,0xb4,0xb3,0xb7,0xb9,0xb5,0xaf,0xab,
+0xbb,0xbb,0xba,0xb8,0xb6,0xb5,0xb5,0xb6,0xbc,0xb7,0xb3,0xb3,0xb5,0xba,0xc2,0xca,
+0xe1,0xe5,0xdb,0xc2,0xae,0xab,0xae,0xad,0xb1,0xb8,0xc0,0xc4,0xc7,0xc9,0xc8,0xc6,
+0xc7,0xc7,0xc7,0xc7,0xc6,0xc6,0xc6,0xc5,0xc5,0xc1,0xbc,0xb6,0xb1,0xac,0xa8,0xa5,
+0xa1,0xa2,0xa4,0xa4,0xa2,0xa4,0xad,0xb7,0xbe,0xb7,0xad,0xa1,0x96,0x8f,0x8b,0x8a,
+0x96,0xa4,0xa3,0xa1,0xbf,0xeb,0xff,0xff,0xf9,0xfa,0xfb,0xfd,0xfe,0xfe,0xff,0xff,
+0xfe,0xfe,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xf9,0xfa,0xfa,0xfb,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfe,0xfd,0xfb,0xfa,0xfa,0xfb,0xfd,0xfe,
+0xfe,0xfd,0xfd,0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xfb,0xfb,
+0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfc,0xfd,0xfb,0xfb,0xfc,0xfd,0xfb,0xf8,0xf3,0xef,
+0xeb,0xe7,0xe5,0xe5,0xe6,0xe8,0xec,0xf0,0xf2,0xf2,0xf1,0xef,0xee,0xee,0xef,0xf0,
+0xf2,0xe9,0xe4,0xe6,0xe5,0xe1,0xe2,0xe8,0xe8,0xe3,0xdf,0xe1,0xe5,0xe5,0xde,0xd7,
+0xc0,0xb9,0xb2,0xaf,0xad,0xac,0xab,0xac,0xaa,0xa9,0xa8,0xa8,0xa9,0xa8,0xa7,0xa5,
+0xa7,0xa6,0xa5,0xa4,0xa2,0xa2,0xa1,0xa1,0xa0,0xa0,0x9e,0x9d,0x9c,0x9b,0x9b,0x9b,
+0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x97,0x95,0x97,0x95,0x93,0x92,0x93,0x94,0x94,0x94,
+0x97,0x97,0x98,0x98,0x98,0x98,0x99,0x99,0x94,0x95,0x9d,0xb1,0xc3,0xc4,0xbf,0xc1,
+0xc5,0xc6,0xc6,0xc5,0xc7,0xcb,0xcd,0xcd,0xc9,0xc7,0xc5,0xc2,0xbc,0xb9,0xbb,0xc1,
+0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc4,0xc4,0xce,0xc9,0xc9,0xc4,0xb0,0x99,0x8c,0x85,
+0x6e,0x72,0x79,0x7a,0x73,0x6d,0x71,0x7b,0x72,0x70,0x74,0x7e,0x80,0x79,0x6f,0x6a,
+0x71,0x71,0x6e,0x6b,0x6c,0x72,0x78,0x7b,0x7e,0x7b,0x76,0x73,0x73,0x73,0x70,0x6a,
+0x6d,0x6b,0x6b,0x71,0x79,0x7d,0x7a,0x75,0x6d,0x6a,0x68,0x6b,0x6d,0x6c,0x6b,0x6b,
+0x6d,0x6c,0x69,0x68,0x68,0x69,0x68,0x67,0x68,0x69,0x6a,0x69,0x68,0x67,0x67,0x67,
+0x67,0x66,0x64,0x62,0x5f,0x5b,0x56,0x52,0x46,0x45,0x40,0x3e,0x45,0x4e,0x4a,0x40,
+0x59,0x61,0x65,0x5b,0x47,0x32,0x20,0x16,0x16,0x16,0x13,0x17,0x22,0x25,0x25,0x2b,
+0x31,0x32,0x2f,0x24,0x19,0x1f,0x3d,0x5b,0x6d,0x54,0x2b,0x12,0x13,0x12,0x0f,0x15,
+0x11,0x23,0x3b,0x4b,0x51,0x4e,0x44,0x3b,0x31,0x2e,0x28,0x21,0x21,0x31,0x4c,0x61,
+0x47,0x31,0x28,0x34,0x3f,0x46,0x57,0x6c,0x69,0x6b,0x71,0x6f,0x5e,0x50,0x5c,0x73,
+0x7e,0x85,0x7c,0x5e,0x3d,0x2d,0x29,0x29,0x19,0x19,0x1c,0x29,0x3a,0x44,0x40,0x37,
+0x40,0x44,0x4a,0x58,0x68,0x68,0x5a,0x50,0x50,0x44,0x3e,0x45,0x4b,0x4d,0x54,0x5d,
+0x5a,0x50,0x49,0x4e,0x46,0x54,0x71,0x91,0x8e,0x77,0x47,0x47,0x43,0x4d,0x3f,0x34,
+0x79,0x72,0x6a,0x67,0x6b,0x72,0x78,0x7b,0x78,0x76,0x78,0x7e,0x82,0x81,0x7b,0x78,
+0x83,0x86,0x85,0x7f,0x7d,0x81,0x87,0x8a,0x79,0x78,0x7e,0x8c,0x96,0x95,0x93,0x93,
+0x95,0x9f,0xa5,0xa5,0xa4,0xa3,0x9b,0x90,0x8a,0x8e,0x94,0x99,0x9a,0x98,0x98,0x9a,
+0x9e,0x9d,0x9c,0x97,0x8f,0x8c,0x92,0x9b,0x9b,0xa0,0xa0,0xa0,0xa3,0xa1,0x9e,0xa1,
+0xa1,0xaa,0xac,0xa4,0x98,0x8b,0x8a,0x95,0xa9,0xab,0xa7,0xa0,0x9f,0xa5,0xa7,0xa5,
+0xa1,0xa8,0xaf,0xb3,0xb6,0xb9,0xba,0xb9,0xb8,0xb7,0xb5,0xb4,0xb6,0xb7,0xaf,0xa6,
+0xa1,0x9b,0x97,0x97,0x99,0x9b,0xa0,0xa6,0xa0,0xa5,0xab,0xae,0xae,0xac,0xaa,0xaa,
+0xa4,0xa1,0xa5,0xaf,0xb5,0xb4,0xb4,0xb7,0xb9,0xb6,0xb6,0xb8,0xb4,0xad,0xac,0xb1,
+0xba,0xbc,0xbe,0xbe,0xbd,0xbd,0xbe,0xbf,0xb9,0xb8,0xb6,0xb7,0xb9,0xbb,0xbb,0xba,
+0xb3,0xb3,0xb4,0xb7,0xba,0xbc,0xbc,0xbc,0xc0,0xbe,0xbb,0xb7,0xb4,0xb3,0xb3,0xb3,
+0xbc,0xb8,0xb3,0xb2,0xb4,0xb5,0xb5,0xb3,0xac,0xaa,0xac,0xb2,0xb4,0xb1,0xac,0xab,
+0xb2,0xb6,0xba,0xbe,0xc0,0xc1,0xc2,0xc3,0xbb,0xb4,0xb0,0xaf,0xad,0xb0,0xbf,0xd2,
+0xe6,0xd9,0xc3,0xb0,0xa9,0xac,0xad,0xaa,0xb4,0xbb,0xc2,0xc4,0xc6,0xc8,0xc8,0xc6,
+0xc7,0xc7,0xc7,0xc7,0xc6,0xc6,0xc6,0xc6,0xc4,0xc2,0xbf,0xbb,0xb7,0xb2,0xac,0xa8,
+0xa6,0xa4,0xa3,0xa1,0x9e,0xa1,0xac,0xb8,0xb9,0xb8,0xb4,0xad,0xa3,0x9a,0x93,0x8e,
+0x91,0x94,0xa1,0xa0,0x9e,0xc8,0xf5,0xf9,0xfb,0xfb,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xf9,0xfa,0xfb,0xfc,0xfc,0xfc,0xfd,0xfc,
+0xfc,0xfc,0xfb,0xfb,0xfa,0xf9,0xf9,0xf9,0xfc,0xfc,0xfc,0xfb,0xfb,0xfc,0xfc,0xfc,
+0xfe,0xfd,0xfd,0xfc,0xfc,0xfd,0xfd,0xfe,0xff,0xfe,0xfd,0xfc,0xfc,0xfc,0xfd,0xfd,
+0xfd,0xfd,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfc,0xfb,0xfb,0xfb,0xfb,0xf9,0xf6,0xf4,
+0xf3,0xef,0xeb,0xeb,0xea,0xe8,0xea,0xee,0xf0,0xf0,0xf1,0xef,0xed,0xec,0xed,0xef,
+0xf3,0xf0,0xed,0xea,0xe7,0xe4,0xe4,0xe5,0xdf,0xe4,0xe8,0xe7,0xe4,0xe2,0xe5,0xe9,
+0xed,0xe7,0xd3,0xb9,0xaf,0xb4,0xb4,0xab,0xac,0xab,0xaa,0xaa,0xab,0xab,0xa9,0xa8,
+0xa9,0xa9,0xa7,0xa6,0xa5,0xa4,0xa4,0xa4,0xa3,0xa2,0xa1,0x9f,0x9e,0x9d,0x9d,0x9d,
+0x9d,0x9d,0x9c,0x9d,0x9d,0x9b,0x99,0x97,0x9a,0x98,0x97,0x97,0x99,0x9a,0x99,0x98,
+0x9b,0x9b,0x9b,0x9c,0x9b,0x9b,0x9a,0x9a,0x9a,0x98,0xa8,0xbd,0xc3,0xbf,0xbf,0xc1,
+0xc5,0xc6,0xc6,0xc4,0xc6,0xca,0xcc,0xcc,0xcb,0xc9,0xc6,0xc2,0xbc,0xb8,0xbb,0xc0,
+0xc3,0xc3,0xc4,0xc4,0xc4,0xc4,0xc4,0xc3,0xc2,0xc0,0xc0,0xc2,0xb7,0x99,0x7c,0x73,
+0x6c,0x68,0x6a,0x72,0x75,0x71,0x6e,0x6f,0x7a,0x79,0x83,0x8f,0x8b,0x77,0x69,0x66,
+0x6f,0x6f,0x6d,0x6b,0x6c,0x72,0x76,0x77,0x77,0x74,0x72,0x72,0x70,0x6e,0x6f,0x71,
+0x76,0x73,0x70,0x71,0x73,0x75,0x74,0x73,0x70,0x6c,0x6a,0x6c,0x6e,0x6d,0x6d,0x6d,
+0x70,0x6e,0x6b,0x69,0x69,0x69,0x68,0x67,0x68,0x69,0x6a,0x69,0x68,0x67,0x66,0x67,
+0x66,0x65,0x62,0x5f,0x5b,0x55,0x4f,0x4a,0x49,0x3d,0x33,0x3c,0x57,0x75,0x87,0x8d,
+0x82,0x80,0x77,0x66,0x52,0x3e,0x2b,0x1f,0x1c,0x1f,0x20,0x26,0x2c,0x22,0x1b,0x25,
+0x33,0x2b,0x22,0x1d,0x1e,0x2b,0x46,0x5e,0x48,0x2d,0x16,0x12,0x14,0x11,0x11,0x18,
+0x1d,0x1e,0x1f,0x21,0x27,0x2c,0x2c,0x28,0x29,0x1e,0x18,0x20,0x2e,0x3a,0x44,0x4a,
+0x5e,0x68,0x6c,0x6c,0x75,0x82,0x80,0x73,0x71,0x63,0x55,0x58,0x6f,0x82,0x7e,0x6f,
+0x6f,0x57,0x36,0x23,0x28,0x33,0x2d,0x1f,0x1e,0x1d,0x26,0x3e,0x59,0x68,0x69,0x65,
+0x4f,0x4a,0x50,0x5d,0x63,0x61,0x56,0x48,0x54,0x4d,0x48,0x44,0x3d,0x37,0x39,0x40,
+0x52,0x59,0x57,0x5e,0x52,0x51,0x5e,0x84,0x9b,0x84,0x3f,0x38,0x3c,0x4e,0x48,0x4b,
+0x79,0x77,0x74,0x72,0x71,0x71,0x70,0x70,0x81,0x80,0x81,0x82,0x7d,0x74,0x6d,0x69,
+0x71,0x78,0x7c,0x7a,0x79,0x7d,0x82,0x84,0x81,0x7a,0x7a,0x85,0x8f,0x90,0x8e,0x8f,
+0x90,0x92,0x97,0x9b,0x9c,0x96,0x8c,0x83,0x7c,0x86,0x90,0x93,0x92,0x90,0x90,0x90,
+0xa0,0xa4,0xa7,0xa1,0x94,0x8d,0x93,0x9d,0xb4,0xb4,0xac,0xa5,0xa3,0x9f,0x9a,0x9c,
+0x9b,0xa2,0x9e,0x91,0x84,0x7c,0x84,0x96,0xa8,0xab,0xa8,0xa1,0xa0,0xa6,0xa7,0xa3,
+0xa5,0xac,0xb3,0xb7,0xb9,0xba,0xba,0xb8,0xb1,0xb0,0xad,0xad,0xb1,0xb2,0xaa,0x9f,
+0x92,0x93,0x96,0x9a,0x98,0x95,0x98,0x9d,0x96,0x9d,0xa7,0xad,0xae,0xad,0xaf,0xb1,
+0xaa,0xa5,0xa6,0xb0,0xb8,0xba,0xbc,0xc0,0xbf,0xbb,0xba,0xbc,0xb8,0xaf,0xac,0xb0,
+0xb6,0xb8,0xbb,0xbd,0xbc,0xbc,0xbe,0xbf,0xbb,0xba,0xb9,0xba,0xbd,0xc0,0xc0,0xbf,
+0xbb,0xbb,0xbb,0xbc,0xbe,0xbe,0xbd,0xbb,0xb9,0xbb,0xbe,0xc0,0xbf,0xbd,0xb9,0xb7,
+0xb5,0xb1,0xad,0xad,0xaf,0xb1,0xb1,0xaf,0xaf,0xad,0xaf,0xb2,0xb3,0xb1,0xb2,0xb6,
+0xad,0xb1,0xb7,0xbc,0xbd,0xbd,0xbc,0xbb,0xb7,0xb2,0xb1,0xb5,0xb4,0xb8,0xd0,0xed,
+0xe0,0xcb,0xb3,0xa7,0xa5,0xa7,0xab,0xae,0xb8,0xbf,0xc5,0xc5,0xc6,0xc7,0xc7,0xc5,
+0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc7,0xc8,0xc6,0xc5,0xc2,0xbe,0xb8,0xb1,0xac,
+0xa9,0xa8,0xa9,0xa9,0xa5,0xa3,0xa8,0xb0,0xaf,0xb8,0xbf,0xbb,0xae,0x9f,0x95,0x90,
+0x89,0x91,0x9b,0xac,0xb2,0xa9,0xbd,0xe8,0xfc,0xfc,0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,
+0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfa,0xfa,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,
+0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf8,0xf7,0xfa,0xfb,0xfc,0xfd,0xfd,0xfc,0xfb,0xfa,
+0xfe,0xfd,0xfd,0xfc,0xfc,0xfd,0xfd,0xfe,0xff,0xfe,0xfd,0xfc,0xfc,0xfd,0xff,0xff,
+0xff,0xfe,0xfc,0xfd,0xfe,0xff,0xff,0xfe,0xfc,0xfb,0xf9,0xf9,0xfa,0xfa,0xfa,0xf9,
+0xf9,0xf4,0xf0,0xee,0xeb,0xe6,0xe6,0xe9,0xe9,0xed,0xf1,0xf3,0xf1,0xed,0xeb,0xea,
+0xe6,0xf0,0xf7,0xf4,0xf0,0xef,0xeb,0xe4,0xe5,0xe6,0xe6,0xe5,0xe4,0xe4,0xe5,0xe6,
+0xea,0xe8,0xeb,0xf0,0xe8,0xd2,0xbd,0xb2,0xad,0xac,0xac,0xac,0xad,0xac,0xab,0xa9,
+0xaa,0xaa,0xa8,0xa7,0xa6,0xa5,0xa4,0xa4,0xa5,0xa4,0xa2,0xa1,0xa0,0x9f,0x9f,0x9f,
+0xa0,0x9f,0x9f,0x9f,0x9f,0x9e,0x9b,0x99,0x9a,0x99,0x99,0x9a,0x9d,0x9e,0x9d,0x9c,
+0x9e,0x9e,0x9f,0x9f,0x9e,0x9d,0x9b,0x9a,0xa0,0x9d,0xb1,0xc7,0xc4,0xbd,0xc0,0xc2,
+0xc7,0xc8,0xc7,0xc6,0xc7,0xcb,0xcd,0xcd,0xcd,0xca,0xc7,0xc2,0xbb,0xb6,0xb9,0xbe,
+0xc2,0xc3,0xc4,0xc5,0xc5,0xc5,0xc4,0xc4,0xc9,0xca,0xc8,0xca,0xc6,0xa4,0x7d,0x6f,
+0x6b,0x6b,0x72,0x7b,0x7b,0x75,0x73,0x76,0x76,0x70,0x73,0x7b,0x76,0x68,0x69,0x75,
+0x6d,0x6c,0x6a,0x69,0x6c,0x71,0x72,0x70,0x78,0x76,0x76,0x77,0x71,0x6c,0x6f,0x77,
+0x75,0x73,0x6f,0x6c,0x6b,0x6c,0x6f,0x71,0x73,0x6e,0x6c,0x6d,0x6f,0x6f,0x6e,0x6f,
+0x72,0x6f,0x6c,0x6a,0x69,0x68,0x67,0x67,0x68,0x69,0x6a,0x69,0x68,0x67,0x66,0x67,
+0x66,0x64,0x61,0x5c,0x57,0x50,0x49,0x44,0x3c,0x3a,0x4e,0x73,0x87,0x80,0x75,0x76,
+0x65,0x64,0x62,0x60,0x5d,0x55,0x45,0x37,0x2e,0x32,0x32,0x38,0x3a,0x28,0x1f,0x2d,
+0x30,0x24,0x1a,0x19,0x1c,0x1e,0x22,0x27,0x20,0x15,0x11,0x12,0x10,0x11,0x14,0x14,
+0x16,0x1a,0x1d,0x1d,0x1e,0x20,0x20,0x1f,0x11,0x17,0x1e,0x1f,0x1a,0x23,0x47,0x6c,
+0x70,0x6d,0x6f,0x73,0x70,0x69,0x6a,0x70,0x67,0x6a,0x73,0x7b,0x76,0x60,0x47,0x37,
+0x26,0x26,0x2d,0x36,0x33,0x27,0x1e,0x1e,0x1f,0x33,0x50,0x66,0x6a,0x66,0x6a,0x73,
+0x6a,0x4c,0x42,0x48,0x41,0x3c,0x44,0x4c,0x49,0x43,0x3c,0x3a,0x3e,0x44,0x46,0x46,
+0x3a,0x4f,0x49,0x4c,0x45,0x44,0x3b,0x4e,0x52,0x45,0x0f,0x24,0x34,0x3a,0x2d,0x3a,
+0x74,0x75,0x76,0x76,0x77,0x76,0x74,0x71,0x6a,0x6d,0x6e,0x6c,0x68,0x66,0x66,0x67,
+0x71,0x77,0x7d,0x7f,0x7d,0x7b,0x80,0x86,0x7a,0x74,0x74,0x7f,0x8e,0x94,0x8c,0x81,
+0x76,0x82,0x8c,0x8d,0x89,0x84,0x7c,0x74,0x7a,0x81,0x92,0xa6,0xa9,0x99,0x89,0x82,
+0x93,0xa0,0xa8,0xa5,0x96,0x85,0x86,0x98,0xa7,0xaa,0xaa,0xa7,0xa7,0xa4,0x98,0x89,
+0x8a,0x8b,0x87,0x7d,0x78,0x7f,0x8e,0x9a,0xa1,0xa9,0xaa,0x9f,0x98,0x9b,0xa0,0xa1,
+0xa3,0xa8,0xaa,0xa6,0xa4,0xa9,0xae,0xb1,0xb2,0xa9,0xa7,0xac,0xaf,0xaf,0xa5,0x93,
+0x83,0x8e,0x92,0x95,0x8f,0x8c,0x91,0x85,0x8c,0x97,0xa5,0xa8,0xa8,0xaf,0xb2,0xaa,
+0xac,0xa9,0xb1,0xb5,0xba,0xbe,0xb9,0xbd,0xbe,0xbd,0xbe,0xbf,0xbc,0xb5,0xae,0xaa,
+0xb0,0xb6,0xb9,0xb8,0xb8,0xbb,0xba,0xb5,0xb1,0xb0,0xaf,0xb0,0xb6,0xbd,0xc0,0xbe,
+0xb9,0xb6,0xb6,0xbb,0xbf,0xbe,0xbe,0xc1,0xbd,0xc0,0xbf,0xba,0xb9,0xbb,0xbc,0xb9,
+0xba,0xb7,0xac,0xa8,0xb2,0xb5,0xae,0xa9,0xa9,0xb2,0xb9,0xb8,0xb4,0xb0,0xab,0xa6,
+0xab,0xaf,0xb5,0xbb,0xbe,0xbc,0xb5,0xaf,0xb0,0xb2,0xc4,0xc1,0xb0,0xc7,0xe5,0xdd,
+0xcc,0xb7,0xa8,0xa7,0xa9,0xa7,0xa9,0xb1,0xbc,0xbf,0xc4,0xc7,0xc8,0xc8,0xc8,0xc8,
+0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc7,0xc6,0xc4,0xc2,0xbf,0xbb,0xb5,0xb1,
+0xaf,0xa8,0xa4,0xa6,0xa6,0xa4,0xa8,0xaf,0xb5,0xb4,0xb4,0xb7,0xbb,0xb8,0xab,0x9e,
+0x91,0x8a,0x8f,0x9f,0xa7,0xa6,0xaf,0xbe,0xf5,0xfa,0xf8,0xfc,0xff,0xfa,0xf2,0xfe,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfa,0xfb,0xfc,0xfd,0xfd,0xfd,0xfc,0xfb,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xf8,0xf9,0xfb,0xfc,0xfc,0xfc,0xfc,0xfb,
+0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe,0xfe,0xfd,0xfe,0xfe,0xff,0xfe,0xfe,0xfd,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,
+0xfb,0xf8,0xf3,0xee,0xea,0xe7,0xe5,0xe5,0xe6,0xe8,0xeb,0xf0,0xf5,0xf6,0xf3,0xf0,
+0xec,0xec,0xec,0xed,0xee,0xf0,0xf1,0xf2,0xf1,0xe9,0xe2,0xe3,0xe9,0xed,0xec,0xe8,
+0xec,0xe8,0xe4,0xe4,0xe8,0xea,0xe9,0xe7,0xd7,0xc5,0xaf,0xa6,0xa9,0xaf,0xae,0xab,
+0xaa,0xa8,0xa7,0xa7,0xa8,0xa8,0xa8,0xa7,0xa3,0xa4,0xa6,0xa6,0xa5,0xa3,0xa2,0xa1,
+0x9f,0xa0,0xa1,0xa2,0xa2,0xa1,0x9f,0x9e,0xa1,0xa1,0xa0,0xa0,0xa0,0xa1,0xa1,0xa2,
+0x9f,0xa1,0xa1,0xa0,0x9d,0x9b,0x9b,0x9c,0x9c,0xb2,0xc5,0xc4,0xbc,0xbb,0xc1,0xc5,
+0xc7,0xc7,0xc8,0xc9,0xca,0xcd,0xcf,0xd0,0xca,0xc5,0xbf,0xba,0xb3,0xb0,0xb5,0xbd,
+0xc3,0xc6,0xc8,0xc7,0xc4,0xc3,0xc4,0xc6,0xc5,0xc7,0xca,0xc9,0xc2,0xb7,0x9a,0x78,
+0x6d,0x71,0x74,0x7a,0x7e,0x78,0x75,0x7b,0x77,0x72,0x73,0x75,0x70,0x69,0x6d,0x78,
+0x73,0x70,0x6c,0x69,0x6d,0x71,0x6e,0x68,0x66,0x6a,0x72,0x77,0x72,0x6b,0x6c,0x73,
+0x77,0x6c,0x6b,0x6f,0x6c,0x6b,0x6e,0x6e,0x71,0x70,0x6d,0x6c,0x6d,0x6e,0x6f,0x6f,
+0x6d,0x6d,0x6e,0x6e,0x6d,0x6c,0x6b,0x6a,0x68,0x69,0x6a,0x69,0x67,0x66,0x66,0x67,
+0x64,0x62,0x5f,0x5b,0x56,0x50,0x4a,0x45,0x40,0x42,0x54,0x6e,0x79,0x6f,0x65,0x64,
+0x73,0x82,0x84,0x7c,0x76,0x66,0x52,0x4c,0x3f,0x38,0x35,0x39,0x3a,0x35,0x2f,0x2d,
+0x30,0x2d,0x2a,0x28,0x27,0x28,0x28,0x28,0x21,0x1e,0x1c,0x1c,0x1d,0x1b,0x16,0x12,
+0x15,0x12,0x14,0x1e,0x27,0x29,0x24,0x1f,0x1c,0x1a,0x19,0x18,0x17,0x18,0x18,0x18,
+0x35,0x47,0x5a,0x62,0x64,0x64,0x60,0x5b,0x5d,0x5e,0x5a,0x4b,0x35,0x25,0x23,0x28,
+0x31,0x37,0x3a,0x33,0x28,0x21,0x24,0x28,0x2a,0x39,0x51,0x6d,0x79,0x69,0x53,0x4d,
+0x54,0x5b,0x5e,0x58,0x4a,0x3d,0x32,0x2c,0x3b,0x37,0x37,0x3d,0x3f,0x3c,0x3c,0x3f,
+0x51,0x44,0x42,0x39,0x2a,0x21,0x23,0x39,0x50,0x52,0x40,0x28,0x27,0x32,0x33,0x2f,
+0x7b,0x77,0x75,0x7b,0x84,0x83,0x75,0x67,0x5e,0x5c,0x5c,0x61,0x69,0x6f,0x70,0x6f,
+0x73,0x75,0x76,0x76,0x73,0x73,0x76,0x7b,0x7d,0x73,0x6a,0x6d,0x7c,0x88,0x86,0x7e,
+0x6e,0x74,0x79,0x7a,0x79,0x79,0x79,0x78,0x6b,0x6b,0x73,0x80,0x84,0x81,0x80,0x84,
+0x98,0xa0,0xa4,0xa1,0x98,0x8b,0x8c,0x9b,0xa2,0xa4,0xa2,0x9f,0x9e,0x98,0x88,0x78,
+0x83,0x8a,0x90,0x90,0x8d,0x8d,0x93,0x98,0x99,0x99,0x95,0x92,0x94,0x9a,0x9d,0x9c,
+0xa7,0xb0,0xb4,0xad,0xa3,0xa3,0xab,0xb1,0xaf,0xaf,0xaf,0xab,0xa9,0xae,0xaa,0x9b,
+0x88,0x90,0x93,0x97,0x93,0x93,0x99,0x8d,0x8f,0x94,0x9e,0xa3,0xa5,0xac,0xae,0xa7,
+0xa7,0xaa,0xb4,0xb1,0xb4,0xbe,0xbd,0xc0,0xb7,0xba,0xbe,0xc0,0xbd,0xb6,0xaf,0xab,
+0xac,0xaf,0xaf,0xaa,0xa9,0xb0,0xb6,0xb8,0xb2,0xb2,0xb1,0xaf,0xb0,0xb3,0xb3,0xb1,
+0xb5,0xb3,0xb4,0xb7,0xb7,0xb5,0xb4,0xb7,0xba,0xbb,0xb8,0xb4,0xb3,0xb5,0xb5,0xb2,
+0xbe,0xb7,0xaa,0xa5,0xae,0xb0,0xa8,0xa3,0xa6,0xaf,0xb3,0xad,0xa7,0xa6,0xa5,0xa3,
+0xa6,0xab,0xb3,0xba,0xbd,0xb9,0xb1,0xab,0xab,0xba,0xbf,0xb7,0xbe,0xdb,0xe4,0xd2,
+0xb5,0xab,0xa7,0xad,0xb0,0xac,0xad,0xb4,0xc0,0xc2,0xc5,0xc7,0xc6,0xc6,0xc6,0xc6,
+0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc5,0xc5,0xc5,0xc4,0xc4,0xc3,0xc2,0xbf,0xbb,0xb9,
+0xb4,0xae,0xaa,0xaa,0xa9,0xa6,0xa8,0xae,0xb3,0xb5,0xb8,0xb9,0xb9,0xb6,0xac,0xa3,
+0x93,0x8f,0x8b,0x8d,0x97,0xa3,0xaa,0xac,0xc6,0xe7,0xff,0xfd,0xf3,0xf9,0xfc,0xf5,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfa,0xfb,0xfb,0xfc,0xfd,0xfd,0xfc,0xfc,
+0xfc,0xfc,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xf9,0xfa,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,
+0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfd,0xfd,0xfc,0xfc,0xfb,0xfa,
+0xf9,0xf9,0xf9,0xf7,0xf3,0xee,0xe8,0xe5,0xe4,0xe5,0xe9,0xee,0xf3,0xf5,0xf4,0xf2,
+0xf0,0xf0,0xee,0xed,0xed,0xed,0xee,0xee,0xec,0xec,0xec,0xea,0xe7,0xe6,0xe7,0xe8,
+0xed,0xec,0xeb,0xeb,0xea,0xe7,0xe3,0xe0,0xe7,0xe5,0xde,0xd2,0xc2,0xb5,0xae,0xab,
+0xae,0xad,0xac,0xab,0xaa,0xa7,0xa3,0xa0,0xa9,0xa8,0xa7,0xa6,0xa5,0xa4,0xa3,0xa2,
+0xa6,0xa6,0xa5,0xa4,0xa4,0xa4,0xa4,0xa4,0xa0,0xa0,0xa0,0xa0,0xa1,0xa2,0xa3,0xa3,
+0x9c,0x9d,0x9e,0x9f,0x9f,0xa0,0xa2,0xa4,0xb0,0xbc,0xc5,0xc1,0xbb,0xbd,0xc2,0xc4,
+0xc5,0xc5,0xc6,0xc7,0xc7,0xc8,0xc9,0xca,0xc7,0xc3,0xbd,0xb7,0xb1,0xaf,0xb5,0xbe,
+0xc4,0xc6,0xc8,0xc7,0xc5,0xc4,0xc5,0xc7,0xc5,0xc6,0xc9,0xca,0xc6,0xbe,0xa5,0x85,
+0x6b,0x6e,0x73,0x7a,0x7d,0x77,0x73,0x76,0x72,0x70,0x72,0x77,0x74,0x6d,0x71,0x7b,
+0x73,0x70,0x69,0x67,0x6b,0x73,0x75,0x73,0x68,0x6a,0x71,0x77,0x75,0x6d,0x6a,0x6c,
+0x70,0x6d,0x70,0x72,0x6e,0x6f,0x74,0x75,0x74,0x72,0x71,0x72,0x74,0x73,0x6f,0x6b,
+0x6e,0x6e,0x6e,0x6f,0x6e,0x6d,0x6c,0x6b,0x6b,0x6c,0x6c,0x6b,0x68,0x66,0x66,0x66,
+0x64,0x62,0x5e,0x5a,0x55,0x4e,0x48,0x44,0x3a,0x3b,0x44,0x53,0x5c,0x5f,0x68,0x73,
+0x7c,0x83,0x8c,0x95,0x96,0x83,0x67,0x58,0x57,0x3a,0x1d,0x17,0x21,0x2d,0x33,0x34,
+0x3d,0x3e,0x40,0x42,0x41,0x3c,0x34,0x2d,0x2b,0x2c,0x2a,0x24,0x1d,0x19,0x1b,0x1d,
+0x1d,0x21,0x27,0x2a,0x27,0x20,0x1d,0x1e,0x1f,0x1f,0x1e,0x1b,0x16,0x13,0x13,0x14,
+0x15,0x25,0x39,0x46,0x4d,0x4f,0x4e,0x4c,0x54,0x42,0x29,0x19,0x16,0x1f,0x2b,0x34,
+0x42,0x3e,0x35,0x29,0x1d,0x17,0x1d,0x26,0x2e,0x30,0x3c,0x5a,0x76,0x74,0x61,0x57,
+0x40,0x47,0x56,0x65,0x66,0x58,0x48,0x40,0x3b,0x39,0x38,0x3d,0x41,0x43,0x43,0x44,
+0x3f,0x34,0x37,0x36,0x30,0x29,0x27,0x36,0x46,0x4c,0x44,0x35,0x35,0x3a,0x37,0x33,
+0x6f,0x6e,0x6e,0x72,0x77,0x79,0x77,0x75,0x67,0x61,0x5f,0x68,0x78,0x83,0x83,0x7f,
+0x6c,0x6c,0x6d,0x6e,0x6f,0x70,0x70,0x6f,0x65,0x66,0x65,0x6a,0x79,0x85,0x7f,0x72,
+0x63,0x63,0x64,0x65,0x63,0x62,0x65,0x69,0x6d,0x6b,0x6c,0x6e,0x6b,0x67,0x68,0x6d,
+0x81,0x83,0x80,0x7b,0x76,0x6c,0x6a,0x73,0x88,0x8a,0x8c,0x8d,0x8f,0x8d,0x81,0x73,
+0x7b,0x87,0x95,0x9d,0x9c,0x98,0x97,0x97,0x9c,0x98,0x96,0x95,0x94,0x91,0x90,0x92,
+0x9b,0xa5,0xae,0xad,0xa6,0x9e,0x96,0x92,0xa3,0xac,0xb3,0xae,0xa8,0xae,0xae,0xa2,
+0x98,0x9b,0x99,0x9b,0x97,0x96,0x9a,0x8d,0x84,0x7d,0x80,0x8e,0x9c,0xa7,0xa7,0x9c,
+0x98,0xa0,0xa9,0xa0,0x9f,0xaa,0xaa,0xab,0xb2,0xb6,0xbb,0xbc,0xba,0xb6,0xb4,0xb2,
+0xb5,0xbc,0xc0,0xbb,0xb5,0xb3,0xb1,0xae,0xae,0xad,0xa9,0xa6,0xaa,0xb3,0xbc,0xbf,
+0xad,0xb1,0xb8,0xbf,0xc1,0xbf,0xbc,0xbc,0xb6,0xbf,0xc6,0xc6,0xc2,0xbf,0xc0,0xc0,
+0xbd,0xb4,0xa4,0x9e,0xa4,0xa4,0x9e,0x9c,0xad,0xb3,0xb3,0xaa,0xa4,0xa7,0xac,0xad,
+0xb3,0xb2,0xb1,0xaf,0xad,0xa9,0xa3,0x9f,0xa6,0xb6,0xb7,0xbb,0xd7,0xe7,0xd6,0xc2,
+0xb2,0xad,0xab,0xac,0xab,0xaa,0xb1,0xbc,0xc2,0xc4,0xc5,0xc6,0xc5,0xc5,0xc5,0xc6,
+0xc6,0xc7,0xc7,0xc7,0xc7,0xc6,0xc4,0xc4,0xc3,0xc2,0xc1,0xc0,0xc0,0xbf,0xbd,0xbb,
+0xb6,0xb0,0xad,0xac,0xa9,0xa5,0xa5,0xa8,0xaa,0xb0,0xb7,0xb9,0xb8,0xb6,0xb3,0xaf,
+0xa2,0x97,0x89,0x84,0x8e,0x9c,0xa4,0xa4,0xa7,0xc6,0xf1,0xfb,0xed,0xf4,0xff,0xf2,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfd,0xfe,
+0xfd,0xfd,0xfd,0xfc,0xfb,0xfb,0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfd,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfc,0xfc,0xfc,0xfb,0xfa,0xfa,0xf9,
+0xf9,0xfb,0xfc,0xfc,0xf9,0xf3,0xee,0xea,0xe5,0xe6,0xe9,0xed,0xf1,0xf4,0xf5,0xf5,
+0xf5,0xf4,0xf2,0xef,0xee,0xee,0xee,0xee,0xee,0xf1,0xf4,0xf2,0xee,0xea,0xea,0xec,
+0xea,0xec,0xee,0xee,0xeb,0xe9,0xe8,0xe8,0xe4,0xe6,0xe9,0xe9,0xe4,0xdc,0xd3,0xcd,
+0xbc,0xb6,0xb0,0xab,0xaa,0xac,0xaf,0xb0,0xa9,0xa7,0xa5,0xa5,0xa6,0xa8,0xa7,0xa6,
+0xaa,0xa8,0xa5,0xa3,0xa2,0xa2,0xa4,0xa5,0xa2,0xa1,0xa1,0xa0,0xa0,0x9f,0x9f,0xa0,
+0xad,0xa9,0xa3,0x9f,0x9f,0xa4,0xab,0xb1,0xc2,0xc4,0xc1,0xbc,0xbb,0xc0,0xc4,0xc3,
+0xc3,0xc5,0xc6,0xc6,0xc4,0xc3,0xc2,0xc3,0xc2,0xc0,0xbb,0xb4,0xae,0xad,0xb6,0xc0,
+0xc4,0xc5,0xc7,0xc6,0xc4,0xc4,0xc5,0xc7,0xc5,0xc4,0xc7,0xca,0xca,0xc7,0xb3,0x97,
+0x73,0x71,0x73,0x79,0x7a,0x76,0x73,0x75,0x70,0x6d,0x6f,0x72,0x70,0x6d,0x74,0x7f,
+0x77,0x71,0x67,0x61,0x64,0x6c,0x72,0x73,0x71,0x6d,0x6f,0x74,0x75,0x70,0x6c,0x6d,
+0x76,0x78,0x7a,0x75,0x6f,0x73,0x79,0x76,0x70,0x6f,0x70,0x73,0x76,0x76,0x72,0x6e,
+0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6e,0x6c,0x69,0x67,0x66,0x66,
+0x63,0x60,0x5c,0x57,0x52,0x4b,0x45,0x40,0x3c,0x3c,0x41,0x4d,0x5b,0x66,0x6e,0x73,
+0x73,0x5f,0x50,0x4d,0x4c,0x51,0x5b,0x62,0x55,0x44,0x31,0x29,0x2c,0x35,0x3c,0x40,
+0x41,0x3e,0x3b,0x3a,0x3d,0x40,0x42,0x43,0x3f,0x36,0x2c,0x27,0x29,0x2a,0x27,0x24,
+0x2d,0x2c,0x2b,0x27,0x20,0x19,0x19,0x1c,0x1d,0x1f,0x20,0x1d,0x18,0x16,0x18,0x1b,
+0x20,0x20,0x27,0x35,0x41,0x45,0x42,0x3f,0x2e,0x23,0x18,0x1b,0x2b,0x3c,0x45,0x46,
+0x44,0x36,0x26,0x1c,0x14,0x14,0x20,0x2f,0x33,0x2c,0x2c,0x44,0x67,0x78,0x77,0x75,
+0x6e,0x59,0x47,0x44,0x46,0x47,0x4e,0x58,0x4a,0x4a,0x48,0x47,0x48,0x45,0x3d,0x35,
+0x37,0x2d,0x31,0x31,0x2d,0x24,0x1a,0x20,0x25,0x28,0x20,0x16,0x15,0x17,0x16,0x18,
+0x72,0x72,0x72,0x70,0x6d,0x6b,0x6f,0x75,0x6a,0x65,0x63,0x6a,0x75,0x7d,0x7c,0x78,
+0x82,0x81,0x80,0x7f,0x7d,0x76,0x6b,0x61,0x73,0x74,0x6e,0x66,0x6b,0x77,0x79,0x71,
+0x66,0x64,0x66,0x6a,0x68,0x62,0x61,0x65,0x6a,0x6d,0x71,0x74,0x76,0x79,0x7f,0x85,
+0x8c,0x8b,0x83,0x7b,0x74,0x68,0x62,0x67,0x74,0x77,0x7a,0x7a,0x7b,0x7b,0x77,0x71,
+0x7a,0x83,0x8f,0x97,0x96,0x92,0x8f,0x90,0x80,0x84,0x8c,0x8e,0x84,0x7a,0x7e,0x8a,
+0x96,0xa1,0xae,0xb5,0xb2,0xa8,0x9e,0x97,0x99,0xa2,0xaf,0xb2,0xad,0xac,0xa8,0x9e,
+0x8b,0x8d,0x8b,0x93,0x95,0x98,0x9e,0x92,0x91,0x80,0x7e,0x92,0xa9,0xb6,0xb1,0xa2,
+0xa0,0xa3,0xab,0xa5,0xa5,0xae,0xac,0xaf,0xaf,0xb3,0xb4,0xb2,0xaf,0xb0,0xb4,0xb6,
+0xb2,0xb6,0xb4,0xa8,0x98,0x88,0x77,0x69,0x66,0x74,0x88,0x9c,0xae,0xb7,0xb7,0xb2,
+0xb6,0xb6,0xb8,0xbb,0xbe,0xbd,0xbb,0xb9,0xb8,0xb9,0xb9,0xb8,0xb7,0xb5,0xb3,0xb0,
+0xb9,0xb0,0xa0,0x99,0x9b,0x98,0x96,0x9b,0xae,0xb0,0xac,0xa3,0xa0,0xa7,0xaf,0xb2,
+0xad,0xa6,0x9e,0x9e,0xa5,0xaf,0xb5,0xb6,0xa3,0xa7,0xb5,0xd3,0xe9,0xdb,0xc0,0xb4,
+0xb1,0xaf,0xad,0xa9,0xa5,0xa6,0xb2,0xbf,0xc2,0xc3,0xc4,0xc4,0xc4,0xc5,0xc7,0xc8,
+0xc6,0xc7,0xc7,0xc8,0xc8,0xc7,0xc5,0xc5,0xc6,0xc4,0xc1,0xbf,0xbe,0xbc,0xba,0xb9,
+0xb6,0xb2,0xaf,0xae,0xaa,0xa5,0xa3,0xa4,0xa9,0xb0,0xb6,0xb9,0xb9,0xba,0xba,0xb8,
+0xb3,0x9e,0x8d,0x8a,0x8c,0x8e,0x98,0xa5,0xad,0xab,0xc7,0xec,0xf7,0xf4,0xf7,0xfa,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfb,0xfb,0xfa,0xfa,0xfb,0xfc,0xfe,0xff,
+0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfb,0xfb,0xfc,0xfb,0xfb,0xfa,0xfb,0xfc,0xfd,0xfd,
+0xfe,0xfe,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xff,0xff,
+0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xfc,0xfc,0xfc,0xfc,0xfb,0xfa,0xfa,0xf9,
+0xfd,0xfc,0xfb,0xf9,0xf7,0xf5,0xf4,0xf3,0xee,0xec,0xeb,0xec,0xee,0xf2,0xf6,0xf8,
+0xf8,0xf6,0xf4,0xf3,0xf2,0xf2,0xf2,0xf2,0xf3,0xf2,0xf2,0xf3,0xf6,0xf6,0xf2,0xef,
+0xeb,0xeb,0xea,0xe9,0xe8,0xe9,0xeb,0xed,0xe9,0xe8,0xe7,0xe8,0xea,0xea,0xe6,0xe3,
+0xf0,0xe5,0xd4,0xc3,0xb6,0xad,0xa8,0xa6,0xab,0xa8,0xa5,0xa6,0xa8,0xa9,0xa7,0xa4,
+0xa7,0xa5,0xa2,0x9f,0x9e,0x9e,0x9f,0xa0,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0xa0,0xa1,
+0x94,0x96,0x9a,0xa2,0xae,0xbd,0xcb,0xd3,0xc4,0xc2,0xbd,0xba,0xbd,0xc3,0xc6,0xc5,
+0xc4,0xc6,0xc8,0xc7,0xc3,0xc0,0xbf,0xbe,0xbe,0xbd,0xb8,0xb1,0xab,0xad,0xb7,0xc2,
+0xc2,0xc3,0xc4,0xc4,0xc3,0xc2,0xc3,0xc4,0xc5,0xc2,0xc5,0xc8,0xca,0xca,0xbc,0xa6,
+0x83,0x79,0x76,0x78,0x78,0x76,0x76,0x75,0x72,0x6d,0x69,0x68,0x65,0x65,0x70,0x7d,
+0x76,0x6f,0x65,0x5f,0x60,0x67,0x6f,0x73,0x75,0x6d,0x68,0x6a,0x6c,0x6d,0x71,0x77,
+0x84,0x83,0x7e,0x74,0x72,0x7f,0x85,0x7c,0x6f,0x6f,0x70,0x72,0x73,0x74,0x74,0x73,
+0x70,0x70,0x71,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6d,0x6c,0x6a,0x68,0x66,0x66,
+0x61,0x5f,0x5a,0x55,0x4f,0x48,0x41,0x3d,0x35,0x30,0x2f,0x3b,0x50,0x5d,0x59,0x4e,
+0x42,0x34,0x34,0x3e,0x44,0x4f,0x56,0x4f,0x51,0x53,0x53,0x4c,0x44,0x41,0x43,0x47,
+0x39,0x3c,0x3f,0x41,0x40,0x40,0x41,0x42,0x42,0x37,0x2d,0x2f,0x38,0x3e,0x39,0x31,
+0x35,0x28,0x1c,0x19,0x1d,0x20,0x21,0x21,0x22,0x22,0x21,0x1f,0x1d,0x1d,0x20,0x23,
+0x1e,0x1a,0x1a,0x22,0x29,0x2d,0x34,0x3c,0x32,0x36,0x3d,0x44,0x4a,0x4b,0x44,0x3c,
+0x35,0x25,0x17,0x15,0x14,0x15,0x22,0x32,0x29,0x25,0x1e,0x25,0x3c,0x54,0x67,0x78,
+0x83,0x83,0x88,0x8d,0x86,0x70,0x58,0x4b,0x4b,0x4d,0x4b,0x45,0x40,0x36,0x23,0x11,
+0x14,0x0d,0x14,0x18,0x1b,0x1a,0x14,0x1a,0x27,0x28,0x20,0x18,0x14,0x10,0x0f,0x14,
+0x68,0x64,0x64,0x6a,0x6d,0x6a,0x65,0x62,0x62,0x63,0x65,0x68,0x6c,0x6f,0x71,0x71,
+0x78,0x7d,0x83,0x8a,0x92,0x95,0x8f,0x86,0x78,0x7f,0x7c,0x71,0x6e,0x77,0x7b,0x78,
+0x65,0x63,0x67,0x6d,0x6d,0x67,0x64,0x67,0x76,0x77,0x76,0x72,0x71,0x76,0x7e,0x83,
+0x82,0x83,0x7d,0x74,0x6c,0x5f,0x56,0x58,0x5e,0x64,0x6a,0x6a,0x6a,0x6e,0x76,0x7c,
+0x7e,0x81,0x87,0x8b,0x88,0x80,0x7c,0x7d,0x7d,0x82,0x8b,0x8c,0x80,0x75,0x7e,0x8f,
+0x8c,0x93,0x9c,0xa3,0xa5,0xa4,0xa4,0xa5,0x91,0x90,0x9c,0xaa,0xa9,0xa3,0x9f,0x9a,
+0x8a,0x88,0x85,0x8c,0x8d,0x8c,0x8f,0x81,0x85,0x79,0x7a,0x8a,0x98,0xa0,0x9d,0x92,
+0x94,0x8b,0x8e,0x90,0x95,0x9c,0x9e,0xaa,0xb0,0xb3,0xb3,0xae,0xab,0xac,0xaf,0xb1,
+0xbb,0xb7,0xac,0x9f,0x97,0x92,0x88,0x7e,0x8d,0x8e,0x90,0x98,0xa7,0xb6,0xbf,0xc0,
+0xb6,0xb2,0xaf,0xb1,0xb8,0xbf,0xc0,0xbe,0xb4,0xa8,0x9d,0xa0,0xad,0xb8,0xba,0xb8,
+0xbb,0xb2,0xa4,0x9c,0x98,0x92,0x94,0xa0,0xa8,0xa4,0x9e,0x9a,0x9a,0x9e,0xa3,0xa7,
+0xaf,0xa2,0x96,0x96,0x9f,0xa8,0xa9,0xa5,0xa1,0xa4,0xc2,0xe4,0xe1,0xc7,0xb4,0xad,
+0xa3,0xa7,0xaa,0xaa,0xa8,0xac,0xb6,0xbf,0xc3,0xc3,0xc4,0xc4,0xc4,0xc5,0xc7,0xc8,
+0xc6,0xc6,0xc7,0xc8,0xc8,0xc7,0xc7,0xc6,0xc9,0xc6,0xc3,0xc1,0xbf,0xbd,0xbc,0xba,
+0xb8,0xb6,0xb4,0xb3,0xaf,0xab,0xa8,0xa8,0xad,0xb1,0xb5,0xb7,0xb9,0xbb,0xbb,0xb8,
+0xb8,0xab,0x9d,0x93,0x89,0x83,0x8b,0x9a,0xab,0xa6,0xab,0xce,0xf5,0xfc,0xf7,0xfe,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfc,0xfb,0xfa,0xfa,0xfa,0xfc,0xfd,0xff,
+0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfb,0xfb,0xfb,0xfc,0xfd,0xfd,
+0xfe,0xfe,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xff,0xff,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,0xfa,
+0xfe,0xfc,0xfa,0xf8,0xf7,0xf7,0xf8,0xf9,0xf7,0xf4,0xef,0xec,0xeb,0xee,0xf3,0xf6,
+0xf8,0xf7,0xf6,0xf5,0xf4,0xf3,0xf3,0xf3,0xf2,0xf0,0xee,0xf0,0xf3,0xf4,0xf2,0xef,
+0xf2,0xef,0xeb,0xe8,0xe7,0xe6,0xe5,0xe4,0xe8,0xea,0xeb,0xe8,0xe2,0xe0,0xe3,0xe7,
+0xe9,0xe8,0xe8,0xe8,0xe6,0xe2,0xdc,0xd9,0xc9,0xc6,0xc4,0xc3,0xc3,0xc1,0xbc,0xb8,
+0xb4,0xb3,0xb1,0xaf,0xae,0xac,0xac,0xab,0xa8,0xa8,0xaa,0xac,0xae,0xb1,0xb3,0xb4,
+0xc7,0xc9,0xcd,0xd1,0xd1,0xce,0xca,0xc6,0xc0,0xbf,0xbe,0xbd,0xc0,0xc4,0xc5,0xc5,
+0xc4,0xc7,0xc9,0xc7,0xc2,0xbe,0xbc,0xbc,0xbd,0xbb,0xb7,0xae,0xaa,0xae,0xb9,0xc2,
+0xc3,0xc4,0xc4,0xc4,0xc3,0xc1,0xc1,0xc1,0xc3,0xbf,0xc2,0xc5,0xc7,0xc9,0xc0,0xaf,
+0x90,0x7e,0x77,0x79,0x77,0x76,0x74,0x6d,0x71,0x6d,0x69,0x65,0x60,0x5f,0x68,0x72,
+0x6f,0x6a,0x65,0x62,0x64,0x6a,0x72,0x77,0x6f,0x69,0x65,0x65,0x65,0x68,0x72,0x7d,
+0x89,0x82,0x77,0x6e,0x76,0x8d,0x92,0x83,0x6d,0x71,0x74,0x75,0x73,0x71,0x71,0x72,
+0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,0x6c,0x6b,0x6b,0x6a,0x69,0x68,0x66,0x65,
+0x60,0x5d,0x57,0x52,0x4c,0x45,0x3f,0x3b,0x3c,0x33,0x2c,0x32,0x43,0x50,0x4a,0x3d,
+0x29,0x21,0x24,0x2c,0x37,0x49,0x4d,0x3c,0x3c,0x42,0x44,0x3e,0x3a,0x3d,0x42,0x45,
+0x3f,0x41,0x41,0x3a,0x32,0x2e,0x33,0x39,0x33,0x33,0x33,0x35,0x35,0x34,0x32,0x30,
+0x29,0x1f,0x1a,0x21,0x2e,0x35,0x34,0x32,0x2f,0x2b,0x26,0x23,0x23,0x25,0x26,0x26,
+0x2d,0x2f,0x31,0x2c,0x20,0x1a,0x26,0x37,0x45,0x48,0x48,0x45,0x43,0x40,0x3a,0x33,
+0x27,0x1c,0x16,0x18,0x17,0x13,0x18,0x23,0x2d,0x2d,0x22,0x18,0x1d,0x2b,0x3f,0x52,
+0x74,0x76,0x72,0x68,0x61,0x62,0x65,0x65,0x53,0x55,0x52,0x4d,0x47,0x3e,0x2b,0x19,
+0x16,0x12,0x19,0x1a,0x1d,0x23,0x23,0x2d,0x26,0x2b,0x29,0x25,0x21,0x16,0x0d,0x0e,
+0x68,0x63,0x61,0x65,0x65,0x61,0x5e,0x5f,0x5c,0x61,0x66,0x6a,0x6c,0x70,0x76,0x7b,
+0x7d,0x81,0x84,0x85,0x88,0x8a,0x86,0x7e,0x78,0x82,0x85,0x7e,0x77,0x77,0x78,0x75,
+0x63,0x61,0x60,0x61,0x60,0x5f,0x5f,0x61,0x5f,0x66,0x6b,0x6d,0x71,0x79,0x7f,0x80,
+0x79,0x7e,0x7b,0x76,0x70,0x65,0x5c,0x5c,0x56,0x5f,0x66,0x65,0x61,0x64,0x71,0x7d,
+0x7e,0x7e,0x82,0x85,0x7f,0x73,0x6b,0x69,0x6e,0x6b,0x6b,0x6e,0x6d,0x6d,0x78,0x86,
+0x9a,0x92,0x90,0x9d,0xad,0xb0,0xa4,0x98,0x82,0x7a,0x83,0x93,0x96,0x94,0x98,0x9e,
+0xa0,0x9a,0x91,0x92,0x8c,0x84,0x81,0x72,0x80,0x82,0x8c,0x93,0x92,0x97,0x9c,0x9c,
+0x97,0x86,0x84,0x85,0x8a,0x90,0x95,0xa5,0xb0,0xb6,0xb8,0xb5,0xb2,0xb2,0xb0,0xad,
+0xaf,0xab,0xa4,0xa0,0xa6,0xb0,0xb1,0xac,0xa6,0xa3,0xa0,0x9f,0xa3,0xa8,0xa8,0xa5,
+0x9a,0x9d,0xa1,0xa7,0xad,0xaf,0xa9,0xa1,0x94,0x97,0x9b,0x9d,0x9e,0xa3,0xaf,0xba,
+0xbd,0xb4,0xa6,0x9e,0x98,0x8f,0x93,0xa4,0xab,0xa4,0xa1,0xa3,0xa1,0x9b,0x9b,0xa0,
+0x96,0x90,0x90,0x9b,0xab,0xb4,0xb0,0xa8,0x9f,0xb4,0xd5,0xde,0xc9,0xbb,0xb6,0xac,
+0xaa,0xaa,0xa8,0xa6,0xa9,0xb2,0xbe,0xc6,0xc5,0xc5,0xc5,0xc5,0xc4,0xc4,0xc5,0xc6,
+0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc5,0xc3,0xc1,0xbf,0xbe,0xbd,0xbc,0xba,
+0xb8,0xb7,0xb6,0xb4,0xb2,0xae,0xac,0xaa,0xa6,0xa8,0xaa,0xad,0xb3,0xb8,0xb9,0xb6,
+0xb7,0xba,0xb2,0x9d,0x8b,0x86,0x88,0x89,0x92,0xa9,0xa9,0xaf,0xd9,0xfb,0xfd,0xfa,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfd,0xfc,0xfb,0xfa,0xfa,0xfb,0xfd,0xfe,
+0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xff,0xff,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,0xfd,0xfd,0xfc,
+0xfb,0xfc,0xfd,0xfd,0xfd,0xfc,0xfa,0xf9,0xfb,0xf8,0xf2,0xed,0xea,0xeb,0xef,0xf2,
+0xf7,0xf7,0xf6,0xf5,0xf4,0xf3,0xf1,0xf0,0xf0,0xf2,0xf3,0xf0,0xec,0xeb,0xed,0xf0,
+0xf1,0xf0,0xef,0xee,0xee,0xeb,0xe7,0xe4,0xe0,0xe2,0xe4,0xe7,0xe9,0xe9,0xe7,0xe6,
+0xdd,0xdd,0xdf,0xe1,0xe1,0xdf,0xdc,0xd9,0xe1,0xe0,0xe0,0xe1,0xe1,0xe0,0xdc,0xd9,
+0xdf,0xdf,0xde,0xdd,0xdb,0xd9,0xd7,0xd6,0xd5,0xd5,0xd5,0xd5,0xd6,0xd6,0xd7,0xd8,
+0xcd,0xcc,0xcb,0xca,0xc9,0xc5,0xc2,0xbf,0xbf,0xc0,0xc1,0xc2,0xc3,0xc3,0xc3,0xc3,
+0xc3,0xc6,0xc8,0xc6,0xc1,0xbd,0xbc,0xbc,0xbd,0xbc,0xb6,0xae,0xab,0xb1,0xbb,0xc1,
+0xc5,0xc5,0xc6,0xc6,0xc4,0xc1,0xbf,0xbd,0xbe,0xbc,0xbe,0xc2,0xc2,0xc5,0xc1,0xb6,
+0x98,0x7f,0x75,0x79,0x77,0x76,0x70,0x61,0x6a,0x6b,0x6c,0x6b,0x65,0x60,0x61,0x66,
+0x6c,0x69,0x67,0x67,0x67,0x68,0x6d,0x72,0x6c,0x6a,0x6b,0x6c,0x6a,0x6a,0x72,0x7c,
+0x83,0x7c,0x74,0x6f,0x7a,0x90,0x90,0x7b,0x62,0x68,0x6e,0x71,0x71,0x71,0x71,0x72,
+0x71,0x71,0x72,0x72,0x71,0x70,0x6f,0x6e,0x6a,0x69,0x68,0x68,0x68,0x67,0x65,0x63,
+0x5e,0x5b,0x55,0x50,0x4a,0x43,0x3d,0x39,0x2e,0x2c,0x2b,0x2e,0x36,0x3a,0x36,0x2f,
+0x2e,0x45,0x59,0x56,0x48,0x41,0x38,0x29,0x3a,0x4d,0x59,0x51,0x41,0x37,0x33,0x31,
+0x38,0x37,0x30,0x26,0x1e,0x23,0x34,0x42,0x52,0x51,0x50,0x4d,0x48,0x40,0x37,0x30,
+0x1f,0x24,0x30,0x3f,0x48,0x47,0x43,0x40,0x34,0x2f,0x2a,0x29,0x2d,0x2f,0x2f,0x2e,
+0x36,0x35,0x32,0x2e,0x27,0x20,0x1f,0x21,0x33,0x34,0x35,0x36,0x3c,0x3e,0x36,0x2b,
+0x1e,0x1b,0x1d,0x20,0x1c,0x14,0x14,0x1b,0x35,0x36,0x29,0x19,0x15,0x16,0x19,0x1e,
+0x26,0x3a,0x4c,0x4e,0x4d,0x4e,0x49,0x41,0x45,0x42,0x3d,0x38,0x35,0x30,0x27,0x1d,
+0x1e,0x1a,0x1d,0x16,0x13,0x17,0x16,0x1f,0x2a,0x2e,0x2a,0x26,0x25,0x20,0x1a,0x1c,
+0x84,0x7a,0x71,0x6d,0x67,0x5f,0x5b,0x5e,0x59,0x5b,0x5d,0x61,0x66,0x6d,0x75,0x7a,
+0x6f,0x77,0x7d,0x7f,0x81,0x85,0x84,0x7e,0x8b,0x88,0x7e,0x6f,0x64,0x65,0x6c,0x71,
+0x6d,0x6c,0x67,0x62,0x62,0x66,0x69,0x6a,0x71,0x78,0x7a,0x76,0x75,0x78,0x75,0x6f,
+0x75,0x7a,0x78,0x75,0x74,0x6b,0x61,0x5e,0x62,0x6a,0x6f,0x6a,0x5f,0x59,0x5e,0x67,
+0x78,0x78,0x7d,0x82,0x7e,0x71,0x66,0x63,0x5e,0x5a,0x5a,0x61,0x6a,0x75,0x81,0x8b,
+0x8b,0x80,0x7d,0x8d,0xa0,0xa0,0x8c,0x78,0x82,0x7d,0x83,0x89,0x84,0x83,0x90,0x9c,
+0x9c,0x96,0x8e,0x91,0x8e,0x89,0x8b,0x7f,0x7d,0x84,0x8e,0x8f,0x8c,0x93,0x9d,0x9c,
+0x94,0x8a,0x89,0x85,0x85,0x89,0x8b,0x96,0xa8,0xaf,0xb3,0xb2,0xb3,0xb7,0xb5,0xaf,
+0xad,0xab,0xa5,0xa0,0xa3,0xa9,0xa8,0xa2,0xa7,0xa2,0x99,0x92,0x94,0xa0,0xae,0xb6,
+0xb2,0xb6,0xb9,0xb8,0xb4,0xae,0xa5,0x9c,0xa8,0xb5,0xbf,0xb5,0x9d,0x8f,0x9a,0xad,
+0xb4,0xa7,0x99,0x94,0x92,0x8a,0x8e,0x9f,0xa3,0x9d,0xa1,0xaa,0xa3,0x92,0x8e,0x98,
+0xa1,0x9d,0x9b,0xa1,0xa9,0xaa,0xa2,0x99,0x9b,0xc7,0xdd,0xcd,0xbd,0xba,0xb4,0xae,
+0xb5,0xb0,0xa7,0xa1,0xa8,0xb8,0xc4,0xc8,0xc3,0xc4,0xc5,0xc5,0xc4,0xc4,0xc5,0xc6,
+0xc7,0xc6,0xc4,0xc3,0xc2,0xc2,0xc3,0xc3,0xc2,0xc0,0xbf,0xbe,0xbd,0xbc,0xb9,0xb8,
+0xb5,0xb5,0xb4,0xb2,0xb0,0xae,0xab,0xa9,0xa1,0xa3,0xa5,0xa7,0xac,0xb2,0xb4,0xb3,
+0xb5,0xbc,0xba,0xaa,0x9b,0x92,0x89,0x80,0x85,0x9d,0xa4,0xa1,0xb8,0xe2,0xf9,0xf8,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfb,0xfb,0xfb,0xfb,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,
+0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfe,0xff,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,
+0xfa,0xfb,0xfd,0xff,0xff,0xfd,0xfb,0xfa,0xfa,0xf9,0xf6,0xf2,0xee,0xed,0xee,0xf0,
+0xf3,0xf4,0xf6,0xf6,0xf6,0xf4,0xf2,0xf1,0xf2,0xf3,0xf3,0xf0,0xed,0xeb,0xeb,0xec,
+0xe8,0xea,0xed,0xee,0xee,0xed,0xed,0xed,0xed,0xe8,0xe5,0xe8,0xed,0xed,0xe6,0xdf,
+0xec,0xe9,0xe6,0xe3,0xe3,0xe5,0xe6,0xe6,0xdf,0xdf,0xe0,0xe1,0xe1,0xe1,0xe0,0xdf,
+0xd9,0xd9,0xd8,0xd6,0xd5,0xd3,0xd1,0xd1,0xd1,0xd0,0xcf,0xcd,0xcb,0xc9,0xc9,0xc8,
+0xd0,0xcc,0xc6,0xc3,0xc2,0xc4,0xc5,0xc5,0xc1,0xc0,0xc0,0xc2,0xc2,0xc2,0xc1,0xc2,
+0xc2,0xc5,0xc7,0xc5,0xc0,0xbd,0xbd,0xbe,0xbf,0xbd,0xb7,0xaf,0xad,0xb4,0xbc,0xbf,
+0xc6,0xc6,0xc7,0xc7,0xc5,0xc0,0xbb,0xb8,0xb8,0xb7,0xbc,0xbf,0xbf,0xc2,0xc4,0xbe,
+0xa3,0x82,0x72,0x75,0x74,0x77,0x72,0x5f,0x64,0x68,0x6d,0x6e,0x69,0x62,0x61,0x63,
+0x6c,0x6b,0x6b,0x6b,0x69,0x66,0x68,0x6d,0x71,0x70,0x71,0x73,0x70,0x6b,0x6e,0x75,
+0x7b,0x7d,0x80,0x83,0x8a,0x96,0x8f,0x79,0x65,0x65,0x66,0x69,0x6d,0x71,0x73,0x74,
+0x72,0x72,0x72,0x71,0x70,0x6f,0x6d,0x6c,0x6b,0x6a,0x68,0x67,0x67,0x65,0x63,0x61,
+0x5c,0x59,0x54,0x4e,0x48,0x42,0x3c,0x39,0x31,0x32,0x36,0x3e,0x43,0x40,0x37,0x30,
+0x46,0x69,0x81,0x76,0x5c,0x44,0x3a,0x3c,0x5b,0x75,0x86,0x7a,0x60,0x48,0x35,0x28,
+0x2a,0x2d,0x2e,0x2d,0x2c,0x31,0x3b,0x44,0x4e,0x4a,0x46,0x44,0x42,0x3b,0x30,0x28,
+0x31,0x39,0x46,0x50,0x50,0x47,0x3f,0x3b,0x32,0x31,0x30,0x32,0x35,0x36,0x35,0x34,
+0x36,0x34,0x33,0x37,0x3e,0x41,0x3a,0x31,0x29,0x2e,0x32,0x35,0x38,0x37,0x2a,0x1a,
+0x1f,0x22,0x27,0x28,0x22,0x1d,0x1f,0x25,0x4e,0x53,0x4c,0x3f,0x3c,0x3a,0x33,0x30,
+0x2d,0x30,0x2e,0x29,0x28,0x2d,0x30,0x2f,0x38,0x32,0x2d,0x2b,0x2a,0x27,0x24,0x24,
+0x20,0x20,0x27,0x23,0x23,0x28,0x26,0x2a,0x25,0x28,0x21,0x1a,0x1f,0x24,0x25,0x28,
+0x7a,0x69,0x5f,0x68,0x74,0x70,0x61,0x56,0x60,0x5c,0x59,0x5b,0x63,0x6c,0x72,0x75,
+0x7a,0x85,0x8d,0x8d,0x8b,0x8b,0x85,0x7e,0x70,0x6e,0x6a,0x67,0x65,0x67,0x6d,0x71,
+0x6c,0x6d,0x6a,0x65,0x68,0x72,0x77,0x77,0x71,0x73,0x6e,0x67,0x69,0x74,0x7a,0x78,
+0x71,0x73,0x6f,0x6c,0x6d,0x66,0x59,0x54,0x56,0x5f,0x69,0x6b,0x65,0x60,0x64,0x6b,
+0x71,0x71,0x77,0x80,0x7e,0x73,0x6a,0x68,0x5e,0x5e,0x5e,0x5e,0x5f,0x62,0x68,0x6d,
+0x77,0x7a,0x82,0x8b,0x8d,0x8a,0x88,0x8a,0x97,0x98,0x9a,0x91,0x7d,0x79,0x86,0x91,
+0x93,0x8d,0x84,0x88,0x85,0x81,0x86,0x7d,0x82,0x82,0x83,0x81,0x83,0x8f,0x93,0x8a,
+0x8b,0x8c,0x94,0x8e,0x8b,0x8f,0x8c,0x90,0x9a,0xa1,0xa4,0xa5,0xab,0xb4,0xb6,0xb2,
+0xa9,0xa6,0x9d,0x94,0x94,0x99,0x9b,0x99,0x9d,0xa2,0xa4,0x9f,0x9b,0x9d,0xa2,0xa6,
+0xb1,0xb1,0xab,0xa2,0x9e,0xa4,0xad,0xb2,0xb8,0xb7,0xb1,0xa2,0x8e,0x85,0x8f,0x9f,
+0xa5,0x96,0x87,0x87,0x8a,0x85,0x88,0x99,0x8a,0x86,0x90,0x9e,0x94,0x7b,0x77,0x85,
+0x91,0x8c,0x87,0x87,0x8b,0x8e,0x8c,0x8a,0x98,0xd0,0xdb,0xc2,0xc0,0xbb,0xad,0xb0,
+0xaa,0xa8,0xa3,0xa3,0xaf,0xbe,0xc3,0xc0,0xc0,0xc2,0xc4,0xc5,0xc6,0xc6,0xc7,0xc8,
+0xc8,0xc6,0xc3,0xc1,0xbf,0xbf,0xc0,0xc0,0xc4,0xc3,0xc1,0xc0,0xbe,0xbc,0xb9,0xb7,
+0xb5,0xb6,0xb5,0xb2,0xb0,0xae,0xac,0xa9,0xac,0xae,0xae,0xab,0xaa,0xac,0xae,0xae,
+0xb4,0xb2,0xb3,0xb3,0xaa,0x97,0x86,0x7f,0x8c,0x89,0x96,0xa1,0xa5,0xc3,0xeb,0xfc,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,
+0xfd,0xfd,0xfd,0xfc,0xfb,0xfb,0xfa,0xfa,0xfc,0xfc,0xfd,0xfe,0xfd,0xfd,0xfc,0xfb,
+0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfe,0xfe,0xff,0xfe,0xfd,0xfd,0xfd,0xfd,0xfe,0xfe,
+0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfb,0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,
+0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xf7,0xf9,0xf9,0xf7,0xf4,0xf1,0xf0,0xf0,
+0xef,0xf1,0xf5,0xf7,0xf9,0xf8,0xf6,0xf5,0xf4,0xef,0xeb,0xec,0xf1,0xf1,0xeb,0xe4,
+0xe1,0xe4,0xe6,0xe6,0xe4,0xe5,0xeb,0xf0,0xf0,0xf0,0xef,0xea,0xe4,0xe3,0xe8,0xed,
+0xe6,0xe6,0xe6,0xe6,0xe8,0xe8,0xe7,0xe6,0xe7,0xe6,0xe4,0xe1,0xde,0xdc,0xdb,0xdc,
+0xdc,0xdb,0xd9,0xd7,0xd6,0xd5,0xd4,0xd4,0xcf,0xcf,0xce,0xce,0xce,0xce,0xce,0xce,
+0xca,0xca,0xca,0xca,0xc9,0xc6,0xc1,0xbd,0xc1,0xbf,0xbd,0xbe,0xc0,0xc1,0xc1,0xc2,
+0xc2,0xc6,0xc8,0xc6,0xc1,0xbe,0xbf,0xc1,0xc1,0xbe,0xb7,0xaf,0xaf,0xb7,0xbd,0xbe,
+0xc5,0xc6,0xc7,0xc6,0xc4,0xbe,0xb8,0xb4,0xb4,0xb4,0xbb,0xbf,0xbe,0xc2,0xc6,0xc3,
+0xb0,0x87,0x71,0x70,0x70,0x78,0x78,0x66,0x61,0x65,0x6b,0x6c,0x68,0x64,0x64,0x66,
+0x6a,0x6a,0x6c,0x6f,0x6e,0x6b,0x6e,0x73,0x75,0x72,0x71,0x71,0x6d,0x68,0x68,0x6d,
+0x74,0x80,0x92,0x9c,0xa0,0xa4,0x9b,0x86,0x7b,0x72,0x68,0x65,0x6a,0x71,0x74,0x74,
+0x72,0x72,0x72,0x71,0x6f,0x6e,0x6c,0x6b,0x6c,0x6a,0x68,0x67,0x66,0x65,0x61,0x5f,
+0x5c,0x58,0x53,0x4d,0x48,0x42,0x3c,0x39,0x34,0x2c,0x2b,0x35,0x3e,0x3c,0x32,0x29,
+0x46,0x61,0x74,0x7a,0x77,0x64,0x54,0x55,0x55,0x60,0x66,0x63,0x61,0x5f,0x52,0x41,
+0x38,0x33,0x2b,0x24,0x24,0x2b,0x37,0x40,0x36,0x3e,0x44,0x44,0x40,0x3e,0x42,0x47,
+0x4e,0x4c,0x4c,0x4c,0x48,0x3d,0x33,0x2e,0x35,0x37,0x39,0x3a,0x39,0x35,0x32,0x30,
+0x2b,0x36,0x3b,0x35,0x2d,0x2c,0x2d,0x2d,0x2c,0x31,0x31,0x2a,0x28,0x2a,0x2a,0x26,
+0x28,0x2e,0x32,0x2d,0x25,0x23,0x29,0x30,0x41,0x4d,0x4d,0x46,0x45,0x47,0x44,0x43,
+0x45,0x39,0x2b,0x23,0x21,0x20,0x1f,0x1f,0x20,0x1a,0x18,0x1c,0x1d,0x1b,0x1c,0x1f,
+0x20,0x22,0x2d,0x2d,0x2f,0x34,0x2e,0x2d,0x26,0x2d,0x2b,0x28,0x30,0x37,0x36,0x34,
+0x7b,0x74,0x6d,0x6d,0x75,0x7b,0x77,0x6f,0x5e,0x5f,0x61,0x66,0x6e,0x76,0x7a,0x7b,
+0x7e,0x83,0x88,0x8a,0x86,0x7f,0x79,0x76,0x74,0x76,0x77,0x76,0x72,0x6e,0x6b,0x6a,
+0x68,0x69,0x6c,0x6f,0x73,0x78,0x7c,0x7f,0x72,0x74,0x73,0x70,0x71,0x76,0x75,0x70,
+0x70,0x72,0x6f,0x67,0x62,0x68,0x70,0x75,0x6e,0x6d,0x6d,0x6d,0x6d,0x6b,0x66,0x62,
+0x65,0x6c,0x77,0x7c,0x78,0x6e,0x68,0x67,0x6b,0x68,0x67,0x65,0x5f,0x5d,0x67,0x76,
+0x75,0x77,0x76,0x75,0x79,0x82,0x8c,0x90,0x92,0x8c,0x86,0x82,0x7b,0x76,0x7d,0x88,
+0x86,0x85,0x85,0x85,0x85,0x84,0x82,0x81,0x82,0x80,0x7e,0x7e,0x82,0x86,0x8a,0x8c,
+0x8e,0x88,0x86,0x8a,0x8f,0x91,0x93,0x95,0x9c,0xa3,0xa5,0xa0,0x9f,0xa4,0xa5,0xa1,
+0xa0,0x9b,0x94,0x8b,0x7e,0x76,0x7d,0x8a,0xa9,0xa5,0xa0,0x9a,0x93,0x92,0x9d,0xa9,
+0xa6,0xa3,0x9c,0x96,0x99,0xa3,0xac,0xb0,0xb3,0xb8,0xbd,0xb8,0xa7,0x95,0x8b,0x89,
+0x91,0x8d,0x8a,0x81,0x75,0x73,0x7a,0x7c,0x7f,0x81,0x7f,0x86,0x8f,0x83,0x73,0x74,
+0x7e,0x79,0x7f,0x89,0x88,0x84,0x87,0x8c,0xc0,0xcb,0xca,0xba,0xb4,0xba,0xb7,0xab,
+0xa7,0xa2,0x9f,0xa4,0xb4,0xc2,0xc5,0xc0,0xc1,0xc2,0xc4,0xc6,0xc7,0xc7,0xc6,0xc5,
+0xc5,0xc5,0xc7,0xc7,0xc7,0xc6,0xc4,0xc3,0xc3,0xc2,0xc0,0xc0,0xbe,0xbc,0xb9,0xb6,
+0xb3,0xb4,0xb3,0xb1,0xaf,0xaf,0xb1,0xb4,0xad,0xb0,0xb2,0xb1,0xae,0xae,0xb0,0xb4,
+0xb3,0xb3,0xb3,0xb3,0xb0,0xa4,0x95,0x8a,0x7d,0x86,0x89,0x94,0xa3,0xa6,0xbe,0xeb,
+0xfb,0xf9,0xfe,0xff,0xf9,0xfb,0xff,0xfa,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xf9,0xf8,
+0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,0xfb,0xfc,0xfc,0xfd,0xfd,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfa,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfe,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfa,0xfa,0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xf8,0xf7,0xf7,0xf8,0xf9,0xf9,0xf8,0xf6,
+0xf1,0xf1,0xf1,0xf3,0xf6,0xf7,0xf6,0xf4,0xf3,0xf2,0xf1,0xf0,0xef,0xee,0xeb,0xea,
+0xeb,0xea,0xe7,0xe6,0xe5,0xe6,0xe8,0xe9,0xec,0xef,0xf2,0xf3,0xf2,0xef,0xed,0xec,
+0xe6,0xe5,0xe3,0xe2,0xe2,0xe3,0xe4,0xe6,0xe6,0xe6,0xe5,0xe4,0xe2,0xe0,0xdf,0xde,
+0xe0,0xdf,0xdd,0xdb,0xda,0xd9,0xd8,0xd8,0xd2,0xd2,0xd1,0xd2,0xd3,0xd3,0xd3,0xd2,
+0xd2,0xcf,0xcb,0xc8,0xc6,0xc5,0xc3,0xc2,0xc3,0xc2,0xc0,0xbf,0xbf,0xc0,0xc1,0xc2,
+0xc4,0xc6,0xc7,0xc5,0xc0,0xbd,0xbc,0xbd,0xbc,0xb8,0xb4,0xb2,0xb1,0xb3,0xba,0xc2,
+0xc6,0xc6,0xc6,0xc4,0xc0,0xba,0xb4,0xb0,0xaf,0xb1,0xb6,0xbc,0xbf,0xc1,0xc4,0xc7,
+0xb4,0x93,0x74,0x6c,0x71,0x71,0x6e,0x6e,0x62,0x70,0x77,0x6d,0x5f,0x5b,0x61,0x67,
+0x6a,0x69,0x6c,0x73,0x76,0x74,0x73,0x74,0x6c,0x6f,0x74,0x74,0x6d,0x6a,0x72,0x7d,
+0x92,0x98,0x9f,0xa3,0xa4,0xa4,0xa5,0xa6,0x9b,0x8f,0x7c,0x6a,0x5f,0x60,0x67,0x6e,
+0x72,0x6f,0x6f,0x6f,0x6d,0x6b,0x6a,0x6c,0x68,0x68,0x68,0x68,0x66,0x62,0x5c,0x58,
+0x54,0x52,0x4e,0x49,0x45,0x41,0x3a,0x34,0x2f,0x26,0x24,0x2b,0x2f,0x2c,0x28,0x28,
+0x44,0x52,0x65,0x73,0x7c,0x7e,0x7b,0x76,0x62,0x50,0x40,0x3f,0x49,0x50,0x52,0x52,
+0x57,0x4a,0x37,0x29,0x2b,0x34,0x3a,0x39,0x35,0x33,0x39,0x44,0x4c,0x4d,0x4f,0x54,
+0x50,0x4a,0x4c,0x52,0x4c,0x3a,0x34,0x3a,0x41,0x41,0x3e,0x37,0x2c,0x25,0x29,0x30,
+0x3f,0x3c,0x36,0x30,0x2d,0x30,0x38,0x3f,0x3a,0x3e,0x3b,0x37,0x35,0x2f,0x2c,0x32,
+0x30,0x35,0x38,0x35,0x2f,0x33,0x44,0x56,0x5c,0x53,0x50,0x50,0x50,0x55,0x57,0x52,
+0x46,0x41,0x2e,0x20,0x25,0x2b,0x27,0x22,0x21,0x21,0x19,0x1c,0x1e,0x22,0x34,0x3e,
+0x43,0x47,0x49,0x45,0x3d,0x35,0x32,0x32,0x33,0x36,0x39,0x3e,0x42,0x45,0x44,0x41,
+0x64,0x6a,0x6e,0x70,0x71,0x72,0x71,0x70,0x7a,0x79,0x7a,0x7b,0x79,0x72,0x6e,0x6d,
+0x71,0x75,0x7a,0x7e,0x7f,0x7a,0x73,0x6d,0x73,0x77,0x7a,0x79,0x75,0x70,0x6e,0x6e,
+0x75,0x73,0x70,0x6c,0x6b,0x6c,0x6e,0x70,0x79,0x78,0x7c,0x84,0x88,0x85,0x7d,0x77,
+0x75,0x73,0x6d,0x67,0x67,0x6e,0x73,0x74,0x6f,0x70,0x72,0x75,0x76,0x71,0x69,0x62,
+0x5c,0x65,0x74,0x7f,0x7f,0x77,0x70,0x6d,0x61,0x66,0x74,0x84,0x89,0x7e,0x70,0x6a,
+0x70,0x75,0x79,0x79,0x79,0x7b,0x7e,0x7e,0x81,0x7d,0x7b,0x7b,0x77,0x72,0x75,0x7d,
+0x7b,0x7c,0x7d,0x7f,0x80,0x80,0x7f,0x7e,0x81,0x7d,0x77,0x75,0x79,0x81,0x8b,0x92,
+0x93,0x8d,0x88,0x87,0x87,0x86,0x86,0x88,0x91,0x97,0x99,0x96,0x97,0x9b,0x98,0x90,
+0x8d,0x88,0x82,0x7d,0x74,0x6e,0x73,0x7e,0x84,0x84,0x86,0x88,0x86,0x82,0x83,0x86,
+0x82,0x84,0x85,0x87,0x91,0xa3,0xb5,0xbf,0xb6,0xb4,0xb1,0xaa,0xa0,0x97,0x95,0x98,
+0x8a,0x81,0x7a,0x71,0x66,0x67,0x6e,0x70,0x6c,0x75,0x7b,0x80,0x80,0x6f,0x60,0x63,
+0x6c,0x74,0x76,0x7d,0x86,0x80,0x85,0x9d,0xd1,0xcc,0xc2,0xb8,0xb3,0xb1,0xab,0xa3,
+0x9f,0x9f,0xa2,0xac,0xb9,0xc1,0xc2,0xc0,0xc5,0xc6,0xc7,0xc8,0xc9,0xc8,0xc6,0xc5,
+0xc5,0xc6,0xc7,0xc7,0xc6,0xc4,0xc1,0xbf,0xbe,0xbd,0xbb,0xba,0xba,0xba,0xb9,0xb8,
+0xb7,0xb6,0xb5,0xb3,0xb1,0xaf,0xaf,0xaf,0xaf,0xad,0xab,0xad,0xb2,0xb5,0xb4,0xb1,
+0xb5,0xb2,0xb1,0xb1,0xb0,0xa9,0x9d,0x93,0x80,0x84,0x83,0x8d,0x9b,0x9a,0xa5,0xc6,
+0xf3,0xfa,0xfa,0xfc,0xff,0xfb,0xf6,0xfd,0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xfa,0xf9,
+0xfc,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfe,
+0xfc,0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfd,0xfd,0xfc,0xfc,
+0xfd,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfe,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xfa,0xf9,0xf9,0xfa,0xf9,0xf7,0xf6,
+0xf4,0xf3,0xf3,0xf4,0xf5,0xf6,0xf5,0xf4,0xf5,0xf4,0xf4,0xf5,0xf6,0xf6,0xf4,0xf3,
+0xf2,0xf0,0xed,0xea,0xe8,0xe7,0xe6,0xe7,0xe7,0xe7,0xe8,0xe9,0xea,0xea,0xe9,0xe9,
+0xed,0xed,0xeb,0xea,0xe8,0xe7,0xe6,0xe5,0xe1,0xe1,0xe1,0xe1,0xe1,0xe0,0xdf,0xdf,
+0xe2,0xe1,0xde,0xdb,0xd8,0xd6,0xd5,0xd4,0xd1,0xd1,0xd0,0xd0,0xd0,0xd0,0xce,0xcc,
+0xc9,0xc7,0xc5,0xc5,0xc5,0xc5,0xc5,0xc4,0xc5,0xc5,0xc4,0xc3,0xc3,0xc3,0xc4,0xc5,
+0xc7,0xc8,0xc8,0xc5,0xbf,0xba,0xb9,0xb9,0xbb,0xb6,0xb1,0xaf,0xb0,0xb3,0xb9,0xbf,
+0xc3,0xc4,0xc4,0xc3,0xbf,0xb9,0xb3,0xaf,0xaf,0xb0,0xb5,0xba,0xbe,0xc0,0xc3,0xc7,
+0xbe,0x9f,0x7c,0x6d,0x6c,0x6e,0x6c,0x6a,0x6c,0x6e,0x71,0x71,0x68,0x5b,0x57,0x59,
+0x60,0x62,0x68,0x6e,0x6f,0x6d,0x6f,0x73,0x6d,0x6c,0x6e,0x73,0x78,0x7f,0x8a,0x94,
+0x98,0x9c,0xa1,0xa3,0xa3,0xa3,0xa5,0xa8,0xa3,0x9b,0x8d,0x7d,0x71,0x69,0x65,0x63,
+0x68,0x69,0x6c,0x6f,0x6d,0x69,0x68,0x6a,0x67,0x66,0x65,0x65,0x64,0x61,0x5e,0x5b,
+0x53,0x51,0x4b,0x45,0x40,0x3b,0x34,0x2d,0x2f,0x27,0x26,0x30,0x38,0x35,0x2d,0x28,
+0x2d,0x41,0x59,0x6b,0x77,0x7c,0x7a,0x74,0x70,0x60,0x43,0x2c,0x2d,0x48,0x6b,0x81,
+0x7f,0x75,0x67,0x61,0x69,0x75,0x7a,0x77,0x6d,0x61,0x4f,0x41,0x3c,0x40,0x46,0x48,
+0x4d,0x51,0x51,0x45,0x35,0x2f,0x3c,0x4c,0x4b,0x3a,0x27,0x20,0x25,0x2f,0x3a,0x40,
+0x3f,0x39,0x32,0x2e,0x2d,0x2d,0x2b,0x29,0x3a,0x31,0x2b,0x36,0x46,0x43,0x36,0x30,
+0x34,0x3e,0x3d,0x34,0x37,0x4b,0x5d,0x63,0x64,0x60,0x5f,0x60,0x5d,0x59,0x53,0x4a,
+0x4a,0x3e,0x2d,0x26,0x27,0x27,0x2f,0x3f,0x49,0x4b,0x3e,0x3b,0x3f,0x43,0x41,0x2f,
+0x24,0x31,0x3e,0x42,0x3c,0x37,0x39,0x3d,0x40,0x46,0x4d,0x52,0x53,0x50,0x49,0x44,
+0x80,0x84,0x85,0x7f,0x7a,0x7b,0x80,0x84,0x87,0x7d,0x76,0x78,0x78,0x72,0x6e,0x6f,
+0x6c,0x68,0x65,0x66,0x6a,0x6c,0x6b,0x68,0x69,0x6f,0x75,0x78,0x77,0x75,0x75,0x76,
+0x75,0x73,0x72,0x74,0x79,0x80,0x86,0x89,0x6b,0x65,0x68,0x76,0x80,0x7f,0x7c,0x7c,
+0x72,0x6d,0x67,0x66,0x6c,0x74,0x75,0x72,0x69,0x68,0x69,0x6c,0x6e,0x6e,0x6c,0x69,
+0x65,0x60,0x61,0x6d,0x7a,0x7c,0x73,0x6b,0x83,0x91,0xa2,0xa6,0x96,0x81,0x79,0x7c,
+0x6f,0x76,0x7b,0x7a,0x76,0x74,0x74,0x73,0x78,0x76,0x78,0x7c,0x7b,0x74,0x71,0x71,
+0x70,0x72,0x76,0x7a,0x7c,0x7c,0x7c,0x7b,0x7d,0x7c,0x7b,0x7b,0x7d,0x82,0x88,0x8c,
+0x8e,0x8c,0x8c,0x8b,0x88,0x82,0x7d,0x7b,0x85,0x8a,0x8b,0x8a,0x8d,0x90,0x89,0x7e,
+0x7b,0x77,0x77,0x7a,0x7c,0x7c,0x81,0x87,0x90,0x8d,0x8c,0x8e,0x8d,0x8a,0x86,0x84,
+0x81,0x82,0x81,0x7c,0x7a,0x80,0x89,0x90,0x90,0x88,0x80,0x7c,0x7b,0x7b,0x7d,0x81,
+0x7a,0x72,0x6e,0x6b,0x67,0x6d,0x76,0x78,0x7d,0x76,0x6b,0x69,0x6e,0x69,0x62,0x64,
+0x64,0x74,0x73,0x76,0x83,0x7f,0x8c,0xb7,0xda,0xc8,0xb8,0xb4,0xb2,0xa9,0xa1,0x9f,
+0xa0,0xa1,0xa8,0xb5,0xbe,0xc0,0xc2,0xc5,0xc7,0xc8,0xc9,0xc9,0xc8,0xc7,0xc5,0xc4,
+0xc3,0xc4,0xc6,0xc6,0xc5,0xc2,0xbf,0xbd,0xbb,0xb8,0xb6,0xb5,0xb5,0xb5,0xb5,0xb5,
+0xb8,0xb7,0xb5,0xb4,0xb2,0xae,0xab,0xa8,0xaa,0xa8,0xa7,0xaa,0xb0,0xb4,0xb4,0xb3,
+0xb6,0xb2,0xaf,0xaf,0xb0,0xae,0xa6,0x9f,0x8c,0x87,0x7f,0x86,0x94,0x92,0x96,0xaa,
+0xd2,0xf4,0xfc,0xf7,0xff,0xfa,0xf2,0xfe,0xf8,0xf9,0xfa,0xfb,0xfb,0xfb,0xfa,0xfa,
+0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,0xfa,0xfd,0xfd,0xfd,0xfc,0xfc,0xfd,0xfd,0xfd,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfa,0xfa,0xfb,0xfc,0xfd,0xfc,0xfc,0xfb,
+0xfc,0xfd,0xfd,0xfe,0xfe,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfd,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfd,0xfc,0xfa,0xfa,0xfa,0xf9,0xf7,0xf5,
+0xf4,0xf5,0xf5,0xf5,0xf5,0xf5,0xf6,0xf7,0xf5,0xf4,0xf5,0xf6,0xf7,0xf8,0xf7,0xf6,
+0xf2,0xf1,0xef,0xee,0xed,0xec,0xec,0xec,0xe5,0xe3,0xe0,0xe0,0xe2,0xe4,0xe4,0xe3,
+0xe4,0xe5,0xe6,0xe7,0xe8,0xe8,0xe8,0xe8,0xe5,0xe5,0xe5,0xe4,0xe2,0xe1,0xdf,0xdf,
+0xe1,0xe0,0xdd,0xda,0xd6,0xd4,0xd2,0xd1,0xcf,0xcf,0xcf,0xcf,0xcf,0xcd,0xca,0xc8,
+0xca,0xc9,0xc8,0xc8,0xc9,0xca,0xca,0xc9,0xc5,0xc5,0xc4,0xc4,0xc4,0xc5,0xc6,0xc6,
+0xc8,0xc9,0xc8,0xc4,0xbe,0xba,0xb8,0xb8,0xbc,0xb5,0xaf,0xae,0xb1,0xb5,0xba,0xbe,
+0xc2,0xc3,0xc5,0xc4,0xc1,0xba,0xb4,0xb0,0xaf,0xb0,0xb3,0xb9,0xbc,0xbe,0xc2,0xc7,
+0xc8,0xae,0x8a,0x70,0x69,0x6c,0x6c,0x67,0x68,0x64,0x6b,0x77,0x72,0x60,0x59,0x5f,
+0x64,0x68,0x6d,0x6f,0x6c,0x68,0x6a,0x6e,0x6d,0x6a,0x6c,0x76,0x84,0x8f,0x97,0x9b,
+0x9d,0x9f,0xa1,0xa0,0xa0,0xa1,0xa4,0xa7,0xa6,0xa3,0x9d,0x95,0x8a,0x7c,0x6d,0x64,
+0x62,0x64,0x69,0x6d,0x6d,0x69,0x68,0x6a,0x67,0x65,0x63,0x62,0x61,0x5f,0x5d,0x5c,
+0x55,0x52,0x4c,0x45,0x40,0x3c,0x35,0x2e,0x2a,0x23,0x24,0x31,0x3f,0x40,0x3a,0x34,
+0x38,0x38,0x3b,0x48,0x61,0x73,0x70,0x62,0x62,0x6f,0x7a,0x80,0x8b,0x93,0x8c,0x7e,
+0x75,0x7d,0x85,0x89,0x8a,0x87,0x81,0x7c,0x7e,0x81,0x7a,0x68,0x5b,0x5a,0x5b,0x5a,
+0x46,0x47,0x3d,0x2c,0x29,0x35,0x40,0x42,0x28,0x26,0x27,0x2e,0x35,0x39,0x3c,0x3e,
+0x3c,0x3d,0x39,0x2d,0x21,0x1b,0x20,0x27,0x30,0x3b,0x44,0x45,0x3b,0x29,0x26,0x34,
+0x53,0x58,0x54,0x48,0x48,0x54,0x58,0x52,0x61,0x5f,0x5f,0x5f,0x5f,0x5e,0x5c,0x58,
+0x4e,0x3f,0x30,0x34,0x41,0x3f,0x35,0x34,0x39,0x35,0x30,0x37,0x31,0x25,0x34,0x45,
+0x5c,0x55,0x47,0x37,0x2c,0x2e,0x3b,0x47,0x4c,0x51,0x57,0x58,0x53,0x49,0x41,0x3d,
+0x71,0x7d,0x8a,0x92,0x93,0x8f,0x87,0x81,0x77,0x69,0x64,0x6f,0x78,0x75,0x72,0x74,
+0x70,0x69,0x63,0x60,0x62,0x66,0x68,0x68,0x61,0x66,0x6f,0x76,0x78,0x74,0x6e,0x69,
+0x77,0x73,0x70,0x74,0x7b,0x80,0x7f,0x7d,0x86,0x80,0x7d,0x7e,0x7f,0x7a,0x74,0x70,
+0x68,0x65,0x64,0x69,0x72,0x77,0x75,0x70,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x59,0x56,0x57,0x61,0x71,0x85,0x9b,0xab,0xa8,0x9d,0x90,0x85,0x7c,0x74,0x71,0x73,
+0x73,0x78,0x7a,0x74,0x6f,0x6f,0x73,0x76,0x79,0x79,0x7d,0x83,0x83,0x7b,0x70,0x6b,
+0x6c,0x70,0x76,0x7a,0x7c,0x7d,0x7d,0x7c,0x81,0x82,0x82,0x82,0x81,0x82,0x83,0x85,
+0x89,0x88,0x86,0x84,0x81,0x7f,0x7f,0x81,0x84,0x89,0x8b,0x8a,0x8c,0x8f,0x88,0x7c,
+0x72,0x6f,0x72,0x7b,0x84,0x89,0x8b,0x8d,0x8f,0x8d,0x8b,0x8c,0x8c,0x89,0x84,0x80,
+0x81,0x81,0x7e,0x79,0x74,0x71,0x72,0x72,0x7e,0x77,0x72,0x74,0x78,0x7a,0x79,0x78,
+0x70,0x6b,0x6b,0x6c,0x6a,0x70,0x79,0x7a,0x7e,0x75,0x6c,0x6d,0x71,0x6d,0x65,0x61,
+0x6b,0x74,0x76,0x76,0x79,0x7e,0x9b,0xc7,0xd0,0xc1,0xb6,0xb4,0xb1,0xa7,0xa1,0xa3,
+0xa8,0xa6,0xad,0xba,0xc2,0xc1,0xc3,0xc9,0xc6,0xc6,0xc7,0xc7,0xc6,0xc5,0xc3,0xc2,
+0xc2,0xc2,0xc3,0xc4,0xc4,0xc3,0xc2,0xc2,0xbf,0xbc,0xb9,0xb7,0xb6,0xb5,0xb3,0xb2,
+0xb5,0xb4,0xb3,0xb3,0xb2,0xae,0xa9,0xa5,0xa0,0xa3,0xa6,0xa7,0xa7,0xaa,0xaf,0xb5,
+0xb3,0xb1,0xaf,0xaf,0xb0,0xaf,0xab,0xa8,0x9a,0x8e,0x7f,0x80,0x8b,0x8f,0x97,0xa8,
+0xaa,0xe0,0xfc,0xf6,0xf7,0xf8,0xf7,0xfc,0xf9,0xfa,0xfb,0xfc,0xfc,0xfb,0xfa,0xfa,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xfa,0xfa,0xfb,
+0xfd,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfc,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfc,0xfb,
+0xfc,0xfc,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfd,0xfd,0xfc,0xfb,0xfb,0xfa,0xfa,0xfa,0xfc,0xfb,0xfa,0xfa,0xfa,0xf9,0xf7,0xf5,
+0xf3,0xf5,0xf6,0xf5,0xf4,0xf5,0xf7,0xfa,0xf6,0xf5,0xf5,0xf5,0xf6,0xf5,0xf4,0xf3,
+0xf1,0xf1,0xf1,0xf1,0xf0,0xef,0xef,0xee,0xe9,0xe5,0xe1,0xe0,0xe1,0xe2,0xe1,0xdf,
+0xd9,0xda,0xdc,0xdf,0xe1,0xe3,0xe5,0xe6,0xe7,0xe7,0xe6,0xe6,0xe5,0xe4,0xe3,0xe2,
+0xe3,0xe2,0xe0,0xde,0xdc,0xda,0xd8,0xd8,0xd5,0xd4,0xd5,0xd5,0xd5,0xd4,0xd1,0xcf,
+0xd2,0xd1,0xcf,0xcf,0xce,0xcd,0xcc,0xca,0xc2,0xc2,0xc2,0xc2,0xc2,0xc3,0xc4,0xc5,
+0xc7,0xc7,0xc6,0xc3,0xbf,0xbc,0xbb,0xbb,0xbe,0xb6,0xaf,0xb0,0xb4,0xb9,0xbd,0xc0,
+0xc3,0xc5,0xc7,0xc7,0xc3,0xbd,0xb6,0xb1,0xaf,0xaf,0xb2,0xb7,0xba,0xbc,0xc1,0xc6,
+0xcc,0xba,0x98,0x76,0x69,0x6c,0x6d,0x67,0x63,0x64,0x6e,0x77,0x6e,0x5d,0x59,0x63,
+0x56,0x5c,0x64,0x69,0x68,0x67,0x69,0x6d,0x66,0x6b,0x75,0x83,0x90,0x97,0x98,0x96,
+0x9d,0x9d,0x9e,0x9d,0x9d,0x9d,0xa0,0xa2,0xa0,0xa1,0xa1,0xa1,0x9d,0x92,0x83,0x78,
+0x69,0x66,0x65,0x67,0x68,0x67,0x67,0x69,0x66,0x65,0x62,0x60,0x5f,0x5d,0x5b,0x59,
+0x56,0x53,0x4d,0x47,0x42,0x3f,0x39,0x32,0x2c,0x24,0x20,0x25,0x2d,0x2e,0x2b,0x28,
+0x2c,0x36,0x3b,0x38,0x3b,0x4a,0x5b,0x63,0x6c,0x7e,0x8a,0x82,0x76,0x76,0x7f,0x86,
+0x7d,0x81,0x84,0x84,0x83,0x82,0x80,0x7e,0x79,0x7d,0x7c,0x76,0x70,0x6d,0x6a,0x66,
+0x52,0x48,0x34,0x23,0x29,0x39,0x3a,0x30,0x22,0x26,0x2d,0x35,0x3a,0x3d,0x42,0x47,
+0x41,0x42,0x3e,0x31,0x24,0x24,0x32,0x40,0x48,0x47,0x3e,0x36,0x35,0x39,0x43,0x52,
+0x4c,0x4e,0x54,0x59,0x5a,0x56,0x53,0x53,0x46,0x53,0x60,0x6a,0x6c,0x61,0x52,0x49,
+0x31,0x46,0x53,0x56,0x58,0x53,0x48,0x41,0x2f,0x49,0x54,0x5b,0x64,0x6d,0x6e,0x5b,
+0x3d,0x33,0x28,0x27,0x31,0x3f,0x4b,0x51,0x4e,0x4f,0x4e,0x49,0x3f,0x35,0x31,0x31,
+0x69,0x76,0x85,0x8c,0x89,0x81,0x76,0x6e,0x65,0x63,0x6c,0x7b,0x7e,0x73,0x6b,0x6c,
+0x73,0x70,0x6c,0x6a,0x68,0x67,0x67,0x66,0x6d,0x6b,0x6b,0x71,0x79,0x81,0x83,0x83,
+0x77,0x71,0x6d,0x71,0x78,0x78,0x6f,0x65,0x68,0x72,0x78,0x77,0x77,0x78,0x72,0x68,
+0x62,0x63,0x68,0x6f,0x74,0x74,0x70,0x6d,0x61,0x64,0x67,0x66,0x62,0x5d,0x5b,0x5b,
+0x59,0x4f,0x52,0x70,0x98,0xab,0xa2,0x92,0x8d,0x7f,0x6f,0x67,0x67,0x6b,0x6f,0x71,
+0x79,0x7c,0x7a,0x73,0x6d,0x6f,0x76,0x7b,0x7b,0x7c,0x80,0x86,0x87,0x7f,0x73,0x6a,
+0x6e,0x72,0x79,0x7e,0x81,0x83,0x84,0x86,0x8c,0x88,0x82,0x7d,0x7b,0x7e,0x83,0x87,
+0x8b,0x85,0x7c,0x74,0x73,0x79,0x83,0x89,0x88,0x90,0x93,0x91,0x92,0x94,0x8f,0x86,
+0x7e,0x7c,0x7d,0x84,0x8c,0x8f,0x8c,0x8a,0x84,0x89,0x90,0x96,0x99,0x97,0x90,0x8a,
+0x7d,0x7a,0x79,0x7b,0x7f,0x81,0x83,0x83,0x80,0x7b,0x7a,0x7e,0x82,0x81,0x7c,0x79,
+0x71,0x6c,0x6a,0x68,0x63,0x67,0x6f,0x70,0x76,0x75,0x75,0x70,0x67,0x62,0x66,0x6a,
+0x70,0x6b,0x72,0x73,0x6a,0x7d,0xa9,0xc7,0xc4,0xc2,0xbe,0xb8,0xaf,0xa7,0xa5,0xa7,
+0xa7,0xa5,0xad,0xbd,0xc5,0xc4,0xc4,0xc8,0xc4,0xc5,0xc5,0xc5,0xc5,0xc4,0xc3,0xc2,
+0xc4,0xc3,0xc2,0xc2,0xc2,0xc3,0xc4,0xc5,0xc4,0xc2,0xc0,0xbf,0xbd,0xba,0xb7,0xb4,
+0xb2,0xb2,0xb2,0xb3,0xb3,0xb1,0xad,0xa9,0x9e,0xa1,0xa3,0xa3,0xa2,0xa4,0xaa,0xaf,
+0xae,0xb0,0xb2,0xb1,0xae,0xac,0xab,0xab,0xa1,0x94,0x84,0x7f,0x83,0x8a,0x96,0xa5,
+0x9e,0xc2,0xea,0xf9,0xf7,0xfa,0xfd,0xf9,0xfc,0xfc,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,
+0xfa,0xfa,0xfb,0xfc,0xfc,0xfd,0xfd,0xfc,0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xfc,0xfd,0xfd,0xfd,0xfe,0xfd,0xfd,0xfd,0xfa,0xfb,0xfc,0xfd,0xfd,0xfd,0xfc,0xfc,
+0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfd,0xfc,0xfb,0xfb,0xfa,0xfa,0xfa,0xfa,0xfc,0xfb,0xfa,0xfb,0xfb,0xfb,0xfa,0xf8,
+0xf6,0xf7,0xf7,0xf5,0xf3,0xf3,0xf5,0xf7,0xf8,0xf7,0xf6,0xf6,0xf7,0xf6,0xf5,0xf3,
+0xf6,0xf5,0xf4,0xf3,0xf1,0xee,0xec,0xeb,0xec,0xe9,0xe5,0xe4,0xe5,0xe5,0xe2,0xdf,
+0xdf,0xde,0xdd,0xdc,0xdb,0xdc,0xdd,0xdd,0xdd,0xdf,0xe0,0xe3,0xe5,0xe7,0xe8,0xe8,
+0xe9,0xe8,0xe7,0xe6,0xe5,0xe3,0xe2,0xe1,0xe1,0xe0,0xdf,0xdf,0xde,0xdc,0xd9,0xd7,
+0xd6,0xd5,0xd3,0xd1,0xcf,0xcd,0xca,0xc7,0xc1,0xc1,0xc2,0xc2,0xc3,0xc4,0xc5,0xc5,
+0xc7,0xc7,0xc6,0xc3,0xc1,0xbe,0xbe,0xbd,0xbf,0xb7,0xb1,0xb3,0xb8,0xbd,0xbf,0xc1,
+0xc4,0xc6,0xc8,0xc7,0xc4,0xbd,0xb6,0xb1,0xaf,0xaf,0xb2,0xb6,0xb9,0xbb,0xc0,0xc5,
+0xca,0xc0,0xa3,0x7e,0x6a,0x6b,0x6b,0x64,0x69,0x6b,0x6d,0x6b,0x63,0x59,0x55,0x57,
+0x5a,0x60,0x66,0x69,0x69,0x67,0x66,0x65,0x62,0x70,0x83,0x91,0x99,0x9b,0x9b,0x9b,
+0x99,0x9a,0x9b,0x9c,0x9c,0x9c,0x9d,0x9d,0x9c,0x9d,0x9e,0xa1,0xa2,0x9e,0x96,0x90,
+0x7f,0x74,0x68,0x64,0x64,0x64,0x63,0x63,0x63,0x62,0x61,0x60,0x5f,0x5d,0x5a,0x57,
+0x54,0x52,0x4c,0x45,0x40,0x3c,0x36,0x2f,0x28,0x23,0x20,0x1f,0x20,0x22,0x24,0x26,
+0x25,0x34,0x41,0x44,0x45,0x4f,0x60,0x6c,0x7a,0x79,0x7b,0x82,0x87,0x85,0x7e,0x78,
+0x88,0x84,0x80,0x81,0x82,0x80,0x7a,0x74,0x81,0x7b,0x7a,0x80,0x82,0x78,0x6a,0x61,
+0x64,0x5e,0x4e,0x39,0x2d,0x2c,0x2e,0x2d,0x30,0x2e,0x30,0x38,0x3f,0x40,0x3d,0x3b,
+0x37,0x34,0x30,0x2f,0x31,0x37,0x3e,0x42,0x41,0x40,0x36,0x33,0x42,0x4f,0x4e,0x49,
+0x49,0x4f,0x55,0x56,0x4f,0x47,0x46,0x49,0x50,0x5c,0x62,0x63,0x61,0x52,0x42,0x3e,
+0x61,0x5f,0x56,0x55,0x64,0x69,0x5a,0x49,0x4e,0x4c,0x4d,0x59,0x4a,0x25,0x15,0x11,
+0x25,0x21,0x1f,0x25,0x2f,0x38,0x3b,0x3a,0x3d,0x3c,0x3a,0x35,0x2c,0x25,0x26,0x2b,
+0x7b,0x84,0x89,0x81,0x73,0x6a,0x69,0x6b,0x65,0x6c,0x78,0x7f,0x76,0x68,0x67,0x6f,
+0x72,0x6d,0x66,0x60,0x5e,0x60,0x64,0x67,0x5e,0x67,0x77,0x86,0x8d,0x86,0x75,0x67,
+0x6a,0x68,0x69,0x73,0x7f,0x83,0x7c,0x74,0x78,0x82,0x82,0x77,0x70,0x72,0x6e,0x63,
+0x64,0x67,0x6b,0x6f,0x6d,0x69,0x67,0x68,0x73,0x70,0x6b,0x66,0x65,0x69,0x6f,0x74,
+0x75,0x85,0x98,0xa1,0x9a,0x8c,0x83,0x81,0x78,0x79,0x77,0x72,0x6e,0x71,0x7a,0x83,
+0x82,0x85,0x84,0x7e,0x79,0x79,0x7d,0x80,0x7d,0x7e,0x81,0x86,0x89,0x84,0x7b,0x73,
+0x72,0x76,0x7c,0x81,0x84,0x88,0x8c,0x8f,0x8b,0x87,0x83,0x81,0x82,0x84,0x86,0x87,
+0x89,0x86,0x80,0x7a,0x79,0x7c,0x7f,0x80,0x86,0x8e,0x93,0x92,0x94,0x97,0x92,0x89,
+0x87,0x86,0x87,0x8b,0x90,0x91,0x8d,0x89,0x7c,0x7f,0x84,0x88,0x8d,0x8f,0x8b,0x86,
+0x82,0x7c,0x77,0x7a,0x80,0x85,0x89,0x8b,0x7f,0x7b,0x78,0x78,0x77,0x74,0x71,0x71,
+0x72,0x6b,0x6a,0x6b,0x6c,0x75,0x7f,0x81,0x80,0x77,0x70,0x6a,0x63,0x67,0x6f,0x70,
+0x6f,0x64,0x6d,0x6f,0x69,0x89,0xb8,0xc5,0xc2,0xc4,0xc2,0xb6,0xaa,0xa4,0xa4,0xa4,
+0x9d,0xa1,0xaf,0xbf,0xc7,0xc6,0xc3,0xc3,0xc5,0xc5,0xc5,0xc5,0xc5,0xc5,0xc4,0xc4,
+0xc7,0xc6,0xc4,0xc2,0xc2,0xc2,0xc3,0xc3,0xc1,0xc0,0xbf,0xbf,0xbe,0xbc,0xb9,0xb6,
+0xb3,0xb3,0xb4,0xb5,0xb5,0xb5,0xb3,0xb1,0xa9,0xa5,0xa0,0xa0,0xa4,0xa7,0xa8,0xa6,
+0xab,0xae,0xb1,0xb1,0xae,0xaa,0xa9,0xa9,0xa5,0x9c,0x92,0x89,0x83,0x85,0x8f,0x99,
+0xa8,0xaa,0xca,0xf0,0xfb,0xfb,0xfb,0xf8,0xfd,0xfd,0xfe,0xfd,0xfd,0xfc,0xfa,0xf9,
+0xf9,0xf9,0xfa,0xfb,0xfc,0xfd,0xfd,0xfd,0xfc,0xfb,0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,
+0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfc,0xfc,0xfb,0xfa,0xfa,0xfa,0xfa,0xfa,0xfc,0xfc,0xfb,0xfc,0xfd,0xfd,0xfc,0xfb,
+0xfa,0xfa,0xf9,0xf6,0xf4,0xf2,0xf2,0xf2,0xf5,0xf5,0xf5,0xf6,0xf7,0xf8,0xf7,0xf6,
+0xf5,0xf5,0xf4,0xf3,0xf2,0xf1,0xf0,0xef,0xed,0xeb,0xea,0xea,0xea,0xe9,0xe7,0xe4,
+0xe6,0xe3,0xe0,0xdd,0xdb,0xda,0xda,0xda,0xdd,0xdd,0xdf,0xe0,0xe2,0xe3,0xe3,0xe4,
+0xe6,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe0,0xe3,0xe2,0xe0,0xde,0xdc,0xda,0xd7,0xd5,
+0xd6,0xd5,0xd3,0xd2,0xd1,0xce,0xca,0xc7,0xc4,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xc9,
+0xca,0xc9,0xc7,0xc4,0xc1,0xbe,0xbd,0xbc,0xbd,0xb7,0xb2,0xb5,0xba,0xbe,0xc0,0xc1,
+0xc4,0xc6,0xc6,0xc5,0xc1,0xba,0xb3,0xae,0xae,0xaf,0xb2,0xb6,0xb9,0xbb,0xbf,0xc3,
+0xc7,0xc2,0xaa,0x85,0x6d,0x69,0x68,0x64,0x68,0x67,0x62,0x60,0x64,0x68,0x63,0x5a,
+0x60,0x65,0x69,0x6a,0x69,0x69,0x67,0x65,0x70,0x7f,0x8f,0x96,0x97,0x98,0x9a,0x9c,
+0x98,0x99,0x9a,0x9b,0x9c,0x9b,0x9b,0x9a,0x9d,0x9c,0x9b,0x9d,0x9e,0x9e,0x9c,0x9a,
+0x97,0x89,0x7a,0x71,0x6e,0x6a,0x66,0x64,0x61,0x60,0x5f,0x5f,0x5e,0x5d,0x5a,0x58,
+0x54,0x51,0x4c,0x44,0x3e,0x38,0x30,0x29,0x1f,0x20,0x20,0x1d,0x1a,0x1b,0x22,0x27,
+0x33,0x31,0x34,0x3f,0x4e,0x5a,0x61,0x65,0x67,0x72,0x82,0x8b,0x85,0x7b,0x7b,0x82,
+0x72,0x75,0x77,0x72,0x63,0x54,0x4b,0x4b,0x5a,0x54,0x51,0x50,0x4b,0x47,0x50,0x5d,
+0x5d,0x5f,0x5d,0x52,0x3f,0x2e,0x25,0x22,0x21,0x29,0x35,0x3d,0x39,0x2e,0x24,0x20,
+0x2d,0x34,0x3c,0x3f,0x3c,0x38,0x36,0x36,0x2b,0x3a,0x40,0x3e,0x40,0x3e,0x36,0x31,
+0x36,0x44,0x49,0x41,0x41,0x50,0x5c,0x5d,0x5f,0x64,0x59,0x4d,0x4c,0x47,0x46,0x52,
+0x5d,0x69,0x78,0x84,0x80,0x65,0x4b,0x44,0x50,0x5d,0x50,0x37,0x22,0x1f,0x29,0x25,
+0x1c,0x1b,0x19,0x16,0x16,0x1d,0x28,0x30,0x33,0x31,0x31,0x31,0x2d,0x28,0x2b,0x33,
+0x6b,0x78,0x82,0x81,0x78,0x71,0x6d,0x6c,0x67,0x6a,0x6e,0x6f,0x6c,0x69,0x6e,0x75,
+0x6a,0x64,0x5d,0x5a,0x5e,0x63,0x68,0x69,0x78,0x71,0x68,0x60,0x5c,0x5b,0x5b,0x5c,
+0x62,0x63,0x67,0x70,0x7a,0x80,0x80,0x7e,0x7c,0x7f,0x7b,0x72,0x71,0x78,0x7a,0x76,
+0x6f,0x6e,0x6d,0x6b,0x65,0x62,0x65,0x6b,0x75,0x6c,0x61,0x60,0x69,0x76,0x81,0x86,
+0x8e,0x89,0x80,0x75,0x6a,0x67,0x6f,0x79,0x83,0x7e,0x79,0x7a,0x80,0x83,0x80,0x7b,
+0x86,0x8a,0x8a,0x87,0x84,0x84,0x85,0x85,0x82,0x82,0x82,0x85,0x88,0x88,0x83,0x7e,
+0x78,0x7b,0x7e,0x81,0x83,0x86,0x8c,0x91,0x85,0x83,0x83,0x86,0x8a,0x8b,0x89,0x85,
+0x85,0x87,0x87,0x85,0x84,0x83,0x7d,0x76,0x7f,0x87,0x8d,0x90,0x95,0x98,0x91,0x85,
+0x7e,0x80,0x83,0x87,0x8a,0x8b,0x8a,0x87,0x89,0x87,0x83,0x84,0x8a,0x8e,0x8a,0x83,
+0x78,0x74,0x74,0x79,0x80,0x84,0x89,0x8d,0x8e,0x8b,0x86,0x80,0x77,0x72,0x73,0x78,
+0x71,0x6b,0x6d,0x76,0x80,0x8d,0x94,0x91,0x78,0x6b,0x6b,0x72,0x76,0x7b,0x75,0x64,
+0x6a,0x66,0x6a,0x6c,0x77,0x9e,0xc2,0xc6,0xc2,0xbe,0xb5,0xab,0xa2,0x9f,0xa0,0xa1,
+0x9c,0xa7,0xb7,0xc2,0xc6,0xc5,0xc4,0xc3,0xc6,0xc6,0xc6,0xc6,0xc5,0xc5,0xc5,0xc4,
+0xc4,0xc4,0xc4,0xc4,0xc3,0xc3,0xc2,0xc2,0xbe,0xbd,0xbb,0xbb,0xbb,0xba,0xb8,0xb7,
+0xb6,0xb6,0xb6,0xb6,0xb5,0xb5,0xb6,0xb6,0xb5,0xaf,0xa8,0xa6,0xa7,0xa9,0xa8,0xa6,
+0xac,0xac,0xad,0xae,0xad,0xab,0xa8,0xa5,0xa6,0xa1,0x9c,0x93,0x86,0x84,0x8b,0x8f,
+0xa4,0xa3,0xb2,0xd3,0xf0,0xf6,0xf6,0xfa,0xfc,0xfc,0xfd,0xfd,0xfd,0xfc,0xfb,0xfa,
+0xf9,0xfa,0xfa,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfa,0xfa,0xfa,0xfa,0xfa,
+0xfb,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfc,0xfe,0xfd,0xfb,0xfa,0xfa,0xfa,0xfb,0xfb,
+0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfd,0xfd,0xfc,0xfb,
+0xfb,0xfa,0xf9,0xf7,0xf6,0xf5,0xf3,0xf1,0xf3,0xf3,0xf3,0xf5,0xf7,0xf8,0xf7,0xf7,
+0xf4,0xf4,0xf4,0xf4,0xf5,0xf5,0xf6,0xf6,0xf1,0xf0,0xef,0xee,0xec,0xeb,0xea,0xe9,
+0xe6,0xe5,0xe3,0xe0,0xde,0xdc,0xdb,0xdb,0xde,0xde,0xdd,0xdc,0xdb,0xd9,0xd8,0xd7,
+0xd7,0xd8,0xd9,0xda,0xda,0xda,0xd9,0xd9,0xdb,0xd9,0xd6,0xd5,0xd4,0xd3,0xd2,0xd1,
+0xd4,0xd4,0xd3,0xd3,0xd1,0xce,0xca,0xc7,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcb,
+0xcc,0xca,0xc6,0xc3,0xc0,0xbe,0xbc,0xbb,0xbb,0xb7,0xb5,0xb8,0xbd,0xbf,0xc1,0xc2,
+0xc6,0xc6,0xc5,0xc3,0xbe,0xb6,0xaf,0xab,0xad,0xae,0xb2,0xb7,0xba,0xbb,0xbe,0xc2,
+0xc4,0xc2,0xae,0x8c,0x71,0x6b,0x6c,0x6c,0x64,0x62,0x5f,0x61,0x6a,0x72,0x6f,0x66,
+0x50,0x58,0x60,0x62,0x66,0x6d,0x75,0x79,0x86,0x8f,0x95,0x96,0x94,0x95,0x97,0x97,
+0x99,0x99,0x99,0x99,0x9a,0x99,0x99,0x98,0x9b,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+0x9f,0x97,0x8e,0x87,0x7f,0x75,0x6e,0x6a,0x65,0x62,0x5f,0x5d,0x5b,0x5a,0x58,0x56,
+0x50,0x4f,0x4a,0x43,0x3d,0x36,0x2d,0x24,0x21,0x21,0x1e,0x16,0x11,0x14,0x1d,0x25,
+0x32,0x2f,0x2f,0x30,0x2d,0x2f,0x43,0x5a,0x73,0x75,0x79,0x7d,0x7e,0x79,0x6e,0x65,
+0x6a,0x65,0x5b,0x4e,0x3f,0x38,0x40,0x4b,0x2d,0x43,0x5c,0x66,0x5d,0x4e,0x48,0x48,
+0x55,0x57,0x58,0x55,0x4d,0x3f,0x2c,0x1e,0x1f,0x26,0x2d,0x2b,0x22,0x1b,0x20,0x29,
+0x37,0x47,0x55,0x53,0x44,0x37,0x35,0x3a,0x3f,0x3a,0x32,0x33,0x3c,0x3d,0x3a,0x3e,
+0x45,0x4c,0x49,0x3f,0x3f,0x4c,0x53,0x4f,0x4b,0x58,0x55,0x4f,0x52,0x4a,0x46,0x52,
+0x54,0x49,0x3d,0x42,0x4a,0x43,0x37,0x34,0x3c,0x2c,0x19,0x20,0x24,0x1c,0x1b,0x17,
+0x0c,0x10,0x14,0x13,0x10,0x12,0x1b,0x23,0x26,0x22,0x20,0x20,0x1c,0x17,0x1b,0x23,
+0x7c,0x7c,0x7a,0x78,0x78,0x79,0x76,0x72,0x62,0x5f,0x5e,0x66,0x71,0x76,0x73,0x6d,
+0x5f,0x5f,0x63,0x6d,0x76,0x77,0x70,0x68,0x62,0x62,0x61,0x5f,0x5d,0x60,0x65,0x69,
+0x5f,0x63,0x69,0x70,0x77,0x7f,0x86,0x8b,0x8c,0x89,0x84,0x81,0x7f,0x7b,0x75,0x71,
+0x7d,0x77,0x70,0x6a,0x65,0x64,0x6b,0x75,0x73,0x6b,0x66,0x6e,0x7e,0x89,0x89,0x85,
+0x86,0x7d,0x73,0x71,0x73,0x76,0x78,0x7b,0x75,0x80,0x8b,0x8b,0x85,0x81,0x82,0x84,
+0x84,0x87,0x88,0x85,0x85,0x87,0x88,0x88,0x86,0x84,0x83,0x83,0x85,0x87,0x85,0x82,
+0x7e,0x7f,0x80,0x80,0x7f,0x82,0x88,0x8d,0x88,0x82,0x7c,0x7d,0x83,0x88,0x8a,0x89,
+0x88,0x87,0x82,0x7e,0x7f,0x82,0x80,0x7b,0x7d,0x84,0x8b,0x91,0x99,0x9d,0x93,0x83,
+0x83,0x86,0x8a,0x8c,0x8d,0x8e,0x8e,0x8c,0x89,0x87,0x86,0x8b,0x93,0x95,0x88,0x79,
+0x73,0x73,0x79,0x82,0x86,0x86,0x88,0x8c,0x93,0x92,0x8d,0x83,0x76,0x6e,0x71,0x79,
+0x75,0x6d,0x70,0x7d,0x89,0x91,0x8d,0x80,0x6f,0x64,0x65,0x6a,0x6c,0x76,0x7a,0x70,
+0x66,0x6c,0x68,0x69,0x85,0xad,0xc3,0xc6,0xc1,0xb3,0xa4,0x9e,0x9c,0x9b,0x9d,0xa1,
+0xa5,0xb3,0xc0,0xc5,0xc4,0xc4,0xc6,0xc7,0xc6,0xc6,0xc6,0xc5,0xc4,0xc4,0xc3,0xc3,
+0xbf,0xc1,0xc3,0xc5,0xc6,0xc5,0xc3,0xc2,0xc1,0xbf,0xbc,0xbb,0xba,0xba,0xb9,0xb9,
+0xb8,0xb8,0xb8,0xb6,0xb3,0xb3,0xb5,0xb8,0xb9,0xb9,0xb6,0xaf,0xa8,0xa6,0xa9,0xad,
+0xaf,0xab,0xa9,0xaa,0xad,0xad,0xa8,0xa3,0xa3,0xa0,0x9d,0x94,0x86,0x84,0x8a,0x8c,
+0x92,0xa7,0xaa,0xb6,0xdc,0xf0,0xf2,0xfd,0xfa,0xfa,0xfb,0xfc,0xfc,0xfc,0xfb,0xfb,
+0xfa,0xfa,0xfb,0xfb,0xfc,0xfb,0xfb,0xfb,0xfc,0xfc,0xfb,0xfa,0xfa,0xf9,0xf9,0xf9,
+0xfa,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xfe,0xfd,0xfb,0xf9,0xf8,0xf9,0xfa,0xfb,
+0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfa,0xf9,0xf9,0xf9,0xfa,0xfa,0xf9,0xf8,
+0xf9,0xf8,0xf7,0xf8,0xf9,0xf9,0xf6,0xf4,0xf5,0xf5,0xf5,0xf6,0xf8,0xf9,0xf8,0xf7,
+0xf9,0xf9,0xf8,0xf6,0xf6,0xf5,0xf5,0xf5,0xf7,0xf6,0xf4,0xf0,0xed,0xeb,0xea,0xeb,
+0xeb,0xea,0xe8,0xe6,0xe2,0xde,0xdb,0xd9,0xd7,0xd6,0xd6,0xd5,0xd4,0xd2,0xd1,0xd0,
+0xcb,0xcd,0xcf,0xd2,0xd4,0xd5,0xd6,0xd7,0xd3,0xd1,0xcf,0xcf,0xd0,0xd2,0xd2,0xd2,
+0xd2,0xd2,0xd1,0xd0,0xcf,0xcb,0xc7,0xc3,0xc4,0xc4,0xc6,0xc7,0xc9,0xca,0xca,0xcb,
+0xca,0xc8,0xc5,0xc2,0xc0,0xbe,0xbc,0xbb,0xbb,0xb8,0xb7,0xbb,0xbf,0xc0,0xc2,0xc3,
+0xc7,0xc7,0xc6,0xc2,0xbc,0xb5,0xae,0xaa,0xad,0xae,0xb3,0xb8,0xbb,0xbb,0xbe,0xc1,
+0xc2,0xc1,0xb0,0x90,0x76,0x6f,0x74,0x77,0x68,0x68,0x68,0x69,0x69,0x68,0x64,0x61,
+0x64,0x6c,0x71,0x6e,0x6c,0x72,0x7c,0x83,0x92,0x96,0x98,0x97,0x98,0x9b,0x9a,0x96,
+0x9a,0x99,0x97,0x96,0x97,0x97,0x96,0x96,0x96,0x97,0x99,0x9a,0x99,0x99,0x99,0x99,
+0x98,0x97,0x97,0x94,0x8a,0x7c,0x72,0x6e,0x6b,0x67,0x61,0x5c,0x58,0x56,0x54,0x53,
+0x4a,0x49,0x45,0x3f,0x3a,0x34,0x2a,0x22,0x20,0x20,0x1d,0x1a,0x1e,0x2e,0x42,0x50,
+0x43,0x36,0x2e,0x2f,0x2c,0x29,0x37,0x4c,0x5a,0x6a,0x75,0x74,0x71,0x71,0x6d,0x66,
+0x5f,0x4c,0x3d,0x41,0x50,0x5b,0x5d,0x5c,0x81,0x7e,0x75,0x6c,0x6c,0x71,0x70,0x69,
+0x61,0x60,0x58,0x4d,0x47,0x45,0x3c,0x30,0x2a,0x26,0x23,0x24,0x26,0x2a,0x2f,0x34,
+0x3c,0x44,0x4a,0x47,0x3d,0x35,0x35,0x39,0x3d,0x36,0x34,0x3e,0x43,0x34,0x2b,0x33,
+0x3e,0x3b,0x3b,0x43,0x4b,0x4e,0x4c,0x4a,0x49,0x57,0x52,0x4a,0x4c,0x43,0x3e,0x4c,
+0x5e,0x5e,0x50,0x41,0x3e,0x3b,0x31,0x2a,0x19,0x1e,0x19,0x1f,0x23,0x21,0x1e,0x11,
+0x0f,0x12,0x18,0x22,0x31,0x43,0x54,0x5e,0x53,0x4a,0x43,0x3e,0x38,0x32,0x36,0x3e,
+0x69,0x6f,0x74,0x72,0x6a,0x65,0x69,0x70,0x68,0x59,0x58,0x67,0x73,0x76,0x72,0x68,
+0x55,0x54,0x56,0x5d,0x68,0x6e,0x6d,0x6a,0x6e,0x6a,0x6f,0x74,0x72,0x71,0x73,0x70,
+0x6c,0x6b,0x6b,0x6e,0x74,0x7c,0x85,0x8a,0x8f,0x92,0x91,0x88,0x7c,0x75,0x76,0x7b,
+0x7b,0x72,0x6a,0x69,0x68,0x67,0x6d,0x76,0x76,0x7a,0x7b,0x77,0x77,0x7a,0x78,0x73,
+0x79,0x70,0x69,0x6a,0x72,0x79,0x7c,0x7d,0x86,0x83,0x82,0x84,0x84,0x83,0x84,0x86,
+0x91,0x8f,0x8a,0x82,0x7b,0x78,0x79,0x7c,0x81,0x7f,0x7b,0x79,0x7e,0x85,0x85,0x7f,
+0x7b,0x7a,0x78,0x75,0x78,0x80,0x87,0x89,0x81,0x7e,0x80,0x87,0x88,0x84,0x83,0x87,
+0x87,0x84,0x7e,0x7b,0x7f,0x84,0x82,0x7c,0x7a,0x7e,0x83,0x89,0x94,0x9d,0x97,0x8b,
+0x87,0x89,0x8a,0x89,0x83,0x7f,0x83,0x89,0x87,0x82,0x81,0x89,0x91,0x92,0x8d,0x89,
+0x86,0x8c,0x8b,0x85,0x86,0x90,0x95,0x93,0x9c,0x99,0x8f,0x81,0x75,0x71,0x73,0x74,
+0x6f,0x6c,0x6c,0x74,0x7f,0x88,0x8b,0x8b,0x6f,0x67,0x61,0x63,0x69,0x70,0x74,0x75,
+0x6c,0x6a,0x6a,0x77,0x97,0xb8,0xc1,0xbb,0xaf,0xa9,0xa3,0xa1,0xa0,0x9f,0x9f,0xa1,
+0xaa,0xb7,0xc2,0xc4,0xc4,0xc6,0xc7,0xc6,0xc6,0xc6,0xc6,0xc5,0xc4,0xc4,0xc5,0xc7,
+0xc2,0xc1,0xc0,0xc0,0xc1,0xc1,0xc1,0xc0,0xbd,0xbc,0xba,0xb9,0xb8,0xb7,0xb6,0xb6,
+0xba,0xba,0xba,0xba,0xba,0xb8,0xb7,0xb6,0xb6,0xb4,0xb2,0xb0,0xae,0xac,0xa8,0xa6,
+0xaa,0xae,0xb0,0xae,0xab,0xaa,0xa9,0xa7,0xa5,0x9f,0x99,0x94,0x8c,0x85,0x85,0x89,
+0x9d,0xa0,0xa9,0xb1,0xc6,0xed,0xff,0xf4,0xf9,0xff,0xfd,0xfb,0xfe,0xfe,0xf9,0xf9,
+0xf9,0xf9,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xfe,0xfe,0xfe,0xfd,0xfb,0xf9,0xf7,0xf6,
+0xfa,0xfb,0xfc,0xfe,0xfe,0xfe,0xfd,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfc,0xfc,0xfd,0xff,0xff,0xfd,0xfb,
+0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfa,0xfa,0xf9,
+0xf8,0xf9,0xfa,0xfb,0xfa,0xf8,0xf5,0xf3,0xf1,0xf2,0xf4,0xf6,0xf7,0xf7,0xf7,0xf7,
+0xf7,0xf7,0xf8,0xf8,0xf8,0xf7,0xf7,0xf7,0xf7,0xf5,0xf3,0xf1,0xf0,0xee,0xec,0xeb,
+0xe9,0xe7,0xe6,0xe5,0xe4,0xe2,0xe0,0xde,0xdb,0xd7,0xd2,0xcd,0xca,0xc9,0xca,0xcb,
+0xca,0xc7,0xc4,0xc2,0xc4,0xc8,0xcd,0xd0,0xd1,0xd0,0xcf,0xd0,0xd1,0xd1,0xd0,0xcf,
+0xcc,0xcc,0xcb,0xca,0xc8,0xc6,0xc5,0xc4,0xc9,0xc9,0xc9,0xc9,0xc9,0xca,0xc9,0xc9,
+0xca,0xc7,0xc3,0xc1,0xc0,0xc0,0xc0,0xbf,0xbc,0xb8,0xb7,0xba,0xbc,0xbd,0xbf,0xc1,
+0xc7,0xc8,0xc7,0xc3,0xbe,0xb9,0xb1,0xaa,0xac,0xaf,0xb4,0xb7,0xb9,0xba,0xbc,0xbd,
+0xbe,0xc6,0xae,0x9a,0x7e,0x8e,0x9c,0x9a,0x88,0x75,0x65,0x66,0x6e,0x72,0x70,0x6e,
+0x67,0x6c,0x6b,0x66,0x69,0x78,0x88,0x8f,0x96,0x96,0x97,0x97,0x97,0x97,0x97,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x91,0x92,0x92,0x93,0x94,0x95,0x95,0x96,
+0x92,0x92,0x92,0x90,0x8c,0x86,0x7e,0x79,0x6d,0x68,0x61,0x5d,0x5b,0x58,0x53,0x4f,
+0x48,0x46,0x42,0x3d,0x35,0x2d,0x25,0x21,0x1c,0x1e,0x1c,0x1c,0x2b,0x44,0x53,0x54,
+0x48,0x3e,0x36,0x34,0x31,0x2e,0x34,0x3d,0x58,0x6d,0x7c,0x7b,0x79,0x7a,0x72,0x64,
+0x4b,0x46,0x53,0x6b,0x70,0x64,0x68,0x7a,0x65,0x5b,0x55,0x5b,0x60,0x60,0x5f,0x60,
+0x64,0x6d,0x75,0x78,0x7d,0x82,0x7f,0x77,0x75,0x71,0x6c,0x6a,0x6a,0x68,0x66,0x64,
+0x5d,0x50,0x3e,0x37,0x3b,0x39,0x36,0x39,0x31,0x2a,0x26,0x2a,0x2a,0x20,0x20,0x2d,
+0x31,0x35,0x39,0x41,0x47,0x43,0x45,0x51,0x55,0x4c,0x4c,0x4f,0x49,0x45,0x47,0x4a,
+0x51,0x60,0x64,0x5a,0x57,0x57,0x43,0x28,0x14,0x13,0x1a,0x25,0x28,0x20,0x14,0x0d,
+0x1c,0x56,0x7b,0x65,0x3f,0x31,0x2e,0x27,0x1b,0x20,0x21,0x1c,0x1a,0x22,0x2f,0x39,
+0x6a,0x6b,0x6d,0x6c,0x6a,0x69,0x6b,0x6e,0x71,0x64,0x5c,0x5d,0x65,0x74,0x7c,0x78,
+0x67,0x6e,0x76,0x7c,0x7e,0x7f,0x80,0x81,0x76,0x6b,0x6a,0x6f,0x71,0x70,0x6c,0x62,
+0x6a,0x6c,0x6d,0x6e,0x70,0x75,0x7d,0x83,0x86,0x8b,0x8e,0x89,0x7f,0x76,0x72,0x73,
+0x6f,0x64,0x5c,0x5e,0x63,0x6a,0x75,0x7f,0x7e,0x7c,0x76,0x73,0x75,0x79,0x76,0x6f,
+0x74,0x6f,0x6b,0x6d,0x73,0x78,0x7b,0x7c,0x80,0x7d,0x7a,0x7b,0x80,0x86,0x8c,0x8f,
+0x8e,0x8c,0x87,0x7f,0x77,0x73,0x73,0x75,0x7f,0x85,0x86,0x7e,0x79,0x7e,0x82,0x82,
+0x7a,0x7a,0x77,0x73,0x73,0x75,0x77,0x76,0x78,0x7c,0x81,0x82,0x7a,0x73,0x78,0x83,
+0x85,0x80,0x78,0x74,0x78,0x80,0x81,0x7e,0x75,0x77,0x78,0x7b,0x85,0x8f,0x8f,0x88,
+0x87,0x88,0x89,0x87,0x80,0x79,0x79,0x7c,0x84,0x83,0x85,0x8b,0x8f,0x8e,0x8b,0x8a,
+0x84,0x89,0x89,0x85,0x8a,0x98,0xa1,0xa0,0x97,0x96,0x8f,0x83,0x7a,0x77,0x77,0x76,
+0x72,0x6f,0x68,0x68,0x7a,0x8d,0x86,0x72,0x6b,0x65,0x62,0x66,0x6d,0x70,0x6d,0x68,
+0x66,0x68,0x6b,0x7f,0xa6,0xc6,0xc4,0xb4,0xa7,0xa4,0xa1,0xa2,0xa2,0xa1,0xa3,0xa6,
+0xaf,0xba,0xc4,0xc6,0xc6,0xc7,0xc6,0xc2,0xbd,0xbf,0xc1,0xc2,0xc2,0xc1,0xc2,0xc3,
+0xc5,0xc4,0xc3,0xc3,0xc3,0xc2,0xc1,0xbf,0xc1,0xc0,0xbe,0xbc,0xba,0xb8,0xb7,0xb7,
+0xbb,0xba,0xb8,0xb7,0xb5,0xb5,0xb4,0xb4,0xb5,0xb4,0xb4,0xb4,0xb4,0xb3,0xb0,0xae,
+0xaa,0xad,0xae,0xac,0xaa,0xab,0xab,0xaa,0xa6,0xa1,0x9c,0x98,0x92,0x8b,0x88,0x89,
+0x9a,0xa2,0xac,0xb1,0xbe,0xdb,0xf4,0xfa,0xfa,0xff,0xfe,0xfd,0xff,0xfc,0xf8,0xfa,
+0xf9,0xf9,0xfa,0xfb,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfb,0xfa,0xf9,0xf9,0xf9,0xf9,
+0xf9,0xf9,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfe,0xfd,0xfd,0xfd,0xfe,0xfe,0xfc,0xfa,
+0xfa,0xfa,0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfa,0xfa,0xf9,
+0xf9,0xfa,0xfb,0xfb,0xfa,0xf9,0xf7,0xf6,0xf4,0xf4,0xf5,0xf5,0xf6,0xf6,0xf6,0xf6,
+0xf6,0xf6,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf6,0xf3,0xf2,0xf2,0xf1,0xf0,0xef,
+0xec,0xea,0xe8,0xe6,0xe5,0xe2,0xdf,0xdd,0xd9,0xd7,0xd2,0xcf,0xcc,0xcc,0xcd,0xcd,
+0xcf,0xcd,0xca,0xc8,0xc8,0xc9,0xcc,0xce,0xce,0xcd,0xcc,0xcd,0xcd,0xce,0xcd,0xcc,
+0xca,0xc8,0xc6,0xc4,0xc3,0xc3,0xc3,0xc3,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,0xc8,
+0xc9,0xc7,0xc4,0xc2,0xc1,0xc1,0xc1,0xc0,0xbe,0xba,0xb9,0xbb,0xbd,0xbd,0xbf,0xc1,
+0xc6,0xc7,0xc7,0xc3,0xc0,0xbb,0xb4,0xad,0xae,0xb1,0xb4,0xb7,0xb9,0xbb,0xbd,0xbe,
+0xbc,0xc5,0xb5,0xa0,0x76,0x72,0x84,0x91,0x95,0x84,0x71,0x68,0x68,0x6a,0x6d,0x6f,
+0x6c,0x68,0x67,0x71,0x80,0x8d,0x93,0x96,0x96,0x96,0x96,0x97,0x96,0x96,0x95,0x95,
+0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x90,0x90,0x90,0x90,0x91,0x91,0x91,0x91,
+0x8e,0x8d,0x8d,0x8c,0x89,0x84,0x7e,0x79,0x73,0x6d,0x66,0x60,0x5b,0x56,0x50,0x4b,
+0x46,0x43,0x3e,0x38,0x32,0x2a,0x23,0x1f,0x25,0x21,0x1b,0x1e,0x33,0x4c,0x55,0x50,
+0x47,0x45,0x43,0x3d,0x34,0x2c,0x2d,0x32,0x4d,0x61,0x71,0x73,0x6e,0x67,0x5a,0x4c,
+0x51,0x5c,0x5b,0x4b,0x43,0x4c,0x59,0x5e,0x4c,0x43,0x3a,0x37,0x39,0x41,0x54,0x67,
+0x87,0x88,0x8c,0x92,0x97,0x97,0x93,0x90,0x8f,0x91,0x8f,0x8c,0x8b,0x8b,0x89,0x84,
+0x7c,0x6e,0x57,0x49,0x49,0x48,0x47,0x4b,0x46,0x3d,0x33,0x29,0x19,0x0d,0x11,0x1e,
+0x1f,0x24,0x2f,0x43,0x52,0x51,0x50,0x59,0x51,0x50,0x56,0x59,0x55,0x55,0x5b,0x5d,
+0x5d,0x50,0x4b,0x58,0x64,0x5e,0x4b,0x3b,0x37,0x20,0x11,0x13,0x15,0x11,0x18,0x26,
+0x6f,0x50,0x2b,0x15,0x10,0x13,0x15,0x15,0x16,0x1c,0x22,0x26,0x29,0x27,0x21,0x1a,
+0x6f,0x6d,0x6d,0x70,0x77,0x7b,0x7c,0x7b,0x69,0x61,0x5a,0x56,0x61,0x7d,0x94,0x96,
+0x93,0x95,0x95,0x8e,0x83,0x78,0x71,0x6f,0x6c,0x63,0x62,0x6a,0x6e,0x70,0x6f,0x68,
+0x63,0x6c,0x76,0x7b,0x7c,0x7d,0x81,0x84,0x7e,0x83,0x88,0x87,0x81,0x7b,0x77,0x75,
+0x6d,0x66,0x64,0x6d,0x79,0x80,0x86,0x8a,0x7f,0x78,0x72,0x72,0x79,0x7d,0x77,0x6e,
+0x6e,0x6e,0x6d,0x6f,0x72,0x75,0x76,0x77,0x75,0x75,0x73,0x72,0x7a,0x86,0x8b,0x8a,
+0x88,0x87,0x83,0x7c,0x75,0x71,0x70,0x71,0x7f,0x84,0x84,0x82,0x87,0x8f,0x8d,0x83,
+0x84,0x85,0x84,0x80,0x7f,0x7f,0x7e,0x7c,0x76,0x7a,0x7e,0x7e,0x76,0x70,0x76,0x81,
+0x81,0x7c,0x74,0x71,0x75,0x7c,0x7e,0x7d,0x76,0x78,0x79,0x79,0x7f,0x86,0x88,0x84,
+0x7d,0x7f,0x82,0x83,0x7f,0x7a,0x78,0x79,0x7d,0x80,0x86,0x8b,0x8c,0x8a,0x8b,0x8e,
+0x91,0x97,0x98,0x96,0x99,0xa1,0xa2,0x9d,0x92,0x91,0x8c,0x85,0x80,0x7f,0x7e,0x7c,
+0x71,0x6c,0x64,0x66,0x7b,0x8e,0x85,0x70,0x66,0x67,0x68,0x6b,0x6e,0x70,0x6f,0x6e,
+0x6a,0x76,0x7e,0x8a,0xa5,0xb8,0xb4,0xa7,0xa5,0xa3,0xa1,0xa0,0x9d,0x9c,0x9e,0xa3,
+0xb5,0xbe,0xc4,0xc5,0xc5,0xc6,0xc3,0xbe,0xbd,0xbf,0xc2,0xc4,0xc3,0xc3,0xc2,0xc2,
+0xc6,0xc5,0xc5,0xc5,0xc4,0xc3,0xc0,0xbd,0xc0,0xbf,0xbd,0xbb,0xb9,0xb8,0xb8,0xb8,
+0xb7,0xb5,0xb2,0xb0,0xad,0xac,0xac,0xac,0xaf,0xb0,0xb1,0xb4,0xb7,0xb7,0xb6,0xb4,
+0xaf,0xaf,0xae,0xac,0xad,0xae,0xad,0xab,0xaa,0xa6,0xa2,0x9f,0x9a,0x91,0x89,0x85,
+0x90,0x9e,0xa9,0xae,0xb5,0xc3,0xe0,0xfe,0xf9,0xfd,0xfc,0xfc,0xfe,0xfa,0xf7,0xfb,
+0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfb,0xf9,0xf8,0xf8,0xf9,0xfa,0xfb,
+0xf7,0xf8,0xf9,0xfa,0xfa,0xfb,0xfb,0xfb,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xff,0xff,0xfe,0xfd,0xfd,0xfc,0xfa,0xf9,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xfa,0xf9,0xf9,
+0xfa,0xfb,0xfb,0xfb,0xfb,0xfa,0xf9,0xf9,0xf7,0xf7,0xf6,0xf6,0xf5,0xf5,0xf5,0xf5,
+0xf5,0xf5,0xf6,0xf6,0xf6,0xf6,0xf6,0xf5,0xf5,0xf4,0xf2,0xf2,0xf2,0xf2,0xf1,0xf1,
+0xef,0xed,0xea,0xe8,0xe6,0xe3,0xdf,0xdd,0xdd,0xdb,0xd9,0xd7,0xd6,0xd6,0xd6,0xd7,
+0xd6,0xd5,0xd3,0xd0,0xcf,0xce,0xcd,0xce,0xce,0xcd,0xcc,0xcc,0xcd,0xcd,0xcc,0xcb,
+0xc8,0xc6,0xc3,0xc0,0xbf,0xc1,0xc3,0xc5,0xca,0xca,0xcb,0xcb,0xcb,0xcb,0xcb,0xca,
+0xc9,0xc7,0xc5,0xc3,0xc3,0xc3,0xc2,0xc1,0xbf,0xbc,0xba,0xbc,0xbd,0xbe,0xbe,0xc0,
+0xc4,0xc5,0xc5,0xc2,0xc0,0xbc,0xb6,0xb0,0xb0,0xb2,0xb5,0xb7,0xb9,0xbb,0xbd,0xbf,
+0xbe,0xc3,0xb8,0xa6,0x74,0x5e,0x6e,0x84,0x93,0x8c,0x7d,0x6e,0x68,0x6b,0x73,0x78,
+0x6d,0x67,0x6c,0x7f,0x91,0x97,0x99,0x9b,0x97,0x97,0x96,0x96,0x95,0x94,0x93,0x93,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x8e,0x8e,0x8d,0x8d,0x8c,0x8b,0x8b,0x8b,
+0x88,0x87,0x87,0x86,0x84,0x81,0x7d,0x7a,0x77,0x71,0x69,0x62,0x5c,0x56,0x4e,0x49,
+0x43,0x3f,0x39,0x33,0x2d,0x27,0x21,0x1e,0x1b,0x18,0x14,0x19,0x2e,0x47,0x4f,0x4a,
+0x49,0x4d,0x4a,0x3d,0x2f,0x2a,0x2d,0x31,0x43,0x4d,0x58,0x5c,0x5a,0x56,0x51,0x4e,
+0x58,0x5a,0x49,0x36,0x46,0x68,0x6e,0x59,0x43,0x3b,0x3c,0x51,0x6c,0x7d,0x84,0x86,
+0x7b,0x7b,0x80,0x86,0x80,0x70,0x66,0x65,0x76,0x7e,0x86,0x88,0x8a,0x8a,0x84,0x7c,
+0x7a,0x74,0x65,0x59,0x5c,0x61,0x63,0x67,0x6e,0x60,0x5f,0x70,0x84,0x8f,0x89,0x7b,
+0x79,0x7e,0x6d,0x59,0x65,0x81,0x89,0x82,0x77,0x66,0x51,0x3c,0x2f,0x3a,0x53,0x61,
+0x6e,0x5e,0x59,0x61,0x5d,0x4c,0x45,0x4c,0x35,0x27,0x1d,0x1c,0x1b,0x16,0x18,0x21,
+0x11,0x13,0x16,0x1f,0x2c,0x34,0x2f,0x25,0x22,0x29,0x2b,0x24,0x1b,0x1b,0x23,0x2b,
+0x64,0x63,0x63,0x67,0x70,0x76,0x75,0x71,0x66,0x5e,0x57,0x55,0x5a,0x6d,0x7c,0x7d,
+0x79,0x76,0x73,0x73,0x75,0x75,0x74,0x72,0x60,0x5d,0x62,0x68,0x68,0x6d,0x75,0x77,
+0x6c,0x71,0x76,0x77,0x76,0x75,0x77,0x7a,0x7f,0x80,0x80,0x7e,0x7a,0x77,0x75,0x74,
+0x72,0x73,0x7c,0x8c,0x98,0x96,0x8c,0x85,0x71,0x6b,0x6a,0x73,0x7e,0x81,0x79,0x70,
+0x6e,0x70,0x71,0x70,0x6f,0x70,0x70,0x70,0x6f,0x73,0x72,0x71,0x78,0x82,0x82,0x7b,
+0x7e,0x7e,0x7b,0x76,0x72,0x6f,0x6f,0x6f,0x74,0x79,0x7c,0x7f,0x89,0x92,0x8a,0x7a,
+0x70,0x72,0x71,0x70,0x72,0x77,0x7a,0x7a,0x7a,0x77,0x77,0x7b,0x7d,0x7c,0x7b,0x7c,
+0x7f,0x7a,0x75,0x74,0x78,0x7d,0x7e,0x7d,0x7a,0x7f,0x83,0x84,0x84,0x85,0x83,0x7f,
+0x74,0x75,0x79,0x7c,0x7b,0x78,0x77,0x78,0x76,0x7a,0x82,0x87,0x88,0x87,0x8b,0x90,
+0x8d,0x91,0x93,0x93,0x98,0xa1,0xa4,0xa0,0x91,0x8f,0x8a,0x84,0x82,0x84,0x84,0x83,
+0x7e,0x73,0x6c,0x70,0x76,0x75,0x6f,0x6b,0x68,0x6d,0x70,0x6b,0x66,0x69,0x73,0x7b,
+0x7e,0x8b,0x8d,0x92,0xa8,0xb7,0xb3,0xad,0xa9,0xa7,0xa3,0x9f,0x9a,0x98,0x9d,0xa4,
+0xbb,0xbf,0xc2,0xc0,0xc1,0xc4,0xc2,0xbd,0xc4,0xc5,0xc7,0xc7,0xc5,0xc4,0xc3,0xc3,
+0xc4,0xc4,0xc4,0xc4,0xc4,0xc2,0xbf,0xbc,0xbc,0xbc,0xba,0xb9,0xb9,0xba,0xba,0xbb,
+0xb5,0xb3,0xb1,0xae,0xab,0xa9,0xa7,0xa6,0xa9,0xab,0xae,0xb2,0xb6,0xb7,0xb6,0xb5,
+0xb4,0xb4,0xb3,0xb1,0xb1,0xb1,0xae,0xaa,0xae,0xaa,0xa6,0xa4,0xa0,0x96,0x8a,0x81,
+0x88,0x96,0xa2,0xad,0xb5,0xb7,0xcf,0xf7,0xf9,0xfb,0xf9,0xfa,0xfe,0xfb,0xf9,0xfd,
+0xfa,0xfa,0xf9,0xfa,0xfa,0xfb,0xfc,0xfd,0xfc,0xfb,0xfa,0xf9,0xf9,0xf9,0xfa,0xfb,
+0xf7,0xf7,0xf7,0xf8,0xf9,0xfa,0xfa,0xfb,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xff,0xfe,0xfe,0xfd,0xfc,0xfc,0xfb,0xfa,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xf9,0xf9,0xf9,0xfa,0xfa,0xf9,0xf9,0xf9,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfb,0xfb,0xfa,0xf9,0xf8,0xf6,0xf6,0xf6,0xf6,0xf7,
+0xf5,0xf5,0xf6,0xf6,0xf5,0xf4,0xf4,0xf3,0xf2,0xf1,0xef,0xef,0xef,0xef,0xef,0xee,
+0xef,0xed,0xeb,0xe8,0xe6,0xe4,0xe0,0xde,0xe0,0xe0,0xdf,0xdf,0xde,0xde,0xde,0xde,
+0xdc,0xdc,0xdb,0xd9,0xd7,0xd4,0xd2,0xd0,0xd2,0xd1,0xcf,0xcf,0xd0,0xcf,0xce,0xcd,
+0xc9,0xc7,0xc5,0xc3,0xc2,0xc4,0xc6,0xc8,0xcb,0xcc,0xcd,0xce,0xce,0xce,0xce,0xce,
+0xc9,0xc7,0xc5,0xc4,0xc4,0xc4,0xc3,0xc2,0xbf,0xbb,0xba,0xbd,0xbe,0xbe,0xbf,0xc1,
+0xc2,0xc3,0xc2,0xc0,0xbe,0xbb,0xb6,0xb0,0xb2,0xb3,0xb5,0xb7,0xb8,0xba,0xbd,0xbf,
+0xc1,0xc0,0xb7,0xa8,0x7e,0x62,0x6c,0x78,0x76,0x7a,0x76,0x67,0x5d,0x60,0x69,0x6f,
+0x6e,0x74,0x80,0x8d,0x94,0x95,0x97,0x9b,0x97,0x97,0x97,0x96,0x95,0x93,0x92,0x91,
+0x8f,0x8f,0x8f,0x8e,0x8e,0x8e,0x8e,0x8f,0x8d,0x8d,0x8c,0x8a,0x89,0x87,0x86,0x86,
+0x85,0x84,0x82,0x81,0x80,0x7e,0x7b,0x79,0x76,0x70,0x68,0x62,0x5d,0x57,0x4f,0x4a,
+0x41,0x3c,0x35,0x2e,0x29,0x25,0x21,0x1e,0x19,0x1b,0x1b,0x1c,0x25,0x34,0x3d,0x3d,
+0x3f,0x47,0x46,0x39,0x2e,0x2e,0x31,0x32,0x32,0x33,0x39,0x40,0x42,0x42,0x46,0x4d,
+0x40,0x41,0x43,0x4c,0x62,0x7a,0x81,0x7c,0x74,0x77,0x7d,0x80,0x7b,0x70,0x69,0x67,
+0x75,0x74,0x72,0x6d,0x61,0x59,0x5b,0x63,0x71,0x7b,0x83,0x7c,0x6c,0x60,0x62,0x6b,
+0x8b,0x8e,0x86,0x7b,0x77,0x72,0x6c,0x6a,0x64,0x7c,0x9f,0xb3,0xb1,0xb0,0xb4,0xb2,
+0x8b,0x6c,0x5f,0x7f,0xa6,0xab,0x9d,0x99,0x9c,0x97,0x99,0x96,0x85,0x76,0x6f,0x6a,
+0x6f,0x75,0x77,0x6b,0x56,0x46,0x47,0x50,0x6b,0x6a,0x5b,0x43,0x36,0x38,0x3c,0x3a,
+0x3d,0x3c,0x35,0x2e,0x38,0x47,0x45,0x38,0x31,0x34,0x3d,0x51,0x6c,0x7f,0x83,0x7f,
+0x62,0x65,0x67,0x69,0x6e,0x72,0x70,0x6b,0x69,0x5c,0x57,0x5b,0x5e,0x61,0x65,0x63,
+0x75,0x73,0x70,0x6d,0x6c,0x6c,0x6c,0x6b,0x69,0x63,0x65,0x67,0x64,0x67,0x70,0x74,
+0x73,0x70,0x6d,0x6c,0x70,0x78,0x81,0x88,0x8c,0x8b,0x88,0x84,0x7f,0x7b,0x79,0x78,
+0x76,0x7b,0x86,0x95,0x9b,0x93,0x82,0x75,0x64,0x60,0x62,0x6f,0x7b,0x7d,0x78,0x74,
+0x74,0x77,0x77,0x71,0x6d,0x6d,0x6e,0x6d,0x6d,0x71,0x71,0x70,0x77,0x80,0x7f,0x76,
+0x79,0x78,0x75,0x71,0x6d,0x6c,0x6c,0x6d,0x6a,0x73,0x78,0x76,0x75,0x77,0x74,0x6e,
+0x71,0x71,0x6f,0x6d,0x71,0x7a,0x82,0x85,0x7c,0x78,0x77,0x7b,0x80,0x7f,0x79,0x74,
+0x7b,0x76,0x72,0x73,0x77,0x7c,0x7e,0x80,0x79,0x7f,0x85,0x87,0x85,0x83,0x7f,0x7c,
+0x78,0x77,0x77,0x77,0x75,0x71,0x70,0x72,0x75,0x77,0x7b,0x80,0x83,0x84,0x88,0x8e,
+0x8a,0x8a,0x85,0x80,0x83,0x8c,0x93,0x94,0x8d,0x8a,0x83,0x7d,0x7c,0x7f,0x82,0x82,
+0x76,0x6e,0x6a,0x6d,0x6f,0x6e,0x6d,0x6f,0x6e,0x70,0x6d,0x66,0x63,0x68,0x72,0x77,
+0x77,0x79,0x71,0x7e,0xa6,0xbb,0xb2,0xab,0xad,0xaa,0xa5,0xa0,0x9b,0x9c,0xa6,0xb0,
+0xbd,0xbf,0xbe,0xbb,0xbc,0xc1,0xc2,0xbe,0xc6,0xc6,0xc6,0xc5,0xc4,0xc3,0xc4,0xc4,
+0xc3,0xc3,0xc3,0xc4,0xc4,0xc3,0xc0,0xbe,0xbe,0xbd,0xbc,0xbb,0xbb,0xbb,0xbd,0xbe,
+0xb7,0xb6,0xb5,0xb3,0xb0,0xad,0xa9,0xa7,0xa9,0xaa,0xac,0xb0,0xb4,0xb5,0xb5,0xb4,
+0xb4,0xb5,0xb4,0xb3,0xb4,0xb4,0xaf,0xaa,0xac,0xaa,0xa7,0xa6,0xa3,0x9b,0x8e,0x84,
+0x88,0x90,0x9b,0xad,0xba,0xb7,0xc3,0xe2,0xfa,0xfd,0xfa,0xf9,0xfe,0xfe,0xfb,0xfc,
+0xfa,0xfa,0xf9,0xf9,0xf9,0xfb,0xfc,0xfd,0xfc,0xfc,0xfc,0xfc,0xfb,0xfa,0xf9,0xf9,
+0xf8,0xf7,0xf7,0xf7,0xf8,0xf9,0xfa,0xfb,0xfa,0xfb,0xfc,0xfc,0xfd,0xfd,0xfc,0xfc,
+0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,
+0xfa,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfb,0xfa,0xfa,0xf9,0xf8,0xf8,0xf8,0xf9,0xf9,
+0xf7,0xf7,0xf7,0xf6,0xf5,0xf3,0xf2,0xf1,0xf1,0xef,0xee,0xed,0xed,0xed,0xec,0xeb,
+0xed,0xeb,0xea,0xe8,0xe7,0xe5,0xe3,0xe1,0xdf,0xdf,0xe0,0xe0,0xe0,0xe0,0xdf,0xdf,
+0xdf,0xdf,0xdf,0xde,0xdd,0xda,0xd8,0xd6,0xd5,0xd4,0xd2,0xd2,0xd2,0xd1,0xd0,0xce,
+0xcb,0xca,0xc9,0xc9,0xc9,0xca,0xca,0xcb,0xc9,0xca,0xcc,0xcd,0xce,0xce,0xce,0xce,
+0xc9,0xc8,0xc7,0xc6,0xc6,0xc5,0xc4,0xc2,0xbd,0xba,0xba,0xbd,0xbf,0xbf,0xc0,0xc2,
+0xc2,0xc3,0xc2,0xbf,0xbd,0xbb,0xb6,0xb1,0xb2,0xb3,0xb5,0xb6,0xb7,0xb9,0xbc,0xbe,
+0xbd,0xbf,0xb9,0xa8,0x87,0x6d,0x73,0x72,0x76,0x7d,0x7c,0x6f,0x64,0x66,0x6f,0x74,
+0x7c,0x88,0x93,0x96,0x95,0x97,0x99,0x99,0x98,0x98,0x97,0x96,0x94,0x92,0x91,0x90,
+0x8f,0x8e,0x8d,0x8c,0x8c,0x8c,0x8c,0x8c,0x8d,0x8c,0x8b,0x89,0x87,0x85,0x84,0x83,
+0x83,0x81,0x7f,0x7d,0x7c,0x7a,0x78,0x76,0x73,0x6d,0x66,0x61,0x5c,0x56,0x4f,0x49,
+0x41,0x3b,0x32,0x2c,0x28,0x25,0x22,0x20,0x1c,0x1d,0x1c,0x1b,0x1f,0x26,0x2a,0x28,
+0x2e,0x38,0x3b,0x34,0x30,0x34,0x35,0x30,0x30,0x2e,0x33,0x3b,0x3d,0x39,0x39,0x3e,
+0x45,0x3b,0x3e,0x53,0x65,0x67,0x64,0x65,0x71,0x70,0x6b,0x65,0x5e,0x5f,0x69,0x74,
+0x76,0x79,0x7a,0x77,0x79,0x7f,0x83,0x83,0x74,0x6f,0x6f,0x73,0x73,0x75,0x84,0x98,
+0x82,0x8d,0x91,0x91,0x93,0x92,0x91,0x95,0x96,0x98,0xa1,0xac,0xb1,0xa7,0x88,0x69,
+0x57,0x62,0x81,0xa1,0x9e,0x7b,0x71,0x88,0x8b,0x87,0x95,0xaa,0xae,0xa9,0xa9,0xab,
+0x96,0x93,0x85,0x6d,0x58,0x4f,0x4a,0x46,0x3a,0x4d,0x5b,0x59,0x58,0x60,0x64,0x62,
+0x53,0x51,0x4e,0x4a,0x49,0x4f,0x60,0x70,0x77,0x85,0x90,0x91,0x89,0x82,0x7e,0x7d,
+0x4c,0x53,0x59,0x5c,0x61,0x68,0x69,0x67,0x62,0x53,0x51,0x5c,0x62,0x64,0x66,0x64,
+0x5d,0x66,0x6e,0x6f,0x6c,0x6c,0x73,0x7b,0x75,0x68,0x63,0x64,0x64,0x67,0x69,0x66,
+0x6a,0x6a,0x6d,0x71,0x78,0x7f,0x85,0x88,0x84,0x86,0x89,0x88,0x86,0x82,0x7f,0x7e,
+0x7c,0x7f,0x86,0x8d,0x8e,0x87,0x7b,0x72,0x69,0x61,0x62,0x6e,0x78,0x79,0x78,0x7a,
+0x79,0x7d,0x7c,0x74,0x6e,0x6e,0x6f,0x6e,0x68,0x6b,0x6b,0x6d,0x75,0x7e,0x80,0x7c,
+0x7f,0x7c,0x76,0x71,0x6e,0x6e,0x6f,0x71,0x77,0x74,0x70,0x6f,0x72,0x74,0x73,0x70,
+0x6f,0x6c,0x67,0x62,0x64,0x6b,0x73,0x76,0x79,0x7c,0x7e,0x7e,0x7b,0x77,0x74,0x72,
+0x74,0x6e,0x6a,0x6b,0x70,0x74,0x78,0x7c,0x78,0x7c,0x80,0x82,0x82,0x81,0x81,0x81,
+0x7f,0x7e,0x7d,0x7b,0x76,0x72,0x73,0x77,0x7a,0x78,0x78,0x7a,0x7c,0x7e,0x83,0x89,
+0x8e,0x8f,0x8d,0x87,0x83,0x83,0x83,0x82,0x84,0x82,0x7c,0x75,0x72,0x74,0x76,0x76,
+0x69,0x69,0x67,0x68,0x73,0x81,0x82,0x7b,0x6e,0x6b,0x66,0x66,0x6f,0x79,0x7a,0x73,
+0x7f,0x83,0x80,0x92,0xba,0xc4,0xb8,0xb9,0xb1,0xac,0xa5,0x9f,0x9b,0x9e,0xa9,0xb5,
+0xbc,0xbe,0xbc,0xb8,0xba,0xc0,0xc3,0xc1,0xc5,0xc5,0xc5,0xc5,0xc4,0xc4,0xc6,0xc8,
+0xc3,0xc3,0xc3,0xc4,0xc5,0xc4,0xc3,0xc1,0xbf,0xbe,0xbb,0xb9,0xb8,0xb8,0xb9,0xba,
+0xb8,0xb8,0xb8,0xb7,0xb4,0xaf,0xab,0xa8,0xa9,0xa9,0xaa,0xac,0xaf,0xb0,0xaf,0xae,
+0xaf,0xb1,0xb3,0xb2,0xb3,0xb4,0xb1,0xae,0xa9,0xa9,0xa7,0xa6,0xa5,0xa0,0x96,0x8c,
+0x89,0x8a,0x93,0xa7,0xb5,0xb4,0xb7,0xc4,0xf1,0xfd,0xfe,0xf9,0xfc,0xfe,0xfb,0xfa,
+0xfb,0xfa,0xf8,0xf8,0xf8,0xfa,0xfc,0xfe,0xfd,0xfd,0xfd,0xfd,0xfc,0xfa,0xf8,0xf7,
+0xf9,0xf8,0xf7,0xf7,0xf7,0xf8,0xfa,0xfb,0xf9,0xfa,0xfb,0xfc,0xfc,0xfc,0xfb,0xfb,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfc,0xfc,0xfc,0xfb,0xfb,0xfd,0xfe,
+0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xf9,0xf9,0xf9,0xf8,0xf8,0xf9,0xf9,0xf9,
+0xf9,0xf9,0xf8,0xf8,0xf8,0xf9,0xf9,0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,
+0xf8,0xf8,0xf8,0xf7,0xf5,0xf4,0xf3,0xf2,0xf3,0xf1,0xef,0xee,0xee,0xee,0xed,0xec,
+0xeb,0xea,0xe9,0xe9,0xe8,0xe8,0xe6,0xe4,0xe1,0xe1,0xe1,0xe1,0xe1,0xe0,0xe0,0xdf,
+0xdf,0xdf,0xdf,0xdf,0xde,0xdd,0xdc,0xdb,0xd7,0xd5,0xd4,0xd3,0xd3,0xd2,0xd0,0xcf,
+0xcd,0xcd,0xce,0xce,0xce,0xce,0xce,0xcd,0xcc,0xcd,0xcf,0xd0,0xd1,0xd0,0xd0,0xcf,
+0xcb,0xca,0xca,0xc9,0xc9,0xc8,0xc5,0xc3,0xbd,0xbb,0xbb,0xbe,0xc1,0xc1,0xc2,0xc3,
+0xc4,0xc4,0xc3,0xbf,0xbd,0xbb,0xb7,0xb2,0xb2,0xb4,0xb6,0xb7,0xb8,0xb9,0xbb,0xbd,
+0xb7,0xbe,0xbf,0xab,0x8e,0x73,0x79,0x73,0x6f,0x70,0x6c,0x64,0x60,0x65,0x71,0x79,
+0x8b,0x93,0x97,0x95,0x97,0x9c,0x9a,0x94,0x97,0x97,0x96,0x95,0x93,0x91,0x90,0x8f,
+0x8f,0x8e,0x8c,0x8b,0x8a,0x8a,0x8a,0x8a,0x8b,0x8a,0x89,0x87,0x85,0x83,0x82,0x81,
+0x80,0x7e,0x7b,0x79,0x78,0x76,0x73,0x71,0x70,0x6b,0x64,0x5e,0x5a,0x54,0x4c,0x46,
+0x3f,0x39,0x30,0x2a,0x28,0x26,0x23,0x20,0x18,0x16,0x16,0x1d,0x2c,0x38,0x38,0x32,
+0x2d,0x31,0x2f,0x29,0x2c,0x37,0x3d,0x3d,0x3c,0x35,0x33,0x38,0x3a,0x36,0x35,0x39,
+0x28,0x1a,0x1b,0x35,0x55,0x65,0x67,0x64,0x66,0x5f,0x57,0x57,0x60,0x6d,0x77,0x7c,
+0x82,0x7f,0x78,0x73,0x77,0x7b,0x71,0x62,0x71,0x7a,0x88,0x8a,0x7d,0x74,0x85,0x9e,
+0xac,0xac,0xa0,0x8e,0x7d,0x6c,0x68,0x70,0x90,0x9e,0xa2,0x9d,0x91,0x77,0x5a,0x4c,
+0x64,0x7d,0x8d,0x8b,0x87,0x85,0x86,0x8c,0x95,0x8d,0x95,0xa5,0xa7,0xa3,0xa1,0xa1,
+0xae,0xae,0xaf,0xae,0xa1,0x86,0x67,0x52,0x54,0x55,0x58,0x57,0x4f,0x49,0x4e,0x59,
+0x54,0x52,0x53,0x62,0x81,0x9c,0xa4,0x9f,0x9c,0x92,0x83,0x7a,0x78,0x75,0x6c,0x61,
+0x4a,0x52,0x58,0x5c,0x64,0x6f,0x75,0x74,0x60,0x55,0x51,0x55,0x57,0x5b,0x5c,0x57,
+0x55,0x5e,0x65,0x64,0x5e,0x5d,0x65,0x6d,0x72,0x67,0x64,0x65,0x62,0x62,0x62,0x5d,
+0x60,0x65,0x6c,0x70,0x70,0x6e,0x6b,0x6a,0x6d,0x73,0x7a,0x7d,0x7c,0x7a,0x79,0x79,
+0x7d,0x83,0x89,0x8b,0x89,0x84,0x7d,0x78,0x70,0x65,0x63,0x6f,0x79,0x78,0x76,0x78,
+0x77,0x7c,0x7c,0x75,0x71,0x72,0x72,0x6e,0x66,0x68,0x6c,0x73,0x79,0x7f,0x81,0x81,
+0x84,0x7f,0x78,0x72,0x70,0x72,0x75,0x78,0x7d,0x6e,0x66,0x6e,0x78,0x7a,0x77,0x75,
+0x73,0x71,0x6b,0x64,0x61,0x64,0x67,0x67,0x70,0x76,0x7b,0x7b,0x76,0x74,0x75,0x77,
+0x74,0x70,0x6f,0x72,0x74,0x72,0x72,0x73,0x7a,0x7c,0x7f,0x82,0x83,0x83,0x84,0x85,
+0x82,0x82,0x83,0x81,0x7b,0x77,0x79,0x7f,0x7d,0x7a,0x78,0x77,0x76,0x79,0x81,0x8a,
+0x88,0x8d,0x90,0x8e,0x8a,0x88,0x87,0x87,0x81,0x83,0x82,0x7c,0x76,0x72,0x6f,0x6d,
+0x73,0x73,0x71,0x6f,0x74,0x7b,0x77,0x6f,0x6d,0x6d,0x6c,0x70,0x7b,0x85,0x81,0x77,
+0x7a,0x85,0x89,0x9f,0xbd,0xb6,0xa8,0xb3,0xaf,0xa9,0xa2,0x9d,0x9b,0x9f,0xab,0xb6,
+0xbc,0xbf,0xbf,0xbb,0xbc,0xc2,0xc4,0xc2,0xc5,0xc6,0xc7,0xc7,0xc6,0xc6,0xc6,0xc7,
+0xc3,0xc2,0xc2,0xc3,0xc4,0xc4,0xc2,0xc1,0xbd,0xbc,0xb9,0xb6,0xb5,0xb5,0xb6,0xb7,
+0xb9,0xb9,0xb8,0xb6,0xb4,0xb1,0xad,0xab,0xac,0xab,0xaa,0xaa,0xab,0xac,0xab,0xab,
+0xaf,0xb2,0xb2,0xb0,0xb0,0xb2,0xb3,0xb2,0xab,0xab,0xaa,0xa7,0xa5,0xa3,0x9c,0x94,
+0x89,0x86,0x8f,0xa0,0xab,0xb1,0xb3,0xb1,0xd9,0xf4,0xff,0xf9,0xf8,0xfc,0xfb,0xf9,
+0xfb,0xfa,0xf8,0xf7,0xf8,0xfa,0xfc,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf8,0xf8,
+0xfa,0xf9,0xf7,0xf6,0xf6,0xf7,0xf9,0xfa,0xf8,0xf9,0xfa,0xfc,0xfc,0xfc,0xfb,0xfb,
+0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfa,0xfb,0xfd,0xfe,
+0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,0xfb,0xfb,0xf9,0xf9,0xf8,0xf8,0xf8,0xf8,0xf9,0xf9,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,
+0xf8,0xf8,0xf8,0xf7,0xf7,0xf6,0xf5,0xf4,0xf4,0xf3,0xf1,0xf0,0xf0,0xf0,0xef,0xee,
+0xeb,0xea,0xe9,0xea,0xea,0xea,0xe8,0xe7,0xe6,0xe6,0xe5,0xe5,0xe3,0xe2,0xe2,0xe1,
+0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdb,0xd9,0xd8,0xd7,0xd6,0xd5,0xd3,0xd2,
+0xd0,0xd1,0xd1,0xd2,0xd2,0xd2,0xd1,0xd1,0xd1,0xd2,0xd3,0xd4,0xd3,0xd2,0xd0,0xcf,
+0xce,0xce,0xcd,0xcd,0xcc,0xca,0xc7,0xc5,0xc0,0xbe,0xbe,0xc1,0xc3,0xc2,0xc3,0xc4,
+0xc3,0xc4,0xc2,0xbe,0xbc,0xbb,0xb8,0xb4,0xb2,0xb4,0xb7,0xb9,0xb9,0xba,0xbb,0xbc,
+0xb9,0xbd,0xbf,0xaf,0x9a,0x7d,0x81,0x77,0x77,0x71,0x6b,0x6b,0x70,0x79,0x86,0x8f,
+0x94,0x94,0x94,0x95,0x97,0x99,0x97,0x95,0x95,0x95,0x94,0x93,0x91,0x90,0x8e,0x8d,
+0x8e,0x8d,0x8b,0x89,0x88,0x87,0x87,0x87,0x87,0x87,0x85,0x84,0x82,0x80,0x7f,0x7f,
+0x7b,0x79,0x77,0x75,0x73,0x71,0x6e,0x6c,0x6b,0x66,0x60,0x5b,0x57,0x51,0x4a,0x44,
+0x3d,0x36,0x2e,0x28,0x27,0x25,0x22,0x1f,0x1b,0x1a,0x1e,0x29,0x3a,0x46,0x47,0x42,
+0x2f,0x30,0x2f,0x2d,0x33,0x3e,0x48,0x4b,0x3d,0x34,0x2e,0x31,0x35,0x35,0x33,0x33,
+0x2b,0x2c,0x2d,0x2e,0x30,0x36,0x40,0x4a,0x45,0x4f,0x5a,0x5c,0x58,0x55,0x58,0x5d,
+0x50,0x51,0x55,0x5f,0x6e,0x7c,0x81,0x81,0x80,0x76,0x71,0x7c,0x8a,0x88,0x6f,0x56,
+0x45,0x44,0x3e,0x3b,0x3b,0x3f,0x54,0x71,0x90,0xa5,0x9f,0x89,0x75,0x5a,0x4f,0x62,
+0x7c,0x86,0x8f,0x8f,0x80,0x6d,0x71,0x89,0x89,0x85,0x87,0x88,0x87,0x8c,0x91,0x8d,
+0x89,0x7c,0x71,0x6f,0x74,0x7b,0x82,0x88,0x7d,0x7e,0x84,0x8a,0x82,0x71,0x68,0x69,
+0x7e,0x97,0xac,0xad,0xa7,0xa2,0x97,0x8a,0x7f,0x86,0x8a,0x87,0x85,0x88,0x8e,0x93,
+0x4a,0x50,0x53,0x54,0x5c,0x68,0x6f,0x6e,0x64,0x60,0x5d,0x5a,0x5a,0x63,0x65,0x5b,
+0x68,0x68,0x65,0x61,0x5f,0x60,0x64,0x68,0x6b,0x68,0x6a,0x68,0x5e,0x58,0x59,0x59,
+0x56,0x5b,0x62,0x65,0x66,0x6a,0x72,0x78,0x74,0x79,0x7e,0x7f,0x7c,0x7a,0x7a,0x7c,
+0x77,0x82,0x8c,0x90,0x8c,0x84,0x7d,0x78,0x6e,0x63,0x61,0x70,0x7a,0x76,0x6f,0x6f,
+0x73,0x79,0x7a,0x75,0x72,0x74,0x73,0x6e,0x6a,0x6d,0x76,0x80,0x85,0x83,0x82,0x82,
+0x81,0x7c,0x74,0x6f,0x6e,0x72,0x77,0x7b,0x6b,0x63,0x63,0x6d,0x70,0x6a,0x69,0x6f,
+0x75,0x74,0x6f,0x68,0x64,0x63,0x62,0x60,0x66,0x6a,0x6e,0x70,0x73,0x77,0x79,0x79,
+0x7c,0x7b,0x7f,0x84,0x83,0x7a,0x71,0x6d,0x7b,0x7d,0x81,0x85,0x86,0x84,0x83,0x83,
+0x83,0x84,0x85,0x82,0x7b,0x75,0x76,0x7b,0x7c,0x7a,0x78,0x75,0x73,0x76,0x82,0x8e,
+0x93,0x92,0x8b,0x80,0x77,0x76,0x7d,0x83,0x88,0x8e,0x91,0x8c,0x83,0x7b,0x74,0x6f,
+0x6f,0x6b,0x6c,0x72,0x6f,0x66,0x63,0x68,0x71,0x77,0x7b,0x79,0x7a,0x7f,0x7d,0x77,
+0x76,0x7c,0x7f,0x9c,0xc2,0xb9,0xa5,0xae,0xa7,0xa3,0x9e,0x9d,0xa0,0xa7,0xb4,0xbf,
+0xbb,0xc0,0xc2,0xbf,0xbf,0xc3,0xc5,0xc3,0xc4,0xc6,0xc7,0xc7,0xc5,0xc3,0xc1,0xc1,
+0xc2,0xc1,0xc0,0xc1,0xc1,0xc1,0xc1,0xc0,0xbc,0xbb,0xb9,0xb7,0xb6,0xb7,0xb9,0xba,
+0xbc,0xbc,0xba,0xb8,0xb6,0xb3,0xb2,0xb1,0xb1,0xaf,0xad,0xad,0xad,0xad,0xad,0xad,
+0xb4,0xb5,0xb4,0xb0,0xae,0xb0,0xb3,0xb5,0xaf,0xb0,0xad,0xa8,0xa6,0xa4,0x9e,0x96,
+0x8b,0x86,0x90,0x9e,0xa6,0xb3,0xb8,0xaf,0xc2,0xe8,0xfd,0xf7,0xf4,0xf9,0xfb,0xfa,
+0xfb,0xfa,0xf8,0xf7,0xf7,0xfa,0xfc,0xfe,0xfe,0xfc,0xfa,0xf8,0xf8,0xf8,0xf9,0xfa,
+0xfa,0xf9,0xf7,0xf5,0xf5,0xf6,0xf7,0xf9,0xf8,0xf9,0xfb,0xfc,0xfd,0xfc,0xfc,0xfb,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfb,0xfc,0xfd,0xfb,0xfa,0xfa,0xfc,0xfe,
+0xfd,0xfd,0xfd,0xfc,0xfc,0xfb,0xfb,0xfb,0xf9,0xf9,0xf8,0xf8,0xf8,0xf8,0xf9,0xf9,
+0xf9,0xf9,0xfa,0xfa,0xfa,0xf9,0xf9,0xf8,0xf8,0xf9,0xf9,0xf9,0xf9,0xf8,0xf7,0xf6,
+0xf7,0xf7,0xf8,0xf8,0xf8,0xf8,0xf7,0xf7,0xf4,0xf3,0xf1,0xf1,0xf1,0xf1,0xf1,0xf0,
+0xec,0xeb,0xea,0xeb,0xeb,0xeb,0xea,0xe8,0xe9,0xe8,0xe7,0xe5,0xe4,0xe2,0xe2,0xe1,
+0xdc,0xdb,0xda,0xda,0xda,0xdc,0xdd,0xde,0xe0,0xde,0xdd,0xdc,0xdb,0xda,0xd8,0xd7,
+0xd4,0xd4,0xd4,0xd4,0xd4,0xd4,0xd4,0xd4,0xd2,0xd3,0xd3,0xd3,0xd1,0xcf,0xcc,0xcb,
+0xd1,0xd0,0xd0,0xd0,0xcf,0xcc,0xc9,0xc6,0xc3,0xc0,0xc0,0xc2,0xc4,0xc3,0xc3,0xc4,
+0xc1,0xc1,0xbf,0xbc,0xbb,0xbb,0xb8,0xb4,0xb3,0xb5,0xb8,0xba,0xbb,0xbb,0xbb,0xbc,
+0xc2,0xbb,0xbb,0xb2,0xa7,0x8a,0x89,0x7a,0x7c,0x72,0x6b,0x70,0x7a,0x83,0x8c,0x94,
+0x97,0x95,0x98,0x9b,0x98,0x93,0x95,0x9c,0x93,0x93,0x92,0x91,0x90,0x8e,0x8d,0x8c,
+0x8e,0x8c,0x8a,0x88,0x86,0x85,0x85,0x85,0x84,0x84,0x83,0x81,0x80,0x7e,0x7d,0x7d,
+0x76,0x75,0x73,0x71,0x70,0x6e,0x6b,0x68,0x66,0x62,0x5c,0x59,0x56,0x51,0x4a,0x44,
+0x3b,0x34,0x2c,0x27,0x26,0x25,0x21,0x1e,0x1c,0x1f,0x23,0x27,0x29,0x2b,0x2b,0x2a,
+0x24,0x2d,0x39,0x43,0x48,0x4b,0x4c,0x4c,0x40,0x3c,0x3b,0x42,0x47,0x43,0x38,0x2f,
+0x39,0x30,0x28,0x26,0x27,0x26,0x27,0x29,0x39,0x37,0x36,0x39,0x3d,0x3b,0x31,0x26,
+0x3b,0x50,0x71,0x89,0x89,0x79,0x6d,0x6c,0x7b,0x8c,0x8e,0x75,0x56,0x40,0x2e,0x20,
+0x25,0x22,0x20,0x25,0x30,0x3f,0x62,0x8b,0xa6,0xa7,0x83,0x61,0x5a,0x4d,0x4f,0x71,
+0x7a,0x88,0x8b,0x82,0x7b,0x74,0x6d,0x6b,0x6f,0x78,0x7b,0x6f,0x62,0x60,0x58,0x45,
+0x46,0x3c,0x2e,0x2e,0x46,0x66,0x79,0x7c,0x78,0x79,0x7b,0x7f,0x89,0x96,0x9e,0xa0,
+0xa4,0x9b,0x9d,0xa5,0x9f,0x8e,0x8b,0x96,0x8d,0x8e,0x8f,0x91,0x98,0xa4,0xad,0xb0,
+0x48,0x46,0x46,0x49,0x4c,0x51,0x5c,0x67,0x65,0x64,0x69,0x6f,0x66,0x57,0x57,0x62,
+0x65,0x5b,0x56,0x5a,0x5a,0x57,0x5b,0x64,0x61,0x5e,0x5b,0x5a,0x5c,0x5d,0x5e,0x5d,
+0x5e,0x68,0x6e,0x6a,0x66,0x6b,0x75,0x7c,0x83,0x85,0x80,0x77,0x72,0x76,0x7f,0x83,
+0x8b,0x8e,0x8c,0x84,0x7c,0x78,0x77,0x76,0x73,0x74,0x73,0x6e,0x6b,0x6a,0x6c,0x6c,
+0x76,0x78,0x76,0x72,0x74,0x78,0x77,0x70,0x75,0x77,0x79,0x7b,0x7c,0x7d,0x80,0x82,
+0x7c,0x76,0x74,0x7b,0x80,0x7d,0x76,0x71,0x6f,0x6f,0x6d,0x6b,0x68,0x67,0x69,0x6b,
+0x69,0x65,0x60,0x5e,0x62,0x66,0x64,0x5e,0x62,0x62,0x68,0x71,0x75,0x74,0x73,0x75,
+0x75,0x76,0x79,0x7a,0x78,0x73,0x71,0x71,0x7a,0x73,0x76,0x84,0x8e,0x8a,0x80,0x79,
+0x78,0x7b,0x7f,0x7f,0x7b,0x78,0x76,0x77,0x78,0x79,0x78,0x74,0x70,0x71,0x79,0x82,
+0x8e,0x8d,0x8a,0x83,0x7e,0x7d,0x81,0x85,0x84,0x87,0x8c,0x91,0x90,0x88,0x7b,0x72,
+0x68,0x65,0x68,0x6c,0x67,0x5c,0x5b,0x61,0x71,0x77,0x7a,0x77,0x72,0x71,0x6f,0x6c,
+0x71,0x76,0x77,0x9e,0xbf,0xb4,0xaa,0xa4,0x9e,0xa2,0xa1,0x9d,0xa2,0xb0,0xb9,0xba,
+0xbc,0xc0,0xc3,0xc2,0xc2,0xc5,0xc6,0xc7,0xc6,0xc6,0xc7,0xc7,0xc5,0xc3,0xc0,0xbf,
+0xc3,0xc3,0xc4,0xc3,0xc2,0xc0,0xbd,0xbc,0xbd,0xbd,0xbc,0xbb,0xba,0xb9,0xb9,0xb8,
+0xb9,0xb6,0xb4,0xb4,0xb5,0xb5,0xb3,0xb1,0xac,0xb0,0xb2,0xae,0xac,0xac,0xaa,0xa7,
+0xab,0xb2,0xb8,0xb9,0xb4,0xaf,0xad,0xad,0xb1,0xad,0xaa,0xa9,0xa9,0xa6,0x9f,0x99,
+0x8e,0x8a,0x8e,0x94,0xad,0xaf,0xb7,0xbb,0xae,0xe0,0xf4,0xfd,0xf7,0xf9,0xf2,0xff,
+0xfb,0xfb,0xfa,0xf8,0xf6,0xf6,0xf8,0xfa,0xfb,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xf9,
+0xf5,0xf4,0xf3,0xf3,0xf5,0xf7,0xf9,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfa,
+0xf8,0xf9,0xfb,0xfc,0xfc,0xfc,0xfa,0xfa,0xfc,0xfb,0xfa,0xfa,0xfa,0xfb,0xfc,0xfd,
+0xff,0xfe,0xfc,0xfb,0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0xfc,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xf9,0xf9,0xf7,0xf8,0xf8,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xf6,0xf6,0xf5,0xf6,0xf7,0xf7,0xf6,0xf5,0xf5,0xf5,0xf3,0xf2,0xf0,0xef,0xef,0xee,
+0xee,0xed,0xec,0xed,0xee,0xed,0xea,0xe8,0xe7,0xe8,0xe8,0xe7,0xe4,0xe0,0xdd,0xdc,
+0xdc,0xdb,0xda,0xda,0xda,0xda,0xdb,0xdc,0xe0,0xe0,0xdf,0xde,0xdc,0xda,0xd8,0xd7,
+0xd7,0xd7,0xd7,0xd7,0xd7,0xd7,0xd6,0xd6,0xd6,0xd4,0xd2,0xd1,0xd0,0xd0,0xce,0xcd,
+0xd0,0xcf,0xce,0xcd,0xcd,0xcb,0xc9,0xc7,0xc4,0xc3,0xc3,0xc2,0xc1,0xc3,0xc5,0xc7,
+0xc5,0xc2,0xbf,0xbe,0xbd,0xbc,0xb8,0xb6,0xb5,0xb5,0xb4,0xb5,0xb7,0xb8,0xb8,0xb8,
+0xbc,0xbc,0xba,0xb3,0xa1,0x8b,0x7d,0x78,0x6e,0x67,0x6a,0x7b,0x8c,0x94,0x97,0x9a,
+0x98,0x97,0x97,0x96,0x96,0x95,0x95,0x94,0x94,0x92,0x90,0x8f,0x8f,0x8e,0x8c,0x8b,
+0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x83,0x81,0x80,0x7f,0x7f,0x7e,0x7c,0x79,0x76,
+0x76,0x74,0x71,0x6e,0x6c,0x69,0x66,0x64,0x63,0x5e,0x58,0x54,0x51,0x4c,0x44,0x3e,
+0x3a,0x32,0x2a,0x26,0x25,0x24,0x21,0x1f,0x22,0x2a,0x2d,0x28,0x24,0x27,0x2d,0x31,
+0x26,0x2c,0x39,0x4a,0x55,0x55,0x4e,0x48,0x3d,0x38,0x36,0x36,0x32,0x2d,0x2f,0x36,
+0x33,0x33,0x31,0x2c,0x28,0x26,0x24,0x23,0x20,0x22,0x28,0x2f,0x35,0x40,0x56,0x6a,
+0x81,0x87,0x86,0x77,0x67,0x69,0x7b,0x8c,0x7f,0x66,0x42,0x2d,0x27,0x24,0x29,0x36,
+0x33,0x2e,0x3f,0x60,0x6d,0x6d,0x86,0xab,0x97,0x63,0x5f,0x6f,0x55,0x51,0x7b,0x9b,
+0xa6,0x84,0x79,0x73,0x6b,0x5a,0x44,0x4c,0x4e,0x4c,0x44,0x34,0x23,0x1f,0x2c,0x3c,
+0x47,0x52,0x5d,0x64,0x61,0x51,0x45,0x49,0x6d,0x88,0x95,0x97,0x9f,0xa2,0x9f,0xa1,
+0xa4,0x9f,0x94,0x8c,0x92,0x9e,0xa4,0xa1,0xa9,0xa6,0xa2,0xa0,0xa1,0x9e,0x94,0x89,
+0x3e,0x40,0x45,0x4a,0x4e,0x51,0x5a,0x63,0x6b,0x6c,0x6b,0x69,0x64,0x61,0x62,0x65,
+0x5d,0x55,0x4d,0x4c,0x50,0x55,0x58,0x59,0x55,0x54,0x55,0x58,0x5b,0x5d,0x5d,0x5c,
+0x5c,0x63,0x68,0x69,0x6b,0x6e,0x6e,0x6c,0x78,0x7c,0x7d,0x78,0x74,0x74,0x73,0x72,
+0x76,0x7a,0x7a,0x73,0x6c,0x6d,0x72,0x77,0x71,0x6f,0x6b,0x69,0x6a,0x6d,0x6e,0x6d,
+0x6c,0x70,0x70,0x6f,0x73,0x79,0x79,0x73,0x71,0x74,0x78,0x7a,0x78,0x76,0x76,0x77,
+0x79,0x7a,0x7f,0x85,0x86,0x7f,0x77,0x74,0x70,0x6f,0x6d,0x69,0x66,0x65,0x67,0x69,
+0x70,0x6d,0x66,0x5d,0x5b,0x60,0x68,0x6c,0x69,0x6b,0x6b,0x6b,0x6d,0x71,0x74,0x74,
+0x73,0x73,0x72,0x71,0x6f,0x6e,0x70,0x72,0x79,0x73,0x75,0x80,0x89,0x87,0x81,0x7e,
+0x7a,0x80,0x86,0x86,0x81,0x79,0x74,0x72,0x6e,0x70,0x72,0x72,0x71,0x70,0x72,0x76,
+0x7d,0x83,0x87,0x82,0x79,0x77,0x80,0x8a,0x84,0x82,0x81,0x80,0x7e,0x7b,0x75,0x71,
+0x6d,0x6b,0x68,0x65,0x63,0x64,0x69,0x6e,0x70,0x76,0x7a,0x79,0x77,0x79,0x7a,0x79,
+0x73,0x77,0x7a,0xa0,0xbd,0xaf,0xa1,0x9d,0x9f,0xa3,0xa3,0xa0,0xa5,0xb2,0xba,0xbb,
+0xbd,0xc1,0xc4,0xc4,0xc5,0xc7,0xc8,0xc8,0xc7,0xc7,0xc7,0xc6,0xc5,0xc3,0xc1,0xc0,
+0xc0,0xc1,0xc3,0xc3,0xc2,0xc0,0xbd,0xbb,0xbd,0xbd,0xbc,0xbb,0xba,0xb9,0xb9,0xb8,
+0xb7,0xb4,0xb2,0xb1,0xb1,0xb0,0xad,0xaa,0xae,0xb3,0xb5,0xb1,0xad,0xac,0xac,0xab,
+0xab,0xae,0xb2,0xb5,0xb6,0xb5,0xb2,0xb1,0xae,0xab,0xa9,0xa8,0xa8,0xa4,0x9c,0x96,
+0x8f,0x8b,0x8d,0x90,0xa8,0xab,0xb5,0xbb,0xaf,0xc5,0xef,0xf7,0xfb,0xfb,0xf2,0xfa,
+0xf8,0xf9,0xf9,0xf9,0xf8,0xf7,0xf8,0xf9,0xfc,0xfc,0xfb,0xfb,0xfa,0xfa,0xf9,0xf9,
+0xf3,0xf3,0xf2,0xf3,0xf4,0xf7,0xf9,0xfb,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xfb,
+0xfa,0xfa,0xfb,0xfc,0xfc,0xfb,0xfa,0xfa,0xfc,0xfb,0xfb,0xfa,0xfa,0xfb,0xfc,0xfd,
+0xfd,0xfd,0xfc,0xfb,0xfa,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfd,0xfd,0xfd,0xfd,
+0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xf9,0xf9,
+0xf7,0xf7,0xf6,0xf6,0xf6,0xf6,0xf4,0xf3,0xf4,0xf3,0xf2,0xf0,0xef,0xee,0xed,0xed,
+0xee,0xed,0xec,0xec,0xec,0xeb,0xe8,0xe6,0xe6,0xe6,0xe6,0xe5,0xe3,0xe1,0xdf,0xde,
+0xde,0xdd,0xdb,0xda,0xda,0xdb,0xdd,0xde,0xde,0xde,0xde,0xdd,0xdc,0xdb,0xd9,0xd8,
+0xdb,0xdb,0xdb,0xda,0xd9,0xd8,0xd7,0xd7,0xd6,0xd4,0xd2,0xd1,0xd1,0xd0,0xcf,0xce,
+0xcf,0xce,0xcd,0xcd,0xcc,0xcb,0xc8,0xc6,0xc2,0xc2,0xc1,0xc0,0xc0,0xc2,0xc4,0xc5,
+0xc5,0xc3,0xc1,0xc1,0xc1,0xbe,0xba,0xb7,0xb6,0xb5,0xb4,0xb5,0xb7,0xb9,0xb9,0xb9,
+0xbd,0xbc,0xba,0xb1,0x9f,0x8b,0x7d,0x7a,0x73,0x72,0x7b,0x8b,0x96,0x97,0x97,0x99,
+0x98,0x98,0x98,0x97,0x96,0x96,0x95,0x95,0x94,0x93,0x91,0x90,0x8f,0x8e,0x8d,0x8b,
+0x88,0x87,0x86,0x85,0x84,0x82,0x82,0x81,0x7f,0x7e,0x7d,0x7d,0x7c,0x7a,0x77,0x75,
+0x73,0x71,0x6e,0x6b,0x68,0x66,0x63,0x60,0x5d,0x58,0x52,0x4e,0x4c,0x48,0x41,0x3c,
+0x36,0x32,0x2f,0x2b,0x25,0x1d,0x1b,0x1c,0x21,0x33,0x44,0x4f,0x5b,0x66,0x63,0x58,
+0x4d,0x40,0x36,0x3a,0x47,0x51,0x51,0x4c,0x3f,0x3c,0x3f,0x48,0x4b,0x47,0x46,0x48,
+0x42,0x3a,0x33,0x30,0x31,0x2e,0x28,0x23,0x2a,0x2a,0x2f,0x3a,0x46,0x51,0x59,0x5f,
+0x63,0x60,0x60,0x67,0x72,0x76,0x6a,0x5a,0x4d,0x5c,0x5b,0x55,0x67,0x7f,0x82,0x78,
+0x69,0x76,0x70,0x5e,0x66,0x7f,0x7f,0x67,0x42,0x64,0x7c,0x6b,0x50,0x55,0x6a,0x71,
+0x80,0x67,0x56,0x44,0x42,0x46,0x3b,0x3a,0x3a,0x43,0x4e,0x4f,0x49,0x49,0x55,0x63,
+0x69,0x63,0x53,0x49,0x50,0x5f,0x6e,0x7d,0x84,0x8e,0x97,0xa2,0xa7,0x99,0x93,0x9e,
+0x98,0x9e,0xa7,0xad,0xaa,0x9e,0x8e,0x85,0x7d,0x86,0x83,0x72,0x6a,0x74,0x7c,0x7c,
+0x42,0x46,0x4e,0x56,0x5b,0x60,0x67,0x6e,0x65,0x68,0x64,0x5c,0x5d,0x67,0x69,0x63,
+0x69,0x66,0x60,0x5c,0x5e,0x60,0x58,0x4d,0x5b,0x5c,0x5d,0x60,0x62,0x63,0x62,0x60,
+0x60,0x61,0x63,0x6a,0x72,0x77,0x73,0x6c,0x69,0x6d,0x72,0x74,0x76,0x76,0x73,0x6f,
+0x74,0x77,0x75,0x6b,0x62,0x63,0x6b,0x72,0x6d,0x69,0x65,0x66,0x6a,0x6c,0x6a,0x66,
+0x62,0x65,0x68,0x69,0x6e,0x74,0x73,0x6e,0x6a,0x70,0x77,0x79,0x76,0x72,0x70,0x71,
+0x6f,0x74,0x7c,0x7f,0x79,0x71,0x6d,0x6e,0x72,0x70,0x6c,0x68,0x65,0x65,0x67,0x69,
+0x69,0x6e,0x6d,0x63,0x5a,0x5b,0x65,0x6d,0x75,0x76,0x72,0x6a,0x6a,0x70,0x72,0x6e,
+0x77,0x75,0x73,0x70,0x6e,0x6d,0x6d,0x6d,0x75,0x71,0x72,0x79,0x7e,0x7c,0x7b,0x7c,
+0x81,0x87,0x8d,0x8c,0x85,0x7c,0x75,0x73,0x77,0x76,0x77,0x7a,0x79,0x72,0x6c,0x69,
+0x80,0x89,0x90,0x8d,0x83,0x7c,0x7d,0x81,0x83,0x7f,0x79,0x74,0x71,0x71,0x71,0x71,
+0x78,0x78,0x72,0x6a,0x68,0x6d,0x70,0x70,0x67,0x69,0x6b,0x6b,0x6d,0x71,0x73,0x72,
+0x7b,0x7d,0x80,0xa3,0xbd,0xae,0xa0,0x9f,0xa0,0xa2,0xa2,0xa3,0xaa,0xb5,0xbc,0xbc,
+0xc0,0xc4,0xc7,0xc8,0xc9,0xca,0xca,0xc9,0xc8,0xc7,0xc7,0xc5,0xc4,0xc3,0xc2,0xc2,
+0xc0,0xc1,0xc3,0xc4,0xc3,0xc1,0xbe,0xbc,0xbe,0xbe,0xbd,0xbc,0xbb,0xbb,0xba,0xba,
+0xb0,0xae,0xab,0xa9,0xa9,0xa7,0xa4,0xa2,0xae,0xb3,0xb5,0xb3,0xb0,0xb0,0xb1,0xb2,
+0xae,0xad,0xae,0xb2,0xb8,0xbb,0xb9,0xb6,0xae,0xac,0xaa,0xaa,0xa9,0xa5,0x9d,0x97,
+0x90,0x8b,0x8c,0x8d,0xa4,0xa9,0xb3,0xb9,0xb2,0xa8,0xe0,0xef,0xfa,0xf9,0xf2,0xf6,
+0xf5,0xf7,0xf9,0xfa,0xfa,0xf9,0xf8,0xf8,0xfc,0xfc,0xfc,0xfb,0xfb,0xfa,0xf9,0xf8,
+0xf4,0xf4,0xf3,0xf4,0xf5,0xf8,0xfa,0xfc,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xfc,0xfc,
+0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xfb,0xfb,0xfa,0xfb,0xfb,0xfc,0xfd,
+0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfc,0xfc,0xfc,
+0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfa,0xf9,0xf9,
+0xf9,0xf8,0xf7,0xf6,0xf6,0xf5,0xf3,0xf2,0xf3,0xf2,0xf1,0xf0,0xee,0xee,0xed,0xed,
+0xec,0xeb,0xeb,0xeb,0xea,0xe9,0xe7,0xe5,0xe5,0xe5,0xe4,0xe3,0xe3,0xe2,0xe1,0xe0,
+0xe1,0xe0,0xde,0xdd,0xdd,0xde,0xe0,0xe1,0xdd,0xdd,0xde,0xdd,0xdd,0xdc,0xdc,0xdb,
+0xdf,0xde,0xde,0xdd,0xdc,0xda,0xd9,0xd8,0xd6,0xd4,0xd3,0xd2,0xd2,0xd1,0xd0,0xcf,
+0xcf,0xce,0xcd,0xcc,0xcb,0xca,0xc7,0xc5,0xc1,0xc1,0xc0,0xbf,0xc0,0xc1,0xc2,0xc3,
+0xc3,0xc2,0xc2,0xc2,0xc2,0xc0,0xbb,0xb7,0xb5,0xb4,0xb4,0xb5,0xb7,0xb9,0xb9,0xb9,
+0xbd,0xbc,0xb8,0xae,0x9c,0x8a,0x80,0x7e,0x7f,0x83,0x8d,0x99,0x9c,0x99,0x98,0x9a,
+0x98,0x98,0x97,0x96,0x95,0x95,0x94,0x94,0x93,0x92,0x90,0x8f,0x8e,0x8d,0x8c,0x8a,
+0x87,0x87,0x85,0x84,0x82,0x80,0x7f,0x7e,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x75,0x73,
+0x6f,0x6d,0x6a,0x67,0x64,0x62,0x5e,0x5c,0x57,0x52,0x4c,0x48,0x46,0x43,0x3e,0x3a,
+0x32,0x31,0x32,0x30,0x26,0x20,0x28,0x36,0x57,0x70,0x82,0x81,0x7d,0x7c,0x71,0x62,
+0x4b,0x44,0x40,0x46,0x53,0x5b,0x5a,0x54,0x5f,0x60,0x62,0x60,0x55,0x48,0x43,0x45,
+0x44,0x3d,0x39,0x39,0x36,0x2d,0x23,0x1f,0x27,0x2f,0x34,0x30,0x2c,0x30,0x3a,0x43,
+0x49,0x4a,0x55,0x62,0x5b,0x42,0x31,0x2f,0x3f,0x5a,0x76,0x84,0x7e,0x69,0x5e,0x63,
+0x5b,0x4a,0x44,0x51,0x5b,0x55,0x4b,0x48,0x69,0x87,0x73,0x43,0x3f,0x53,0x53,0x49,
+0x3d,0x43,0x4d,0x46,0x3f,0x3c,0x30,0x2c,0x43,0x3b,0x3e,0x52,0x66,0x62,0x48,0x30,
+0x23,0x30,0x3d,0x50,0x70,0x84,0x83,0x7c,0x89,0x91,0x8d,0x86,0x8a,0x93,0x9b,0xa5,
+0xa5,0x99,0x8e,0x86,0x79,0x69,0x62,0x63,0x6b,0x5c,0x56,0x64,0x75,0x79,0x75,0x72,
+0x44,0x45,0x4a,0x54,0x5e,0x67,0x6c,0x6f,0x71,0x74,0x6f,0x65,0x63,0x68,0x65,0x5c,
+0x63,0x5e,0x58,0x59,0x61,0x6b,0x6f,0x6e,0x69,0x67,0x65,0x62,0x60,0x5f,0x5e,0x5e,
+0x73,0x6e,0x69,0x68,0x6b,0x6c,0x69,0x65,0x64,0x65,0x67,0x6c,0x73,0x78,0x7a,0x79,
+0x7e,0x7f,0x7b,0x70,0x68,0x66,0x6a,0x6d,0x6c,0x69,0x68,0x6a,0x6a,0x66,0x60,0x5c,
+0x5e,0x61,0x63,0x64,0x67,0x6a,0x67,0x62,0x65,0x6c,0x75,0x77,0x74,0x71,0x71,0x73,
+0x77,0x7b,0x7d,0x7a,0x72,0x6d,0x6e,0x72,0x71,0x6f,0x6a,0x67,0x65,0x66,0x68,0x6a,
+0x6d,0x75,0x79,0x71,0x67,0x68,0x72,0x7c,0x80,0x7b,0x74,0x6f,0x70,0x72,0x6f,0x69,
+0x74,0x74,0x73,0x74,0x76,0x75,0x6d,0x65,0x6d,0x6c,0x6f,0x72,0x73,0x6f,0x6e,0x70,
+0x82,0x86,0x8a,0x88,0x81,0x7b,0x78,0x78,0x77,0x73,0x73,0x78,0x7a,0x74,0x6e,0x6b,
+0x7b,0x82,0x8c,0x94,0x96,0x91,0x8a,0x85,0x8c,0x8a,0x86,0x81,0x7e,0x7d,0x7d,0x7e,
+0x7d,0x78,0x6e,0x66,0x65,0x69,0x6e,0x71,0x79,0x73,0x6d,0x6d,0x72,0x75,0x74,0x70,
+0x78,0x79,0x80,0x9f,0xb9,0xaf,0xa1,0xa4,0xa0,0x9e,0x9c,0xa1,0xad,0xb9,0xbe,0xbd,
+0xc3,0xc7,0xca,0xcb,0xcb,0xcc,0xcb,0xc8,0xc7,0xc6,0xc5,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc2,0xc3,0xc3,0xc3,0xc3,0xc2,0xc1,0xc0,0xbf,0xbf,0xbf,0xbe,0xbd,0xbd,0xbc,0xbc,
+0xb9,0xb6,0xb3,0xb2,0xb2,0xb1,0xae,0xac,0xa8,0xa9,0xaa,0xab,0xae,0xb1,0xb3,0xb3,
+0xaf,0xad,0xac,0xb0,0xb5,0xb9,0xb9,0xb7,0xb3,0xb1,0xae,0xac,0xab,0xa7,0xa2,0x9d,
+0x93,0x8c,0x8a,0x8a,0xa3,0xa9,0xaf,0xb0,0xaf,0x97,0xc6,0xeb,0xf3,0xf3,0xf7,0xf4,
+0xf6,0xf8,0xfa,0xfa,0xfa,0xf9,0xf9,0xf9,0xfc,0xfc,0xfc,0xfc,0xfb,0xfa,0xf8,0xf8,
+0xf7,0xf7,0xf7,0xf7,0xf8,0xf9,0xfb,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,
+0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xfd,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xfd,
+0xfb,0xfb,0xfb,0xfb,0xfc,0xfd,0xfd,0xfd,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,
+0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfb,0xfa,0xf9,0xf9,
+0xf9,0xf8,0xf7,0xf7,0xf7,0xf6,0xf4,0xf3,0xf3,0xf2,0xf1,0xef,0xee,0xee,0xed,0xed,
+0xea,0xea,0xea,0xea,0xea,0xe8,0xe7,0xe6,0xe7,0xe6,0xe4,0xe3,0xe3,0xe3,0xe2,0xe2,
+0xe2,0xe2,0xe2,0xe1,0xe1,0xe2,0xe2,0xe2,0xdf,0xdf,0xdf,0xdf,0xdf,0xde,0xde,0xdd,
+0xdf,0xdf,0xdf,0xde,0xdd,0xdc,0xdb,0xda,0xd7,0xd5,0xd4,0xd3,0xd3,0xd2,0xd1,0xd0,
+0xcf,0xce,0xcd,0xcc,0xcb,0xc9,0xc6,0xc4,0xc1,0xc0,0xbf,0xbf,0xc0,0xc2,0xc2,0xc3,
+0xc2,0xc0,0xbf,0xc0,0xc0,0xbf,0xbb,0xb8,0xb3,0xb3,0xb2,0xb4,0xb6,0xb8,0xb8,0xb8,
+0xba,0xba,0xb5,0xa9,0x99,0x8d,0x88,0x88,0x90,0x92,0x96,0x9b,0x9b,0x98,0x98,0x9c,
+0x97,0x96,0x96,0x95,0x94,0x93,0x92,0x92,0x91,0x90,0x8e,0x8d,0x8d,0x8c,0x8a,0x88,
+0x87,0x86,0x84,0x82,0x80,0x7e,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x77,0x75,0x73,0x71,
+0x6d,0x6a,0x67,0x64,0x61,0x5f,0x5b,0x59,0x55,0x50,0x4a,0x46,0x44,0x41,0x3d,0x3a,
+0x34,0x32,0x30,0x2d,0x25,0x26,0x3d,0x57,0x77,0x7a,0x73,0x61,0x53,0x4d,0x47,0x40,
+0x52,0x53,0x50,0x4b,0x49,0x4e,0x56,0x5c,0x55,0x54,0x53,0x50,0x47,0x3f,0x3d,0x40,
+0x3f,0x3c,0x3b,0x3a,0x33,0x2c,0x2f,0x38,0x42,0x4e,0x53,0x46,0x36,0x32,0x36,0x3a,
+0x45,0x59,0x5d,0x47,0x34,0x3a,0x4b,0x53,0x71,0x7d,0x7c,0x70,0x68,0x5a,0x44,0x35,
+0x2f,0x31,0x3c,0x4a,0x4f,0x4d,0x52,0x5c,0x87,0x6c,0x3d,0x29,0x3e,0x4c,0x48,0x4a,
+0x3a,0x36,0x36,0x34,0x34,0x3b,0x4b,0x5d,0x4f,0x46,0x3d,0x3b,0x3a,0x35,0x2f,0x2b,
+0x42,0x57,0x65,0x69,0x6e,0x75,0x80,0x8c,0x80,0x93,0x9b,0x94,0x91,0x92,0x8e,0x86,
+0x72,0x6a,0x6a,0x75,0x7c,0x73,0x5f,0x50,0x3f,0x42,0x52,0x69,0x72,0x70,0x75,0x81,
+0x51,0x50,0x54,0x5f,0x6e,0x78,0x79,0x75,0x78,0x79,0x77,0x71,0x69,0x60,0x57,0x50,
+0x56,0x5c,0x6b,0x7c,0x7f,0x73,0x66,0x61,0x5f,0x5c,0x59,0x57,0x5a,0x60,0x67,0x6d,
+0x6e,0x6b,0x68,0x64,0x62,0x62,0x64,0x67,0x66,0x64,0x64,0x67,0x6d,0x73,0x79,0x7c,
+0x7b,0x7b,0x79,0x74,0x72,0x72,0x71,0x6f,0x72,0x6f,0x6e,0x6c,0x67,0x5f,0x5c,0x5d,
+0x62,0x63,0x63,0x64,0x65,0x65,0x60,0x5b,0x62,0x69,0x70,0x71,0x6e,0x6d,0x70,0x74,
+0x7e,0x7e,0x7b,0x75,0x70,0x6e,0x6f,0x71,0x6b,0x68,0x65,0x62,0x63,0x65,0x68,0x6a,
+0x73,0x77,0x77,0x71,0x6e,0x76,0x85,0x91,0x86,0x77,0x6d,0x70,0x74,0x71,0x6d,0x6d,
+0x6d,0x6d,0x6e,0x73,0x7b,0x7b,0x6f,0x61,0x62,0x65,0x6a,0x6e,0x6d,0x69,0x66,0x66,
+0x77,0x7b,0x7f,0x80,0x7d,0x7b,0x7a,0x7a,0x75,0x70,0x6f,0x75,0x7a,0x79,0x7b,0x7f,
+0x78,0x7d,0x85,0x8c,0x8e,0x8b,0x84,0x7e,0x89,0x89,0x87,0x84,0x80,0x7f,0x7f,0x81,
+0x76,0x6b,0x62,0x62,0x65,0x69,0x74,0x80,0x82,0x74,0x67,0x66,0x6c,0x6f,0x6a,0x62,
+0x68,0x6c,0x79,0x96,0xb3,0xb0,0x9e,0xa0,0x9e,0x97,0x95,0x9f,0xb0,0xbd,0xc0,0xbf,
+0xc5,0xc8,0xc9,0xc9,0xca,0xca,0xc8,0xc4,0xc6,0xc5,0xc4,0xc3,0xc3,0xc4,0xc5,0xc6,
+0xc4,0xc3,0xc2,0xc1,0xc1,0xc2,0xc2,0xc3,0xbe,0xbe,0xbe,0xbd,0xbd,0xbc,0xbc,0xbc,
+0xbf,0xbc,0xb9,0xb8,0xb7,0xb6,0xb3,0xb0,0xa4,0xa0,0x9e,0xa2,0xa8,0xad,0xae,0xad,
+0xb0,0xaf,0xaf,0xaf,0xb1,0xb3,0xb4,0xb5,0xb6,0xb3,0xaf,0xac,0xa9,0xa7,0xa4,0xa1,
+0x99,0x8f,0x8a,0x89,0xa2,0xa6,0xa5,0x9d,0x9d,0x8e,0xa6,0xe8,0xed,0xed,0xfa,0xf2,
+0xf8,0xf8,0xf9,0xf9,0xf8,0xf8,0xf9,0xfa,0xfb,0xfb,0xfc,0xfc,0xfb,0xfa,0xf8,0xf8,
+0xfa,0xf9,0xf9,0xf8,0xf8,0xf8,0xf9,0xf9,0xfc,0xfc,0xfb,0xfb,0xfa,0xf9,0xf9,0xf9,
+0xf9,0xf9,0xfa,0xfa,0xfb,0xfc,0xfd,0xfe,0xfb,0xfb,0xfa,0xfa,0xfb,0xfb,0xfb,0xfc,
+0xfb,0xfb,0xfb,0xfc,0xfc,0xfc,0xfc,0xfc,0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfb,
+0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfd,0xfd,0xfd,0xfc,0xfb,0xfa,0xf9,0xf9,
+0xf9,0xf8,0xf7,0xf7,0xf8,0xf7,0xf6,0xf4,0xf1,0xf0,0xef,0xee,0xed,0xec,0xec,0xec,
+0xe8,0xe9,0xea,0xea,0xea,0xe9,0xe8,0xe8,0xe9,0xe7,0xe4,0xe3,0xe3,0xe4,0xe3,0xe2,
+0xe2,0xe3,0xe5,0xe6,0xe6,0xe5,0xe3,0xe2,0xe1,0xe0,0xe0,0xdf,0xde,0xdd,0xdc,0xdc,
+0xdc,0xdc,0xdd,0xdd,0xdd,0xdc,0xdc,0xdb,0xd8,0xd7,0xd5,0xd4,0xd4,0xd3,0xd2,0xd1,
+0xcf,0xce,0xcd,0xcd,0xcc,0xca,0xc7,0xc5,0xc3,0xc1,0xc0,0xc1,0xc2,0xc4,0xc4,0xc3,
+0xc2,0xc0,0xbd,0xbc,0xbd,0xbe,0xbc,0xba,0xb5,0xb4,0xb3,0xb5,0xb7,0xb8,0xb9,0xb9,
+0xb9,0xb9,0xb3,0xa6,0x99,0x91,0x92,0x95,0x9c,0x9b,0x9a,0x9b,0x9a,0x99,0x98,0x99,
+0x97,0x96,0x95,0x94,0x93,0x92,0x91,0x91,0x91,0x8f,0x8d,0x8c,0x8c,0x8b,0x89,0x88,
+0x86,0x85,0x83,0x81,0x7f,0x7d,0x7b,0x7a,0x79,0x77,0x76,0x75,0x74,0x73,0x71,0x6f,
+0x6b,0x69,0x66,0x62,0x60,0x5d,0x59,0x57,0x54,0x50,0x4a,0x46,0x43,0x40,0x3c,0x39,
+0x39,0x34,0x2f,0x29,0x23,0x2a,0x45,0x61,0x6a,0x4b,0x29,0x1d,0x27,0x38,0x47,0x4f,
+0x50,0x55,0x54,0x48,0x3e,0x41,0x4d,0x57,0x5a,0x53,0x4b,0x46,0x42,0x3b,0x35,0x32,
+0x3a,0x35,0x30,0x2e,0x2f,0x35,0x46,0x57,0x4f,0x4f,0x4d,0x50,0x56,0x55,0x43,0x2e,
+0x29,0x25,0x28,0x36,0x43,0x4e,0x5c,0x69,0x70,0x6c,0x60,0x53,0x49,0x3a,0x31,0x33,
+0x4f,0x65,0x6c,0x59,0x4c,0x56,0x67,0x6c,0x6c,0x41,0x28,0x2e,0x33,0x33,0x41,0x55,
+0x65,0x5f,0x5c,0x64,0x6b,0x67,0x5e,0x54,0x43,0x42,0x3d,0x2f,0x22,0x23,0x36,0x4b,
+0x5d,0x55,0x4f,0x5c,0x72,0x75,0x6a,0x63,0x7d,0x79,0x7a,0x7c,0x75,0x6f,0x75,0x7f,
+0x82,0x92,0x93,0x74,0x4c,0x3b,0x47,0x59,0x6e,0x90,0xa2,0x8d,0x77,0x7d,0x93,0xa1,
+0x4b,0x4a,0x4d,0x57,0x67,0x71,0x6f,0x67,0x63,0x64,0x69,0x6d,0x6a,0x60,0x5c,0x5d,
+0x62,0x5f,0x66,0x73,0x79,0x7b,0x85,0x93,0x91,0x89,0x7d,0x70,0x68,0x66,0x6a,0x6d,
+0x68,0x6a,0x6e,0x6f,0x6c,0x67,0x68,0x6b,0x61,0x61,0x63,0x66,0x6a,0x6e,0x74,0x7b,
+0x79,0x79,0x77,0x75,0x77,0x79,0x77,0x72,0x78,0x75,0x72,0x6d,0x63,0x5c,0x5f,0x68,
+0x65,0x65,0x65,0x67,0x67,0x66,0x61,0x5d,0x63,0x67,0x6a,0x6a,0x67,0x67,0x6b,0x6f,
+0x77,0x76,0x73,0x6e,0x6c,0x6b,0x69,0x65,0x65,0x62,0x60,0x60,0x62,0x66,0x69,0x6b,
+0x70,0x75,0x78,0x79,0x7d,0x85,0x8f,0x94,0x84,0x71,0x66,0x6b,0x6f,0x6c,0x6c,0x73,
+0x73,0x73,0x73,0x74,0x79,0x79,0x6e,0x5f,0x5e,0x61,0x66,0x6c,0x6e,0x6c,0x68,0x65,
+0x6c,0x70,0x77,0x7d,0x80,0x80,0x7e,0x7c,0x82,0x7b,0x75,0x73,0x6d,0x69,0x6f,0x79,
+0x7b,0x7e,0x80,0x7c,0x75,0x71,0x71,0x74,0x7c,0x7d,0x7d,0x79,0x75,0x73,0x75,0x78,
+0x71,0x6d,0x71,0x7c,0x81,0x7f,0x83,0x8c,0x8b,0x7b,0x6c,0x6b,0x71,0x73,0x6d,0x66,
+0x63,0x6a,0x7b,0x92,0xb0,0xb4,0x9e,0x9b,0x99,0x92,0x93,0xa2,0xb4,0xbe,0xc1,0xc1,
+0xc4,0xc6,0xc6,0xc6,0xc7,0xc7,0xc5,0xc1,0xc6,0xc5,0xc4,0xc3,0xc3,0xc3,0xc4,0xc4,
+0xc3,0xc2,0xc0,0xbf,0xbf,0xc0,0xc1,0xc2,0xbc,0xbc,0xbc,0xbc,0xbb,0xbb,0xba,0xba,
+0xbc,0xba,0xb6,0xb4,0xb3,0xb1,0xae,0xab,0xaa,0xa3,0x9f,0xa2,0xa7,0xa9,0xa9,0xa8,
+0xb1,0xb3,0xb4,0xb4,0xb3,0xb3,0xb5,0xb7,0xb5,0xb2,0xae,0xaa,0xa8,0xa5,0xa3,0xa1,
+0x9e,0x94,0x8d,0x88,0x9f,0x9f,0x98,0x8c,0x86,0x84,0x8c,0xd7,0xe8,0xea,0xf6,0xee,
+0xf6,0xf6,0xf7,0xf7,0xf7,0xf7,0xf9,0xfa,0xfa,0xfb,0xfc,0xfc,0xfc,0xfb,0xf9,0xf8,
+0xfa,0xfa,0xf9,0xf8,0xf7,0xf7,0xf6,0xf6,0xfb,0xfb,0xfa,0xfa,0xf9,0xf8,0xf8,0xf8,
+0xf8,0xf9,0xf9,0xfa,0xfb,0xfc,0xfc,0xfc,0xf9,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,
+0xfb,0xfb,0xfb,0xfc,0xfb,0xfb,0xfb,0xfa,0xf9,0xf9,0xfa,0xfa,0xfb,0xfc,0xfc,0xfc,
+0xfd,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfb,0xfc,0xfc,0xfc,0xfb,0xfa,0xf9,0xf9,0xf8,
+0xf9,0xf8,0xf7,0xf7,0xf8,0xf7,0xf6,0xf4,0xee,0xee,0xed,0xec,0xeb,0xea,0xea,0xea,
+0xe8,0xe9,0xeb,0xeb,0xea,0xe9,0xe8,0xe8,0xe8,0xe6,0xe3,0xe3,0xe4,0xe5,0xe4,0xe2,
+0xe2,0xe3,0xe5,0xe6,0xe6,0xe5,0xe3,0xe2,0xe0,0xdf,0xde,0xdc,0xdb,0xda,0xd9,0xd9,
+0xda,0xda,0xdb,0xdc,0xdc,0xdd,0xdd,0xdc,0xda,0xd9,0xd6,0xd5,0xd5,0xd4,0xd2,0xd1,
+0xd0,0xcf,0xce,0xce,0xcd,0xcc,0xc9,0xc7,0xc5,0xc3,0xc1,0xc2,0xc4,0xc6,0xc5,0xc4,
+0xc3,0xc0,0xbd,0xbc,0xbd,0xbf,0xbe,0xbd,0xb7,0xb6,0xb6,0xb6,0xb8,0xb9,0xba,0xb9,
+0xba,0xba,0xb3,0xa4,0x96,0x93,0x99,0x9e,0x9e,0x9d,0x9c,0x9c,0x9d,0x9b,0x97,0x94,
+0x97,0x97,0x96,0x95,0x93,0x92,0x91,0x91,0x90,0x8f,0x8d,0x8c,0x8c,0x8b,0x89,0x88,
+0x85,0x84,0x82,0x80,0x7e,0x7c,0x7a,0x79,0x78,0x76,0x74,0x73,0x72,0x70,0x6e,0x6d,
+0x6a,0x67,0x64,0x60,0x5e,0x5a,0x57,0x54,0x51,0x4e,0x4a,0x46,0x42,0x3e,0x3b,0x38,
+0x37,0x32,0x2d,0x2a,0x2d,0x38,0x4c,0x5c,0x3d,0x39,0x41,0x57,0x64,0x5f,0x55,0x51,
+0x52,0x55,0x51,0x45,0x3c,0x3e,0x45,0x4a,0x48,0x50,0x57,0x54,0x4c,0x47,0x4a,0x4f,
+0x45,0x42,0x40,0x45,0x4e,0x57,0x5c,0x5d,0x57,0x4b,0x44,0x52,0x6c,0x78,0x6a,0x55,
+0x45,0x3a,0x42,0x5c,0x66,0x5a,0x57,0x62,0x66,0x58,0x4e,0x4a,0x33,0x17,0x25,0x50,
+0x7c,0x83,0x7e,0x6a,0x59,0x5a,0x65,0x6e,0x48,0x2a,0x2a,0x3f,0x4e,0x68,0x84,0x89,
+0x6e,0x72,0x69,0x67,0x69,0x68,0x60,0x4a,0x3d,0x32,0x27,0x24,0x27,0x2d,0x34,0x39,
+0x31,0x35,0x3a,0x44,0x50,0x55,0x63,0x76,0x6f,0x6d,0x72,0x76,0x75,0x7b,0x83,0x83,
+0x7f,0x79,0x6e,0x68,0x70,0x7f,0x84,0x80,0x89,0x76,0x5f,0x5f,0x7c,0x95,0x8a,0x6e,
+0x55,0x54,0x53,0x58,0x64,0x70,0x72,0x6d,0x5e,0x5e,0x61,0x67,0x6a,0x69,0x6b,0x6f,
+0x66,0x66,0x6a,0x6e,0x6e,0x6e,0x74,0x7c,0x72,0x6e,0x68,0x62,0x60,0x64,0x6c,0x72,
+0x75,0x76,0x7a,0x7e,0x7a,0x6f,0x66,0x63,0x62,0x64,0x68,0x6a,0x68,0x68,0x70,0x79,
+0x7f,0x7d,0x79,0x75,0x75,0x77,0x77,0x75,0x78,0x75,0x72,0x6e,0x65,0x5d,0x60,0x69,
+0x65,0x63,0x63,0x66,0x67,0x65,0x62,0x5f,0x66,0x67,0x68,0x68,0x66,0x67,0x6a,0x6d,
+0x74,0x74,0x72,0x6e,0x6e,0x6f,0x6b,0x66,0x66,0x65,0x63,0x64,0x68,0x6c,0x6f,0x70,
+0x77,0x7e,0x85,0x8a,0x8e,0x91,0x90,0x8d,0x7e,0x73,0x6c,0x6b,0x6a,0x66,0x69,0x70,
+0x77,0x7c,0x7d,0x7b,0x7a,0x78,0x6e,0x63,0x63,0x63,0x65,0x69,0x6e,0x70,0x6d,0x69,
+0x67,0x69,0x6f,0x77,0x7f,0x83,0x82,0x80,0x84,0x7d,0x74,0x6a,0x59,0x4e,0x55,0x64,
+0x71,0x72,0x72,0x70,0x6c,0x6d,0x73,0x78,0x77,0x7a,0x7d,0x7b,0x75,0x71,0x72,0x73,
+0x6b,0x72,0x80,0x8d,0x92,0x8e,0x8c,0x8d,0x82,0x75,0x68,0x66,0x6a,0x6a,0x67,0x65,
+0x6e,0x73,0x7e,0x87,0xa4,0xb1,0x9b,0x96,0x92,0x91,0x99,0xab,0xb9,0xbd,0xc0,0xc3,
+0xc3,0xc5,0xc5,0xc4,0xc6,0xc8,0xc6,0xc3,0xc7,0xc6,0xc5,0xc4,0xc2,0xc1,0xc1,0xc0,
+0xc1,0xc1,0xc1,0xc1,0xc0,0xc0,0xbf,0xbf,0xbc,0xbc,0xbc,0xbc,0xbb,0xbb,0xbb,0xbb,
+0xbd,0xbb,0xb8,0xb8,0xb8,0xb8,0xb5,0xb3,0xaf,0xa9,0xa4,0xa4,0xa4,0xa3,0xa4,0xa6,
+0xae,0xb0,0xb3,0xb4,0xb4,0xb5,0xb6,0xb8,0xb4,0xb2,0xb0,0xad,0xaa,0xa6,0xa3,0xa0,
+0x9f,0x98,0x91,0x89,0x9c,0x9a,0x94,0x88,0x7c,0x7a,0x7e,0xb6,0xdf,0xe5,0xeb,0xe9,
+0xef,0xf1,0xf4,0xf6,0xf6,0xf7,0xf8,0xf9,0xf9,0xfa,0xfb,0xfc,0xfc,0xfb,0xfa,0xf9,
+0xf9,0xf9,0xf8,0xf8,0xf7,0xf7,0xf6,0xf6,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf9,0xf9,
+0xf8,0xf9,0xfa,0xfa,0xfb,0xfa,0xfa,0xf9,0xf8,0xf8,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xf9,0xfa,0xfa,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xfc,0xfc,
+0xfc,0xfc,0xfc,0xfc,0xfb,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xfa,0xf9,0xf9,0xf8,0xf7,
+0xf9,0xf8,0xf7,0xf6,0xf6,0xf6,0xf4,0xf2,0xef,0xee,0xed,0xec,0xec,0xeb,0xeb,0xeb,
+0xe9,0xeb,0xec,0xeb,0xe9,0xe7,0xe6,0xe7,0xe5,0xe3,0xe1,0xe2,0xe4,0xe5,0xe4,0xe2,
+0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xe2,0xdf,0xde,0xdc,0xdb,0xd9,0xd9,0xd8,0xd8,
+0xda,0xdb,0xdb,0xdc,0xdd,0xdd,0xdd,0xdd,0xdc,0xda,0xd8,0xd6,0xd5,0xd4,0xd2,0xd1,
+0xd0,0xcf,0xcf,0xcf,0xcf,0xce,0xcc,0xca,0xc6,0xc3,0xc2,0xc3,0xc6,0xc7,0xc6,0xc4,
+0xc2,0xbf,0xbd,0xbe,0xbf,0xc0,0xbf,0xbd,0xb7,0xb6,0xb6,0xb6,0xb7,0xb8,0xb8,0xb8,
+0xbb,0xba,0xb0,0x9e,0x90,0x8f,0x97,0x9e,0x9c,0x9c,0x9c,0x9b,0x9b,0x9a,0x97,0x94,
+0x96,0x95,0x94,0x93,0x91,0x90,0x8f,0x8f,0x8e,0x8d,0x8b,0x8a,0x8a,0x89,0x87,0x86,
+0x84,0x83,0x81,0x80,0x7e,0x7c,0x7a,0x79,0x76,0x75,0x72,0x70,0x6f,0x6d,0x6b,0x69,
+0x67,0x65,0x61,0x5e,0x5b,0x57,0x54,0x51,0x4e,0x4c,0x49,0x46,0x43,0x3f,0x3b,0x39,
+0x32,0x2f,0x2a,0x2c,0x39,0x49,0x52,0x53,0x53,0x5b,0x67,0x6d,0x66,0x59,0x56,0x5c,
+0x6b,0x67,0x57,0x3f,0x30,0x30,0x36,0x3a,0x3e,0x4a,0x53,0x4e,0x42,0x3a,0x3d,0x42,
+0x52,0x59,0x61,0x68,0x71,0x73,0x69,0x5c,0x50,0x44,0x3e,0x49,0x60,0x73,0x7b,0x7c,
+0x71,0x79,0x6d,0x50,0x44,0x4f,0x53,0x4a,0x4d,0x41,0x25,0x0c,0x0a,0x18,0x2b,0x3c,
+0x66,0x7c,0x83,0x75,0x73,0x7f,0x78,0x62,0x2f,0x1f,0x23,0x39,0x51,0x6c,0x75,0x66,
+0x88,0x8d,0x7d,0x6d,0x57,0x41,0x38,0x27,0x34,0x2a,0x1e,0x19,0x1c,0x2a,0x3d,0x4c,
+0x5e,0x5e,0x5b,0x5e,0x67,0x66,0x61,0x62,0x67,0x64,0x62,0x5e,0x65,0x7f,0x8b,0x7d,
+0x92,0x84,0x78,0x7a,0x87,0x8d,0x83,0x76,0x56,0x56,0x59,0x5a,0x50,0x43,0x42,0x4a,
+0x5b,0x58,0x52,0x50,0x58,0x67,0x70,0x72,0x6a,0x66,0x60,0x5c,0x5b,0x5d,0x5f,0x5f,
+0x5c,0x61,0x64,0x63,0x65,0x6a,0x6e,0x6f,0x75,0x73,0x6f,0x6a,0x68,0x6a,0x6f,0x74,
+0x68,0x68,0x6f,0x7b,0x81,0x7c,0x72,0x6b,0x6f,0x70,0x71,0x6e,0x66,0x62,0x6a,0x75,
+0x80,0x7f,0x79,0x72,0x70,0x73,0x77,0x79,0x74,0x72,0x72,0x71,0x69,0x5d,0x5c,0x61,
+0x62,0x60,0x60,0x62,0x64,0x62,0x5f,0x5d,0x68,0x68,0x69,0x69,0x6a,0x6b,0x6e,0x70,
+0x6f,0x6f,0x6c,0x68,0x69,0x6c,0x6b,0x67,0x6c,0x6b,0x6a,0x6c,0x70,0x74,0x76,0x77,
+0x7e,0x80,0x81,0x81,0x82,0x83,0x82,0x80,0x78,0x79,0x77,0x70,0x68,0x63,0x64,0x67,
+0x6b,0x77,0x80,0x7f,0x7c,0x7a,0x73,0x6b,0x6b,0x68,0x64,0x66,0x6d,0x71,0x70,0x6c,
+0x66,0x64,0x66,0x6d,0x77,0x7f,0x82,0x81,0x7e,0x7b,0x77,0x6d,0x5b,0x50,0x5b,0x6e,
+0x76,0x72,0x6d,0x6c,0x6e,0x70,0x6e,0x6b,0x6b,0x72,0x79,0x79,0x73,0x6b,0x68,0x67,
+0x60,0x6a,0x74,0x79,0x7e,0x86,0x8b,0x8c,0x89,0x7e,0x75,0x72,0x72,0x71,0x72,0x74,
+0x76,0x77,0x78,0x75,0x90,0xa5,0x92,0x8e,0x8d,0x91,0xa0,0xb3,0xbd,0xbc,0xbe,0xc5,
+0xc4,0xc5,0xc5,0xc5,0xc7,0xca,0xc9,0xc6,0xc8,0xc7,0xc6,0xc4,0xc2,0xc0,0xbe,0xbd,
+0xc0,0xc1,0xc3,0xc4,0xc3,0xc1,0xbf,0xbd,0xbe,0xbe,0xbe,0xbd,0xbd,0xbd,0xbd,0xbd,
+0xb6,0xb4,0xb3,0xb5,0xb7,0xb9,0xb8,0xb6,0xab,0xa7,0xa4,0xa2,0x9e,0x9a,0x9d,0xa4,
+0xa4,0xa6,0xaa,0xae,0xb1,0xb3,0xb3,0xb3,0xb5,0xb5,0xb4,0xb3,0xaf,0xaa,0xa5,0xa1,
+0x9e,0x99,0x94,0x8b,0x9b,0x99,0x96,0x8e,0x7f,0x74,0x79,0x97,0xd5,0xe0,0xe0,0xe6,
+0xea,0xed,0xf2,0xf5,0xf7,0xf7,0xf7,0xf8,0xf8,0xf9,0xfb,0xfc,0xfd,0xfc,0xfa,0xf9,
+0xfa,0xf9,0xf9,0xf9,0xf8,0xf8,0xf8,0xf8,0xf6,0xf6,0xf7,0xf7,0xf8,0xf9,0xf9,0xfa,
+0xf9,0xfa,0xfb,0xfb,0xfa,0xf9,0xf7,0xf6,0xf7,0xf8,0xf8,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xf8,0xf8,0xfa,0xfa,0xfb,0xfb,0xfa,0xfa,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xfa,0xfa,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf7,0xf7,
+0xf9,0xf8,0xf6,0xf6,0xf5,0xf4,0xf1,0xf0,0xf1,0xf0,0xef,0xee,0xee,0xed,0xed,0xed,
+0xea,0xec,0xec,0xeb,0xe8,0xe5,0xe4,0xe5,0xe2,0xe0,0xdf,0xe1,0xe4,0xe6,0xe4,0xe2,
+0xe2,0xe1,0xe0,0xdf,0xdf,0xe0,0xe1,0xe2,0xdf,0xde,0xdc,0xdb,0xda,0xd9,0xd9,0xda,
+0xdb,0xdc,0xdd,0xdd,0xde,0xde,0xde,0xde,0xdd,0xdb,0xd9,0xd7,0xd5,0xd4,0xd2,0xd1,
+0xd0,0xd0,0xcf,0xd0,0xd0,0xcf,0xcd,0xcb,0xc6,0xc4,0xc2,0xc3,0xc6,0xc8,0xc6,0xc4,
+0xbf,0xbe,0xbd,0xbe,0xc0,0xc0,0xbe,0xbc,0xb6,0xb5,0xb4,0xb4,0xb5,0xb6,0xb6,0xb5,
+0xba,0xb8,0xad,0x99,0x8a,0x89,0x92,0x99,0x9b,0x9c,0x9a,0x97,0x96,0x96,0x97,0x98,
+0x93,0x92,0x91,0x90,0x8f,0x8d,0x8c,0x8c,0x8c,0x8a,0x88,0x87,0x87,0x86,0x84,0x83,
+0x83,0x82,0x81,0x7f,0x7d,0x7c,0x7a,0x7a,0x76,0x73,0x71,0x6e,0x6d,0x6b,0x69,0x67,
+0x65,0x62,0x5f,0x5b,0x58,0x55,0x51,0x4f,0x4b,0x4b,0x49,0x47,0x44,0x40,0x3d,0x3b,
+0x34,0x2f,0x28,0x2b,0x3c,0x4e,0x50,0x47,0x54,0x60,0x6a,0x67,0x5b,0x4e,0x48,0x47,
+0x53,0x5d,0x5e,0x4e,0x3b,0x30,0x2c,0x2a,0x29,0x26,0x27,0x30,0x40,0x49,0x46,0x3f,
+0x44,0x53,0x5e,0x61,0x64,0x68,0x62,0x57,0x50,0x45,0x40,0x4b,0x5d,0x6d,0x7a,0x83,
+0x7c,0x5a,0x43,0x48,0x4c,0x43,0x3e,0x43,0x23,0x1c,0x14,0x13,0x13,0x0d,0x12,0x22,
+0x3c,0x53,0x6f,0x81,0x8c,0x87,0x6c,0x4f,0x2f,0x2a,0x2e,0x3c,0x4b,0x5a,0x6e,0x7e,
+0x73,0x6a,0x58,0x5a,0x4f,0x35,0x32,0x2d,0x1b,0x19,0x1b,0x25,0x37,0x4d,0x64,0x75,
+0x82,0x7c,0x6a,0x5d,0x61,0x62,0x57,0x4d,0x3f,0x3d,0x56,0x7a,0x8e,0x94,0x8b,0x77,
+0x61,0x63,0x6d,0x79,0x77,0x63,0x4c,0x40,0x46,0x53,0x62,0x6a,0x6c,0x6e,0x6e,0x6e,
+0x53,0x58,0x56,0x53,0x57,0x5c,0x64,0x6f,0x69,0x5d,0x55,0x59,0x5e,0x5e,0x5f,0x62,
+0x60,0x60,0x62,0x63,0x64,0x64,0x65,0x65,0x63,0x71,0x76,0x72,0x6f,0x6b,0x68,0x6b,
+0x67,0x66,0x6e,0x7a,0x7d,0x75,0x6d,0x6a,0x67,0x6d,0x6f,0x69,0x63,0x66,0x6f,0x76,
+0x83,0x80,0x7c,0x76,0x72,0x6f,0x6d,0x6b,0x6b,0x6d,0x72,0x73,0x6f,0x67,0x60,0x5d,
+0x64,0x5f,0x5c,0x5e,0x61,0x64,0x6a,0x71,0x70,0x6e,0x68,0x65,0x68,0x72,0x79,0x7c,
+0x79,0x70,0x6b,0x6c,0x6c,0x67,0x66,0x69,0x6e,0x71,0x6c,0x6a,0x72,0x6f,0x6b,0x74,
+0x79,0x79,0x7a,0x79,0x79,0x79,0x7b,0x7c,0x78,0x77,0x73,0x6d,0x69,0x66,0x66,0x66,
+0x65,0x68,0x6f,0x74,0x75,0x73,0x71,0x70,0x79,0x76,0x6f,0x69,0x68,0x6b,0x6a,0x66,
+0x69,0x68,0x69,0x6d,0x73,0x75,0x72,0x6f,0x7b,0x77,0x74,0x6f,0x64,0x5b,0x5f,0x68,
+0x68,0x69,0x6a,0x6b,0x6c,0x6c,0x6d,0x6d,0x68,0x6a,0x71,0x79,0x78,0x6d,0x62,0x5e,
+0x67,0x68,0x75,0x77,0x84,0x8e,0x9f,0x9c,0x8b,0x87,0x7f,0x76,0x73,0x77,0x7c,0x7f,
+0x76,0x70,0x72,0x7a,0x87,0x95,0x98,0x8d,0x8f,0x95,0xa4,0xb7,0xc1,0xc1,0xc2,0xc4,
+0xc4,0xc5,0xc6,0xc7,0xc7,0xc8,0xc7,0xc7,0xc5,0xc5,0xc5,0xc4,0xc3,0xc2,0xc2,0xc1,
+0xc3,0xc3,0xc3,0xc3,0xc3,0xc2,0xc1,0xc1,0xc0,0xbe,0xbc,0xbb,0xbb,0xbb,0xba,0xb9,
+0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb6,0xb6,0xb2,0xb2,0xb1,0xad,0xa8,0xa4,0xa2,0xa2,
+0x9f,0xa4,0xa9,0xad,0xad,0xae,0xb1,0xb3,0xb8,0xb8,0xb6,0xb5,0xb4,0xb1,0xa9,0xa1,
+0x9e,0x9a,0x94,0x92,0x96,0x9a,0x98,0x92,0x80,0x76,0x76,0x86,0xd1,0xd8,0xe1,0xe7,
+0xec,0xf0,0xf5,0xf7,0xf6,0xf6,0xf8,0xfa,0xf7,0xf9,0xfb,0xfd,0xfe,0xfd,0xfc,0xfa,
+0xf9,0xf9,0xf8,0xf8,0xf7,0xf7,0xf8,0xf8,0xf7,0xf8,0xf9,0xfa,0xfb,0xfa,0xfa,0xf9,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf8,0xf8,0xf8,0xf9,0xf9,0xfa,
+0xfb,0xfb,0xfb,0xfb,0xfa,0xfa,0xfa,0xfa,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,0xfb,
+0xfa,0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xf9,0xf8,0xf8,0xf9,0xfa,0xfa,0xf9,
+0xf8,0xf8,0xf8,0xf7,0xf6,0xf4,0xf2,0xf1,0xee,0xed,0xec,0xeb,0xea,0xeb,0xeb,0xec,
+0xec,0xeb,0xeb,0xe9,0xe7,0xe5,0xe3,0xe1,0xe2,0xe1,0xe0,0xdf,0xde,0xdd,0xdd,0xdd,
+0xe0,0xdf,0xde,0xde,0xdf,0xe0,0xe1,0xe0,0xdf,0xde,0xdd,0xdd,0xde,0xdf,0xe0,0xe1,
+0xdf,0xdf,0xde,0xdd,0xdc,0xdc,0xdc,0xdc,0xdd,0xdb,0xd7,0xd5,0xd5,0xd4,0xd3,0xd2,
+0xd1,0xd2,0xd1,0xcf,0xcf,0xd0,0xce,0xca,0xc7,0xc5,0xc4,0xc4,0xc6,0xc6,0xc5,0xc4,
+0xc0,0xc0,0xc0,0xbf,0xbd,0xbb,0xbb,0xbb,0xb6,0xb4,0xb3,0xb5,0xb8,0xb9,0xb5,0xb2,
+0xb5,0xaf,0xaa,0x97,0x82,0x84,0x93,0x95,0x9b,0x9a,0x9a,0x99,0x97,0x96,0x94,0x94,
+0x92,0x92,0x91,0x90,0x8f,0x8e,0x8e,0x8d,0x8a,0x8a,0x89,0x89,0x88,0x87,0x87,0x87,
+0x84,0x81,0x7e,0x7c,0x7b,0x7a,0x79,0x78,0x79,0x75,0x70,0x6d,0x6c,0x6a,0x67,0x64,
+0x61,0x60,0x5d,0x5a,0x56,0x53,0x50,0x4f,0x4a,0x49,0x48,0x47,0x44,0x40,0x3a,0x36,
+0x35,0x2e,0x28,0x2c,0x3b,0x49,0x4a,0x44,0x4a,0x4e,0x53,0x59,0x5e,0x5c,0x55,0x4d,
+0x47,0x4a,0x4e,0x47,0x3a,0x36,0x32,0x29,0x25,0x32,0x3c,0x42,0x49,0x45,0x3a,0x35,
+0x3a,0x41,0x49,0x4f,0x53,0x55,0x54,0x51,0x50,0x49,0x4f,0x5d,0x5a,0x47,0x3f,0x45,
+0x3a,0x3f,0x3d,0x37,0x36,0x39,0x36,0x2e,0x31,0x18,0x1c,0x1e,0x14,0x16,0x16,0x13,
+0x14,0x40,0x6f,0x85,0x89,0x7d,0x5c,0x3b,0x30,0x3a,0x3c,0x33,0x2d,0x2f,0x2f,0x2b,
+0x1a,0x3c,0x54,0x4d,0x3f,0x37,0x2b,0x1c,0x1b,0x1d,0x24,0x32,0x44,0x56,0x62,0x67,
+0x62,0x56,0x58,0x6a,0x6f,0x59,0x36,0x1f,0x58,0x83,0x99,0x91,0x88,0x7d,0x6d,0x65,
+0x5d,0x72,0x73,0x57,0x3d,0x3c,0x45,0x48,0x51,0x55,0x57,0x55,0x5e,0x6d,0x64,0x49,
+0x59,0x60,0x5d,0x54,0x52,0x58,0x67,0x78,0x84,0x76,0x6a,0x67,0x65,0x61,0x5f,0x60,
+0x5f,0x64,0x69,0x68,0x63,0x5e,0x5c,0x5c,0x5d,0x68,0x6a,0x68,0x6a,0x6a,0x6a,0x6d,
+0x66,0x65,0x6a,0x74,0x77,0x70,0x69,0x67,0x66,0x6b,0x6d,0x68,0x65,0x6a,0x76,0x7f,
+0x81,0x80,0x7a,0x73,0x70,0x70,0x6e,0x6a,0x6a,0x6c,0x6f,0x70,0x6d,0x68,0x65,0x63,
+0x61,0x5e,0x60,0x66,0x6c,0x6e,0x6f,0x71,0x6b,0x6f,0x70,0x6f,0x70,0x76,0x7e,0x82,
+0x83,0x78,0x70,0x71,0x72,0x6f,0x6d,0x6f,0x70,0x71,0x6f,0x6d,0x6d,0x69,0x6a,0x70,
+0x72,0x75,0x79,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7f,0x83,0x81,0x7a,0x71,0x6a,0x67,
+0x60,0x68,0x71,0x74,0x72,0x70,0x73,0x79,0x83,0x7e,0x73,0x67,0x61,0x5f,0x5d,0x5a,
+0x64,0x66,0x6b,0x72,0x79,0x7c,0x7c,0x7a,0x6d,0x6b,0x6c,0x6c,0x66,0x5e,0x5f,0x66,
+0x6b,0x6c,0x6d,0x6d,0x6d,0x6c,0x6c,0x6d,0x74,0x74,0x76,0x77,0x72,0x6b,0x67,0x68,
+0x60,0x65,0x80,0x90,0x9f,0x92,0x7c,0x5b,0x65,0x67,0x6a,0x6d,0x71,0x72,0x6e,0x68,
+0x6a,0x67,0x6b,0x73,0x7e,0x8d,0x94,0x8e,0x93,0x9c,0xad,0xbd,0xc4,0xc2,0xc2,0xc4,
+0xc4,0xc5,0xc8,0xc9,0xc9,0xc8,0xc5,0xc4,0xc7,0xc6,0xc4,0xc3,0xc3,0xc4,0xc4,0xc4,
+0xc3,0xc3,0xc3,0xc3,0xc2,0xc1,0xc0,0xc0,0xc0,0xbf,0xbf,0xbf,0xc1,0xc2,0xc1,0xc1,
+0xbc,0xb9,0xb6,0xb2,0xb1,0xb1,0xb2,0xb3,0xb8,0xb7,0xb6,0xb2,0xad,0xa8,0xa5,0xa4,
+0x9e,0xa1,0xa4,0xa6,0xa7,0xa9,0xad,0xb0,0xb5,0xb6,0xb6,0xb4,0xb3,0xb0,0xaa,0xa4,
+0xa2,0x9d,0x96,0x91,0x93,0x97,0x98,0x95,0x86,0x77,0x72,0x7e,0xc3,0xda,0xe1,0xe7,
+0xed,0xf0,0xf4,0xf5,0xf5,0xf5,0xf7,0xf8,0xf6,0xf8,0xfa,0xfc,0xfd,0xfc,0xfb,0xfa,
+0xf9,0xf9,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xfa,0xfb,0xfc,0xfc,0xfc,0xfb,0xfa,0xfa,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfc,0xfc,0xfb,0xfb,0xfa,0xf9,0xf9,0xf8,
+0xfa,0xfa,0xf9,0xf9,0xf8,0xf8,0xf8,0xf8,0xfa,0xf9,0xf8,0xf8,0xf9,0xf9,0xf7,0xf6,
+0xf4,0xf4,0xf4,0xf4,0xf3,0xf1,0xf0,0xef,0xeb,0xeb,0xeb,0xea,0xea,0xea,0xeb,0xeb,
+0xec,0xeb,0xeb,0xea,0xe8,0xe6,0xe4,0xe3,0xdf,0xde,0xdd,0xdc,0xdc,0xdb,0xdb,0xdb,
+0xde,0xde,0xde,0xe0,0xe2,0xe2,0xe1,0xe0,0xdc,0xdb,0xdb,0xdb,0xdd,0xdf,0xe2,0xe4,
+0xe2,0xe3,0xe3,0xe3,0xe2,0xe1,0xdf,0xde,0xdf,0xdc,0xd9,0xd7,0xd7,0xd6,0xd5,0xd5,
+0xd0,0xd1,0xd1,0xcf,0xcf,0xcf,0xcc,0xc8,0xc4,0xc4,0xc3,0xc5,0xc7,0xc8,0xc7,0xc6,
+0xc2,0xc2,0xc1,0xbf,0xbc,0xba,0xb8,0xb8,0xb5,0xb4,0xb4,0xb5,0xb7,0xb7,0xb5,0xb3,
+0xb3,0xaf,0xa4,0x8f,0x80,0x86,0x92,0x95,0x99,0x99,0x99,0x98,0x97,0x95,0x94,0x93,
+0x92,0x92,0x91,0x90,0x8e,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x87,0x86,0x85,0x85,
+0x83,0x81,0x7e,0x7d,0x7b,0x7a,0x78,0x77,0x77,0x73,0x6f,0x6d,0x6b,0x6a,0x67,0x64,
+0x5f,0x5e,0x5d,0x5a,0x56,0x52,0x4e,0x4b,0x47,0x45,0x44,0x42,0x3f,0x3b,0x36,0x32,
+0x2c,0x2e,0x34,0x3c,0x43,0x45,0x43,0x40,0x4b,0x51,0x5c,0x69,0x6f,0x6a,0x5a,0x4c,
+0x47,0x41,0x40,0x3f,0x3e,0x3e,0x35,0x24,0x2f,0x3f,0x4a,0x4b,0x47,0x3a,0x2e,0x2b,
+0x39,0x39,0x3b,0x3e,0x40,0x41,0x43,0x44,0x4f,0x5d,0x67,0x61,0x55,0x4b,0x43,0x3c,
+0x2f,0x31,0x2f,0x2b,0x2e,0x35,0x38,0x36,0x25,0x2c,0x38,0x28,0x17,0x1d,0x1f,0x1c,
+0x20,0x4a,0x78,0x8a,0x7f,0x63,0x43,0x2b,0x33,0x31,0x32,0x36,0x33,0x29,0x25,0x27,
+0x56,0x57,0x53,0x47,0x3d,0x34,0x28,0x1c,0x12,0x1f,0x31,0x3f,0x46,0x46,0x43,0x40,
+0x4b,0x5e,0x6f,0x65,0x45,0x37,0x55,0x7e,0x95,0x82,0x65,0x5a,0x61,0x5d,0x53,0x55,
+0x53,0x46,0x3c,0x3e,0x45,0x4a,0x4b,0x4c,0x4f,0x54,0x5a,0x59,0x4b,0x3e,0x41,0x4f,
+0x4d,0x58,0x5c,0x5c,0x63,0x6e,0x7b,0x89,0x86,0x7a,0x6e,0x69,0x66,0x61,0x60,0x63,
+0x66,0x67,0x64,0x5b,0x51,0x50,0x59,0x63,0x63,0x67,0x65,0x63,0x68,0x6a,0x68,0x6a,
+0x6b,0x69,0x6c,0x72,0x74,0x6e,0x67,0x66,0x67,0x6b,0x6b,0x67,0x66,0x6d,0x78,0x80,
+0x7b,0x7c,0x78,0x70,0x6f,0x72,0x6f,0x68,0x70,0x71,0x71,0x6f,0x6c,0x69,0x67,0x67,
+0x68,0x63,0x62,0x67,0x6c,0x6c,0x68,0x65,0x66,0x70,0x78,0x79,0x76,0x78,0x7d,0x81,
+0x76,0x72,0x73,0x7b,0x80,0x7d,0x78,0x76,0x7b,0x77,0x76,0x73,0x6a,0x67,0x6c,0x6f,
+0x6e,0x71,0x76,0x79,0x78,0x76,0x73,0x71,0x71,0x7b,0x84,0x84,0x7a,0x6d,0x64,0x60,
+0x63,0x6d,0x76,0x75,0x6f,0x6d,0x74,0x7c,0x7a,0x75,0x6c,0x62,0x5e,0x5f,0x60,0x60,
+0x65,0x69,0x6f,0x76,0x7c,0x7f,0x7e,0x7c,0x70,0x6d,0x6d,0x70,0x6f,0x6b,0x6b,0x6e,
+0x6a,0x6c,0x6e,0x6f,0x70,0x70,0x70,0x71,0x69,0x6e,0x76,0x79,0x75,0x6e,0x6b,0x6b,
+0x75,0x7a,0x8a,0x85,0x80,0x73,0x73,0x69,0x6a,0x6a,0x6a,0x6c,0x72,0x75,0x70,0x6a,
+0x68,0x66,0x6b,0x73,0x7c,0x8a,0x94,0x93,0x97,0xa4,0xb7,0xc4,0xc6,0xc3,0xc2,0xc5,
+0xc5,0xc7,0xca,0xcb,0xca,0xc7,0xc3,0xc0,0xc3,0xc2,0xc2,0xc4,0xc7,0xc9,0xc8,0xc7,
+0xc4,0xc4,0xc4,0xc3,0xc2,0xc1,0xc0,0xbf,0xbe,0xbe,0xbe,0xc0,0xc2,0xc2,0xc1,0xc0,
+0xc0,0xbe,0xba,0xb6,0xb4,0xb3,0xb4,0xb5,0xbb,0xbc,0xbc,0xb9,0xb5,0xb0,0xad,0xab,
+0xa6,0xa7,0xa7,0xa6,0xa5,0xa7,0xab,0xaf,0xb1,0xb4,0xb5,0xb4,0xb2,0xb1,0xad,0xa9,
+0xa6,0xa1,0x98,0x90,0x8f,0x94,0x98,0x9a,0x92,0x7d,0x6f,0x72,0xa9,0xd8,0xda,0xe0,
+0xed,0xee,0xf0,0xf2,0xf3,0xf4,0xf5,0xf6,0xf5,0xf7,0xf9,0xfb,0xfc,0xfb,0xfa,0xf9,
+0xfa,0xfa,0xf9,0xf8,0xf8,0xf8,0xf9,0xf9,0xfa,0xfa,0xfa,0xfb,0xfa,0xf9,0xf8,0xf7,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,
+0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfa,0xfb,0xfb,0xfa,0xfa,0xf9,0xf9,0xf8,0xf8,
+0xfa,0xf9,0xf9,0xf8,0xf8,0xf7,0xf7,0xf7,0xf9,0xf8,0xf8,0xf7,0xf7,0xf5,0xf3,0xf1,
+0xee,0xef,0xef,0xef,0xef,0xee,0xec,0xec,0xe9,0xea,0xea,0xeb,0xec,0xec,0xec,0xec,
+0xeb,0xeb,0xea,0xe9,0xe8,0xe6,0xe5,0xe4,0xe0,0xe0,0xdf,0xde,0xde,0xde,0xde,0xde,
+0xde,0xde,0xe0,0xe2,0xe4,0xe4,0xe2,0xe1,0xdf,0xde,0xde,0xde,0xdf,0xe2,0xe5,0xe6,
+0xe4,0xe5,0xe6,0xe6,0xe5,0xe3,0xe0,0xde,0xde,0xdc,0xd9,0xd8,0xd7,0xd7,0xd6,0xd5,
+0xd0,0xd1,0xd1,0xcf,0xce,0xcd,0xca,0xc5,0xc2,0xc2,0xc3,0xc6,0xc8,0xca,0xc9,0xc8,
+0xc4,0xc3,0xc1,0xbf,0xbc,0xb9,0xb6,0xb5,0xb5,0xb5,0xb5,0xb4,0xb4,0xb4,0xb3,0xb3,
+0xb1,0xaf,0x9b,0x84,0x7f,0x89,0x91,0x96,0x97,0x97,0x97,0x96,0x96,0x94,0x93,0x93,
+0x92,0x91,0x90,0x8f,0x8e,0x8c,0x8b,0x8b,0x8b,0x8b,0x89,0x88,0x86,0x85,0x83,0x83,
+0x82,0x80,0x7e,0x7d,0x7c,0x7a,0x77,0x75,0x74,0x71,0x6d,0x6b,0x6a,0x69,0x66,0x63,
+0x5c,0x5c,0x5c,0x5a,0x56,0x51,0x4c,0x49,0x47,0x45,0x43,0x40,0x3d,0x39,0x34,0x31,
+0x2b,0x2b,0x32,0x3f,0x4a,0x50,0x56,0x5b,0x5d,0x61,0x65,0x65,0x5f,0x55,0x4a,0x44,
+0x34,0x3b,0x48,0x4c,0x44,0x3c,0x36,0x2c,0x32,0x41,0x48,0x45,0x3d,0x33,0x34,0x3f,
+0x2e,0x29,0x27,0x2b,0x2f,0x33,0x39,0x40,0x48,0x5c,0x67,0x60,0x56,0x50,0x47,0x3a,
+0x40,0x3e,0x3c,0x3b,0x3c,0x3e,0x3f,0x3f,0x48,0x49,0x45,0x36,0x39,0x42,0x34,0x29,
+0x4e,0x6a,0x86,0x86,0x6b,0x4b,0x3c,0x3a,0x25,0x30,0x49,0x62,0x6e,0x6e,0x71,0x79,
+0x59,0x54,0x4d,0x42,0x31,0x22,0x1e,0x23,0x23,0x30,0x3f,0x49,0x4d,0x51,0x57,0x5c,
+0x79,0x66,0x53,0x4a,0x47,0x45,0x49,0x51,0x50,0x51,0x49,0x45,0x4d,0x51,0x49,0x44,
+0x3f,0x44,0x46,0x49,0x53,0x5c,0x54,0x44,0x4f,0x51,0x3e,0x25,0x20,0x2b,0x40,0x58,
+0x5e,0x64,0x63,0x65,0x70,0x78,0x79,0x7a,0x72,0x6b,0x64,0x61,0x60,0x5e,0x60,0x63,
+0x69,0x66,0x5e,0x51,0x48,0x4d,0x5d,0x6c,0x6a,0x6a,0x64,0x64,0x6c,0x6e,0x69,0x69,
+0x6e,0x6c,0x6e,0x73,0x73,0x6e,0x67,0x64,0x6b,0x6b,0x6a,0x67,0x68,0x6c,0x6f,0x70,
+0x6e,0x74,0x75,0x70,0x71,0x74,0x6f,0x65,0x6c,0x6e,0x70,0x6e,0x6c,0x6c,0x6b,0x6a,
+0x71,0x69,0x62,0x62,0x66,0x68,0x65,0x61,0x66,0x71,0x79,0x79,0x75,0x74,0x76,0x79,
+0x7a,0x79,0x7d,0x82,0x83,0x7f,0x7b,0x7a,0x85,0x79,0x77,0x73,0x67,0x67,0x6f,0x6f,
+0x72,0x74,0x76,0x75,0x73,0x70,0x6e,0x6d,0x70,0x79,0x80,0x7e,0x73,0x68,0x64,0x65,
+0x6d,0x73,0x77,0x73,0x6e,0x6d,0x72,0x76,0x7a,0x74,0x6c,0x65,0x63,0x64,0x63,0x62,
+0x68,0x68,0x6b,0x72,0x7a,0x7e,0x7c,0x79,0x7c,0x76,0x72,0x73,0x74,0x73,0x73,0x75,
+0x68,0x6b,0x6f,0x71,0x72,0x72,0x74,0x75,0x74,0x72,0x70,0x6d,0x6d,0x70,0x77,0x7d,
+0x80,0x77,0x79,0x72,0x75,0x72,0x7a,0x74,0x74,0x71,0x6c,0x6a,0x6e,0x72,0x72,0x6f,
+0x72,0x6e,0x71,0x78,0x7f,0x8c,0x96,0x96,0x9a,0xaa,0xbc,0xc4,0xc3,0xc1,0xc3,0xc6,
+0xc7,0xc8,0xc9,0xca,0xc8,0xc5,0xc2,0xbf,0xb8,0xb8,0xba,0xbf,0xc4,0xc8,0xc8,0xc7,
+0xc5,0xc5,0xc5,0xc4,0xc3,0xc1,0xc0,0xbf,0xbe,0xbe,0xbe,0xbf,0xc0,0xbf,0xbc,0xba,
+0xbc,0xbc,0xbc,0xbb,0xba,0xb8,0xb6,0xb5,0xb8,0xba,0xbc,0xbc,0xb9,0xb6,0xb4,0xb2,
+0xaf,0xaf,0xad,0xaa,0xa8,0xa7,0xaa,0xac,0xaf,0xb2,0xb4,0xb3,0xb2,0xb1,0xaf,0xad,
+0xa6,0xa2,0x9a,0x90,0x8d,0x92,0x99,0x9c,0x9a,0x84,0x6f,0x6c,0x94,0xd6,0xda,0xdf,
+0xea,0xea,0xeb,0xee,0xf1,0xf4,0xf5,0xf5,0xf5,0xf6,0xf8,0xfa,0xfb,0xfb,0xfa,0xfa,
+0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf9,0xf9,0xf9,0xf9,0xf8,0xf7,0xf7,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xfa,0xfa,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xf8,0xf8,0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf8,0xf7,0xf8,0xf7,0xf5,0xf4,0xf3,0xf1,0xee,0xec,
+0xe9,0xea,0xea,0xeb,0xeb,0xea,0xe9,0xe9,0xe8,0xe9,0xeb,0xec,0xed,0xed,0xed,0xed,
+0xea,0xe9,0xe9,0xe7,0xe6,0xe4,0xe3,0xe2,0xe2,0xe2,0xe1,0xe0,0xe0,0xe0,0xe0,0xe1,
+0xe1,0xe1,0xe2,0xe4,0xe5,0xe5,0xe3,0xe2,0xe2,0xe2,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,
+0xe1,0xe1,0xe2,0xe2,0xe0,0xde,0xdb,0xda,0xda,0xd8,0xd6,0xd5,0xd5,0xd5,0xd4,0xd3,
+0xd1,0xd2,0xd2,0xcf,0xce,0xcd,0xc9,0xc4,0xc2,0xc3,0xc5,0xc7,0xc9,0xca,0xca,0xca,
+0xc4,0xc3,0xc1,0xc0,0xbe,0xbb,0xb8,0xb6,0xb5,0xb5,0xb5,0xb3,0xb2,0xb1,0xb2,0xb2,
+0xae,0xab,0x91,0x7a,0x80,0x8d,0x92,0x97,0x95,0x95,0x95,0x95,0x94,0x93,0x92,0x92,
+0x92,0x91,0x90,0x8f,0x8d,0x8c,0x8b,0x8a,0x8a,0x89,0x88,0x86,0x85,0x83,0x82,0x82,
+0x80,0x7f,0x7e,0x7c,0x7b,0x78,0x75,0x73,0x71,0x6e,0x6b,0x6a,0x69,0x68,0x65,0x62,
+0x5b,0x5b,0x5a,0x57,0x54,0x50,0x4d,0x4a,0x49,0x46,0x42,0x3e,0x3b,0x37,0x33,0x30,
+0x2f,0x29,0x2d,0x41,0x54,0x5f,0x67,0x6f,0x64,0x63,0x5d,0x4e,0x3a,0x2e,0x31,0x3a,
+0x50,0x5f,0x74,0x76,0x60,0x48,0x39,0x2f,0x39,0x43,0x46,0x40,0x35,0x2b,0x2f,0x3f,
+0x4e,0x44,0x3c,0x39,0x34,0x2e,0x2e,0x33,0x41,0x43,0x4b,0x56,0x57,0x4c,0x40,0x3b,
+0x42,0x41,0x44,0x48,0x47,0x40,0x39,0x36,0x4d,0x4d,0x4c,0x47,0x4c,0x48,0x45,0x5e,
+0x73,0x83,0x89,0x74,0x51,0x3b,0x3c,0x46,0x5f,0x6f,0x7b,0x75,0x66,0x5b,0x56,0x54,
+0x80,0x86,0x8c,0x86,0x6e,0x53,0x45,0x45,0x50,0x58,0x5f,0x60,0x5b,0x56,0x57,0x5a,
+0x3e,0x34,0x2c,0x2c,0x31,0x38,0x42,0x4b,0x3e,0x45,0x4a,0x4f,0x5b,0x5e,0x4d,0x39,
+0x3d,0x32,0x3d,0x55,0x53,0x3a,0x3b,0x52,0x4c,0x33,0x1c,0x29,0x3d,0x31,0x2d,0x47,
+0x6e,0x74,0x71,0x6d,0x71,0x73,0x6e,0x6a,0x65,0x63,0x61,0x60,0x5d,0x5c,0x5d,0x60,
+0x64,0x65,0x64,0x5e,0x58,0x57,0x5d,0x63,0x67,0x66,0x63,0x67,0x71,0x71,0x6b,0x69,
+0x68,0x68,0x6c,0x72,0x74,0x70,0x6a,0x66,0x6f,0x6d,0x6a,0x69,0x6a,0x6b,0x66,0x5f,
+0x60,0x6a,0x71,0x71,0x71,0x71,0x69,0x5f,0x5e,0x65,0x6c,0x6f,0x71,0x73,0x73,0x70,
+0x6f,0x69,0x62,0x62,0x69,0x6f,0x71,0x6f,0x6d,0x73,0x76,0x74,0x71,0x70,0x72,0x73,
+0x72,0x70,0x6f,0x6e,0x6e,0x72,0x7b,0x84,0x81,0x72,0x6c,0x69,0x62,0x67,0x71,0x70,
+0x79,0x77,0x74,0x71,0x6e,0x6e,0x70,0x72,0x6f,0x74,0x78,0x74,0x6b,0x65,0x65,0x69,
+0x70,0x71,0x70,0x6e,0x70,0x73,0x72,0x6e,0x6d,0x6a,0x68,0x6a,0x6d,0x6f,0x6e,0x6c,
+0x68,0x64,0x64,0x6b,0x77,0x7f,0x7e,0x7a,0x79,0x75,0x71,0x70,0x70,0x6e,0x6e,0x6e,
+0x6d,0x70,0x73,0x72,0x70,0x6d,0x6d,0x6e,0x77,0x77,0x78,0x79,0x7b,0x7b,0x78,0x75,
+0x66,0x64,0x71,0x70,0x74,0x6e,0x73,0x6e,0x62,0x67,0x6b,0x6f,0x73,0x77,0x76,0x73,
+0x77,0x70,0x71,0x79,0x80,0x8c,0x96,0x95,0x9d,0xac,0xbb,0xbf,0xbd,0xbf,0xc4,0xc7,
+0xc8,0xc8,0xc7,0xc6,0xc4,0xc3,0xc1,0xc1,0xb6,0xb4,0xb2,0xb4,0xb9,0xbe,0xc2,0xc4,
+0xc4,0xc4,0xc4,0xc3,0xc2,0xc0,0xbf,0xbe,0xc1,0xc1,0xc1,0xc1,0xc1,0xbf,0xbc,0xba,
+0xb7,0xb7,0xb7,0xb7,0xb5,0xb3,0xb1,0xaf,0xb3,0xb5,0xb8,0xb8,0xb7,0xb5,0xb3,0xb2,
+0xad,0xad,0xac,0xaa,0xa8,0xa7,0xa7,0xa8,0xab,0xaf,0xb1,0xaf,0xae,0xaf,0xae,0xac,
+0xa2,0xa1,0x9b,0x92,0x8d,0x91,0x98,0x9c,0x9b,0x8a,0x73,0x6e,0x86,0xd0,0xe0,0xe2,
+0xe3,0xe4,0xe7,0xeb,0xf0,0xf3,0xf5,0xf5,0xf5,0xf6,0xf8,0xfa,0xfb,0xfb,0xfb,0xfb,
+0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfb,0xfa,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf8,0xf9,0xf9,0xfa,0xf9,0xf9,0xf9,
+0xf8,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xf8,0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,
+0xf9,0xf9,0xf9,0xfa,0xf9,0xf9,0xf8,0xf7,0xf5,0xf3,0xf1,0xef,0xef,0xee,0xec,0xeb,
+0xe7,0xe8,0xe8,0xe9,0xe9,0xe8,0xe7,0xe7,0xe7,0xe8,0xe9,0xeb,0xec,0xec,0xec,0xeb,
+0xe8,0xe8,0xe6,0xe5,0xe3,0xe1,0xe0,0xe0,0xe2,0xe2,0xe1,0xe1,0xe0,0xe0,0xe1,0xe1,
+0xe6,0xe5,0xe4,0xe3,0xe4,0xe4,0xe3,0xe3,0xdf,0xe0,0xe0,0xe0,0xdf,0xdd,0xdb,0xda,
+0xdd,0xdd,0xdc,0xdb,0xd9,0xd8,0xd7,0xd6,0xd7,0xd6,0xd4,0xd4,0xd4,0xd4,0xd3,0xd1,
+0xd2,0xd3,0xd3,0xd0,0xcf,0xce,0xca,0xc5,0xc4,0xc5,0xc7,0xc8,0xc9,0xc9,0xc9,0xca,
+0xc3,0xc2,0xc1,0xc0,0xc0,0xbf,0xbc,0xb9,0xb5,0xb5,0xb4,0xb3,0xb0,0xaf,0xaf,0xb0,
+0xaa,0xa2,0x88,0x77,0x83,0x90,0x93,0x96,0x93,0x93,0x93,0x93,0x92,0x91,0x90,0x90,
+0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x87,0x87,0x86,0x85,0x84,0x82,0x82,0x81,
+0x7f,0x7e,0x7c,0x7b,0x79,0x77,0x73,0x71,0x6f,0x6d,0x6a,0x68,0x68,0x67,0x64,0x61,
+0x5b,0x5a,0x58,0x55,0x52,0x50,0x4f,0x4e,0x47,0x44,0x40,0x3c,0x38,0x34,0x30,0x2d,
+0x29,0x2c,0x3b,0x50,0x5b,0x58,0x56,0x58,0x52,0x4d,0x44,0x38,0x2c,0x2a,0x36,0x44,
+0x56,0x54,0x5e,0x6c,0x6a,0x59,0x40,0x2a,0x2d,0x35,0x3a,0x3c,0x36,0x29,0x26,0x32,
+0x3e,0x3b,0x3a,0x3c,0x3a,0x35,0x36,0x39,0x3a,0x34,0x3b,0x4a,0x4c,0x3e,0x37,0x3b,
+0x3c,0x37,0x36,0x3c,0x46,0x51,0x5e,0x67,0x51,0x54,0x55,0x4f,0x4d,0x41,0x46,0x73,
+0x8a,0x92,0x8b,0x6c,0x4b,0x3d,0x3c,0x3d,0x4a,0x4e,0x4b,0x3d,0x2f,0x29,0x2a,0x2c,
+0x50,0x4c,0x47,0x4a,0x56,0x60,0x60,0x5a,0x68,0x62,0x58,0x4b,0x40,0x38,0x36,0x37,
+0x31,0x27,0x1f,0x23,0x36,0x4f,0x65,0x73,0x6b,0x56,0x46,0x40,0x36,0x2b,0x29,0x2e,
+0x22,0x2d,0x36,0x37,0x31,0x2d,0x2b,0x2a,0x32,0x51,0x5d,0x4e,0x32,0x1b,0x2f,0x63,
+0x62,0x77,0x82,0x7e,0x78,0x70,0x69,0x67,0x5f,0x61,0x62,0x61,0x5e,0x5d,0x5f,0x61,
+0x69,0x6a,0x6b,0x68,0x63,0x5f,0x5d,0x5d,0x69,0x69,0x67,0x6b,0x72,0x6e,0x64,0x61,
+0x65,0x67,0x6c,0x73,0x77,0x77,0x73,0x6f,0x71,0x6f,0x6c,0x6a,0x6a,0x69,0x63,0x5b,
+0x5b,0x64,0x6d,0x6f,0x6c,0x67,0x60,0x5a,0x5e,0x68,0x71,0x75,0x77,0x78,0x74,0x6e,
+0x67,0x66,0x64,0x65,0x6b,0x73,0x77,0x76,0x76,0x77,0x74,0x6e,0x6b,0x6d,0x70,0x71,
+0x67,0x68,0x69,0x69,0x6a,0x6f,0x78,0x80,0x79,0x6c,0x63,0x62,0x63,0x6a,0x73,0x76,
+0x77,0x74,0x6e,0x69,0x67,0x6a,0x6f,0x74,0x70,0x72,0x73,0x6f,0x69,0x65,0x66,0x68,
+0x6b,0x6b,0x6b,0x6c,0x72,0x78,0x74,0x6b,0x5a,0x5c,0x63,0x6b,0x70,0x70,0x70,0x71,
+0x6d,0x68,0x65,0x6b,0x75,0x7b,0x7b,0x77,0x73,0x74,0x75,0x74,0x72,0x6e,0x6b,0x6a,
+0x78,0x7a,0x7a,0x75,0x6d,0x66,0x63,0x62,0x62,0x6c,0x7b,0x87,0x8a,0x81,0x6e,0x5d,
+0x5c,0x5f,0x6f,0x6b,0x66,0x5d,0x6b,0x70,0x5f,0x65,0x6d,0x72,0x77,0x7c,0x7d,0x7b,
+0x76,0x6e,0x70,0x78,0x80,0x8b,0x95,0x96,0xa1,0xaf,0xb9,0xba,0xba,0xc0,0xc6,0xc6,
+0xc7,0xc5,0xc3,0xc1,0xc0,0xc1,0xc2,0xc3,0xc2,0xbe,0xb7,0xb3,0xb3,0xb8,0xc0,0xc5,
+0xc2,0xc2,0xc1,0xc1,0xc0,0xbf,0xbe,0xbd,0xc0,0xc0,0xbf,0xc0,0xc0,0xbf,0xbd,0xbc,
+0xba,0xb8,0xb4,0xb0,0xad,0xac,0xab,0xab,0xaf,0xb1,0xb2,0xb3,0xb1,0xb0,0xae,0xae,
+0xaa,0xaa,0xab,0xab,0xab,0xaa,0xa9,0xa9,0xa9,0xab,0xac,0xaa,0xaa,0xab,0xaa,0xa7,
+0x9f,0x9f,0x9a,0x92,0x8d,0x90,0x96,0x99,0x9c,0x93,0x7a,0x70,0x77,0xb6,0xda,0xd8,
+0xdb,0xde,0xe4,0xe9,0xee,0xf2,0xf4,0xf6,0xf5,0xf6,0xf8,0xf9,0xfb,0xfb,0xfb,0xfb,
+0xfa,0xfa,0xf9,0xf8,0xf8,0xf8,0xf9,0xf9,0xf8,0xf8,0xf8,0xf9,0xf9,0xfa,0xfa,0xfa,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf7,0xf8,0xf9,0xf9,0xfa,0xf9,0xf9,0xf8,
+0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xfb,0xfc,0xfb,0xfb,0xfa,0xfa,0xf9,0xf9,0xf9,
+0xf8,0xf8,0xf9,0xf8,0xf7,0xf6,0xf5,0xf4,0xf0,0xed,0xe9,0xe7,0xe8,0xe9,0xeb,0xeb,
+0xe9,0xe9,0xea,0xea,0xe9,0xe8,0xe7,0xe6,0xe5,0xe6,0xe6,0xe7,0xe8,0xe8,0xe8,0xe8,
+0xe7,0xe6,0xe5,0xe3,0xe2,0xe1,0xe0,0xe0,0xe5,0xe4,0xe4,0xe3,0xe3,0xe2,0xe2,0xe3,
+0xe8,0xe6,0xe3,0xe2,0xe2,0xe2,0xe2,0xe1,0xdc,0xdd,0xdf,0xdf,0xdf,0xdd,0xdc,0xda,
+0xdc,0xdb,0xda,0xd8,0xd7,0xd6,0xd6,0xd6,0xd8,0xd7,0xd6,0xd5,0xd6,0xd6,0xd4,0xd3,
+0xd4,0xd5,0xd3,0xd0,0xcf,0xce,0xcb,0xc7,0xc7,0xc8,0xc9,0xc9,0xc8,0xc8,0xc9,0xca,
+0xc3,0xc1,0xc0,0xc1,0xc2,0xc1,0xbd,0xba,0xb5,0xb5,0xb3,0xb2,0xb0,0xaf,0xad,0xad,
+0xa4,0x95,0x80,0x7a,0x87,0x92,0x94,0x94,0x92,0x92,0x91,0x91,0x90,0x8f,0x8e,0x8d,
+0x8f,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,0x86,0x86,0x85,0x84,0x82,0x81,0x80,0x80,
+0x7e,0x7c,0x7a,0x78,0x77,0x74,0x71,0x6f,0x6e,0x6c,0x69,0x68,0x68,0x66,0x62,0x5f,
+0x5c,0x5a,0x57,0x54,0x51,0x50,0x50,0x50,0x48,0x45,0x40,0x3b,0x37,0x32,0x2e,0x2b,
+0x23,0x36,0x50,0x5e,0x57,0x47,0x40,0x42,0x4a,0x3c,0x2f,0x2e,0x35,0x42,0x53,0x60,
+0x4f,0x3e,0x3e,0x54,0x65,0x69,0x5e,0x4e,0x2c,0x2a,0x27,0x2b,0x2d,0x25,0x25,0x31,
+0x24,0x2b,0x34,0x3a,0x3b,0x3b,0x3d,0x3f,0x38,0x3e,0x43,0x43,0x3b,0x36,0x3b,0x44,
+0x39,0x3d,0x44,0x4a,0x4d,0x4b,0x45,0x41,0x4f,0x5d,0x61,0x59,0x5f,0x67,0x73,0x98,
+0x9d,0x98,0x82,0x5f,0x47,0x3f,0x3a,0x33,0x2c,0x1f,0x1a,0x20,0x22,0x1b,0x1b,0x21,
+0x17,0x15,0x13,0x1f,0x40,0x65,0x72,0x6d,0x4c,0x3f,0x2e,0x22,0x1e,0x1f,0x22,0x24,
+0x1f,0x22,0x24,0x21,0x22,0x2d,0x3c,0x48,0x5a,0x5c,0x61,0x5d,0x4f,0x4b,0x4e,0x4e,
+0x49,0x3d,0x3e,0x47,0x39,0x20,0x1f,0x34,0x65,0x74,0x56,0x24,0x23,0x49,0x66,0x6e,
+0x6b,0x83,0x8e,0x83,0x74,0x66,0x5b,0x58,0x5a,0x5e,0x61,0x5f,0x5c,0x5c,0x61,0x65,
+0x71,0x72,0x72,0x6e,0x69,0x67,0x68,0x6a,0x73,0x74,0x72,0x74,0x76,0x6c,0x61,0x60,
+0x68,0x6a,0x6e,0x73,0x78,0x7a,0x78,0x75,0x72,0x72,0x6e,0x69,0x65,0x65,0x64,0x62,
+0x64,0x68,0x6d,0x6e,0x66,0x5c,0x58,0x5a,0x63,0x6e,0x77,0x78,0x76,0x73,0x6b,0x61,
+0x5f,0x62,0x63,0x62,0x65,0x6e,0x74,0x76,0x7d,0x7a,0x73,0x69,0x63,0x65,0x69,0x6b,
+0x72,0x76,0x7a,0x7c,0x7c,0x79,0x75,0x72,0x74,0x6f,0x65,0x63,0x68,0x6c,0x71,0x78,
+0x74,0x70,0x6b,0x66,0x64,0x67,0x6c,0x70,0x7e,0x7b,0x76,0x72,0x6e,0x6c,0x6c,0x6c,
+0x68,0x6e,0x71,0x72,0x74,0x77,0x72,0x6a,0x64,0x6a,0x72,0x74,0x6c,0x62,0x60,0x64,
+0x6f,0x6d,0x6c,0x6f,0x73,0x76,0x76,0x75,0x77,0x7c,0x7f,0x7c,0x77,0x72,0x71,0x71,
+0x7e,0x80,0x80,0x7a,0x70,0x67,0x63,0x62,0x69,0x6e,0x73,0x75,0x76,0x74,0x6c,0x63,
+0x67,0x5a,0x60,0x66,0x72,0x6d,0x6b,0x5d,0x65,0x67,0x69,0x6c,0x72,0x77,0x79,0x77,
+0x73,0x6d,0x71,0x79,0x7e,0x87,0x92,0x96,0xa6,0xb2,0xb9,0xb8,0xbb,0xc5,0xc8,0xc5,
+0xc3,0xc2,0xc0,0xbe,0xbe,0xc0,0xc2,0xc3,0xca,0xc8,0xc4,0xbe,0xba,0xbb,0xc0,0xc4,
+0xc1,0xc1,0xc1,0xc1,0xc0,0xbf,0xbf,0xbe,0xbf,0xbe,0xbd,0xbd,0xbe,0xbe,0xbd,0xbc,
+0xbe,0xbc,0xb8,0xb3,0xaf,0xac,0xaa,0xaa,0xac,0xae,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xae,0xae,0xaa,0xab,0xa9,0xa7,0xa8,0xa9,0xa7,0xa3,
+0xa0,0x9f,0x99,0x91,0x8c,0x8e,0x93,0x95,0x9d,0x9c,0x81,0x72,0x6b,0x9a,0xd3,0xce,
+0xd6,0xdb,0xe3,0xe9,0xed,0xf0,0xf3,0xf5,0xf4,0xf5,0xf7,0xf8,0xfa,0xfa,0xfb,0xfb,
+0xf9,0xf9,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,0xf7,0xf7,0xf7,0xf7,0xf7,0xf7,0xf8,0xf8,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf7,0xf8,0xf9,0xfa,0xfa,0xfa,0xf9,0xf8,
+0xf9,0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfb,0xfc,0xfb,0xfb,0xfa,0xf9,0xf8,0xf8,0xf7,
+0xf8,0xf7,0xf7,0xf6,0xf3,0xf1,0xee,0xec,0xe6,0xe2,0xdd,0xdb,0xdd,0xe1,0xe6,0xe9,
+0xec,0xec,0xec,0xec,0xeb,0xe9,0xe7,0xe6,0xe6,0xe5,0xe5,0xe4,0xe4,0xe5,0xe5,0xe5,
+0xe6,0xe6,0xe5,0xe4,0xe3,0xe3,0xe3,0xe3,0xe8,0xe7,0xe6,0xe5,0xe4,0xe4,0xe4,0xe4,
+0xe4,0xe3,0xe2,0xe1,0xe2,0xe1,0xe0,0xdf,0xdd,0xdd,0xde,0xde,0xde,0xde,0xde,0xde,
+0xdc,0xdc,0xdc,0xdb,0xda,0xd9,0xd8,0xd7,0xd9,0xd8,0xd8,0xd8,0xd8,0xd8,0xd7,0xd6,
+0xd5,0xd5,0xd3,0xcf,0xce,0xce,0xcd,0xc9,0xc9,0xca,0xca,0xc9,0xc7,0xc7,0xc9,0xcb,
+0xc5,0xc3,0xc1,0xc1,0xc2,0xc0,0xbb,0xb8,0xb6,0xb4,0xb2,0xb1,0xb1,0xaf,0xac,0xa9,
+0x9e,0x87,0x7a,0x7f,0x89,0x91,0x94,0x91,0x91,0x91,0x91,0x90,0x8f,0x8d,0x8c,0x8b,
+0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x89,0x89,0x86,0x86,0x84,0x83,0x81,0x80,0x7e,0x7e,
+0x7e,0x7b,0x78,0x76,0x74,0x72,0x70,0x6e,0x6e,0x6c,0x69,0x68,0x67,0x65,0x61,0x5e,
+0x5c,0x5a,0x58,0x54,0x51,0x4f,0x4d,0x4c,0x47,0x44,0x40,0x3b,0x36,0x31,0x2c,0x28,
+0x2a,0x45,0x63,0x6c,0x5f,0x4d,0x45,0x45,0x45,0x3a,0x34,0x3a,0x46,0x54,0x63,0x70,
+0x57,0x3f,0x35,0x3d,0x47,0x4f,0x57,0x59,0x51,0x41,0x30,0x2c,0x2c,0x26,0x2a,0x39,
+0x5a,0x64,0x69,0x61,0x56,0x4f,0x49,0x45,0x53,0x57,0x54,0x45,0x37,0x36,0x40,0x49,
+0x53,0x53,0x4f,0x4d,0x55,0x65,0x72,0x76,0x79,0x87,0x86,0x6b,0x62,0x6c,0x7d,0x9a,
+0x9d,0x86,0x64,0x48,0x3a,0x36,0x30,0x29,0x2f,0x22,0x1e,0x26,0x28,0x1e,0x1c,0x22,
+0x21,0x30,0x3d,0x43,0x47,0x48,0x3e,0x30,0x29,0x25,0x22,0x24,0x26,0x25,0x1e,0x17,
+0x12,0x15,0x19,0x1d,0x25,0x2a,0x27,0x20,0x26,0x38,0x51,0x60,0x70,0x85,0x81,0x63,
+0x64,0x72,0x79,0x72,0x6d,0x76,0x83,0x8a,0x5e,0x48,0x2f,0x29,0x36,0x46,0x52,0x58,
+0x7c,0x87,0x81,0x6d,0x61,0x5c,0x59,0x5a,0x5b,0x60,0x62,0x5e,0x59,0x5a,0x5f,0x64,
+0x72,0x77,0x7b,0x7b,0x77,0x74,0x76,0x79,0x78,0x7a,0x7a,0x7c,0x7d,0x73,0x69,0x6a,
+0x6c,0x6d,0x6e,0x70,0x74,0x77,0x76,0x73,0x74,0x75,0x70,0x66,0x5e,0x5f,0x64,0x69,
+0x70,0x6f,0x70,0x6e,0x62,0x55,0x55,0x5d,0x5d,0x68,0x71,0x72,0x70,0x6c,0x62,0x57,
+0x58,0x5d,0x5e,0x5c,0x5f,0x6a,0x76,0x7c,0x7f,0x7d,0x73,0x65,0x5b,0x5b,0x60,0x63,
+0x62,0x65,0x6b,0x73,0x7c,0x80,0x7e,0x7a,0x73,0x74,0x6a,0x65,0x6b,0x69,0x69,0x75,
+0x76,0x73,0x6f,0x6a,0x68,0x68,0x6b,0x6e,0x81,0x7a,0x70,0x69,0x67,0x67,0x67,0x66,
+0x6c,0x77,0x7d,0x7a,0x75,0x73,0x6e,0x67,0x6b,0x75,0x80,0x7f,0x70,0x62,0x63,0x6b,
+0x67,0x6a,0x6e,0x71,0x74,0x76,0x78,0x7a,0x7e,0x82,0x84,0x7d,0x75,0x71,0x74,0x77,
+0x7f,0x82,0x82,0x7e,0x75,0x6d,0x6a,0x6a,0x78,0x7b,0x7a,0x75,0x70,0x6e,0x6a,0x65,
+0x63,0x5a,0x62,0x66,0x6f,0x6a,0x6d,0x66,0x68,0x69,0x6d,0x72,0x79,0x7d,0x79,0x72,
+0x70,0x6c,0x72,0x79,0x7a,0x80,0x8d,0x94,0xaa,0xb5,0xbb,0xb9,0xbe,0xc8,0xca,0xc4,
+0xc0,0xbf,0xbe,0xbd,0xbe,0xbf,0xc2,0xc3,0xc5,0xc9,0xcb,0xc8,0xc3,0xbe,0xbd,0xbf,
+0xc3,0xc3,0xc3,0xc3,0xc2,0xc2,0xc1,0xc0,0xc2,0xc0,0xbf,0xbe,0xbe,0xbe,0xbd,0xbc,
+0xbd,0xbd,0xbb,0xb9,0xb5,0xb0,0xab,0xa8,0xab,0xad,0xaf,0xb0,0xb1,0xb2,0xb4,0xb5,
+0xb6,0xb5,0xb3,0xb1,0xb1,0xb0,0xaf,0xaf,0xad,0xac,0xa9,0xa7,0xa9,0xaa,0xa7,0xa2,
+0xa1,0x9f,0x99,0x8f,0x8b,0x8d,0x91,0x93,0x98,0x9e,0x84,0x75,0x69,0x90,0xda,0xd5,
+0xd3,0xda,0xe3,0xe9,0xec,0xee,0xf1,0xf4,0xf3,0xf4,0xf5,0xf7,0xf9,0xf9,0xfa,0xfa,
+0xf9,0xf9,0xf8,0xf8,0xf7,0xf7,0xf8,0xf8,0xfb,0xfa,0xfa,0xf9,0xf9,0xf8,0xf9,0xf9,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf9,0xfa,0xfb,0xfb,0xfb,0xfa,0xf9,
+0xf9,0xf9,0xfa,0xfa,0xfb,0xfb,0xfc,0xfc,0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf8,0xf8,
+0xf7,0xf7,0xf5,0xf3,0xf0,0xec,0xe8,0xe6,0xde,0xd9,0xd3,0xd1,0xd3,0xda,0xe1,0xe5,
+0xef,0xef,0xee,0xee,0xec,0xea,0xe8,0xe7,0xe7,0xe6,0xe5,0xe4,0xe4,0xe4,0xe4,0xe5,
+0xe6,0xe5,0xe5,0xe5,0xe5,0xe6,0xe7,0xe7,0xe6,0xe5,0xe4,0xe3,0xe2,0xe1,0xe1,0xe1,
+0xdf,0xdf,0xe0,0xe1,0xe2,0xe1,0xde,0xdc,0xde,0xdd,0xdb,0xda,0xd9,0xda,0xdc,0xdd,
+0xdb,0xdc,0xde,0xdf,0xde,0xdc,0xda,0xd8,0xda,0xd9,0xd8,0xd9,0xd9,0xd9,0xd8,0xd7,
+0xd5,0xd5,0xd2,0xce,0xcd,0xce,0xcd,0xca,0xca,0xcb,0xca,0xc8,0xc6,0xc7,0xca,0xcc,
+0xc7,0xc4,0xc2,0xc1,0xc1,0xbe,0xb9,0xb4,0xb6,0xb3,0xb1,0xb1,0xb2,0xb0,0xab,0xa7,
+0x9a,0x7e,0x76,0x83,0x8b,0x90,0x94,0x8f,0x91,0x91,0x90,0x8f,0x8e,0x8c,0x8b,0x8a,
+0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,0x87,0x86,0x85,0x83,0x80,0x7e,0x7d,0x7c,
+0x7d,0x7b,0x77,0x74,0x72,0x71,0x6f,0x6d,0x6e,0x6c,0x69,0x68,0x67,0x65,0x61,0x5e,
+0x5b,0x5a,0x58,0x56,0x52,0x4e,0x4b,0x49,0x42,0x40,0x3c,0x37,0x33,0x2d,0x27,0x23,
+0x35,0x52,0x73,0x80,0x77,0x64,0x53,0x48,0x31,0x36,0x44,0x52,0x58,0x59,0x60,0x6a,
+0x6e,0x50,0x3d,0x3d,0x42,0x4d,0x5c,0x65,0x62,0x52,0x41,0x40,0x43,0x3e,0x42,0x52,
+0x72,0x83,0x8c,0x85,0x7d,0x7c,0x7c,0x78,0x7b,0x70,0x5f,0x4c,0x3c,0x35,0x3a,0x43,
+0x54,0x60,0x6a,0x6f,0x77,0x7d,0x7a,0x71,0x84,0x74,0x61,0x55,0x6a,0x87,0x90,0x9c,
+0x97,0x78,0x56,0x45,0x40,0x3a,0x31,0x2a,0x2c,0x2c,0x28,0x22,0x1f,0x25,0x33,0x3e,
+0x4c,0x52,0x53,0x49,0x3c,0x32,0x2a,0x25,0x27,0x22,0x20,0x24,0x2c,0x31,0x31,0x2f,
+0x34,0x33,0x2d,0x26,0x27,0x2e,0x2f,0x2c,0x24,0x2a,0x3b,0x42,0x43,0x57,0x72,0x7a,
+0x97,0xa1,0xa8,0xa1,0x85,0x5c,0x33,0x18,0x1a,0x1b,0x2a,0x39,0x36,0x27,0x1c,0x15,
+0x71,0x69,0x62,0x60,0x5d,0x59,0x59,0x5d,0x5f,0x60,0x60,0x5e,0x5b,0x5b,0x5d,0x5f,
+0x6a,0x6b,0x71,0x78,0x7b,0x78,0x74,0x73,0x75,0x7b,0x7e,0x7c,0x78,0x75,0x73,0x71,
+0x66,0x5e,0x5e,0x6b,0x77,0x79,0x75,0x74,0x76,0x73,0x6e,0x68,0x60,0x5e,0x63,0x6b,
+0x6c,0x6f,0x69,0x6b,0x5f,0x5f,0x58,0x59,0x5e,0x64,0x68,0x67,0x65,0x66,0x68,0x69,
+0x65,0x64,0x64,0x67,0x6a,0x6c,0x72,0x77,0x7a,0x72,0x6b,0x67,0x62,0x5e,0x61,0x68,
+0x6c,0x74,0x77,0x79,0x7e,0x7f,0x7f,0x82,0x79,0x6e,0x63,0x61,0x62,0x64,0x66,0x68,
+0x5d,0x5e,0x63,0x6c,0x74,0x78,0x79,0x78,0x7b,0x70,0x63,0x61,0x66,0x6c,0x6c,0x68,
+0x6d,0x69,0x73,0x79,0x6f,0x6a,0x6a,0x62,0x64,0x75,0x85,0x81,0x76,0x6d,0x73,0x79,
+0x7a,0x77,0x6f,0x6c,0x73,0x75,0x74,0x77,0x74,0x76,0x79,0x79,0x77,0x78,0x7e,0x85,
+0x7f,0x7e,0x7f,0x82,0x80,0x78,0x70,0x6c,0x76,0x7e,0x83,0x7f,0x79,0x74,0x6f,0x6a,
+0x6a,0x74,0x7b,0x7b,0x7f,0x85,0x84,0x7c,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,
+0x7d,0x6c,0x70,0x71,0x77,0x84,0x8b,0xa1,0xac,0xb1,0xb8,0xbf,0xc4,0xc5,0xc4,0xc2,
+0xbf,0xbc,0xba,0xbb,0xbe,0xc3,0xc5,0xc6,0xc8,0xca,0xcb,0xc9,0xc6,0xc2,0xc0,0xbf,
+0xc0,0xc1,0xc3,0xc4,0xc4,0xc2,0xc0,0xbe,0xbf,0xbf,0xbe,0xbf,0xc0,0xc0,0xc0,0xbf,
+0xbc,0xba,0xb8,0xb8,0xba,0xbb,0xbb,0xba,0xb3,0xb0,0xae,0xb0,0xb2,0xb2,0xb3,0xb5,
+0xb4,0xb3,0xb2,0xb1,0xb1,0xb1,0xb1,0xb0,0xae,0xae,0xae,0xae,0xae,0xaa,0xa5,0xa1,
+0x9f,0x9d,0x97,0x8d,0x84,0x82,0x89,0x92,0x96,0x9e,0x88,0x75,0x68,0x8b,0xcd,0xd0,
+0xd5,0xd9,0xde,0xe3,0xe8,0xed,0xf1,0xf4,0xf4,0xf5,0xf6,0xf8,0xf9,0xf9,0xfa,0xfa,
+0xfa,0xf8,0xf8,0xf9,0xfa,0xf9,0xf7,0xf4,0xf6,0xf7,0xf9,0xfa,0xfb,0xfb,0xfa,0xf9,
+0xfa,0xfa,0xf9,0xf8,0xf7,0xf7,0xf7,0xf7,0xf4,0xf7,0xfa,0xfa,0xf9,0xf8,0xf8,0xf9,
+0xfa,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xf9,0xf8,0xf9,0xfa,0xfb,0xfa,0xf8,0xf6,
+0xf7,0xf8,0xf4,0xed,0xe9,0xe6,0xe1,0xda,0xd7,0xce,0xc9,0xcb,0xce,0xd1,0xd9,0xe3,
+0xe6,0xe7,0xe9,0xe9,0xe7,0xe5,0xe4,0xe4,0xe4,0xe5,0xe7,0xe9,0xe9,0xe7,0xe5,0xe3,
+0xe6,0xe4,0xe3,0xe4,0xe6,0xe5,0xe3,0xe0,0xdf,0xdf,0xdf,0xde,0xde,0xde,0xdd,0xdd,
+0xdb,0xdd,0xdf,0xe1,0xe1,0xdf,0xdc,0xdb,0xdd,0xdb,0xd9,0xd8,0xda,0xdc,0xdd,0xde,
+0xdc,0xde,0xdf,0xdf,0xdd,0xdb,0xdb,0xdb,0xd9,0xd9,0xda,0xda,0xda,0xda,0xda,0xda,
+0xd5,0xd3,0xd1,0xd0,0xd0,0xd0,0xcd,0xcb,0xc9,0xca,0xcb,0xca,0xc9,0xc9,0xc9,0xca,
+0xc6,0xc4,0xc3,0xc2,0xc2,0xbf,0xba,0xb7,0xb6,0xb6,0xb3,0xae,0xad,0xac,0xa7,0x9e,
+0x8a,0x7c,0x79,0x87,0x92,0x90,0x8e,0x92,0x8f,0x8f,0x8e,0x8d,0x8c,0x8b,0x89,0x89,
+0x89,0x89,0x88,0x87,0x87,0x86,0x86,0x85,0x87,0x85,0x83,0x82,0x81,0x7f,0x7c,0x7a,
+0x7c,0x79,0x76,0x76,0x74,0x70,0x6d,0x6d,0x6d,0x6c,0x6a,0x69,0x67,0x63,0x5f,0x5c,
+0x5b,0x5a,0x58,0x54,0x50,0x4c,0x49,0x48,0x42,0x3f,0x3c,0x38,0x32,0x2a,0x2a,0x2e,
+0x3f,0x5d,0x75,0x71,0x60,0x54,0x4d,0x47,0x3d,0x48,0x57,0x5f,0x5b,0x59,0x63,0x71,
+0x76,0x66,0x58,0x53,0x4f,0x4a,0x4a,0x50,0x5c,0x62,0x59,0x4f,0x4a,0x3a,0x39,0x50,
+0x74,0x89,0x8b,0x7f,0x7e,0x7c,0x75,0x74,0x5f,0x56,0x4b,0x40,0x33,0x2e,0x3c,0x50,
+0x5b,0x70,0x73,0x66,0x64,0x69,0x67,0x62,0x59,0x5a,0x5a,0x68,0x7b,0x90,0x9b,0x8c,
+0x81,0x65,0x44,0x30,0x29,0x27,0x29,0x2c,0x32,0x25,0x1c,0x1e,0x26,0x33,0x4a,0x5f,
+0x60,0x52,0x49,0x38,0x38,0x29,0x28,0x21,0x26,0x34,0x38,0x3b,0x42,0x40,0x3b,0x3f,
+0x42,0x43,0x47,0x48,0x3c,0x32,0x39,0x48,0x4d,0x4f,0x4c,0x4c,0x5c,0x6e,0x6e,0x61,
+0x64,0x65,0x5e,0x49,0x2e,0x1d,0x1a,0x1f,0x20,0x26,0x2c,0x2c,0x27,0x21,0x1d,0x1c,
+0x5a,0x57,0x57,0x59,0x5b,0x5a,0x5b,0x5c,0x68,0x68,0x67,0x63,0x5f,0x5e,0x5f,0x61,
+0x62,0x66,0x70,0x7c,0x83,0x83,0x81,0x80,0x77,0x7c,0x7f,0x7f,0x7d,0x7b,0x77,0x73,
+0x68,0x5f,0x5d,0x69,0x75,0x77,0x73,0x71,0x71,0x6e,0x6b,0x68,0x64,0x62,0x67,0x6d,
+0x6d,0x6f,0x68,0x69,0x5e,0x61,0x5d,0x60,0x58,0x5c,0x60,0x63,0x66,0x6b,0x6c,0x6c,
+0x66,0x67,0x6b,0x71,0x73,0x71,0x71,0x73,0x72,0x6d,0x67,0x63,0x61,0x61,0x64,0x68,
+0x6e,0x75,0x79,0x7d,0x80,0x79,0x71,0x70,0x77,0x6f,0x69,0x6a,0x70,0x71,0x69,0x60,
+0x6d,0x6e,0x6f,0x71,0x72,0x72,0x75,0x77,0x73,0x6a,0x60,0x5f,0x67,0x70,0x74,0x74,
+0x70,0x63,0x63,0x6b,0x6d,0x70,0x6e,0x63,0x61,0x74,0x80,0x82,0x75,0x74,0x79,0x81,
+0x76,0x77,0x73,0x73,0x79,0x79,0x74,0x75,0x74,0x74,0x76,0x77,0x77,0x78,0x7b,0x7e,
+0x7f,0x7e,0x80,0x84,0x83,0x7c,0x75,0x71,0x73,0x7a,0x80,0x7e,0x7a,0x79,0x78,0x77,
+0x6c,0x71,0x74,0x71,0x72,0x78,0x7d,0x7e,0x72,0x73,0x76,0x78,0x79,0x79,0x78,0x78,
+0x77,0x69,0x71,0x7b,0x85,0x8f,0x94,0xa7,0xb1,0xb6,0xbd,0xc2,0xc5,0xc4,0xc0,0xbe,
+0xba,0xba,0xbb,0xbe,0xc2,0xc4,0xc5,0xc6,0xc8,0xca,0xcc,0xcc,0xc8,0xc3,0xc0,0xbe,
+0xbd,0xbe,0xc0,0xc1,0xc1,0xc0,0xbe,0xbd,0xc0,0xbf,0xbe,0xbf,0xc0,0xc1,0xc0,0xbf,
+0xbf,0xbd,0xbb,0xba,0xba,0xb9,0xb7,0xb5,0xaa,0xa7,0xa6,0xa8,0xaa,0xaa,0xab,0xae,
+0xb1,0xb1,0xb0,0xb0,0xb1,0xb2,0xb3,0xb3,0xb2,0xb2,0xb2,0xb2,0xb1,0xad,0xa8,0xa4,
+0x9f,0x9d,0x9b,0x94,0x8a,0x83,0x86,0x8e,0x99,0xa1,0x8f,0x7a,0x64,0x7b,0xbb,0xc9,
+0xce,0xd2,0xd8,0xde,0xe3,0xe8,0xec,0xef,0xf1,0xf2,0xf4,0xf6,0xf7,0xf9,0xfa,0xfa,
+0xf9,0xf8,0xf7,0xf8,0xf9,0xf9,0xf7,0xf6,0xf7,0xf8,0xf9,0xfa,0xfb,0xfa,0xf9,0xf9,
+0xf7,0xf7,0xf6,0xf5,0xf5,0xf5,0xf5,0xf5,0xf8,0xf9,0xfb,0xfa,0xf9,0xf7,0xf7,0xf7,
+0xfa,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xf7,0xf7,0xf8,0xf9,0xfa,0xf9,0xf7,0xf5,
+0xf0,0xf0,0xec,0xe6,0xe1,0xde,0xd8,0xd2,0xce,0xc8,0xc5,0xc9,0xcc,0xcd,0xd3,0xdb,
+0xdf,0xe2,0xe5,0xe7,0xe6,0xe4,0xe3,0xe2,0xe3,0xe4,0xe5,0xe5,0xe6,0xe5,0xe4,0xe4,
+0xe4,0xe3,0xe3,0xe3,0xe3,0xe2,0xe0,0xde,0xdb,0xdb,0xdc,0xdc,0xdc,0xdd,0xdd,0xdd,
+0xde,0xde,0xdf,0xde,0xde,0xdd,0xdc,0xdb,0xdb,0xda,0xd9,0xda,0xdc,0xde,0xde,0xde,
+0xdf,0xe0,0xe0,0xdf,0xdd,0xdb,0xdb,0xdb,0xdc,0xdc,0xdc,0xdb,0xda,0xd8,0xd6,0xd5,
+0xd3,0xd2,0xd1,0xd1,0xd1,0xcf,0xcb,0xc8,0xcb,0xcb,0xcc,0xcb,0xc9,0xc9,0xc9,0xca,
+0xc5,0xc3,0xc1,0xc1,0xc1,0xbe,0xba,0xb6,0xb6,0xb5,0xb1,0xab,0xa9,0xa8,0xa1,0x97,
+0x84,0x7c,0x7c,0x88,0x90,0x8f,0x8d,0x8e,0x8f,0x8f,0x8e,0x8e,0x8d,0x8c,0x8b,0x8b,
+0x89,0x89,0x88,0x87,0x86,0x85,0x85,0x84,0x84,0x83,0x81,0x80,0x7f,0x7d,0x7b,0x79,
+0x7a,0x77,0x75,0x75,0x74,0x70,0x6c,0x6c,0x6c,0x6a,0x69,0x67,0x65,0x62,0x5f,0x5c,
+0x58,0x58,0x56,0x52,0x4e,0x4a,0x47,0x46,0x41,0x3b,0x39,0x39,0x31,0x25,0x27,0x33,
+0x4a,0x5b,0x64,0x5c,0x51,0x4e,0x4d,0x4a,0x4b,0x52,0x5e,0x68,0x69,0x65,0x65,0x69,
+0x6d,0x6f,0x71,0x6b,0x5f,0x59,0x65,0x76,0x70,0x69,0x58,0x4f,0x50,0x49,0x45,0x4e,
+0x67,0x6a,0x63,0x59,0x57,0x52,0x41,0x32,0x35,0x28,0x20,0x24,0x29,0x31,0x46,0x5d,
+0x60,0x5f,0x5a,0x58,0x57,0x49,0x3b,0x37,0x4d,0x5b,0x65,0x77,0x89,0x98,0x9c,0x88,
+0x6d,0x5e,0x4c,0x46,0x4d,0x51,0x48,0x3b,0x22,0x1e,0x1f,0x2b,0x3a,0x48,0x56,0x61,
+0x5e,0x53,0x4a,0x35,0x2d,0x22,0x33,0x3f,0x3f,0x4a,0x6b,0x78,0x6b,0x72,0x7a,0x68,
+0x6c,0x5f,0x46,0x31,0x35,0x49,0x57,0x58,0x60,0x58,0x50,0x4f,0x50,0x4a,0x3b,0x2c,
+0x27,0x32,0x35,0x29,0x1b,0x18,0x1b,0x1d,0x1f,0x22,0x1c,0x11,0x13,0x1e,0x1d,0x12,
+0x5b,0x5d,0x5d,0x5e,0x61,0x65,0x66,0x65,0x67,0x67,0x66,0x63,0x60,0x60,0x62,0x64,
+0x5d,0x63,0x70,0x7e,0x85,0x82,0x7b,0x77,0x81,0x82,0x82,0x7e,0x7a,0x77,0x74,0x70,
+0x6f,0x65,0x61,0x6a,0x75,0x77,0x73,0x6f,0x6e,0x6a,0x68,0x68,0x67,0x65,0x66,0x69,
+0x67,0x69,0x61,0x62,0x56,0x5a,0x57,0x5c,0x65,0x67,0x68,0x68,0x6b,0x6d,0x6c,0x68,
+0x70,0x6f,0x71,0x75,0x76,0x71,0x6c,0x69,0x6a,0x68,0x64,0x60,0x61,0x67,0x6a,0x6b,
+0x7f,0x80,0x7e,0x7e,0x7e,0x76,0x6f,0x73,0x6f,0x74,0x77,0x78,0x7c,0x7f,0x7c,0x75,
+0x77,0x79,0x79,0x74,0x6f,0x6f,0x74,0x79,0x80,0x78,0x6f,0x6d,0x71,0x77,0x7b,0x7c,
+0x7e,0x72,0x70,0x77,0x7a,0x79,0x71,0x64,0x65,0x7b,0x81,0x85,0x71,0x78,0x77,0x7f,
+0x7d,0x7c,0x74,0x70,0x74,0x73,0x72,0x75,0x73,0x73,0x73,0x73,0x74,0x76,0x76,0x76,
+0x7f,0x7d,0x7e,0x83,0x85,0x80,0x78,0x73,0x74,0x75,0x74,0x71,0x6f,0x71,0x74,0x76,
+0x7b,0x7d,0x7c,0x75,0x6c,0x6a,0x70,0x77,0x74,0x74,0x75,0x76,0x78,0x79,0x79,0x78,
+0x6e,0x64,0x6f,0x7e,0x89,0x8f,0x95,0xa8,0xb8,0xbb,0xc0,0xc4,0xc4,0xc1,0xbd,0xba,
+0xb8,0xbb,0xbf,0xc2,0xc3,0xc3,0xc3,0xc2,0xc4,0xc7,0xca,0xcb,0xc9,0xc5,0xc1,0xbe,
+0xbb,0xbc,0xbe,0xc0,0xc0,0xc0,0xbe,0xbd,0xc0,0xbf,0xbf,0xc0,0xc1,0xc1,0xc0,0xbf,
+0xbf,0xbe,0xbd,0xbd,0xbc,0xb9,0xb5,0xb3,0xb2,0xaf,0xac,0xad,0xad,0xac,0xac,0xae,
+0xac,0xab,0xab,0xab,0xac,0xae,0xaf,0xb1,0xb3,0xb3,0xb4,0xb4,0xb4,0xb1,0xae,0xab,
+0xa5,0xa1,0x9d,0x98,0x8c,0x81,0x82,0x8c,0x95,0xa1,0x96,0x84,0x66,0x6c,0xa9,0xcb,
+0xca,0xce,0xd6,0xdd,0xe3,0xe8,0xed,0xef,0xee,0xef,0xf1,0xf4,0xf6,0xf8,0xf9,0xfa,
+0xf9,0xf8,0xf7,0xf7,0xf8,0xf9,0xf8,0xf8,0xf8,0xf9,0xfa,0xfa,0xfa,0xfa,0xf9,0xf8,
+0xf8,0xf7,0xf7,0xf6,0xf6,0xf6,0xf6,0xf7,0xf9,0xf9,0xfa,0xf9,0xf7,0xf7,0xf7,0xf8,
+0xf9,0xf9,0xf9,0xf9,0xf9,0xf8,0xf8,0xf8,0xf7,0xf7,0xf7,0xf8,0xf7,0xf6,0xf2,0xf0,
+0xeb,0xea,0xe6,0xe0,0xdb,0xd7,0xd1,0xcc,0xc8,0xc5,0xc7,0xcc,0xce,0xce,0xd1,0xd6,
+0xdb,0xde,0xe2,0xe5,0xe5,0xe4,0xe3,0xe3,0xe3,0xe2,0xe2,0xe2,0xe2,0xe2,0xe3,0xe3,
+0xe3,0xe4,0xe4,0xe2,0xe0,0xde,0xde,0xdd,0xd8,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xde,
+0xe2,0xe0,0xde,0xdd,0xdc,0xdc,0xdc,0xdd,0xdc,0xdc,0xdd,0xdf,0xe0,0xe1,0xe0,0xdf,
+0xe0,0xe0,0xdf,0xdd,0xdb,0xda,0xda,0xdb,0xdd,0xdd,0xdd,0xdc,0xda,0xd7,0xd5,0xd3,
+0xd1,0xd1,0xd1,0xd1,0xd0,0xcd,0xc9,0xc6,0xcd,0xce,0xce,0xcc,0xca,0xc9,0xc9,0xc9,
+0xc3,0xc2,0xc0,0xc0,0xc0,0xbe,0xb9,0xb6,0xb7,0xb5,0xae,0xa7,0xa5,0xa2,0x98,0x8d,
+0x7d,0x7c,0x80,0x88,0x8d,0x8d,0x8b,0x8a,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,
+0x89,0x88,0x88,0x87,0x85,0x84,0x83,0x83,0x81,0x80,0x7e,0x7d,0x7c,0x7b,0x79,0x77,
+0x77,0x74,0x73,0x74,0x73,0x6f,0x6c,0x6b,0x6a,0x69,0x67,0x65,0x64,0x61,0x5e,0x5c,
+0x56,0x55,0x53,0x50,0x4c,0x48,0x45,0x43,0x43,0x38,0x33,0x33,0x2c,0x27,0x36,0x4e,
+0x5c,0x62,0x63,0x5c,0x5a,0x5d,0x5d,0x59,0x57,0x59,0x60,0x6b,0x71,0x6d,0x63,0x5d,
+0x61,0x62,0x64,0x63,0x61,0x62,0x66,0x6a,0x66,0x64,0x5f,0x5b,0x58,0x55,0x53,0x53,
+0x51,0x4e,0x49,0x3a,0x2a,0x28,0x2f,0x32,0x33,0x2c,0x24,0x23,0x2b,0x38,0x41,0x45,
+0x48,0x46,0x43,0x43,0x3d,0x2e,0x2b,0x37,0x56,0x71,0x82,0x8e,0x94,0x92,0x85,0x6a,
+0x51,0x56,0x55,0x50,0x4c,0x49,0x3e,0x31,0x29,0x27,0x29,0x34,0x46,0x56,0x61,0x66,
+0x5a,0x46,0x2e,0x1d,0x34,0x53,0x6d,0x70,0x89,0x98,0x89,0x7a,0x8a,0x8d,0x80,0x80,
+0x71,0x55,0x39,0x33,0x3e,0x4a,0x52,0x56,0x4a,0x41,0x3d,0x40,0x3c,0x30,0x2c,0x2f,
+0x45,0x46,0x49,0x49,0x42,0x3c,0x41,0x4c,0x4e,0x3f,0x37,0x36,0x28,0x1c,0x30,0x52,
+0x5d,0x5e,0x5d,0x5a,0x5d,0x66,0x6a,0x68,0x65,0x66,0x65,0x62,0x5f,0x5f,0x61,0x64,
+0x6f,0x6a,0x68,0x6a,0x6d,0x70,0x74,0x78,0x80,0x81,0x7d,0x75,0x6f,0x6d,0x6d,0x6e,
+0x72,0x69,0x65,0x6c,0x76,0x77,0x71,0x6b,0x67,0x63,0x62,0x64,0x67,0x67,0x66,0x67,
+0x6e,0x71,0x6a,0x6a,0x5d,0x5e,0x59,0x5c,0x64,0x68,0x6c,0x6f,0x73,0x78,0x7a,0x78,
+0x75,0x6f,0x6c,0x6f,0x73,0x70,0x69,0x64,0x64,0x65,0x62,0x5e,0x62,0x6c,0x71,0x6f,
+0x6e,0x79,0x85,0x8e,0x8b,0x76,0x65,0x63,0x76,0x84,0x88,0x7b,0x6c,0x6c,0x74,0x79,
+0x7a,0x7b,0x77,0x6f,0x69,0x69,0x6d,0x71,0x7e,0x79,0x73,0x70,0x70,0x70,0x70,0x6e,
+0x6b,0x6c,0x72,0x79,0x79,0x77,0x76,0x75,0x78,0x8e,0x8d,0x90,0x74,0x7e,0x75,0x7a,
+0x7a,0x7b,0x75,0x70,0x73,0x71,0x6f,0x72,0x72,0x73,0x72,0x70,0x6f,0x71,0x73,0x73,
+0x7b,0x75,0x74,0x7b,0x82,0x80,0x77,0x70,0x73,0x6d,0x67,0x63,0x65,0x6b,0x70,0x71,
+0x74,0x78,0x7b,0x77,0x6d,0x66,0x6a,0x74,0x7c,0x78,0x74,0x70,0x6f,0x71,0x73,0x74,
+0x6d,0x67,0x6e,0x79,0x7c,0x7f,0x8f,0xaa,0xbc,0xbe,0xc1,0xc2,0xc2,0xc0,0xbd,0xbb,
+0xbf,0xc1,0xc3,0xc3,0xc0,0xbf,0xbe,0xbf,0xc0,0xc2,0xc5,0xc7,0xc7,0xc5,0xc2,0xc0,
+0xbc,0xbd,0xbf,0xc1,0xc1,0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc1,0xbf,0xbe,
+0xbe,0xbd,0xbd,0xbd,0xbc,0xbb,0xb9,0xb8,0xb4,0xb0,0xae,0xae,0xae,0xad,0xad,0xae,
+0xab,0xaa,0xaa,0xa9,0xa8,0xa9,0xab,0xad,0xaf,0xb0,0xb1,0xb3,0xb4,0xb3,0xb2,0xb1,
+0xad,0xa5,0x9e,0x97,0x8a,0x7e,0x80,0x8a,0x8f,0x9e,0x9b,0x8d,0x6c,0x60,0x93,0xc7,
+0xc7,0xcc,0xd5,0xde,0xe5,0xeb,0xf0,0xf2,0xed,0xee,0xf0,0xf2,0xf5,0xf7,0xf8,0xf9,
+0xf9,0xf8,0xf7,0xf7,0xf7,0xf8,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,0xf9,0xf9,0xf8,
+0xf9,0xf8,0xf8,0xf7,0xf7,0xf7,0xf7,0xf8,0xf6,0xf6,0xf6,0xf6,0xf6,0xf7,0xf8,0xf9,
+0xf8,0xf8,0xf8,0xf8,0xf8,0xf7,0xf7,0xf7,0xf8,0xf7,0xf7,0xf6,0xf4,0xf0,0xec,0xe9,
+0xe9,0xe6,0xe1,0xdc,0xd6,0xd1,0xcb,0xc7,0xc7,0xc6,0xc9,0xce,0xd0,0xcf,0xd1,0xd5,
+0xdb,0xde,0xe1,0xe3,0xe4,0xe4,0xe5,0xe5,0xe2,0xe2,0xe2,0xe1,0xe1,0xe0,0xe0,0xe0,
+0xe0,0xe1,0xe2,0xe0,0xdc,0xda,0xda,0xdb,0xd9,0xda,0xdb,0xdc,0xde,0xdf,0xe0,0xe1,
+0xe3,0xe2,0xe0,0xdf,0xde,0xdf,0xdf,0xe0,0xe1,0xe1,0xe2,0xe3,0xe4,0xe3,0xe0,0xde,
+0xdd,0xdc,0xdb,0xda,0xd9,0xd9,0xda,0xdb,0xdc,0xdc,0xdd,0xdc,0xdb,0xd8,0xd6,0xd4,
+0xd0,0xd0,0xd0,0xd0,0xce,0xcc,0xca,0xc8,0xcf,0xcf,0xcf,0xcd,0xcb,0xc9,0xc9,0xc9,
+0xc4,0xc2,0xc0,0xc0,0xc0,0xbe,0xba,0xb7,0xb8,0xb4,0xad,0xa5,0xa1,0x9d,0x92,0x85,
+0x78,0x7e,0x83,0x86,0x89,0x8b,0x8b,0x89,0x8b,0x8b,0x8b,0x8b,0x8a,0x8a,0x89,0x88,
+0x88,0x88,0x87,0x86,0x84,0x83,0x82,0x81,0x7f,0x7d,0x7c,0x7b,0x7b,0x7a,0x77,0x76,
+0x74,0x72,0x71,0x73,0x72,0x6e,0x6b,0x6a,0x69,0x67,0x65,0x64,0x63,0x60,0x5e,0x5b,
+0x56,0x54,0x51,0x4e,0x4b,0x47,0x44,0x41,0x3d,0x37,0x32,0x30,0x2b,0x2e,0x42,0x59,
+0x5e,0x64,0x69,0x6c,0x6f,0x70,0x6b,0x63,0x5a,0x55,0x55,0x5d,0x65,0x65,0x5c,0x52,
+0x46,0x41,0x41,0x4d,0x61,0x6f,0x6c,0x61,0x5b,0x59,0x5b,0x5f,0x63,0x6f,0x76,0x74,
+0x63,0x48,0x35,0x2a,0x21,0x23,0x26,0x1f,0x1f,0x24,0x20,0x19,0x25,0x3d,0x45,0x3c,
+0x4a,0x4b,0x42,0x35,0x2c,0x28,0x31,0x42,0x51,0x78,0x8f,0x99,0x9a,0x90,0x7e,0x63,
+0x66,0x6a,0x69,0x5d,0x4c,0x40,0x38,0x35,0x31,0x39,0x45,0x50,0x5a,0x5f,0x5c,0x55,
+0x4a,0x29,0x1d,0x35,0x57,0x66,0x76,0x85,0x85,0x85,0x8a,0x89,0x81,0x81,0x7c,0x6c,
+0x50,0x43,0x3f,0x47,0x4a,0x43,0x42,0x49,0x47,0x40,0x3b,0x36,0x2e,0x2c,0x3f,0x57,
+0x56,0x59,0x5b,0x57,0x53,0x54,0x58,0x5b,0x58,0x56,0x4f,0x44,0x3c,0x39,0x39,0x3b,
+0x56,0x59,0x59,0x58,0x5d,0x68,0x6d,0x6c,0x67,0x68,0x67,0x64,0x61,0x5f,0x61,0x62,
+0x5c,0x62,0x6d,0x78,0x7a,0x72,0x67,0x60,0x71,0x76,0x77,0x70,0x69,0x68,0x6c,0x6f,
+0x6a,0x65,0x63,0x6b,0x74,0x76,0x70,0x6a,0x60,0x5b,0x5a,0x5f,0x65,0x68,0x68,0x68,
+0x6d,0x72,0x6e,0x6f,0x60,0x5f,0x57,0x5a,0x62,0x69,0x6f,0x71,0x74,0x78,0x7c,0x7d,
+0x6f,0x68,0x64,0x69,0x70,0x70,0x6a,0x64,0x5f,0x61,0x60,0x5c,0x61,0x6b,0x72,0x71,
+0x76,0x7a,0x79,0x74,0x6d,0x63,0x63,0x6e,0x7a,0x87,0x89,0x76,0x65,0x67,0x77,0x83,
+0x92,0x90,0x89,0x80,0x7b,0x7b,0x7b,0x7a,0x6e,0x6d,0x6d,0x6e,0x70,0x6f,0x6c,0x6a,
+0x6a,0x6e,0x73,0x74,0x73,0x70,0x72,0x79,0x6b,0x82,0x80,0x80,0x64,0x6f,0x65,0x66,
+0x6e,0x77,0x7b,0x7d,0x7f,0x77,0x6d,0x6c,0x71,0x74,0x73,0x6d,0x69,0x6c,0x72,0x75,
+0x71,0x69,0x66,0x6f,0x7b,0x7d,0x76,0x6e,0x62,0x5c,0x59,0x5d,0x66,0x6c,0x6c,0x6b,
+0x71,0x74,0x77,0x73,0x69,0x60,0x60,0x67,0x7c,0x79,0x74,0x6f,0x6b,0x6a,0x6c,0x6d,
+0x71,0x70,0x70,0x72,0x6d,0x72,0x92,0xb3,0xbf,0xc0,0xc0,0xc1,0xc1,0xc1,0xc1,0xc1,
+0xc5,0xc5,0xc3,0xc0,0xbd,0xbc,0xbe,0xc0,0xc2,0xc3,0xc4,0xc5,0xc5,0xc4,0xc3,0xc2,
+0xbd,0xbe,0xc0,0xc1,0xc2,0xc2,0xc1,0xc0,0xc0,0xc0,0xc0,0xc0,0xc1,0xc1,0xbf,0xbd,
+0xbe,0xbe,0xbd,0xbc,0xbb,0xbb,0xbc,0xbd,0xb3,0xb0,0xae,0xaf,0xb1,0xb0,0xb1,0xb3,
+0xaf,0xaf,0xae,0xac,0xa9,0xa9,0xaa,0xab,0xab,0xac,0xae,0xaf,0xb0,0xb0,0xb1,0xb1,
+0xaf,0xa6,0x9f,0x98,0x8c,0x7e,0x7c,0x82,0x8d,0x9b,0x9e,0x95,0x74,0x57,0x7a,0xb6,
+0xc1,0xc7,0xd0,0xda,0xe2,0xe8,0xed,0xf0,0xed,0xee,0xf0,0xf2,0xf4,0xf6,0xf7,0xf8,
+0xf8,0xf8,0xf8,0xf7,0xf7,0xf7,0xf9,0xfa,0xf9,0xf9,0xfa,0xfa,0xf9,0xf9,0xf9,0xf9,
+0xf7,0xf7,0xf6,0xf6,0xf5,0xf5,0xf5,0xf5,0xf4,0xf4,0xf3,0xf3,0xf4,0xf5,0xf6,0xf6,
+0xf5,0xf6,0xf6,0xf7,0xf7,0xf6,0xf5,0xf5,0xf7,0xf6,0xf6,0xf5,0xf2,0xee,0xe9,0xe6,
+0xe3,0xdf,0xd9,0xd3,0xce,0xc8,0xc4,0xc2,0xc5,0xc6,0xc8,0xcb,0xcc,0xcd,0xcf,0xd3,
+0xdd,0xde,0xe0,0xe1,0xe1,0xe2,0xe4,0xe5,0xe2,0xe2,0xe3,0xe2,0xe1,0xdf,0xde,0xdc,
+0xdc,0xdd,0xdd,0xdb,0xd8,0xd6,0xd6,0xd8,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,
+0xe2,0xe3,0xe3,0xe3,0xe3,0xe3,0xe3,0xe3,0xe4,0xe4,0xe4,0xe4,0xe3,0xe1,0xdd,0xdb,
+0xda,0xd9,0xd9,0xd9,0xda,0xdb,0xdc,0xdd,0xdc,0xdc,0xdc,0xdb,0xda,0xd7,0xd5,0xd3,
+0xcf,0xcf,0xce,0xcd,0xcc,0xcc,0xcc,0xcd,0xd0,0xd0,0xd0,0xce,0xcb,0xc9,0xc9,0xc9,
+0xc7,0xc5,0xc2,0xc2,0xc1,0xc0,0xbc,0xb9,0xb8,0xb5,0xad,0xa4,0x9e,0x98,0x8c,0x7f,
+0x78,0x7f,0x84,0x84,0x84,0x87,0x8a,0x8a,0x8b,0x8b,0x8a,0x8a,0x88,0x87,0x86,0x85,
+0x87,0x87,0x86,0x85,0x83,0x82,0x81,0x80,0x7e,0x7d,0x7b,0x7b,0x7a,0x79,0x77,0x75,
+0x73,0x70,0x70,0x71,0x70,0x6d,0x6a,0x69,0x68,0x66,0x64,0x62,0x61,0x5f,0x5d,0x5b,
+0x56,0x53,0x50,0x4d,0x4a,0x47,0x42,0x3f,0x33,0x36,0x35,0x2f,0x2d,0x36,0x44,0x4d,
+0x57,0x5d,0x65,0x6c,0x6f,0x6d,0x66,0x5f,0x56,0x4f,0x47,0x48,0x4f,0x55,0x53,0x4e,
+0x36,0x38,0x3d,0x47,0x56,0x61,0x61,0x5c,0x5a,0x56,0x5b,0x68,0x73,0x76,0x68,0x51,
+0x3e,0x29,0x22,0x28,0x28,0x2a,0x26,0x19,0x19,0x1b,0x17,0x12,0x19,0x2b,0x35,0x35,
+0x46,0x3d,0x30,0x2a,0x2c,0x2e,0x35,0x42,0x5e,0x87,0x99,0x9a,0x93,0x80,0x6d,0x59,
+0x61,0x53,0x47,0x41,0x39,0x2e,0x2a,0x2d,0x35,0x3f,0x4a,0x4e,0x4e,0x4c,0x48,0x44,
+0x17,0x34,0x5a,0x78,0x7d,0x78,0x6f,0x6e,0x86,0x78,0x7c,0x87,0x83,0x73,0x5d,0x45,
+0x44,0x4f,0x53,0x4b,0x43,0x42,0x43,0x41,0x39,0x36,0x32,0x2f,0x35,0x48,0x66,0x7d,
+0x79,0x8b,0x91,0x84,0x7c,0x7b,0x6b,0x54,0x53,0x56,0x50,0x47,0x49,0x56,0x5d,0x59,
+0x5b,0x5d,0x5f,0x61,0x65,0x6a,0x6b,0x69,0x62,0x64,0x65,0x65,0x63,0x63,0x65,0x66,
+0x6e,0x68,0x63,0x62,0x63,0x65,0x68,0x6c,0x6a,0x72,0x77,0x73,0x6c,0x69,0x69,0x6a,
+0x64,0x62,0x64,0x6b,0x74,0x77,0x75,0x70,0x67,0x60,0x5b,0x5d,0x61,0x62,0x62,0x63,
+0x61,0x66,0x63,0x65,0x56,0x56,0x50,0x54,0x67,0x6e,0x72,0x72,0x71,0x72,0x74,0x76,
+0x6e,0x69,0x67,0x6b,0x6e,0x6b,0x65,0x60,0x60,0x61,0x5f,0x5d,0x5f,0x67,0x6f,0x73,
+0x7b,0x82,0x80,0x77,0x6d,0x63,0x61,0x68,0x6d,0x72,0x72,0x6b,0x6a,0x72,0x7e,0x85,
+0x7a,0x78,0x72,0x6c,0x6d,0x73,0x74,0x70,0x6c,0x6c,0x6d,0x70,0x73,0x74,0x72,0x6f,
+0x73,0x78,0x7a,0x7c,0x7d,0x73,0x68,0x67,0x73,0x89,0x89,0x84,0x71,0x7f,0x7b,0x7a,
+0x7d,0x83,0x84,0x82,0x7f,0x75,0x6b,0x6b,0x70,0x74,0x73,0x6a,0x66,0x6b,0x72,0x76,
+0x68,0x62,0x60,0x68,0x73,0x77,0x75,0x72,0x72,0x70,0x75,0x7e,0x86,0x85,0x7e,0x78,
+0x85,0x86,0x85,0x82,0x7c,0x79,0x78,0x79,0x72,0x75,0x76,0x73,0x6d,0x69,0x68,0x69,
+0x70,0x73,0x6d,0x6c,0x69,0x74,0x9d,0xbc,0xc0,0xc0,0xc1,0xc2,0xc3,0xc5,0xc6,0xc7,
+0xc5,0xc3,0xc1,0xbe,0xbc,0xbe,0xc1,0xc4,0xc8,0xc6,0xc5,0xc5,0xc5,0xc4,0xc3,0xc1,
+0xbe,0xbf,0xc0,0xc0,0xc1,0xc0,0xbf,0xbf,0xbf,0xbf,0xbf,0xc0,0xc1,0xc0,0xbe,0xbc,
+0xbf,0xbe,0xbd,0xbb,0xba,0xb9,0xbb,0xbc,0xb9,0xb4,0xb1,0xb0,0xaf,0xad,0xac,0xad,
+0xaf,0xb0,0xb0,0xad,0xa9,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xac,0xac,0xac,0xad,
+0xab,0xa6,0xa1,0x9b,0x91,0x83,0x7a,0x75,0x88,0x95,0x9b,0x9b,0x84,0x5e,0x6d,0xa9,
+0xc0,0xc5,0xce,0xd6,0xde,0xe4,0xea,0xed,0xec,0xed,0xef,0xf2,0xf4,0xf6,0xf7,0xf8,
+0xf8,0xf8,0xf9,0xf8,0xf7,0xf7,0xf8,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,
+0xf8,0xf8,0xf7,0xf6,0xf5,0xf5,0xf5,0xf5,0xf5,0xf4,0xf3,0xf3,0xf3,0xf3,0xf2,0xf1,
+0xf2,0xf3,0xf4,0xf5,0xf5,0xf5,0xf4,0xf4,0xf4,0xf4,0xf3,0xf3,0xf1,0xed,0xe8,0xe4,
+0xdd,0xd7,0xd0,0xcb,0xc7,0xc3,0xc1,0xc1,0xc7,0xc9,0xca,0xcb,0xcb,0xcc,0xd0,0xd3,
+0xdc,0xdd,0xde,0xdf,0xde,0xdf,0xe0,0xe2,0xe2,0xe2,0xe2,0xe2,0xe1,0xdf,0xdd,0xdb,
+0xdd,0xdd,0xdd,0xdb,0xd9,0xd9,0xd9,0xda,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe1,
+0xe2,0xe3,0xe4,0xe6,0xe6,0xe6,0xe5,0xe4,0xe4,0xe3,0xe2,0xe1,0xe0,0xde,0xdb,0xd9,
+0xdb,0xda,0xda,0xdb,0xdc,0xdd,0xdd,0xdd,0xdd,0xdc,0xdb,0xd9,0xd6,0xd4,0xd2,0xd0,
+0xcf,0xcf,0xce,0xcd,0xcc,0xcd,0xce,0xd0,0xcf,0xcf,0xcf,0xce,0xcc,0xca,0xca,0xcb,
+0xca,0xc8,0xc5,0xc3,0xc3,0xc1,0xbd,0xba,0xb8,0xb6,0xae,0xa3,0x9a,0x92,0x86,0x79,
+0x79,0x7f,0x83,0x83,0x82,0x84,0x88,0x8a,0x8b,0x8a,0x8a,0x89,0x88,0x86,0x85,0x84,
+0x86,0x85,0x84,0x83,0x82,0x81,0x80,0x80,0x7e,0x7d,0x7c,0x7b,0x7a,0x78,0x76,0x74,
+0x73,0x70,0x6e,0x6f,0x6e,0x6b,0x69,0x69,0x67,0x65,0x62,0x60,0x5f,0x5d,0x5a,0x58,
+0x56,0x52,0x4e,0x4b,0x48,0x44,0x3f,0x3b,0x33,0x35,0x2f,0x27,0x2f,0x43,0x52,0x55,
+0x5e,0x5f,0x62,0x67,0x69,0x66,0x62,0x60,0x53,0x4b,0x40,0x3a,0x3d,0x45,0x49,0x48,
+0x48,0x4a,0x4d,0x51,0x55,0x57,0x58,0x59,0x57,0x5d,0x64,0x6b,0x6a,0x5d,0x49,0x3b,
+0x2e,0x2c,0x30,0x33,0x2e,0x2b,0x2b,0x29,0x21,0x1d,0x21,0x28,0x26,0x1f,0x22,0x2c,
+0x35,0x2d,0x2b,0x36,0x3b,0x33,0x3d,0x56,0x80,0xa1,0xa2,0x91,0x7b,0x5a,0x43,0x37,
+0x36,0x29,0x21,0x21,0x1d,0x17,0x1d,0x2a,0x46,0x4e,0x56,0x52,0x44,0x35,0x2c,0x29,
+0x67,0x74,0x74,0x6e,0x63,0x6a,0x69,0x68,0x86,0x7f,0x66,0x5e,0x63,0x4a,0x30,0x39,
+0x46,0x48,0x47,0x41,0x38,0x32,0x32,0x34,0x38,0x33,0x2c,0x2b,0x38,0x4a,0x53,0x53,
+0x55,0x3f,0x28,0x1f,0x1b,0x1a,0x23,0x30,0x39,0x39,0x3f,0x4a,0x50,0x55,0x5f,0x6a,
+0x65,0x63,0x63,0x65,0x65,0x62,0x60,0x60,0x63,0x66,0x69,0x6a,0x68,0x67,0x68,0x69,
+0x6a,0x65,0x61,0x61,0x62,0x63,0x66,0x69,0x71,0x75,0x76,0x73,0x6f,0x6d,0x6b,0x69,
+0x66,0x66,0x68,0x6c,0x72,0x77,0x78,0x77,0x71,0x68,0x5f,0x5c,0x5d,0x5e,0x5f,0x61,
+0x66,0x69,0x63,0x62,0x54,0x57,0x56,0x5d,0x60,0x65,0x6a,0x6c,0x6f,0x73,0x76,0x76,
+0x6e,0x6d,0x6d,0x6b,0x67,0x63,0x63,0x66,0x69,0x67,0x65,0x64,0x63,0x67,0x70,0x7a,
+0x92,0x91,0x7e,0x66,0x5d,0x5f,0x67,0x70,0x63,0x5e,0x5a,0x5b,0x62,0x69,0x6b,0x6a,
+0x67,0x67,0x63,0x60,0x67,0x73,0x78,0x77,0x6f,0x6b,0x67,0x67,0x6b,0x6e,0x6e,0x6c,
+0x67,0x6e,0x70,0x74,0x7a,0x71,0x64,0x65,0x78,0x8a,0x8b,0x7f,0x74,0x81,0x85,0x82,
+0x8f,0x90,0x87,0x7b,0x74,0x6c,0x68,0x6c,0x6e,0x72,0x70,0x68,0x66,0x6c,0x72,0x73,
+0x67,0x65,0x66,0x6a,0x6d,0x6f,0x73,0x77,0x76,0x78,0x7f,0x86,0x85,0x7c,0x73,0x6f,
+0x6b,0x6d,0x6e,0x70,0x77,0x7e,0x7e,0x79,0x6a,0x70,0x76,0x74,0x6d,0x67,0x67,0x69,
+0x6c,0x72,0x69,0x6d,0x75,0x87,0xac,0xbd,0xbe,0xbf,0xc1,0xc3,0xc4,0xc5,0xc6,0xc6,
+0xc1,0xc0,0xbf,0xbf,0xc0,0xc2,0xc3,0xc3,0xc6,0xc5,0xc5,0xc6,0xc7,0xc6,0xc3,0xc1,
+0xc0,0xc1,0xc1,0xc1,0xc0,0xbf,0xbe,0xbd,0xbf,0xbe,0xbf,0xc0,0xc0,0xbf,0xbd,0xba,
+0xbb,0xbc,0xbc,0xbb,0xb9,0xb8,0xb9,0xba,0xb6,0xb1,0xad,0xab,0xa8,0xa4,0xa2,0xa2,
+0xab,0xad,0xaf,0xad,0xa9,0xa7,0xa7,0xa8,0xaa,0xab,0xac,0xac,0xaa,0xaa,0xab,0xac,
+0xa9,0xa8,0xa3,0x9b,0x93,0x89,0x7a,0x6e,0x81,0x8c,0x94,0x9b,0x91,0x67,0x63,0x9a,
+0xc6,0xca,0xd1,0xd7,0xde,0xe3,0xe8,0xeb,0xea,0xeb,0xee,0xf1,0xf4,0xf6,0xf7,0xf8,
+0xf7,0xf9,0xfa,0xf9,0xf8,0xf6,0xf7,0xf8,0xf9,0xf9,0xf9,0xf9,0xf9,0xfa,0xfa,0xfa,
+0xf9,0xf9,0xf7,0xf6,0xf5,0xf4,0xf4,0xf4,0xf4,0xf3,0xf2,0xf3,0xf4,0xf3,0xf1,0xef,
+0xef,0xf0,0xf2,0xf3,0xf4,0xf4,0xf3,0xf3,0xf2,0xf1,0xf0,0xef,0xec,0xe7,0xe1,0xdd,
+0xd7,0xcf,0xc8,0xc5,0xc3,0xc1,0xc2,0xc5,0xc9,0xcc,0xce,0xcd,0xcc,0xce,0xd1,0xd3,
+0xd8,0xdb,0xdd,0xdf,0xdf,0xde,0xdd,0xdd,0xe1,0xe0,0xe0,0xdf,0xdf,0xde,0xdd,0xdd,
+0xde,0xdd,0xdb,0xdb,0xdb,0xdc,0xdc,0xdc,0xdb,0xdc,0xdd,0xde,0xdf,0xe1,0xe2,0xe2,
+0xe2,0xe3,0xe4,0xe5,0xe5,0xe5,0xe4,0xe3,0xe3,0xe1,0xdf,0xde,0xde,0xdf,0xde,0xdd,
+0xdf,0xdd,0xdc,0xdc,0xdd,0xdd,0xdb,0xd9,0xd9,0xd8,0xd6,0xd4,0xd2,0xd1,0xd0,0xd0,
+0xd0,0xd0,0xd1,0xd0,0xce,0xcd,0xcf,0xd0,0xcd,0xce,0xce,0xcd,0xcc,0xcb,0xcb,0xcc,
+0xcd,0xca,0xc7,0xc5,0xc4,0xc2,0xbe,0xbb,0xb7,0xb7,0xb0,0xa2,0x95,0x8b,0x7e,0x73,
+0x79,0x7c,0x81,0x83,0x82,0x81,0x84,0x89,0x88,0x88,0x88,0x87,0x86,0x85,0x84,0x83,
+0x84,0x84,0x83,0x82,0x82,0x81,0x80,0x80,0x7f,0x7d,0x7c,0x7a,0x79,0x78,0x75,0x73,
+0x74,0x70,0x6e,0x6e,0x6d,0x6a,0x69,0x69,0x65,0x63,0x60,0x5e,0x5c,0x5a,0x57,0x56,
+0x54,0x50,0x4b,0x47,0x45,0x41,0x3b,0x36,0x37,0x31,0x29,0x2a,0x3c,0x55,0x63,0x65,
+0x64,0x62,0x64,0x6a,0x6c,0x67,0x62,0x61,0x51,0x4a,0x3f,0x35,0x35,0x3a,0x3c,0x3a,
+0x2f,0x2c,0x2f,0x37,0x3d,0x3f,0x45,0x4b,0x5f,0x68,0x65,0x5a,0x51,0x47,0x50,0x68,
+0x73,0x69,0x55,0x45,0x40,0x39,0x2e,0x28,0x28,0x2c,0x36,0x3e,0x3a,0x32,0x33,0x3c,
+0x40,0x3d,0x3c,0x3e,0x39,0x2e,0x3b,0x59,0x75,0x90,0x8b,0x79,0x62,0x40,0x2f,0x2e,
+0x2e,0x2b,0x2a,0x2b,0x27,0x25,0x30,0x40,0x48,0x40,0x37,0x30,0x31,0x41,0x61,0x7d,
+0x5d,0x45,0x43,0x6f,0x77,0x6a,0x5e,0x6f,0x53,0x49,0x52,0x4b,0x24,0x1b,0x33,0x3e,
+0x3d,0x33,0x32,0x3a,0x37,0x28,0x24,0x2c,0x22,0x22,0x26,0x36,0x4e,0x61,0x63,0x5c,
+0x33,0x24,0x32,0x5f,0x78,0x74,0x7b,0x91,0x77,0x6b,0x57,0x4f,0x67,0x86,0x89,0x77,
+0x73,0x6c,0x68,0x69,0x68,0x64,0x64,0x68,0x72,0x74,0x75,0x73,0x6d,0x68,0x65,0x64,
+0x66,0x61,0x5e,0x60,0x64,0x68,0x6d,0x72,0x77,0x75,0x71,0x6e,0x6f,0x73,0x74,0x72,
+0x6a,0x6a,0x69,0x69,0x6d,0x72,0x75,0x75,0x70,0x67,0x5e,0x5b,0x5d,0x61,0x65,0x69,
+0x6d,0x6d,0x63,0x5f,0x50,0x56,0x58,0x62,0x65,0x67,0x68,0x68,0x69,0x6b,0x69,0x66,
+0x68,0x6a,0x6b,0x67,0x5f,0x5f,0x6a,0x77,0x73,0x6f,0x6d,0x6c,0x69,0x6a,0x74,0x82,
+0x87,0x88,0x76,0x5f,0x58,0x5a,0x5a,0x5a,0x5b,0x55,0x52,0x5a,0x64,0x6b,0x6e,0x6f,
+0x67,0x68,0x64,0x60,0x67,0x74,0x7d,0x7e,0x76,0x6e,0x65,0x63,0x68,0x6e,0x71,0x72,
+0x76,0x7a,0x71,0x68,0x69,0x63,0x62,0x70,0x81,0x8f,0x8f,0x79,0x72,0x7c,0x85,0x81,
+0x89,0x8b,0x84,0x7a,0x73,0x6b,0x67,0x6b,0x6d,0x70,0x6d,0x67,0x68,0x6f,0x72,0x70,
+0x6b,0x6d,0x70,0x6e,0x69,0x68,0x70,0x79,0x82,0x86,0x8b,0x8d,0x86,0x7c,0x77,0x79,
+0x7e,0x7f,0x7e,0x7d,0x84,0x8a,0x82,0x74,0x68,0x6f,0x74,0x70,0x68,0x63,0x66,0x6b,
+0x6b,0x72,0x69,0x73,0x84,0x9b,0xb9,0xbc,0xbb,0xbd,0xc0,0xc3,0xc4,0xc4,0xc2,0xc1,
+0xbf,0xbf,0xc0,0xc2,0xc4,0xc4,0xc1,0xbf,0xc0,0xc1,0xc3,0xc6,0xc8,0xc8,0xc5,0xc2,
+0xc3,0xc3,0xc2,0xc2,0xc0,0xbf,0xbe,0xbd,0xbe,0xbe,0xbf,0xbf,0xc0,0xbf,0xbc,0xba,
+0xb6,0xb9,0xbb,0xbb,0xb9,0xb8,0xb8,0xb9,0xb6,0xb2,0xaf,0xaf,0xaf,0xad,0xac,0xae,
+0xaa,0xad,0xb0,0xaf,0xac,0xaa,0xaa,0xac,0xa8,0xaa,0xab,0xab,0xab,0xab,0xad,0xaf,
+0xac,0xaa,0xa2,0x97,0x90,0x8b,0x7d,0x6e,0x80,0x87,0x8d,0x97,0x93,0x65,0x54,0x85,
+0xca,0xce,0xd3,0xd8,0xdd,0xe2,0xe6,0xe9,0xe8,0xe9,0xec,0xf0,0xf3,0xf6,0xf8,0xf9,
+0xf7,0xf9,0xfb,0xfa,0xf8,0xf6,0xf6,0xf7,0xf8,0xf8,0xf8,0xf9,0xf9,0xfa,0xfb,0xfb,
+0xf7,0xf6,0xf5,0xf3,0xf2,0xf1,0xf0,0xf0,0xf1,0xf1,0xf1,0xf3,0xf5,0xf5,0xf3,0xf1,
+0xee,0xef,0xf1,0xf2,0xf3,0xf3,0xf3,0xf2,0xf1,0xf0,0xee,0xeb,0xe7,0xe0,0xd8,0xd3,
+0xd0,0xc8,0xc1,0xbf,0xbf,0xbe,0xc2,0xc6,0xc9,0xcc,0xcf,0xce,0xcc,0xcd,0xcf,0xd1,
+0xd5,0xd9,0xde,0xe1,0xe1,0xdf,0xdd,0xdb,0xe0,0xdf,0xdd,0xdc,0xdc,0xdd,0xdf,0xe0,
+0xda,0xd8,0xd7,0xd7,0xd9,0xda,0xda,0xd9,0xdb,0xdc,0xdd,0xdf,0xe1,0xe2,0xe4,0xe4,
+0xe3,0xe3,0xe3,0xe3,0xe3,0xe2,0xe2,0xe2,0xe2,0xe0,0xde,0xdd,0xdf,0xe1,0xe3,0xe3,
+0xe1,0xdf,0xdd,0xdd,0xdc,0xda,0xd6,0xd3,0xd5,0xd3,0xd2,0xd0,0xd0,0xd0,0xd1,0xd1,
+0xd0,0xd1,0xd3,0xd2,0xd0,0xce,0xce,0xcf,0xcc,0xcd,0xcd,0xcd,0xcc,0xcb,0xcc,0xcd,
+0xce,0xcb,0xc7,0xc5,0xc4,0xc2,0xbe,0xbb,0xb7,0xb7,0xb0,0xa1,0x92,0x85,0x78,0x6e,
+0x78,0x79,0x7f,0x83,0x82,0x7f,0x81,0x87,0x84,0x85,0x85,0x85,0x84,0x84,0x83,0x82,
+0x83,0x83,0x83,0x82,0x81,0x81,0x80,0x80,0x7f,0x7d,0x7b,0x7a,0x79,0x77,0x74,0x72,
+0x75,0x71,0x6d,0x6d,0x6c,0x69,0x68,0x69,0x64,0x62,0x5f,0x5c,0x5a,0x58,0x55,0x53,
+0x52,0x4e,0x48,0x45,0x42,0x3e,0x37,0x33,0x32,0x2c,0x2b,0x3b,0x51,0x60,0x62,0x5d,
+0x5b,0x5a,0x60,0x6b,0x6f,0x67,0x5d,0x58,0x50,0x4a,0x3f,0x35,0x32,0x34,0x32,0x2c,
+0x30,0x31,0x36,0x3b,0x39,0x37,0x43,0x53,0x63,0x6d,0x66,0x58,0x4c,0x38,0x38,0x52,
+0x70,0x7a,0x70,0x5b,0x51,0x4d,0x50,0x5e,0x6c,0x73,0x6b,0x52,0x40,0x3e,0x3f,0x3c,
+0x3c,0x37,0x27,0x1a,0x1a,0x22,0x2f,0x3f,0x56,0x70,0x6d,0x61,0x52,0x35,0x2c,0x34,
+0x23,0x1d,0x18,0x1a,0x21,0x29,0x2e,0x30,0x39,0x3b,0x41,0x46,0x40,0x37,0x3a,0x44,
+0x3d,0x4e,0x57,0x65,0x5d,0x62,0x57,0x55,0x6f,0x5e,0x3d,0x26,0x23,0x24,0x27,0x32,
+0x32,0x36,0x38,0x36,0x35,0x37,0x37,0x33,0x32,0x36,0x43,0x58,0x6e,0x7c,0x81,0x81,
+0x79,0x78,0x79,0x7c,0x74,0x5d,0x40,0x2b,0x2c,0x34,0x54,0x83,0x9a,0x86,0x62,0x4a,
+0x6b,0x6c,0x6d,0x6a,0x63,0x61,0x6c,0x79,0x8e,0x82,0x6f,0x5f,0x5a,0x5e,0x63,0x64,
+0x64,0x64,0x66,0x6a,0x6d,0x6f,0x72,0x76,0x7c,0x82,0x82,0x7c,0x7e,0x88,0x8b,0x86,
+0x80,0x78,0x73,0x76,0x7a,0x7b,0x7e,0x82,0x78,0x7e,0x83,0x82,0x79,0x71,0x71,0x75,
+0x62,0x67,0x69,0x66,0x5f,0x5b,0x5c,0x60,0x57,0x5b,0x60,0x65,0x67,0x67,0x66,0x66,
+0x6e,0x6f,0x6f,0x6b,0x66,0x66,0x6f,0x79,0x79,0x76,0x6f,0x66,0x63,0x66,0x6a,0x6b,
+0x67,0x69,0x66,0x5e,0x58,0x58,0x59,0x5a,0x57,0x60,0x58,0x5b,0x5f,0x62,0x6e,0x66,
+0x6d,0x69,0x67,0x68,0x66,0x62,0x60,0x62,0x6e,0x6f,0x64,0x5f,0x6b,0x70,0x70,0x77,
+0x79,0x7c,0x75,0x67,0x63,0x6b,0x72,0x71,0x8d,0x95,0x8b,0x7e,0x70,0x7d,0x80,0x81,
+0x8a,0x80,0x7a,0x7b,0x78,0x70,0x6d,0x6f,0x6c,0x6c,0x6c,0x6c,0x6e,0x6e,0x6c,0x6a,
+0x68,0x6b,0x6e,0x6c,0x64,0x62,0x6d,0x7a,0x7e,0x7f,0x80,0x80,0x7f,0x7e,0x7e,0x7e,
+0x84,0x7f,0x7a,0x7a,0x80,0x83,0x7d,0x75,0x6b,0x72,0x76,0x71,0x6a,0x6b,0x75,0x7e,
+0x7d,0x74,0x78,0x80,0x87,0xb1,0xb7,0xba,0xbc,0xc0,0xc5,0xc6,0xc4,0xc3,0xc3,0xc5,
+0xc1,0xc0,0xbf,0xbf,0xbf,0xc0,0xc1,0xc2,0xc3,0xc3,0xc4,0xc6,0xc9,0xc9,0xc7,0xc5,
+0xc3,0xc3,0xc3,0xc1,0xbf,0xbf,0xc0,0xc0,0xbe,0xbf,0xbf,0xbf,0xbf,0xbf,0xbe,0xbd,
+0xbb,0xb8,0xb8,0xba,0xb8,0xb4,0xb3,0xb5,0xb8,0xb7,0xb6,0xb4,0xb1,0xae,0xab,0xaa,
+0xab,0xad,0xae,0xad,0xab,0xa9,0xaa,0xab,0xa4,0xa3,0xa2,0xa2,0xa3,0xa6,0xa9,0xab,
+0xad,0xad,0xa8,0xa1,0x99,0x8f,0x82,0x77,0x79,0x82,0x8d,0x97,0x95,0x80,0x53,0x79,
+0xd3,0xd7,0xd5,0xde,0xd7,0xe2,0xe5,0xe6,0xe9,0xe9,0xea,0xee,0xf3,0xf7,0xf9,0xf9,
+0xf6,0xf8,0xfa,0xfa,0xf9,0xf8,0xf8,0xf8,0xf7,0xf7,0xf8,0xf8,0xf8,0xf8,0xf8,0xf8,
+0xf6,0xf4,0xf1,0xef,0xed,0xed,0xee,0xee,0xf0,0xf1,0xf3,0xf4,0xf5,0xf5,0xf4,0xf4,
+0xf2,0xf2,0xf3,0xf3,0xf3,0xf2,0xf2,0xf2,0xed,0xee,0xeb,0xe2,0xda,0xd5,0xd0,0xca,
+0xc6,0xc3,0xbe,0xbb,0xbb,0xbf,0xc5,0xc9,0xcb,0xcd,0xd0,0xd1,0xd0,0xcf,0xcf,0xcf,
+0xd3,0xd8,0xdb,0xdc,0xde,0xe2,0xe1,0xde,0xdd,0xdd,0xde,0xdf,0xe0,0xe1,0xe2,0xe2,
+0xde,0xdd,0xdc,0xdb,0xdb,0xdb,0xdc,0xdc,0xde,0xe0,0xe1,0xe0,0xe1,0xe3,0xe4,0xe2,
+0xe6,0xe5,0xe3,0xe2,0xdf,0xdd,0xdb,0xdb,0xdc,0xdc,0xdd,0xde,0xe0,0xe2,0xe3,0xe4,
+0xe1,0xdf,0xdc,0xd9,0xd7,0xd5,0xd4,0xd3,0xd3,0xd7,0xd9,0xd7,0xd3,0xd1,0xd3,0xd6,
+0xd3,0xd4,0xd5,0xd4,0xd1,0xcf,0xcf,0xcf,0xce,0xce,0xcd,0xcd,0xcc,0xcb,0xcb,0xcb,
+0xce,0xcc,0xca,0xc8,0xc5,0xc2,0xbf,0xbd,0xbb,0xb7,0xa8,0xa3,0x88,0x7c,0x6c,0x6e,
+0x75,0x78,0x7c,0x7f,0x81,0x81,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x81,
+0x81,0x82,0x82,0x82,0x81,0x80,0x7e,0x7d,0x7b,0x7b,0x7a,0x78,0x77,0x75,0x73,0x72,
+0x71,0x71,0x70,0x6e,0x6b,0x68,0x66,0x65,0x63,0x60,0x5e,0x5b,0x59,0x56,0x53,0x51,
+0x4f,0x4b,0x46,0x42,0x3f,0x3c,0x35,0x2e,0x30,0x2a,0x2f,0x42,0x52,0x56,0x58,0x5d,
+0x62,0x5f,0x67,0x74,0x75,0x6e,0x62,0x55,0x51,0x48,0x3d,0x39,0x3e,0x42,0x3e,0x36,
+0x2f,0x27,0x2b,0x38,0x3b,0x35,0x3b,0x4a,0x55,0x4d,0x48,0x43,0x37,0x28,0x25,0x2c,
+0x44,0x56,0x65,0x67,0x66,0x6e,0x77,0x7c,0x70,0x59,0x45,0x44,0x4d,0x4d,0x43,0x3a,
+0x24,0x1d,0x1b,0x21,0x27,0x2d,0x3e,0x50,0x56,0x63,0x62,0x4f,0x41,0x44,0x48,0x45,
+0x38,0x30,0x25,0x1f,0x20,0x25,0x2c,0x31,0x36,0x37,0x3a,0x3d,0x43,0x4a,0x4f,0x51,
+0x51,0x52,0x53,0x58,0x57,0x4a,0x43,0x4b,0x46,0x36,0x28,0x1a,0x0e,0x16,0x22,0x1f,
+0x34,0x38,0x37,0x31,0x34,0x49,0x68,0x7e,0x88,0x8f,0x90,0x89,0x82,0x7b,0x6a,0x59,
+0x5c,0x6d,0x72,0x5a,0x34,0x1c,0x1b,0x23,0x24,0x68,0x91,0x8f,0x63,0x50,0x45,0x4e,
+0x6c,0x68,0x65,0x65,0x66,0x6a,0x74,0x7e,0x77,0x6f,0x62,0x59,0x5a,0x60,0x64,0x64,
+0x67,0x64,0x63,0x68,0x6c,0x6d,0x6e,0x70,0x71,0x76,0x77,0x74,0x77,0x7f,0x83,0x82,
+0x83,0x7e,0x7e,0x86,0x8b,0x8c,0x8c,0x8f,0xa1,0x9b,0x98,0x9c,0xa2,0xa3,0xa0,0x9e,
+0x9d,0x9c,0x97,0x90,0x89,0x88,0x8c,0x91,0x91,0x97,0x98,0x8e,0x7d,0x71,0x71,0x75,
+0x77,0x7d,0x7a,0x71,0x72,0x7b,0x7c,0x74,0x6a,0x67,0x64,0x67,0x6f,0x72,0x6a,0x60,
+0x6a,0x61,0x59,0x57,0x5a,0x5e,0x5d,0x5b,0x54,0x59,0x51,0x5a,0x66,0x6a,0x6a,0x58,
+0x5d,0x60,0x67,0x6e,0x6e,0x68,0x64,0x63,0x6a,0x6e,0x65,0x5e,0x63,0x67,0x6d,0x7a,
+0x83,0x7b,0x70,0x69,0x67,0x69,0x6f,0x74,0x87,0x97,0x91,0x7f,0x65,0x6b,0x72,0x7b,
+0x7d,0x7e,0x7d,0x7a,0x76,0x73,0x6e,0x6a,0x72,0x6e,0x6b,0x6d,0x74,0x77,0x71,0x69,
+0x6c,0x6b,0x6a,0x68,0x65,0x66,0x6f,0x79,0x7a,0x7e,0x81,0x80,0x7c,0x79,0x7a,0x7c,
+0x7c,0x7d,0x7d,0x7e,0x81,0x82,0x7d,0x76,0x7b,0x7b,0x7a,0x75,0x73,0x76,0x7d,0x83,
+0x7d,0x77,0x7b,0x7f,0x8f,0xb4,0xb9,0xbb,0xbe,0xc2,0xc6,0xc6,0xc4,0xc2,0xc2,0xc3,
+0xbf,0xbf,0xbf,0xbf,0xc0,0xc1,0xc2,0xc3,0xc4,0xc3,0xc4,0xc6,0xc8,0xc9,0xc8,0xc6,
+0xc0,0xc0,0xbf,0xbe,0xbe,0xbd,0xbc,0xbc,0xbd,0xbe,0xbf,0xc0,0xc0,0xbf,0xbe,0xbd,
+0xbd,0xba,0xb9,0xbb,0xb9,0xb6,0xb5,0xb7,0xbc,0xbb,0xba,0xb8,0xb5,0xb2,0xaf,0xae,
+0xad,0xad,0xad,0xac,0xac,0xad,0xaf,0xb1,0xa9,0xa7,0xa5,0xa3,0xa2,0xa2,0xa2,0xa2,
+0xa4,0xa5,0xa4,0xa0,0x99,0x90,0x84,0x79,0x77,0x80,0x8b,0x94,0x96,0x84,0x58,0x71,
+0xc1,0xd1,0xd1,0xdc,0xdb,0xe4,0xe6,0xe9,0xe8,0xe9,0xea,0xee,0xf3,0xf7,0xf9,0xf9,
+0xf6,0xf8,0xf9,0xfa,0xf9,0xf9,0xf9,0xf9,0xf8,0xf9,0xf9,0xf9,0xf9,0xf8,0xf8,0xf7,
+0xf4,0xf3,0xf1,0xf0,0xef,0xef,0xef,0xf0,0xf1,0xf2,0xf3,0xf4,0xf4,0xf4,0xf4,0xf4,
+0xf3,0xf3,0xf3,0xf2,0xf0,0xef,0xed,0xec,0xe9,0xe9,0xe4,0xdb,0xd4,0xcf,0xca,0xc4,
+0xbf,0xbd,0xbc,0xbb,0xbd,0xc1,0xc6,0xc8,0xce,0xd0,0xd3,0xd4,0xd4,0xd3,0xd2,0xd2,
+0xd6,0xda,0xdd,0xde,0xe0,0xe3,0xe2,0xdf,0xdf,0xdf,0xe0,0xe1,0xe2,0xe3,0xe3,0xe3,
+0xdf,0xdd,0xdb,0xd9,0xd9,0xda,0xdc,0xdd,0xe0,0xe2,0xe3,0xe2,0xe3,0xe4,0xe4,0xe2,
+0xe0,0xe0,0xdf,0xdd,0xdc,0xdb,0xda,0xda,0xdc,0xdd,0xde,0xdf,0xdf,0xde,0xdd,0xdd,
+0xdb,0xdb,0xda,0xd9,0xd9,0xd9,0xd9,0xda,0xd8,0xd9,0xd9,0xd8,0xd6,0xd5,0xd5,0xd6,
+0xd4,0xd5,0xd5,0xd3,0xd0,0xce,0xce,0xcf,0xd0,0xcf,0xce,0xcd,0xcc,0xcb,0xcb,0xcb,
+0xcd,0xcc,0xca,0xc8,0xc6,0xc4,0xc0,0xbe,0xba,0xb7,0xa8,0x9d,0x81,0x76,0x6b,0x6e,
+0x72,0x75,0x79,0x7d,0x7f,0x80,0x82,0x83,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x81,
+0x80,0x80,0x81,0x81,0x80,0x7e,0x7d,0x7b,0x7a,0x7a,0x79,0x78,0x76,0x74,0x73,0x72,
+0x70,0x6f,0x6e,0x6c,0x69,0x67,0x65,0x64,0x62,0x60,0x5d,0x5a,0x58,0x55,0x52,0x50,
+0x4d,0x4a,0x44,0x40,0x3d,0x3a,0x35,0x30,0x2d,0x32,0x40,0x52,0x5c,0x5e,0x61,0x67,
+0x62,0x68,0x76,0x7c,0x70,0x62,0x5b,0x56,0x51,0x45,0x39,0x38,0x3f,0x42,0x3d,0x35,
+0x34,0x39,0x3d,0x3a,0x35,0x35,0x3c,0x43,0x47,0x3f,0x3c,0x3c,0x37,0x2e,0x2c,0x31,
+0x36,0x43,0x59,0x6c,0x6e,0x63,0x5a,0x58,0x51,0x52,0x5a,0x61,0x59,0x49,0x46,0x4e,
+0x4d,0x56,0x59,0x52,0x4b,0x4c,0x52,0x55,0x64,0x65,0x5b,0x47,0x3d,0x41,0x45,0x43,
+0x47,0x44,0x3b,0x2d,0x25,0x28,0x32,0x39,0x2e,0x30,0x33,0x37,0x3d,0x44,0x48,0x49,
+0x4f,0x52,0x4a,0x41,0x45,0x45,0x3b,0x33,0x3a,0x2d,0x21,0x1a,0x15,0x14,0x15,0x12,
+0x1d,0x24,0x37,0x57,0x7a,0x8c,0x86,0x78,0x69,0x56,0x43,0x3b,0x39,0x3f,0x4f,0x61,
+0x7a,0x7f,0x71,0x48,0x23,0x1d,0x30,0x43,0x6f,0x78,0x63,0x4b,0x37,0x43,0x45,0x4a,
+0x66,0x60,0x5d,0x62,0x6a,0x71,0x76,0x79,0x71,0x6c,0x65,0x62,0x67,0x6c,0x6c,0x68,
+0x64,0x5f,0x5c,0x5e,0x61,0x60,0x5e,0x5c,0x66,0x68,0x69,0x69,0x6a,0x6c,0x70,0x74,
+0x6e,0x68,0x67,0x6e,0x75,0x75,0x74,0x74,0x73,0x78,0x82,0x8c,0x8e,0x86,0x7b,0x74,
+0x72,0x75,0x7a,0x7b,0x7a,0x76,0x72,0x71,0x70,0x7b,0x85,0x87,0x84,0x87,0x94,0xa0,
+0xa6,0xa3,0x9a,0x90,0x92,0x96,0x8e,0x80,0x7b,0x7b,0x79,0x75,0x73,0x73,0x70,0x6d,
+0x5e,0x56,0x53,0x5c,0x67,0x6b,0x6c,0x6c,0x65,0x64,0x59,0x5b,0x64,0x68,0x68,0x5b,
+0x66,0x69,0x6f,0x74,0x72,0x69,0x5f,0x5b,0x69,0x6c,0x66,0x61,0x64,0x67,0x6d,0x77,
+0x84,0x79,0x72,0x70,0x67,0x5c,0x60,0x6d,0x85,0x99,0x9a,0x8b,0x6e,0x6f,0x71,0x79,
+0x82,0x7c,0x74,0x6e,0x6c,0x6a,0x68,0x67,0x73,0x6f,0x6a,0x6a,0x6f,0x72,0x6e,0x67,
+0x6c,0x69,0x68,0x69,0x6b,0x6e,0x75,0x7b,0x76,0x7d,0x83,0x82,0x7c,0x76,0x75,0x78,
+0x7a,0x7e,0x81,0x81,0x80,0x7e,0x7c,0x78,0x79,0x78,0x78,0x7a,0x7d,0x7e,0x7d,0x7c,
+0x7f,0x7d,0x80,0x7f,0x9c,0xb7,0xbd,0xbd,0xc1,0xc3,0xc6,0xc6,0xc3,0xc1,0xc0,0xc0,
+0xbe,0xbf,0xc1,0xc3,0xc4,0xc4,0xc5,0xc5,0xc4,0xc4,0xc3,0xc4,0xc6,0xc7,0xc8,0xc7,
+0xc1,0xbf,0xbd,0xbd,0xbe,0xbe,0xbc,0xba,0xbc,0xbd,0xbf,0xc0,0xc0,0xbf,0xbe,0xbd,
+0xbe,0xbb,0xba,0xba,0xb9,0xb8,0xb8,0xba,0xbb,0xbb,0xb9,0xb7,0xb4,0xb1,0xaf,0xad,
+0xaf,0xad,0xab,0xac,0xae,0xb1,0xb4,0xb5,0xb0,0xaf,0xad,0xaa,0xa7,0xa5,0xa3,0xa1,
+0x9e,0xa0,0xa1,0x9e,0x9a,0x91,0x85,0x7a,0x75,0x7d,0x86,0x8f,0x97,0x8b,0x60,0x66,
+0xb1,0xd3,0xd3,0xdc,0xe0,0xe4,0xe1,0xe5,0xe5,0xe6,0xe9,0xed,0xf2,0xf6,0xf7,0xf8,
+0xf6,0xf7,0xf9,0xfa,0xfa,0xfa,0xfa,0xfb,0xfa,0xfa,0xfa,0xfa,0xf9,0xf8,0xf7,0xf7,
+0xf3,0xf2,0xf2,0xf1,0xf0,0xf0,0xf0,0xf0,0xf1,0xf2,0xf2,0xf3,0xf3,0xf4,0xf4,0xf5,
+0xf3,0xf2,0xf2,0xf0,0xee,0xec,0xea,0xe8,0xe4,0xe1,0xda,0xd2,0xcd,0xc9,0xc3,0xbe,
+0xb9,0xba,0xbb,0xbe,0xc2,0xc6,0xca,0xcc,0xd2,0xd4,0xd7,0xd8,0xd8,0xd6,0xd6,0xd6,
+0xd9,0xdc,0xde,0xdf,0xe1,0xe3,0xe3,0xe1,0xdf,0xe0,0xe0,0xe1,0xe1,0xe2,0xe2,0xe2,
+0xe3,0xe1,0xdd,0xdb,0xdb,0xdc,0xdf,0xe1,0xe1,0xe4,0xe5,0xe4,0xe4,0xe5,0xe4,0xe1,
+0xde,0xdd,0xdc,0xdc,0xdc,0xdd,0xde,0xde,0xdd,0xde,0xdf,0xe0,0xdf,0xdd,0xda,0xd9,
+0xd8,0xd8,0xd8,0xd9,0xda,0xdb,0xdc,0xdc,0xdc,0xda,0xd9,0xd8,0xd8,0xd8,0xd6,0xd4,
+0xd5,0xd5,0xd4,0xd2,0xcf,0xce,0xce,0xcf,0xd1,0xd0,0xce,0xcc,0xca,0xca,0xca,0xca,
+0xcb,0xca,0xc9,0xc7,0xc6,0xc4,0xc1,0xbf,0xb9,0xb9,0xaa,0x96,0x78,0x6e,0x69,0x6d,
+0x6f,0x73,0x78,0x7c,0x7e,0x80,0x82,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,
+0x7f,0x7f,0x7f,0x7f,0x7e,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x76,0x75,0x73,0x72,0x71,
+0x6d,0x6d,0x6c,0x6a,0x68,0x66,0x64,0x63,0x60,0x5e,0x5b,0x59,0x56,0x53,0x50,0x4d,
+0x4b,0x47,0x42,0x3d,0x39,0x35,0x33,0x31,0x24,0x3e,0x5f,0x74,0x76,0x6e,0x67,0x63,
+0x5f,0x67,0x75,0x79,0x6c,0x62,0x62,0x63,0x57,0x43,0x33,0x37,0x48,0x55,0x5a,0x5c,
+0x63,0x56,0x43,0x34,0x32,0x3a,0x42,0x45,0x38,0x31,0x30,0x36,0x3a,0x38,0x3b,0x41,
+0x44,0x3b,0x42,0x58,0x5e,0x52,0x50,0x5a,0x73,0x77,0x66,0x46,0x39,0x47,0x51,0x4e,
+0x58,0x52,0x53,0x55,0x48,0x38,0x3f,0x53,0x60,0x5a,0x52,0x4b,0x4a,0x4c,0x4a,0x47,
+0x4b,0x50,0x4c,0x3f,0x36,0x34,0x31,0x2c,0x2d,0x2a,0x25,0x24,0x2b,0x36,0x3d,0x3f,
+0x41,0x49,0x50,0x50,0x46,0x39,0x43,0x5e,0x6d,0x61,0x52,0x51,0x5e,0x66,0x68,0x6c,
+0x74,0x78,0x78,0x6d,0x60,0x55,0x4f,0x4c,0x40,0x32,0x2c,0x34,0x41,0x50,0x6b,0x84,
+0x78,0x62,0x45,0x31,0x2b,0x31,0x3d,0x48,0x45,0x56,0x57,0x4f,0x42,0x4f,0x5d,0x6b,
+0x5e,0x5b,0x5a,0x61,0x6a,0x6f,0x6e,0x6b,0x70,0x6f,0x6d,0x6e,0x74,0x77,0x72,0x6b,
+0x65,0x62,0x61,0x63,0x65,0x64,0x62,0x63,0x6a,0x68,0x68,0x6a,0x68,0x64,0x67,0x6d,
+0x74,0x68,0x60,0x66,0x70,0x73,0x73,0x72,0x76,0x7a,0x80,0x85,0x84,0x7d,0x79,0x78,
+0x6f,0x6d,0x69,0x69,0x6c,0x70,0x73,0x75,0x73,0x72,0x71,0x70,0x71,0x74,0x76,0x78,
+0x77,0x6a,0x64,0x6c,0x72,0x70,0x6d,0x6e,0x72,0x7b,0x84,0x83,0x7a,0x6d,0x61,0x59,
+0x54,0x4a,0x45,0x4a,0x51,0x59,0x68,0x77,0x93,0x92,0x89,0x7c,0x71,0x6c,0x6c,0x6a,
+0x68,0x66,0x66,0x6a,0x6e,0x70,0x6e,0x6c,0x67,0x64,0x60,0x63,0x69,0x6a,0x69,0x6a,
+0x79,0x78,0x7b,0x7c,0x6d,0x5d,0x62,0x73,0x88,0x94,0x8f,0x86,0x74,0x7b,0x7c,0x81,
+0x7a,0x73,0x73,0x76,0x71,0x68,0x69,0x73,0x70,0x71,0x6e,0x68,0x67,0x6a,0x6a,0x67,
+0x67,0x69,0x6d,0x73,0x77,0x79,0x7a,0x7b,0x77,0x7f,0x87,0x88,0x82,0x7b,0x76,0x75,
+0x7b,0x7e,0x7f,0x7e,0x7d,0x7e,0x7c,0x7a,0x76,0x73,0x72,0x78,0x7e,0x7f,0x7d,0x7b,
+0x7e,0x7e,0x80,0x7f,0xa6,0xb8,0xc0,0xc0,0xc3,0xc4,0xc6,0xc5,0xc2,0xc0,0xbe,0xbe,
+0xc0,0xc2,0xc4,0xc6,0xc7,0xc7,0xc6,0xc5,0xc4,0xc3,0xc2,0xc2,0xc3,0xc5,0xc6,0xc7,
+0xc5,0xc1,0xbd,0xbd,0xbf,0xc0,0xbf,0xbd,0xbc,0xbd,0xbf,0xc0,0xc0,0xbf,0xbd,0xbb,
+0xbc,0xba,0xb9,0xb8,0xb8,0xb8,0xb9,0xbb,0xb9,0xb9,0xb9,0xb7,0xb5,0xb2,0xaf,0xad,
+0xb1,0xae,0xac,0xad,0xb0,0xb3,0xb4,0xb4,0xb2,0xb2,0xb1,0xb0,0xad,0xaa,0xa8,0xa6,
+0xa0,0xa1,0xa0,0x9d,0x98,0x90,0x84,0x79,0x74,0x79,0x82,0x89,0x96,0x91,0x6a,0x5d,
+0x9f,0xd5,0xd5,0xdc,0xe3,0xe3,0xde,0xe4,0xe2,0xe4,0xe7,0xeb,0xef,0xf3,0xf5,0xf6,
+0xf6,0xf7,0xfa,0xfb,0xfb,0xfb,0xfc,0xfd,0xfc,0xfc,0xfc,0xfb,0xfa,0xf8,0xf7,0xf6,
+0xf2,0xf2,0xf2,0xf1,0xf0,0xef,0xef,0xee,0xf0,0xf0,0xf1,0xf1,0xf3,0xf4,0xf5,0xf5,
+0xf1,0xf1,0xf1,0xf0,0xee,0xeb,0xe9,0xe7,0xe0,0xda,0xd2,0xcb,0xc7,0xc3,0xbe,0xba,
+0xb8,0xba,0xbd,0xc1,0xc6,0xcb,0xcf,0xd1,0xd4,0xd7,0xd9,0xda,0xd9,0xd8,0xd7,0xd7,
+0xd8,0xda,0xdc,0xdd,0xdf,0xe0,0xe1,0xe1,0xdd,0xde,0xdf,0xdf,0xdf,0xdf,0xdf,0xde,
+0xe3,0xe1,0xdf,0xdd,0xdd,0xde,0xe0,0xe1,0xe1,0xe4,0xe5,0xe4,0xe3,0xe4,0xe2,0xdf,
+0xdc,0xdb,0xdb,0xdc,0xdd,0xdf,0xe1,0xe2,0xdf,0xe0,0xe0,0xe0,0xdf,0xde,0xdd,0xdc,
+0xda,0xd9,0xd9,0xd9,0xd9,0xd9,0xda,0xda,0xdc,0xdb,0xd9,0xd8,0xd7,0xd6,0xd4,0xd3,
+0xd6,0xd5,0xd3,0xd1,0xcf,0xcf,0xd0,0xd1,0xd1,0xd0,0xcd,0xca,0xc9,0xc9,0xc9,0xca,
+0xc9,0xc8,0xc7,0xc7,0xc6,0xc4,0xc1,0xbf,0xba,0xbd,0xb1,0x96,0x76,0x68,0x66,0x6b,
+0x70,0x73,0x78,0x7c,0x7e,0x80,0x82,0x83,0x82,0x82,0x81,0x81,0x81,0x81,0x81,0x81,
+0x7f,0x7f,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,0x78,0x78,0x77,0x75,0x73,0x71,0x6f,0x6e,
+0x6c,0x6b,0x69,0x68,0x67,0x65,0x63,0x61,0x5f,0x5d,0x5a,0x58,0x55,0x51,0x4d,0x4a,
+0x47,0x44,0x3f,0x3b,0x35,0x30,0x2f,0x30,0x36,0x50,0x6a,0x74,0x73,0x73,0x76,0x77,
+0x72,0x70,0x74,0x75,0x6d,0x6a,0x6a,0x67,0x4b,0x3f,0x41,0x56,0x6c,0x6e,0x64,0x5b,
+0x3d,0x34,0x35,0x41,0x49,0x43,0x3a,0x37,0x2d,0x28,0x28,0x30,0x39,0x42,0x4e,0x5a,
+0x60,0x51,0x51,0x62,0x69,0x60,0x61,0x6e,0x7e,0x5e,0x43,0x3e,0x43,0x45,0x4f,0x5d,
+0x68,0x6e,0x60,0x42,0x37,0x46,0x55,0x56,0x65,0x57,0x49,0x46,0x47,0x48,0x49,0x4a,
+0x51,0x51,0x4a,0x40,0x41,0x48,0x42,0x34,0x30,0x2a,0x22,0x23,0x30,0x41,0x4a,0x4a,
+0x56,0x74,0x79,0x62,0x59,0x64,0x6b,0x6b,0x7d,0x80,0x74,0x66,0x66,0x60,0x58,0x59,
+0x45,0x49,0x4c,0x4c,0x4b,0x4d,0x4d,0x4c,0x43,0x46,0x4b,0x4e,0x4d,0x48,0x40,0x3a,
+0x3e,0x27,0x1a,0x21,0x29,0x2c,0x37,0x47,0x7e,0x7e,0x7f,0x7d,0x72,0x6d,0x6c,0x6d,
+0x5d,0x5d,0x5d,0x5f,0x62,0x64,0x64,0x62,0x65,0x66,0x67,0x6b,0x71,0x73,0x6e,0x66,
+0x5b,0x5d,0x63,0x68,0x6a,0x6a,0x6c,0x70,0x72,0x6f,0x70,0x74,0x74,0x6f,0x71,0x78,
+0x75,0x66,0x5d,0x66,0x75,0x7b,0x79,0x76,0x75,0x71,0x73,0x7c,0x84,0x83,0x7c,0x76,
+0x75,0x6f,0x68,0x65,0x67,0x6b,0x6e,0x6f,0x6f,0x6b,0x69,0x6d,0x74,0x79,0x79,0x76,
+0x70,0x68,0x68,0x72,0x75,0x6f,0x6e,0x75,0x66,0x68,0x6b,0x6f,0x72,0x70,0x64,0x58,
+0x52,0x4c,0x4a,0x4f,0x51,0x50,0x55,0x5f,0x57,0x5f,0x6b,0x6c,0x6b,0x6e,0x73,0x79,
+0x72,0x6b,0x63,0x61,0x67,0x6e,0x71,0x71,0x6c,0x68,0x69,0x6f,0x72,0x72,0x71,0x6f,
+0x71,0x76,0x7d,0x81,0x7d,0x79,0x7d,0x84,0x83,0x86,0x79,0x6f,0x63,0x72,0x7c,0x86,
+0x8a,0x75,0x60,0x5c,0x63,0x6a,0x6b,0x6a,0x72,0x75,0x73,0x6f,0x70,0x71,0x6c,0x64,
+0x64,0x6c,0x77,0x7d,0x7e,0x7c,0x79,0x77,0x78,0x7e,0x86,0x8a,0x86,0x7e,0x76,0x71,
+0x72,0x72,0x73,0x78,0x7f,0x83,0x80,0x79,0x7b,0x76,0x73,0x75,0x79,0x7b,0x7e,0x82,
+0x77,0x77,0x79,0x83,0xac,0xb8,0xc3,0xc4,0xc5,0xc6,0xc7,0xc6,0xc4,0xc2,0xc0,0xc0,
+0xc2,0xc3,0xc6,0xc8,0xc8,0xc6,0xc4,0xc2,0xc3,0xc2,0xc0,0xbf,0xbf,0xc1,0xc4,0xc6,
+0xc7,0xc2,0xbc,0xba,0xbc,0xbf,0xbf,0xbe,0xbe,0xbf,0xc0,0xc0,0xbf,0xbd,0xbb,0xb9,
+0xb8,0xb8,0xb6,0xb5,0xb5,0xb7,0xb9,0xb9,0xbc,0xbc,0xbc,0xbc,0xba,0xb8,0xb6,0xb4,
+0xb4,0xb2,0xb1,0xb1,0xb3,0xb4,0xb3,0xb1,0xaf,0xb0,0xb0,0xb0,0xae,0xab,0xa8,0xa6,
+0xa2,0xa2,0x9f,0x9a,0x95,0x8d,0x83,0x7a,0x74,0x76,0x80,0x85,0x94,0x93,0x76,0x59,
+0x89,0xcf,0xd2,0xd9,0xe2,0xe2,0xe1,0xe7,0xe2,0xe4,0xe6,0xea,0xed,0xf1,0xf4,0xf6,
+0xf6,0xf8,0xfa,0xfc,0xfc,0xfc,0xfd,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf8,0xf7,0xf6,
+0xf3,0xf2,0xf1,0xf0,0xef,0xee,0xec,0xec,0xed,0xee,0xef,0xf1,0xf2,0xf3,0xf4,0xf5,
+0xf2,0xf2,0xf1,0xef,0xec,0xe9,0xe5,0xe3,0xda,0xd2,0xca,0xc4,0xc1,0xbe,0xbb,0xb8,
+0xba,0xbb,0xbd,0xc1,0xc6,0xcc,0xd1,0xd3,0xd5,0xd8,0xda,0xdb,0xda,0xd9,0xd8,0xd8,
+0xd6,0xd6,0xd7,0xda,0xdc,0xdd,0xde,0xdf,0xde,0xdf,0xe0,0xe1,0xe1,0xe0,0xdf,0xde,
+0xde,0xdd,0xdd,0xdc,0xdc,0xdb,0xdc,0xdc,0xdf,0xe2,0xe2,0xe1,0xe1,0xe1,0xe0,0xdd,
+0xd9,0xda,0xda,0xdb,0xdc,0xde,0xe0,0xe1,0xe3,0xe2,0xe0,0xdf,0xde,0xde,0xde,0xde,
+0xdd,0xdd,0xdd,0xdc,0xdb,0xdb,0xda,0xda,0xdb,0xdb,0xdb,0xd9,0xd6,0xd4,0xd4,0xd4,
+0xd5,0xd4,0xd2,0xd1,0xd0,0xd1,0xd2,0xd2,0xcf,0xce,0xcb,0xc9,0xc8,0xc8,0xc9,0xc9,
+0xc9,0xc9,0xc8,0xc8,0xc7,0xc5,0xc1,0xbf,0xbb,0xbf,0xb9,0x9c,0x7b,0x64,0x63,0x68,
+0x6f,0x72,0x77,0x7b,0x7d,0x7e,0x7f,0x80,0x81,0x81,0x80,0x7f,0x7f,0x80,0x80,0x80,
+0x7f,0x7f,0x7e,0x7d,0x7c,0x7a,0x79,0x78,0x78,0x77,0x76,0x74,0x71,0x6f,0x6d,0x6b,
+0x6b,0x69,0x68,0x67,0x66,0x64,0x62,0x60,0x5d,0x5b,0x59,0x56,0x53,0x4f,0x4a,0x47,
+0x43,0x40,0x3d,0x39,0x32,0x2c,0x2e,0x33,0x46,0x59,0x6b,0x6f,0x6f,0x74,0x79,0x7b,
+0x74,0x70,0x71,0x72,0x6e,0x70,0x71,0x6c,0x62,0x4f,0x44,0x4e,0x5b,0x5c,0x54,0x4f,
+0x36,0x43,0x57,0x64,0x5c,0x47,0x35,0x2f,0x2b,0x26,0x25,0x29,0x30,0x3d,0x50,0x61,
+0x5d,0x61,0x68,0x6a,0x60,0x5a,0x65,0x77,0x53,0x40,0x36,0x40,0x4c,0x51,0x59,0x64,
+0x58,0x50,0x50,0x59,0x59,0x4f,0x4f,0x58,0x5d,0x52,0x4a,0x4a,0x46,0x3b,0x33,0x31,
+0x35,0x3c,0x40,0x40,0x46,0x4c,0x43,0x33,0x22,0x27,0x2f,0x3e,0x54,0x65,0x64,0x5b,
+0x55,0x4f,0x42,0x36,0x2f,0x36,0x5b,0x89,0x8a,0x70,0x3c,0x1c,0x2e,0x4b,0x55,0x57,
+0x61,0x5f,0x59,0x53,0x4f,0x4d,0x49,0x44,0x44,0x45,0x45,0x42,0x3d,0x34,0x27,0x1b,
+0x17,0x1c,0x23,0x22,0x1e,0x29,0x49,0x69,0x70,0x60,0x5f,0x64,0x65,0x66,0x6d,0x6d,
+0x63,0x64,0x62,0x5b,0x58,0x5a,0x60,0x64,0x64,0x65,0x65,0x66,0x69,0x6a,0x65,0x5e,
+0x55,0x5a,0x61,0x67,0x67,0x64,0x66,0x6a,0x6c,0x6b,0x6f,0x77,0x7c,0x7c,0x7e,0x82,
+0x80,0x76,0x72,0x7e,0x8b,0x8c,0x83,0x7c,0x66,0x69,0x72,0x7c,0x81,0x7c,0x72,0x6d,
+0x6d,0x6b,0x69,0x6a,0x6c,0x6d,0x6a,0x68,0x71,0x71,0x71,0x73,0x75,0x77,0x78,0x78,
+0x7a,0x7b,0x7c,0x78,0x71,0x68,0x61,0x5d,0x68,0x66,0x62,0x5f,0x63,0x6b,0x72,0x73,
+0x5f,0x59,0x59,0x5f,0x63,0x60,0x5a,0x58,0x57,0x56,0x5f,0x60,0x65,0x6e,0x6e,0x75,
+0x88,0x80,0x72,0x67,0x63,0x64,0x63,0x61,0x6c,0x69,0x71,0x79,0x76,0x73,0x76,0x76,
+0x6e,0x6f,0x72,0x78,0x82,0x88,0x85,0x7f,0x6e,0x79,0x75,0x6e,0x5d,0x66,0x70,0x7d,
+0x74,0x76,0x6e,0x60,0x5f,0x6b,0x75,0x76,0x71,0x73,0x73,0x75,0x7d,0x80,0x72,0x60,
+0x68,0x72,0x7c,0x7e,0x7b,0x78,0x74,0x72,0x73,0x78,0x7e,0x82,0x80,0x7a,0x72,0x6d,
+0x67,0x65,0x68,0x72,0x82,0x89,0x82,0x76,0x71,0x71,0x75,0x7b,0x7a,0x74,0x72,0x73,
+0x6f,0x6e,0x73,0x8f,0xb1,0xb8,0xc3,0xc6,0xc6,0xc6,0xc7,0xc6,0xc6,0xc5,0xc3,0xc3,
+0xc2,0xc4,0xc6,0xc7,0xc7,0xc4,0xc2,0xc0,0xc1,0xc1,0xbf,0xbe,0xbd,0xbf,0xc2,0xc4,
+0xc4,0xc0,0xbb,0xb8,0xb9,0xbb,0xbd,0xbd,0xc0,0xc0,0xc0,0xbf,0xbe,0xbc,0xba,0xb9,
+0xb7,0xb8,0xb7,0xb4,0xb4,0xb6,0xb6,0xb5,0xba,0xbb,0xbc,0xbd,0xbd,0xbc,0xba,0xb9,
+0xb6,0xb5,0xb5,0xb4,0xb4,0xb4,0xb2,0xb1,0xb1,0xb1,0xb1,0xb0,0xae,0xab,0xa7,0xa5,
+0xa2,0xa2,0x9e,0x99,0x94,0x8d,0x84,0x7b,0x76,0x75,0x7f,0x83,0x90,0x91,0x80,0x5c,
+0x78,0xc9,0xd1,0xd8,0xdc,0xdd,0xe1,0xe1,0xe4,0xe5,0xe7,0xe9,0xeb,0xef,0xf4,0xf7,
+0xf7,0xf9,0xfb,0xfd,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xfa,0xf8,0xf6,0xf5,
+0xf3,0xf2,0xf1,0xef,0xed,0xec,0xec,0xec,0xec,0xed,0xef,0xf0,0xf1,0xf2,0xf2,0xf2,
+0xf2,0xf1,0xf0,0xed,0xe8,0xe2,0xdd,0xdb,0xd1,0xca,0xc3,0xc0,0xbd,0xb9,0xb7,0xb7,
+0xbb,0xbc,0xbd,0xc1,0xc6,0xcc,0xd1,0xd4,0xd8,0xda,0xdc,0xdd,0xdc,0xda,0xd9,0xd9,
+0xd6,0xd5,0xd5,0xd8,0xda,0xda,0xdc,0xde,0xe1,0xe1,0xe3,0xe4,0xe4,0xe3,0xe2,0xe1,
+0xdc,0xdc,0xdd,0xdd,0xdc,0xdb,0xdb,0xda,0xdd,0xdf,0xdf,0xdd,0xdd,0xde,0xdd,0xdb,
+0xdc,0xdc,0xdd,0xde,0xdf,0xe0,0xe1,0xe1,0xe4,0xe2,0xdf,0xdd,0xdc,0xdc,0xdc,0xdd,
+0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xde,0xde,0xdc,0xdd,0xdd,0xdb,0xd8,0xd6,0xd6,0xd6,
+0xd5,0xd3,0xd1,0xd1,0xd1,0xd1,0xd1,0xd0,0xcd,0xcc,0xca,0xc9,0xc9,0xc9,0xca,0xca,
+0xcc,0xcb,0xca,0xca,0xc9,0xc6,0xc2,0xbf,0xbd,0xbf,0xbe,0xa2,0x82,0x62,0x61,0x66,
+0x6d,0x70,0x74,0x78,0x7a,0x7b,0x7d,0x7e,0x80,0x7f,0x7f,0x7e,0x7e,0x7f,0x7f,0x80,
+0x7f,0x7e,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x76,0x76,0x74,0x72,0x70,0x6d,0x6b,0x6a,
+0x6b,0x68,0x66,0x65,0x65,0x63,0x60,0x5d,0x5a,0x58,0x56,0x53,0x50,0x4b,0x46,0x43,
+0x3e,0x3c,0x39,0x36,0x30,0x2d,0x33,0x3e,0x54,0x63,0x71,0x74,0x72,0x6f,0x6b,0x67,
+0x67,0x68,0x6c,0x69,0x60,0x5f,0x62,0x5f,0x57,0x4d,0x48,0x50,0x56,0x4f,0x3f,0x33,
+0x3b,0x4e,0x5d,0x5e,0x5f,0x65,0x63,0x5b,0x3b,0x35,0x2d,0x26,0x24,0x2b,0x3a,0x47,
+0x58,0x4a,0x3e,0x46,0x5d,0x6a,0x5d,0x48,0x3e,0x49,0x46,0x3d,0x4c,0x67,0x69,0x55,
+0x5b,0x67,0x64,0x54,0x56,0x6a,0x6f,0x63,0x5b,0x55,0x52,0x55,0x52,0x48,0x41,0x41,
+0x31,0x3c,0x43,0x42,0x42,0x47,0x47,0x43,0x69,0x73,0x7b,0x7d,0x7a,0x6b,0x4e,0x33,
+0x1b,0x30,0x2c,0x12,0x11,0x37,0x6c,0x93,0xa9,0x91,0x60,0x38,0x37,0x4c,0x5b,0x5f,
+0x68,0x7a,0x88,0x82,0x6d,0x5a,0x51,0x4f,0x4e,0x3e,0x30,0x29,0x22,0x1a,0x18,0x1c,
+0x18,0x22,0x22,0x1d,0x2c,0x4c,0x60,0x61,0x47,0x43,0x4d,0x46,0x3c,0x38,0x41,0x39,
+0x62,0x66,0x64,0x5a,0x54,0x58,0x62,0x69,0x6a,0x6a,0x69,0x67,0x66,0x66,0x64,0x61,
+0x60,0x64,0x6b,0x70,0x70,0x6c,0x69,0x6a,0x69,0x6a,0x70,0x79,0x81,0x86,0x86,0x86,
+0x7d,0x79,0x7c,0x87,0x8d,0x88,0x7d,0x76,0x74,0x73,0x74,0x76,0x75,0x73,0x73,0x75,
+0x73,0x6d,0x67,0x66,0x6a,0x72,0x78,0x7b,0x73,0x72,0x72,0x72,0x73,0x75,0x76,0x77,
+0x7b,0x78,0x77,0x78,0x77,0x72,0x6e,0x6c,0x63,0x6a,0x6f,0x6b,0x65,0x63,0x65,0x67,
+0x68,0x62,0x5a,0x58,0x5c,0x63,0x69,0x6c,0x62,0x5a,0x5f,0x5d,0x64,0x72,0x72,0x7c,
+0x7e,0x7d,0x77,0x6b,0x64,0x64,0x67,0x68,0x64,0x5d,0x69,0x79,0x7b,0x76,0x70,0x65,
+0x63,0x65,0x6b,0x76,0x81,0x82,0x78,0x6c,0x5f,0x70,0x76,0x75,0x62,0x67,0x6b,0x77,
+0x6e,0x65,0x6a,0x86,0xa3,0xa3,0x83,0x63,0x68,0x6e,0x72,0x73,0x7a,0x80,0x79,0x6d,
+0x72,0x77,0x79,0x76,0x73,0x74,0x75,0x75,0x76,0x7a,0x7e,0x7f,0x7c,0x78,0x76,0x76,
+0x6f,0x69,0x65,0x6e,0x7e,0x87,0x80,0x73,0x6a,0x6d,0x76,0x7e,0x7c,0x71,0x6a,0x69,
+0x72,0x6f,0x77,0xa5,0xb9,0xba,0xc1,0xc3,0xc2,0xc3,0xc3,0xc4,0xc4,0xc4,0xc4,0xc3,
+0xc4,0xc5,0xc7,0xc8,0xc7,0xc5,0xc2,0xc1,0xc0,0xc0,0xc0,0xbe,0xbd,0xbe,0xc1,0xc4,
+0xc1,0xbf,0xbd,0xbb,0xba,0xbb,0xbc,0xbd,0xc1,0xc0,0xbf,0xbe,0xbc,0xbb,0xba,0xba,
+0xb9,0xbb,0xb9,0xb6,0xb4,0xb5,0xb3,0xb0,0xb2,0xb3,0xb6,0xb8,0xb9,0xb9,0xb7,0xb7,
+0xb4,0xb4,0xb3,0xb2,0xb1,0xb1,0xb2,0xb2,0xb5,0xb5,0xb4,0xb3,0xb0,0xac,0xa9,0xa7,
+0xa5,0xa5,0xa2,0x9d,0x97,0x90,0x85,0x7c,0x78,0x74,0x7f,0x82,0x8d,0x8d,0x87,0x62,
+0x6c,0xc4,0xd2,0xdb,0xd9,0xd9,0xe1,0xdb,0xe4,0xe5,0xe6,0xe6,0xe8,0xec,0xf1,0xf6,
+0xf8,0xfa,0xfc,0xfd,0xfd,0xfd,0xfe,0xfe,0xfd,0xfd,0xfc,0xfb,0xf9,0xf8,0xf6,0xf5,
+0xf3,0xf2,0xf0,0xee,0xed,0xed,0xed,0xee,0xec,0xed,0xef,0xf1,0xf1,0xf0,0xee,0xed,
+0xed,0xec,0xea,0xe7,0xe1,0xdb,0xd6,0xd2,0xca,0xc4,0xc0,0xbe,0xba,0xb7,0xb6,0xb9,
+0xbf,0xc0,0xc2,0xc6,0xcb,0xd1,0xd5,0xd8,0xdc,0xde,0xe0,0xe1,0xe0,0xde,0xdd,0xdd,
+0xda,0xd7,0xd7,0xd9,0xda,0xd9,0xdb,0xde,0xdf,0xe0,0xe2,0xe3,0xe3,0xe3,0xe1,0xe0,
+0xde,0xdd,0xdd,0xdc,0xdc,0xdc,0xdc,0xdc,0xdb,0xdd,0xdc,0xda,0xd9,0xdb,0xdc,0xdb,
+0xdf,0xe0,0xe1,0xe2,0xe2,0xe1,0xe0,0xe0,0xe0,0xe0,0xde,0xdd,0xdc,0xdd,0xdd,0xde,
+0xde,0xde,0xdf,0xe0,0xe1,0xe1,0xe1,0xe1,0xdf,0xdd,0xdc,0xdb,0xda,0xd9,0xd8,0xd6,
+0xd5,0xd3,0xd1,0xd0,0xd1,0xd0,0xce,0xcc,0xcb,0xcb,0xca,0xca,0xcb,0xcb,0xcc,0xcd,
+0xcc,0xcc,0xcb,0xca,0xc8,0xc5,0xc0,0xbd,0xbc,0xbc,0xbf,0xa6,0x88,0x60,0x5f,0x67,
+0x6b,0x6e,0x73,0x77,0x79,0x7b,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7d,0x7e,0x7f,0x80,
+0x7e,0x7d,0x7c,0x7a,0x78,0x77,0x76,0x76,0x73,0x73,0x72,0x71,0x6f,0x6d,0x6b,0x6a,
+0x6a,0x67,0x64,0x63,0x63,0x61,0x5d,0x5a,0x57,0x55,0x52,0x50,0x4c,0x47,0x42,0x3e,
+0x3b,0x37,0x34,0x32,0x2e,0x30,0x3f,0x4f,0x6e,0x6f,0x6f,0x6c,0x68,0x68,0x6a,0x6c,
+0x75,0x73,0x6f,0x63,0x52,0x4f,0x51,0x4d,0x59,0x4d,0x3f,0x3a,0x3d,0x40,0x3f,0x3b,
+0x3b,0x4c,0x58,0x5a,0x5f,0x63,0x56,0x41,0x4a,0x42,0x37,0x2c,0x25,0x24,0x29,0x2f,
+0x30,0x42,0x50,0x4f,0x4d,0x4e,0x49,0x40,0x36,0x34,0x3e,0x57,0x6e,0x71,0x65,0x59,
+0x62,0x6b,0x75,0x76,0x6d,0x5f,0x55,0x51,0x54,0x48,0x3c,0x38,0x3a,0x3f,0x48,0x50,
+0x5d,0x5b,0x53,0x4a,0x4d,0x5e,0x75,0x84,0x96,0xa1,0xa7,0x9f,0x93,0x87,0x74,0x63,
+0x61,0x61,0x68,0x79,0x84,0x7e,0x7c,0x87,0x93,0x94,0x8a,0x69,0x45,0x42,0x60,0x7b,
+0x76,0x70,0x63,0x53,0x47,0x40,0x3a,0x36,0x29,0x25,0x1f,0x19,0x15,0x14,0x18,0x1d,
+0x1c,0x19,0x14,0x1c,0x3d,0x57,0x4a,0x2a,0x22,0x1e,0x2a,0x2d,0x4d,0x70,0x77,0x4e,
+0x5d,0x63,0x64,0x5b,0x55,0x59,0x63,0x6b,0x66,0x67,0x67,0x65,0x65,0x68,0x6a,0x6a,
+0x61,0x64,0x6c,0x74,0x78,0x75,0x71,0x70,0x72,0x74,0x79,0x81,0x8a,0x90,0x8e,0x8a,
+0x76,0x77,0x7e,0x89,0x8d,0x86,0x7e,0x7b,0x77,0x70,0x70,0x7a,0x85,0x82,0x75,0x68,
+0x6c,0x6d,0x6f,0x73,0x78,0x7a,0x7a,0x79,0x7b,0x76,0x72,0x74,0x7c,0x82,0x82,0x7f,
+0x73,0x60,0x5a,0x68,0x71,0x6b,0x6d,0x77,0x7c,0x78,0x72,0x6b,0x67,0x65,0x61,0x5b,
+0x54,0x61,0x6d,0x6f,0x6c,0x6a,0x6a,0x6a,0x68,0x63,0x6c,0x67,0x66,0x6a,0x63,0x6c,
+0x6e,0x74,0x73,0x69,0x5f,0x60,0x68,0x6e,0x6e,0x60,0x6b,0x86,0x93,0x8e,0x79,0x5d,
+0x54,0x5d,0x6f,0x80,0x84,0x7c,0x6f,0x68,0x5f,0x6a,0x6a,0x69,0x5d,0x68,0x70,0x7c,
+0x71,0x75,0x90,0xa9,0x99,0x6d,0x5c,0x6a,0x61,0x6e,0x75,0x70,0x6f,0x78,0x80,0x81,
+0x79,0x79,0x74,0x6d,0x6c,0x73,0x7a,0x7d,0x80,0x84,0x87,0x85,0x80,0x7e,0x81,0x86,
+0x81,0x76,0x6a,0x6b,0x77,0x81,0x7c,0x71,0x77,0x74,0x76,0x7a,0x79,0x73,0x73,0x78,
+0x7a,0x75,0x7e,0xb8,0xbf,0xbb,0xbe,0xbe,0xbe,0xbe,0xbf,0xc0,0xc2,0xc2,0xc2,0xc2,
+0xc6,0xc7,0xc8,0xc9,0xc9,0xc7,0xc5,0xc3,0xc0,0xc0,0xc0,0xbf,0xbe,0xbe,0xc1,0xc4,
+0xc1,0xc2,0xc2,0xc1,0xbf,0xbe,0xbe,0xbe,0xc1,0xc0,0xbe,0xbd,0xbc,0xbb,0xbb,0xbc,
+0xbc,0xbe,0xbc,0xb7,0xb4,0xb4,0xb2,0xad,0xab,0xad,0xb1,0xb4,0xb5,0xb6,0xb5,0xb4,
+0xb0,0xb0,0xb0,0xae,0xad,0xae,0xb1,0xb4,0xb5,0xb5,0xb4,0xb2,0xb0,0xad,0xaa,0xa8,
+0xaa,0xaa,0xa8,0xa2,0x9c,0x93,0x86,0x7b,0x7a,0x74,0x80,0x82,0x8a,0x8a,0x8c,0x67,
+0x5f,0xbc,0xd1,0xdd,0xda,0xdc,0xe9,0xde,0xe3,0xe3,0xe3,0xe3,0xe4,0xe8,0xef,0xf3,
+0xf9,0xfb,0xfd,0xfe,0xfd,0xfd,0xfe,0xfe,0xfc,0xfc,0xfc,0xfa,0xf9,0xf7,0xf6,0xf5,
+0xf3,0xf2,0xf0,0xee,0xed,0xee,0xef,0xf0,0xed,0xee,0xf0,0xf1,0xf0,0xee,0xeb,0xe8,
+0xe6,0xe6,0xe5,0xe2,0xdd,0xd7,0xd2,0xcf,0xc6,0xc2,0xbf,0xbe,0xbb,0xb6,0xb7,0xbb,
+0xc3,0xc5,0xc9,0xce,0xd3,0xd7,0xdb,0xdd,0xdf,0xe1,0xe3,0xe4,0xe3,0xe1,0xe0,0xe0,
+0xde,0xdb,0xda,0xdc,0xdc,0xd9,0xdb,0xde,0xdc,0xdd,0xdf,0xe0,0xe0,0xe0,0xde,0xdd,
+0xdd,0xdc,0xda,0xd9,0xd8,0xd9,0xda,0xdb,0xdb,0xdc,0xda,0xd8,0xd8,0xda,0xdc,0xdb,
+0xdf,0xe0,0xe1,0xe1,0xe1,0xdf,0xdd,0xdb,0xdb,0xdc,0xdd,0xde,0xdf,0xe0,0xe0,0xe0,
+0xdd,0xdd,0xde,0xdf,0xe0,0xe0,0xdf,0xdf,0xe0,0xdc,0xd9,0xd9,0xdb,0xdc,0xd8,0xd4,
+0xd5,0xd3,0xd1,0xd0,0xd0,0xce,0xcb,0xc8,0xca,0xca,0xcb,0xcc,0xcd,0xcd,0xce,0xce,
+0xcb,0xca,0xc9,0xc8,0xc6,0xc2,0xbd,0xba,0xbc,0xb8,0xbd,0xa6,0x8a,0x5f,0x5f,0x69,
+0x6a,0x6e,0x73,0x77,0x7a,0x7d,0x7f,0x80,0x7f,0x7e,0x7d,0x7c,0x7d,0x7e,0x7f,0x80,
+0x7d,0x7c,0x7a,0x79,0x77,0x76,0x75,0x74,0x71,0x71,0x70,0x70,0x6f,0x6d,0x6c,0x6b,
+0x69,0x66,0x63,0x61,0x61,0x60,0x5c,0x58,0x54,0x53,0x50,0x4d,0x49,0x44,0x3f,0x3b,
+0x38,0x34,0x31,0x2f,0x2e,0x34,0x48,0x5d,0x67,0x6a,0x6f,0x73,0x72,0x70,0x71,0x73,
+0x7d,0x74,0x6a,0x60,0x59,0x60,0x67,0x65,0x52,0x4b,0x40,0x38,0x36,0x35,0x30,0x29,
+0x41,0x52,0x67,0x73,0x6f,0x62,0x53,0x49,0x49,0x42,0x39,0x33,0x2f,0x2d,0x2e,0x2f,
+0x4a,0x49,0x3f,0x33,0x35,0x3e,0x3e,0x36,0x2c,0x33,0x40,0x53,0x66,0x6f,0x68,0x5d,
+0x60,0x6b,0x66,0x4e,0x41,0x4d,0x5e,0x66,0x65,0x61,0x5f,0x61,0x61,0x5c,0x56,0x53,
+0x5b,0x59,0x5a,0x63,0x73,0x85,0x95,0x9e,0xa0,0xa7,0xa2,0x90,0x84,0x87,0x8f,0x92,
+0xa1,0xa6,0xa6,0xa3,0x9b,0x89,0x77,0x73,0x86,0x7c,0x88,0x9a,0x96,0x85,0x74,0x62,
+0x53,0x4f,0x47,0x41,0x3d,0x37,0x2b,0x1f,0x2c,0x3f,0x46,0x3a,0x32,0x37,0x35,0x2b,
+0x23,0x23,0x2b,0x3a,0x45,0x3e,0x2a,0x19,0x13,0x12,0x1b,0x17,0x42,0x6f,0x66,0x1b,
+0x69,0x67,0x62,0x5f,0x5f,0x60,0x5f,0x5c,0x63,0x68,0x66,0x61,0x6c,0x7d,0x7f,0x75,
+0x5e,0x60,0x66,0x6e,0x75,0x78,0x75,0x72,0x70,0x71,0x75,0x7b,0x84,0x88,0x80,0x75,
+0x74,0x74,0x78,0x7f,0x81,0x7f,0x7e,0x81,0x75,0x6b,0x6c,0x7c,0x86,0x7e,0x72,0x6c,
+0x6d,0x6e,0x6f,0x6f,0x6e,0x70,0x73,0x76,0x78,0x72,0x71,0x7c,0x8d,0x94,0x8d,0x83,
+0x69,0x6d,0x65,0x62,0x6e,0x6f,0x69,0x6c,0x74,0x78,0x7e,0x80,0x7d,0x75,0x6a,0x62,
+0x5c,0x63,0x68,0x65,0x61,0x64,0x6c,0x73,0x6c,0x6c,0x65,0x5b,0x5b,0x65,0x6d,0x6e,
+0x70,0x6f,0x6c,0x6a,0x6f,0x73,0x6a,0x5c,0x63,0x6f,0x83,0x9a,0xad,0xb5,0xb0,0xa6,
+0x94,0x92,0x92,0x92,0x88,0x77,0x68,0x61,0x6a,0x6d,0x70,0x6d,0x61,0x5b,0x67,0x79,
+0x89,0xa2,0xa7,0x89,0x68,0x5f,0x62,0x63,0x6a,0x6d,0x73,0x78,0x7d,0x7e,0x7f,0x7e,
+0x77,0x7d,0x78,0x6b,0x69,0x76,0x7e,0x7c,0x72,0x6e,0x6e,0x71,0x71,0x70,0x77,0x80,
+0x7e,0x77,0x72,0x70,0x70,0x71,0x77,0x7e,0x7b,0x7a,0x7a,0x7c,0x7d,0x7d,0x7e,0x80,
+0x89,0x83,0x9b,0xba,0xbe,0xb9,0xbe,0xc2,0xbd,0xbf,0xc0,0xc1,0xc1,0xc1,0xc3,0xc4,
+0xc7,0xc8,0xc9,0xc9,0xc9,0xc8,0xc7,0xc6,0xc7,0xc4,0xc1,0xc1,0xc3,0xc4,0xc1,0xbf,
+0xc2,0xbf,0xbd,0xbe,0xbe,0xbd,0xbf,0xc2,0xbf,0xbc,0xb9,0xb9,0xba,0xbc,0xbc,0xbb,
+0xbd,0xbc,0xba,0xb9,0xb8,0xb6,0xb4,0xb2,0xaa,0xab,0xad,0xaf,0xb1,0xb2,0xb2,0xb3,
+0xb4,0xb1,0xae,0xae,0xaf,0xb0,0xae,0xab,0xb0,0xb3,0xb7,0xb7,0xb4,0xb1,0xae,0xad,
+0xaa,0xa7,0xa5,0xa3,0x9f,0x96,0x8b,0x82,0x81,0x76,0x7d,0x85,0x84,0x8b,0x88,0x70,
+0x57,0xa5,0xd8,0xdb,0xdd,0xe3,0xdd,0xe2,0xe3,0xde,0xde,0xe4,0xea,0xed,0xf2,0xf6,
+0xfb,0xfc,0xfd,0xfd,0xfd,0xfd,0xfd,0xfe,0xfc,0xfa,0xf7,0xf4,0xf4,0xf6,0xf7,0xf6,
+0xf2,0xf1,0xef,0xed,0xeb,0xec,0xee,0xf0,0xee,0xee,0xed,0xed,0xeb,0xea,0xe8,0xe7,
+0xe3,0xe2,0xde,0xd9,0xd2,0xcd,0xca,0xc9,0xc1,0xbe,0xb9,0xb4,0xb4,0xb8,0xbe,0xc3,
+0xc8,0xcc,0xd0,0xd3,0xd5,0xd9,0xdf,0xe3,0xe3,0xe7,0xeb,0xe9,0xe4,0xe0,0xe0,0xe2,
+0xe1,0xdf,0xdd,0xdc,0xdc,0xdd,0xdd,0xdd,0xdd,0xe0,0xe2,0xe3,0xe0,0xdd,0xdc,0xdc,
+0xd8,0xd7,0xd6,0xd7,0xd9,0xda,0xdb,0xdb,0xdd,0xdb,0xd9,0xd8,0xd8,0xd8,0xd7,0xd7,
+0xdc,0xdd,0xdd,0xde,0xdf,0xe0,0xe0,0xe0,0xdd,0xdd,0xde,0xdf,0xdf,0xdf,0xe0,0xe0,
+0xdf,0xdd,0xdc,0xde,0xe1,0xe2,0xdf,0xdc,0xdd,0xdb,0xda,0xda,0xdb,0xda,0xd7,0xd5,
+0xd1,0xd1,0xd1,0xd0,0xce,0xcd,0xcc,0xcc,0xce,0xd0,0xcf,0xca,0xc9,0xcc,0xcd,0xcc,
+0xc9,0xc7,0xc6,0xc7,0xc5,0xbf,0xba,0xb9,0xb7,0xb9,0xb3,0xae,0x8a,0x64,0x64,0x63,
+0x69,0x6e,0x72,0x75,0x77,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7d,0x7d,0x7c,
+0x7a,0x7a,0x79,0x78,0x76,0x74,0x72,0x71,0x70,0x70,0x70,0x70,0x70,0x6e,0x6b,0x68,
+0x68,0x65,0x62,0x5f,0x5d,0x5b,0x59,0x58,0x54,0x50,0x4b,0x48,0x47,0x43,0x3e,0x3a,
+0x33,0x35,0x32,0x2c,0x2e,0x41,0x5c,0x6f,0x77,0x74,0x71,0x6a,0x5a,0x52,0x60,0x76,
+0x7c,0x77,0x6a,0x63,0x6f,0x7d,0x72,0x5a,0x48,0x4a,0x42,0x34,0x30,0x3c,0x47,0x4a,
+0x55,0x56,0x54,0x4d,0x47,0x43,0x42,0x41,0x45,0x39,0x35,0x3a,0x3c,0x3a,0x3f,0x4a,
+0x4f,0x49,0x3b,0x2f,0x33,0x3e,0x3d,0x34,0x3c,0x28,0x31,0x5a,0x71,0x64,0x56,0x58,
+0x5a,0x4e,0x45,0x46,0x4d,0x55,0x5f,0x68,0x69,0x70,0x7c,0x84,0x85,0x80,0x7c,0x7a,
+0x69,0x56,0x57,0x74,0x8a,0x8b,0x8e,0x98,0x9b,0x9f,0xa2,0xa2,0x9c,0x90,0x8d,0x96,
+0x8f,0x88,0x6f,0x5d,0x3b,0x3c,0x4d,0x6c,0x76,0x63,0x5d,0x62,0x5b,0x4f,0x49,0x48,
+0x44,0x38,0x2b,0x24,0x21,0x21,0x24,0x27,0x37,0x30,0x29,0x39,0x48,0x34,0x21,0x2d,
+0x2b,0x2f,0x37,0x44,0x4f,0x4f,0x3f,0x2e,0x21,0x1e,0x14,0x1a,0x41,0x64,0x51,0x26,
+0x68,0x66,0x64,0x63,0x64,0x65,0x63,0x60,0x65,0x6a,0x6b,0x6a,0x70,0x7a,0x79,0x70,
+0x66,0x64,0x64,0x6c,0x75,0x79,0x75,0x6f,0x6a,0x6e,0x75,0x7f,0x89,0x8c,0x83,0x78,
+0x67,0x6a,0x71,0x79,0x7b,0x79,0x79,0x7c,0x7b,0x6f,0x69,0x71,0x7c,0x7f,0x7c,0x7b,
+0x6f,0x6f,0x6e,0x6e,0x6f,0x73,0x77,0x7a,0x71,0x71,0x71,0x71,0x74,0x7a,0x81,0x86,
+0x8c,0x83,0x7f,0x86,0x81,0x6b,0x5f,0x67,0x6b,0x6d,0x6f,0x73,0x79,0x79,0x70,0x64,
+0x74,0x78,0x78,0x71,0x68,0x65,0x66,0x67,0x68,0x64,0x64,0x66,0x63,0x5f,0x64,0x6f,
+0x73,0x6d,0x66,0x64,0x69,0x6d,0x69,0x61,0x57,0x5d,0x68,0x78,0x87,0x8e,0x89,0x80,
+0x7f,0x8f,0xa8,0xbd,0xc1,0xba,0xb3,0xb1,0xa0,0x96,0x86,0x72,0x60,0x5d,0x6f,0x86,
+0x9d,0x8c,0x73,0x5f,0x59,0x5f,0x67,0x6b,0x74,0x75,0x77,0x78,0x78,0x79,0x79,0x79,
+0x78,0x7a,0x75,0x6a,0x69,0x73,0x7a,0x7a,0x6a,0x6c,0x6f,0x73,0x75,0x76,0x7b,0x80,
+0x75,0x7a,0x82,0x84,0x7d,0x71,0x6b,0x6b,0x76,0x77,0x77,0x77,0x79,0x7c,0x80,0x82,
+0x7d,0x86,0xa5,0xbe,0xbc,0xb6,0xba,0xbd,0xbf,0xc0,0xc2,0xc3,0xc3,0xc3,0xc5,0xc6,
+0xcb,0xcc,0xcd,0xcd,0xcc,0xcb,0xc9,0xc8,0xc7,0xc5,0xc3,0xc3,0xc4,0xc4,0xc3,0xc1,
+0xc2,0xbf,0xbd,0xbe,0xbd,0xbc,0xbc,0xbf,0xbc,0xbb,0xba,0xba,0xbc,0xbc,0xbb,0xb9,
+0xbb,0xbb,0xba,0xba,0xba,0xb8,0xb6,0xb4,0xb2,0xb0,0xac,0xa9,0xa9,0xab,0xae,0xb0,
+0xb0,0xae,0xac,0xac,0xae,0xae,0xad,0xac,0xb4,0xb7,0xb9,0xba,0xb8,0xb6,0xb6,0xb6,
+0xae,0xaa,0xa4,0xa0,0x9c,0x97,0x8f,0x89,0x7f,0x74,0x7b,0x86,0x85,0x8a,0x89,0x76,
+0x53,0x9a,0xd0,0xd6,0xda,0xe2,0xdf,0xe4,0xe5,0xe3,0xe4,0xea,0xf0,0xf3,0xf6,0xfa,
+0xfa,0xfb,0xfc,0xfc,0xfb,0xfa,0xf9,0xf8,0xf5,0xf3,0xf1,0xf1,0xf4,0xf5,0xf3,0xf0,
+0xef,0xee,0xec,0xe9,0xe7,0xe6,0xe8,0xe9,0xe8,0xe8,0xe7,0xe6,0xe5,0xe4,0xe4,0xe3,
+0xdf,0xdd,0xda,0xd5,0xd0,0xca,0xc5,0xc3,0xbd,0xbb,0xb8,0xb6,0xb6,0xbb,0xc1,0xc6,
+0xcb,0xcf,0xd3,0xd6,0xd9,0xdd,0xe2,0xe6,0xe9,0xe9,0xea,0xe9,0xe7,0xe5,0xe2,0xe1,
+0xe0,0xdf,0xde,0xde,0xdf,0xdf,0xdf,0xde,0xde,0xe0,0xe3,0xe3,0xe2,0xdf,0xdc,0xdb,
+0xdb,0xda,0xd9,0xda,0xdb,0xdc,0xdc,0xdb,0xdc,0xdc,0xdc,0xda,0xd9,0xd8,0xd7,0xd7,
+0xd7,0xd8,0xd9,0xdb,0xdc,0xdc,0xdc,0xdc,0xde,0xdf,0xe0,0xe1,0xe1,0xe1,0xe0,0xdf,
+0xe1,0xdf,0xde,0xdf,0xe0,0xe0,0xde,0xdc,0xd9,0xd9,0xd8,0xd8,0xd8,0xd7,0xd6,0xd4,
+0xd2,0xd2,0xd1,0xd0,0xce,0xcd,0xcd,0xcd,0xcd,0xce,0xcd,0xc9,0xc9,0xcc,0xcd,0xcb,
+0xcd,0xca,0xc7,0xc4,0xbe,0xb7,0xb3,0xb2,0xb2,0xb5,0xb1,0xaa,0x87,0x64,0x64,0x64,
+0x69,0x6e,0x72,0x74,0x77,0x7b,0x7e,0x7d,0x7c,0x7c,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,
+0x7a,0x79,0x79,0x77,0x75,0x73,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x6e,0x6c,0x69,0x67,
+0x66,0x64,0x60,0x5d,0x5b,0x59,0x57,0x56,0x55,0x50,0x4a,0x46,0x43,0x40,0x3b,0x38,
+0x34,0x32,0x31,0x33,0x3c,0x4d,0x60,0x6d,0x69,0x68,0x68,0x65,0x5d,0x5a,0x65,0x74,
+0x7c,0x74,0x7f,0x90,0x7e,0x54,0x42,0x4c,0x58,0x54,0x41,0x2b,0x2f,0x43,0x47,0x3b,
+0x36,0x3a,0x42,0x4e,0x59,0x5c,0x56,0x4e,0x44,0x3b,0x37,0x40,0x4a,0x4f,0x55,0x5b,
+0x73,0x6b,0x63,0x59,0x46,0x34,0x33,0x3e,0x3a,0x32,0x3b,0x57,0x66,0x5a,0x4a,0x45,
+0x47,0x46,0x45,0x48,0x4f,0x58,0x5f,0x63,0x6b,0x6e,0x72,0x74,0x73,0x74,0x7a,0x80,
+0x7a,0x7a,0x80,0x8b,0x94,0x98,0x9b,0x9e,0xa3,0x96,0x94,0x95,0x92,0x93,0x8f,0x7e,
+0x70,0x5a,0x3e,0x43,0x49,0x5f,0x65,0x6e,0x66,0x6d,0x7a,0x80,0x7c,0x7c,0x7a,0x73,
+0x55,0x50,0x4a,0x41,0x38,0x31,0x2d,0x2b,0x33,0x5a,0x61,0x44,0x30,0x32,0x3e,0x4c,
+0x40,0x41,0x44,0x4b,0x55,0x5c,0x5c,0x57,0x3f,0x36,0x29,0x29,0x3e,0x4f,0x41,0x25,
+0x66,0x64,0x63,0x63,0x64,0x62,0x5f,0x5c,0x64,0x66,0x68,0x6a,0x6e,0x71,0x71,0x6f,
+0x6b,0x66,0x63,0x68,0x71,0x75,0x71,0x6b,0x72,0x74,0x77,0x7c,0x82,0x84,0x7f,0x78,
+0x75,0x7a,0x81,0x85,0x82,0x7c,0x79,0x7b,0x7a,0x73,0x6f,0x73,0x7e,0x85,0x84,0x80,
+0x7d,0x79,0x72,0x6e,0x6d,0x6e,0x70,0x71,0x6c,0x6b,0x6b,0x6d,0x72,0x76,0x77,0x77,
+0x72,0x74,0x7d,0x80,0x77,0x6d,0x68,0x64,0x77,0x7b,0x74,0x65,0x5c,0x62,0x6b,0x6f,
+0x77,0x79,0x79,0x74,0x70,0x6d,0x68,0x64,0x6b,0x66,0x64,0x62,0x5c,0x58,0x5f,0x6c,
+0x75,0x6b,0x62,0x63,0x69,0x6d,0x6e,0x6e,0x74,0x73,0x73,0x76,0x7d,0x80,0x7a,0x72,
+0x6f,0x71,0x76,0x7b,0x80,0x86,0x90,0x99,0xad,0xac,0xae,0xb0,0xac,0xa1,0x98,0x96,
+0x81,0x79,0x6f,0x6b,0x6c,0x6d,0x6b,0x68,0x64,0x69,0x70,0x76,0x78,0x76,0x72,0x6f,
+0x6f,0x70,0x71,0x71,0x72,0x73,0x6f,0x6a,0x6e,0x71,0x73,0x70,0x6e,0x6e,0x6f,0x6f,
+0x74,0x7d,0x87,0x86,0x7a,0x6c,0x66,0x68,0x6b,0x6f,0x6f,0x6c,0x6d,0x73,0x79,0x7a,
+0x70,0x8c,0xb1,0xc1,0xb9,0xb5,0xbb,0xbc,0xc2,0xc3,0xc4,0xc5,0xc5,0xc6,0xc7,0xc8,
+0xcb,0xcb,0xcc,0xcc,0xcb,0xc9,0xc7,0xc5,0xc7,0xc6,0xc5,0xc4,0xc3,0xc3,0xc2,0xc1,
+0xc1,0xbf,0xbe,0xbe,0xbd,0xbb,0xba,0xbb,0xbc,0xbc,0xbd,0xbe,0xbe,0xbe,0xbc,0xba,
+0xb9,0xb9,0xba,0xbb,0xbc,0xba,0xb8,0xb6,0xb5,0xb2,0xad,0xa9,0xa8,0xa9,0xac,0xae,
+0xb1,0xb0,0xb0,0xaf,0xaf,0xae,0xad,0xad,0xae,0xaf,0xb0,0xb1,0xb0,0xb0,0xb1,0xb2,
+0xaf,0xaa,0xa4,0xa0,0x9d,0x98,0x92,0x8d,0x80,0x74,0x7b,0x88,0x87,0x87,0x87,0x7d,
+0x51,0x8c,0xc7,0xd2,0xd9,0xe3,0xe3,0xe9,0xe9,0xe9,0xeb,0xf1,0xf6,0xf8,0xfa,0xfc,
+0xfc,0xfc,0xfd,0xfc,0xfb,0xf8,0xf5,0xf4,0xed,0xe9,0xe4,0xe5,0xe9,0xec,0xed,0xed,
+0xee,0xee,0xec,0xe8,0xe5,0xe3,0xe4,0xe5,0xe5,0xe5,0xe3,0xe2,0xe1,0xe1,0xe1,0xe1,
+0xd9,0xd6,0xd3,0xd0,0xcd,0xc8,0xc2,0xbd,0xb5,0xb5,0xb5,0xb6,0xb8,0xbd,0xc3,0xc8,
+0xd0,0xd3,0xd8,0xdb,0xde,0xe2,0xe7,0xea,0xee,0xeb,0xe8,0xe8,0xea,0xe9,0xe6,0xe2,
+0xe0,0xdf,0xdf,0xdf,0xe0,0xe0,0xdf,0xde,0xdf,0xe0,0xe1,0xe2,0xe2,0xe1,0xdd,0xdb,
+0xde,0xdd,0xdd,0xdd,0xdd,0xdd,0xdc,0xda,0xd9,0xda,0xdb,0xd9,0xd6,0xd4,0xd4,0xd5,
+0xd5,0xd6,0xd8,0xda,0xdb,0xdb,0xda,0xda,0xdd,0xde,0xe0,0xe1,0xe2,0xe2,0xe1,0xe1,
+0xe2,0xe1,0xdf,0xde,0xdd,0xdc,0xdb,0xda,0xd8,0xd8,0xd9,0xd8,0xd7,0xd6,0xd5,0xd5,
+0xd3,0xd3,0xd1,0xd0,0xcf,0xcf,0xcf,0xcf,0xce,0xce,0xcc,0xca,0xcc,0xce,0xcd,0xca,
+0xcb,0xc8,0xc3,0xbd,0xb4,0xac,0xaa,0xab,0xad,0xaf,0xac,0xa2,0x7f,0x61,0x63,0x65,
+0x68,0x6d,0x72,0x74,0x77,0x7b,0x7e,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,
+0x79,0x78,0x77,0x76,0x74,0x73,0x71,0x70,0x6f,0x6e,0x6d,0x6d,0x6c,0x6a,0x67,0x64,
+0x64,0x61,0x5e,0x5b,0x59,0x57,0x55,0x53,0x52,0x4d,0x47,0x42,0x3f,0x3c,0x38,0x36,
+0x32,0x2d,0x2f,0x3e,0x4f,0x5b,0x63,0x69,0x67,0x66,0x63,0x60,0x5e,0x61,0x66,0x6a,
+0x71,0x7f,0x7c,0x61,0x4e,0x57,0x6d,0x7b,0x6d,0x64,0x65,0x6f,0x6e,0x5e,0x52,0x51,
+0x50,0x49,0x47,0x52,0x62,0x69,0x62,0x57,0x35,0x35,0x39,0x43,0x4e,0x52,0x4e,0x49,
+0x30,0x35,0x37,0x35,0x34,0x34,0x2e,0x27,0x35,0x37,0x3f,0x49,0x4d,0x46,0x3a,0x32,
+0x3d,0x42,0x46,0x4a,0x53,0x5f,0x68,0x6c,0x6b,0x68,0x65,0x63,0x64,0x64,0x63,0x61,
+0x70,0x80,0x88,0x82,0x82,0x8a,0x8a,0x82,0x6d,0x7e,0x77,0x66,0x66,0x62,0x5d,0x66,
+0x57,0x53,0x4d,0x58,0x5e,0x67,0x61,0x60,0x65,0x69,0x70,0x6f,0x6b,0x70,0x73,0x6e,
+0x8a,0x87,0x7e,0x6f,0x62,0x5d,0x5e,0x61,0x81,0x69,0x3d,0x1a,0x1b,0x32,0x41,0x40,
+0x4a,0x44,0x41,0x4c,0x62,0x77,0x7e,0x7b,0x76,0x5b,0x3a,0x2c,0x36,0x4f,0x65,0x72,
+0x62,0x5f,0x5e,0x60,0x62,0x61,0x60,0x5f,0x61,0x5f,0x61,0x65,0x67,0x68,0x6c,0x73,
+0x6f,0x6e,0x6e,0x70,0x72,0x73,0x71,0x6f,0x75,0x77,0x7a,0x7c,0x7d,0x7b,0x75,0x70,
+0x6f,0x75,0x7c,0x80,0x7e,0x7b,0x7c,0x7e,0x7a,0x79,0x77,0x77,0x7d,0x85,0x84,0x7d,
+0x7a,0x73,0x6c,0x69,0x6c,0x6f,0x70,0x6f,0x6e,0x6b,0x6a,0x6f,0x76,0x79,0x75,0x71,
+0x6b,0x6f,0x7b,0x7d,0x75,0x78,0x7c,0x73,0x8a,0x9c,0xa3,0x94,0x7f,0x73,0x6e,0x6a,
+0x69,0x6a,0x6c,0x6e,0x72,0x73,0x6e,0x67,0x62,0x64,0x5f,0x5a,0x60,0x72,0x7f,0x84,
+0x74,0x69,0x63,0x68,0x6d,0x6c,0x6c,0x6f,0x75,0x73,0x6f,0x6d,0x6f,0x72,0x70,0x6d,
+0x74,0x6f,0x69,0x68,0x6c,0x72,0x79,0x7d,0x88,0x7a,0x73,0x7e,0x93,0xa3,0xa8,0xa8,
+0xae,0xba,0xba,0xad,0xa6,0xaa,0xaa,0xa4,0x97,0x8f,0x85,0x80,0x83,0x8b,0x92,0x96,
+0xa1,0x98,0x91,0x91,0x90,0x87,0x79,0x6f,0x6e,0x73,0x74,0x6f,0x6e,0x72,0x75,0x74,
+0x7d,0x82,0x86,0x80,0x73,0x68,0x66,0x69,0x66,0x6c,0x6c,0x67,0x67,0x6d,0x72,0x71,
+0x6e,0x95,0xb8,0xbe,0xb7,0xb9,0xc1,0xc2,0xc4,0xc6,0xc7,0xc7,0xc6,0xc6,0xc7,0xc9,
+0xc8,0xc9,0xca,0xca,0xc9,0xc7,0xc5,0xc4,0xc6,0xc6,0xc5,0xc4,0xc1,0xbf,0xbe,0xbe,
+0xbf,0xbd,0xbd,0xbf,0xbe,0xbb,0xba,0xbb,0xbb,0xbc,0xbc,0xbd,0xbd,0xbc,0xbb,0xba,
+0xb8,0xb9,0xba,0xbc,0xbc,0xbb,0xb8,0xb5,0xaf,0xb0,0xb0,0xb0,0xaf,0xaf,0xae,0xae,
+0xb3,0xb3,0xb3,0xb1,0xae,0xac,0xaa,0xaa,0xad,0xae,0xaf,0xb0,0xb0,0xaf,0xaf,0xaf,
+0xab,0xa8,0xa5,0xa2,0x9f,0x99,0x91,0x8a,0x84,0x77,0x7c,0x89,0x88,0x83,0x83,0x80,
+0x52,0x7d,0xc0,0xce,0xd7,0xe0,0xe4,0xea,0xec,0xec,0xef,0xf2,0xf6,0xf8,0xfa,0xfb,
+0xfc,0xfc,0xfb,0xfa,0xf8,0xf4,0xef,0xec,0xe6,0xde,0xd5,0xd1,0xd2,0xd9,0xe4,0xec,
+0xef,0xee,0xed,0xea,0xe7,0xe5,0xe5,0xe5,0xe4,0xe3,0xe3,0xe2,0xe0,0xde,0xdd,0xdc,
+0xd3,0xd1,0xce,0xcc,0xcb,0xc7,0xc0,0xba,0xb1,0xb3,0xb6,0xba,0xbe,0xc3,0xc9,0xcd,
+0xd4,0xd8,0xdc,0xe0,0xe2,0xe5,0xe9,0xec,0xef,0xec,0xe9,0xe9,0xeb,0xec,0xe9,0xe5,
+0xe3,0xe1,0xde,0xdd,0xde,0xde,0xde,0xdd,0xde,0xdd,0xdc,0xdd,0xdf,0xe0,0xdf,0xdd,
+0xde,0xde,0xde,0xde,0xde,0xdd,0xdb,0xda,0xd8,0xda,0xd9,0xd6,0xd2,0xd1,0xd3,0xd6,
+0xd6,0xd7,0xd9,0xda,0xda,0xda,0xd8,0xd8,0xd9,0xda,0xdb,0xde,0xe0,0xe2,0xe3,0xe3,
+0xe0,0xe0,0xde,0xdc,0xda,0xd9,0xd9,0xda,0xd9,0xdb,0xdb,0xda,0xd7,0xd5,0xd5,0xd6,
+0xd5,0xd3,0xd1,0xd0,0xcf,0xd0,0xd0,0xd0,0xcf,0xcd,0xcb,0xcc,0xcf,0xd0,0xcd,0xca,
+0xc4,0xc0,0xbb,0xb4,0xab,0xa4,0xa4,0xa8,0xab,0xaa,0xa7,0x97,0x75,0x5e,0x60,0x65,
+0x68,0x6d,0x72,0x74,0x77,0x7b,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x77,0x77,
+0x77,0x77,0x76,0x75,0x73,0x72,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x68,0x65,0x62,
+0x62,0x60,0x5d,0x5a,0x58,0x55,0x52,0x50,0x4b,0x48,0x43,0x3f,0x3c,0x39,0x36,0x33,
+0x2f,0x2c,0x37,0x4f,0x63,0x68,0x67,0x67,0x69,0x67,0x62,0x60,0x66,0x6f,0x72,0x6e,
+0x5f,0x51,0x47,0x4b,0x54,0x53,0x45,0x37,0x5c,0x69,0x70,0x6e,0x73,0x79,0x6f,0x5c,
+0x5a,0x4c,0x3f,0x40,0x4a,0x4f,0x4c,0x46,0x51,0x5f,0x6e,0x76,0x7a,0x76,0x67,0x56,
+0x3c,0x3e,0x3a,0x35,0x3c,0x44,0x3b,0x28,0x31,0x35,0x38,0x3a,0x39,0x39,0x39,0x38,
+0x4a,0x46,0x46,0x4c,0x55,0x5e,0x68,0x6f,0x70,0x7a,0x80,0x78,0x6a,0x64,0x6a,0x72,
+0x71,0x7c,0x7b,0x6f,0x6e,0x76,0x6d,0x5b,0x55,0x3d,0x3c,0x49,0x55,0x68,0x65,0x47,
+0x42,0x53,0x66,0x76,0x7c,0x7f,0x7a,0x75,0x74,0x68,0x68,0x73,0x7a,0x81,0x89,0x8c,
+0x80,0x8c,0x97,0x9b,0x98,0x93,0x8e,0x8c,0x7c,0x5b,0x46,0x47,0x49,0x44,0x41,0x3f,
+0x31,0x41,0x4c,0x4a,0x42,0x43,0x51,0x5d,0x6e,0x66,0x5e,0x5e,0x63,0x6c,0x77,0x81,
+0x61,0x5d,0x5c,0x60,0x64,0x66,0x67,0x69,0x60,0x5d,0x5f,0x64,0x64,0x61,0x66,0x6f,
+0x75,0x7c,0x83,0x82,0x7c,0x78,0x79,0x7c,0x71,0x76,0x7e,0x82,0x7f,0x78,0x71,0x6d,
+0x78,0x7b,0x7c,0x7b,0x79,0x78,0x79,0x79,0x82,0x83,0x7e,0x76,0x76,0x7c,0x7e,0x7b,
+0x7b,0x73,0x6b,0x6b,0x70,0x73,0x6f,0x6a,0x6f,0x6e,0x6c,0x6b,0x6b,0x6e,0x72,0x75,
+0x74,0x68,0x74,0x88,0x87,0x82,0x89,0x8e,0x94,0xa0,0xa6,0x9f,0x92,0x86,0x77,0x6a,
+0x68,0x68,0x6a,0x6d,0x72,0x74,0x6f,0x67,0x5b,0x5e,0x60,0x64,0x71,0x7f,0x81,0x7a,
+0x6b,0x64,0x64,0x6e,0x72,0x6b,0x66,0x68,0x71,0x72,0x72,0x71,0x73,0x78,0x7c,0x7d,
+0x70,0x72,0x75,0x74,0x73,0x75,0x79,0x7c,0x88,0x7d,0x75,0x77,0x7d,0x7d,0x74,0x6c,
+0x69,0x78,0x81,0x82,0x86,0x8c,0x86,0x79,0x73,0x6b,0x63,0x63,0x6e,0x7b,0x84,0x88,
+0x85,0x74,0x65,0x65,0x6d,0x70,0x6e,0x6b,0x6f,0x76,0x7a,0x78,0x78,0x7d,0x7f,0x7d,
+0x83,0x85,0x86,0x81,0x78,0x6e,0x66,0x62,0x66,0x6b,0x6c,0x6a,0x6b,0x71,0x74,0x74,
+0x80,0xa2,0xbb,0xb9,0xb6,0xbe,0xc5,0xc7,0xc6,0xc7,0xc7,0xc7,0xc6,0xc6,0xc7,0xc8,
+0xc9,0xca,0xca,0xcb,0xca,0xc9,0xc8,0xc7,0xc6,0xc6,0xc6,0xc4,0xc0,0xbd,0xbb,0xbb,
+0xbc,0xbb,0xbc,0xbf,0xbf,0xbc,0xbb,0xbc,0xba,0xba,0xba,0xba,0xb9,0xb9,0xb9,0xba,
+0xb9,0xba,0xbb,0xbc,0xbc,0xba,0xb7,0xb5,0xae,0xaf,0xb1,0xb3,0xb4,0xb3,0xb1,0xb0,
+0xb0,0xb1,0xb0,0xae,0xab,0xa9,0xa7,0xa7,0xac,0xad,0xae,0xaf,0xaf,0xad,0xab,0xa9,
+0xaa,0xa7,0xa4,0xa2,0x9f,0x99,0x90,0x89,0x85,0x7a,0x7b,0x87,0x88,0x82,0x81,0x84,
+0x56,0x71,0xbb,0xcb,0xd3,0xd9,0xdf,0xe7,0xf0,0xf2,0xf3,0xf4,0xf6,0xf8,0xfa,0xfb,
+0xfc,0xfa,0xf7,0xf4,0xef,0xe9,0xe2,0xdd,0xd8,0xd1,0xc8,0xc1,0xbe,0xc5,0xd6,0xe7,
+0xea,0xeb,0xea,0xe9,0xe6,0xe5,0xe5,0xe5,0xe0,0xe1,0xe1,0xe0,0xde,0xda,0xd6,0xd4,
+0xd1,0xce,0xca,0xc7,0xc5,0xc0,0xb9,0xb4,0xb2,0xb6,0xbb,0xc1,0xc6,0xcc,0xd0,0xd3,
+0xd7,0xdb,0xe0,0xe3,0xe5,0xe6,0xe9,0xeb,0xed,0xec,0xec,0xec,0xec,0xec,0xeb,0xeb,
+0xe6,0xe3,0xdf,0xdc,0xdb,0xdb,0xdc,0xdc,0xdc,0xd9,0xd7,0xd7,0xda,0xdd,0xdf,0xdf,
+0xde,0xde,0xde,0xde,0xdf,0xde,0xdc,0xda,0xdb,0xdb,0xda,0xd6,0xd3,0xd3,0xd8,0xdc,
+0xd8,0xd9,0xda,0xda,0xda,0xd9,0xd8,0xd7,0xd9,0xd8,0xd9,0xd9,0xdb,0xde,0xe0,0xe2,
+0xde,0xde,0xdd,0xdc,0xda,0xda,0xda,0xdc,0xdb,0xdc,0xdc,0xda,0xd6,0xd4,0xd4,0xd5,
+0xd5,0xd3,0xd0,0xcf,0xd0,0xd0,0xcf,0xce,0xcd,0xcb,0xca,0xcc,0xce,0xce,0xca,0xc7,
+0xbe,0xbb,0xb5,0xae,0xa6,0xa0,0xa1,0xa5,0xab,0xa7,0xa3,0x8d,0x6c,0x5e,0x60,0x66,
+0x69,0x6e,0x72,0x74,0x76,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x79,0x78,0x77,0x76,
+0x75,0x75,0x74,0x73,0x72,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x67,0x64,0x62,
+0x60,0x5e,0x5b,0x59,0x56,0x53,0x50,0x4e,0x46,0x45,0x42,0x3e,0x3a,0x36,0x32,0x2f,
+0x2f,0x33,0x44,0x5f,0x70,0x70,0x6a,0x69,0x63,0x64,0x65,0x68,0x74,0x7f,0x7d,0x73,
+0x67,0x55,0x4a,0x49,0x3f,0x37,0x4d,0x6f,0x80,0x64,0x5a,0x6b,0x76,0x69,0x5c,0x5b,
+0x56,0x4e,0x4a,0x4d,0x53,0x55,0x55,0x55,0x55,0x69,0x7b,0x7d,0x7b,0x76,0x6a,0x5c,
+0x52,0x4d,0x4a,0x49,0x42,0x38,0x39,0x41,0x3a,0x3a,0x3b,0x3d,0x3a,0x38,0x3c,0x44,
+0x4c,0x42,0x41,0x4d,0x55,0x54,0x53,0x57,0x5b,0x5e,0x5f,0x5d,0x5f,0x67,0x6f,0x73,
+0x7d,0x73,0x66,0x61,0x66,0x66,0x54,0x3d,0x25,0x3d,0x4a,0x58,0x66,0x52,0x37,0x38,
+0x64,0x7a,0x8d,0x8a,0x81,0x7a,0x7b,0x7a,0x7a,0x72,0x74,0x79,0x76,0x70,0x69,0x5f,
+0x70,0x6e,0x6b,0x69,0x68,0x67,0x68,0x6a,0x65,0x5f,0x61,0x6a,0x72,0x79,0x7b,0x76,
+0x78,0x70,0x66,0x62,0x6a,0x77,0x7e,0x80,0x5e,0x63,0x67,0x64,0x5e,0x56,0x4e,0x48,
+0x68,0x61,0x5e,0x61,0x63,0x62,0x62,0x65,0x5d,0x5c,0x61,0x67,0x65,0x5f,0x60,0x66,
+0x7b,0x85,0x8f,0x8e,0x85,0x7f,0x80,0x85,0x81,0x81,0x81,0x7e,0x78,0x73,0x74,0x79,
+0x7f,0x7f,0x7f,0x80,0x87,0x8e,0x90,0x8f,0x80,0x87,0x8a,0x84,0x7d,0x79,0x76,0x73,
+0x7a,0x74,0x70,0x75,0x7f,0x81,0x7a,0x71,0x6c,0x68,0x64,0x65,0x6a,0x6c,0x6a,0x66,
+0x60,0x5d,0x68,0x79,0x81,0x83,0x85,0x87,0x88,0x84,0x79,0x6a,0x62,0x65,0x6e,0x74,
+0x71,0x71,0x70,0x71,0x74,0x76,0x71,0x6b,0x66,0x66,0x70,0x81,0x87,0x7b,0x69,0x5f,
+0x5f,0x5e,0x65,0x73,0x79,0x75,0x70,0x71,0x78,0x79,0x77,0x71,0x6e,0x6e,0x6f,0x6e,
+0x78,0x80,0x83,0x79,0x6b,0x69,0x73,0x7e,0x77,0x77,0x75,0x70,0x6c,0x6b,0x6f,0x73,
+0x73,0x6a,0x63,0x64,0x6a,0x73,0x7f,0x8a,0x87,0x89,0x8f,0x97,0x9e,0xa0,0x9c,0x97,
+0x8c,0x7c,0x6b,0x66,0x6a,0x6c,0x69,0x66,0x64,0x6c,0x74,0x79,0x7c,0x7f,0x80,0x80,
+0x7f,0x7d,0x79,0x76,0x75,0x73,0x6d,0x67,0x5f,0x60,0x62,0x66,0x6b,0x72,0x77,0x7a,
+0x99,0xb0,0xba,0xb5,0xb7,0xbf,0xc4,0xc8,0xc5,0xc6,0xc7,0xc7,0xc7,0xc7,0xc8,0xc9,
+0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc9,0xc8,0xc7,0xc6,0xc5,0xc2,0xc0,0xbd,0xbb,
+0xb9,0xb8,0xba,0xbd,0xbe,0xbc,0xbc,0xbd,0xbd,0xbe,0xbe,0xbd,0xbc,0xbc,0xbd,0xbe,
+0xbb,0xbb,0xbc,0xbc,0xbc,0xbb,0xb8,0xb5,0xb4,0xb3,0xb1,0xb0,0xb0,0xb0,0xb1,0xb2,
+0xaf,0xaf,0xaf,0xae,0xae,0xac,0xaa,0xa9,0xaa,0xaa,0xac,0xad,0xad,0xac,0xa9,0xa6,
+0xac,0xa8,0xa2,0x9f,0x9d,0x99,0x93,0x8e,0x83,0x7b,0x7a,0x83,0x88,0x84,0x82,0x86,
+0x5e,0x6c,0xbd,0xcd,0xd2,0xd3,0xdb,0xe4,0xf5,0xf8,0xfb,0xfb,0xfb,0xfd,0xfe,0xfd,
+0xfc,0xf8,0xf2,0xec,0xe6,0xde,0xd5,0xcf,0xc8,0xc4,0xbf,0xba,0xb4,0xb8,0xca,0xdd,
+0xe2,0xe3,0xe4,0xe3,0xe2,0xe1,0xe1,0xe1,0xe0,0xe0,0xe0,0xde,0xdb,0xd7,0xd2,0xd0,
+0xce,0xca,0xc5,0xc0,0xbc,0xb7,0xb2,0xae,0xb4,0xb8,0xbf,0xc5,0xcb,0xcf,0xd3,0xd6,
+0xdb,0xde,0xe3,0xe5,0xe5,0xe5,0xe7,0xe8,0xea,0xec,0xed,0xed,0xeb,0xea,0xea,0xec,
+0xe7,0xe3,0xde,0xdb,0xd9,0xd9,0xd9,0xd9,0xd8,0xd6,0xd3,0xd3,0xd6,0xda,0xdd,0xdf,
+0xdf,0xde,0xdd,0xdd,0xdd,0xdc,0xdb,0xd9,0xd8,0xd8,0xd6,0xd3,0xd2,0xd4,0xd9,0xdd,
+0xde,0xde,0xde,0xde,0xdd,0xdd,0xdc,0xdc,0xdd,0xdc,0xdb,0xda,0xda,0xdb,0xdc,0xdd,
+0xdd,0xdd,0xdc,0xdc,0xdc,0xdd,0xdd,0xdd,0xda,0xda,0xd9,0xd7,0xd4,0xd3,0xd3,0xd3,
+0xd4,0xd2,0xd0,0xcf,0xd0,0xcf,0xcd,0xcb,0xc9,0xc7,0xc7,0xca,0xcb,0xc8,0xc5,0xc3,
+0xbd,0xb8,0xb2,0xab,0xa2,0x9c,0x9b,0x9e,0xa7,0xa1,0x9e,0x85,0x68,0x61,0x62,0x68,
+0x6a,0x6e,0x72,0x74,0x76,0x79,0x7b,0x7a,0x7b,0x7b,0x7b,0x7a,0x79,0x77,0x76,0x75,
+0x74,0x73,0x73,0x72,0x71,0x6f,0x6e,0x6d,0x6c,0x6a,0x69,0x68,0x67,0x65,0x63,0x61,
+0x5e,0x5c,0x5a,0x57,0x54,0x51,0x4e,0x4b,0x45,0x43,0x40,0x3c,0x38,0x33,0x2f,0x2d,
+0x31,0x3a,0x4e,0x64,0x6f,0x6d,0x69,0x68,0x68,0x6b,0x6e,0x73,0x79,0x79,0x6d,0x5e,
+0x51,0x52,0x48,0x3c,0x44,0x63,0x7f,0x89,0x85,0x7b,0x66,0x56,0x5b,0x6a,0x67,0x58,
+0x56,0x4f,0x48,0x47,0x45,0x44,0x49,0x50,0x59,0x65,0x6c,0x69,0x67,0x69,0x67,0x5f,
+0x4f,0x59,0x63,0x64,0x5e,0x58,0x58,0x5a,0x52,0x4c,0x4b,0x4b,0x43,0x36,0x33,0x37,
+0x32,0x30,0x39,0x4c,0x58,0x54,0x4a,0x45,0x3f,0x40,0x40,0x46,0x54,0x63,0x66,0x61,
+0x6e,0x59,0x4d,0x58,0x62,0x59,0x44,0x37,0x52,0x61,0x7e,0x78,0x47,0x2e,0x3e,0x4e,
+0x52,0x59,0x63,0x65,0x79,0x83,0x80,0x6e,0x58,0x66,0x72,0x70,0x6f,0x7b,0x7e,0x71,
+0x59,0x54,0x5a,0x6b,0x77,0x74,0x6b,0x66,0x6b,0x6b,0x63,0x58,0x53,0x5a,0x69,0x74,
+0x90,0x95,0x98,0x95,0x8b,0x7d,0x6d,0x61,0x46,0x49,0x46,0x3b,0x32,0x2c,0x24,0x1d,
+0x6b,0x63,0x5f,0x61,0x60,0x5b,0x58,0x5a,0x5a,0x5c,0x62,0x69,0x6a,0x68,0x6a,0x6e,
+0x7f,0x86,0x8d,0x8e,0x89,0x84,0x83,0x84,0x8e,0x8a,0x84,0x7c,0x74,0x71,0x7a,0x86,
+0x99,0x91,0x86,0x7e,0x7d,0x7d,0x75,0x6b,0x75,0x82,0x8f,0x8e,0x82,0x74,0x6c,0x6a,
+0x69,0x67,0x6a,0x79,0x8a,0x8f,0x86,0x7a,0x6a,0x62,0x5d,0x64,0x6f,0x73,0x6b,0x60,
+0x61,0x6b,0x6d,0x6c,0x72,0x76,0x70,0x6b,0x6f,0x6d,0x6a,0x65,0x5f,0x5e,0x66,0x70,
+0x73,0x73,0x72,0x70,0x71,0x73,0x72,0x70,0x6f,0x73,0x80,0x8b,0x89,0x7a,0x6e,0x6c,
+0x63,0x64,0x6c,0x77,0x7e,0x7f,0x7e,0x7f,0x8a,0x86,0x7f,0x76,0x71,0x6e,0x69,0x64,
+0x6c,0x79,0x83,0x7d,0x71,0x6c,0x70,0x75,0x73,0x7a,0x7c,0x75,0x6a,0x66,0x6b,0x71,
+0x76,0x73,0x71,0x6f,0x67,0x5f,0x5f,0x65,0x61,0x68,0x73,0x7f,0x8a,0x97,0xa3,0xab,
+0xbe,0xb5,0xa7,0x97,0x8a,0x7f,0x73,0x6b,0x6a,0x6d,0x74,0x7b,0x7f,0x82,0x86,0x8b,
+0x7d,0x77,0x6e,0x68,0x6c,0x71,0x71,0x6c,0x5d,0x58,0x58,0x61,0x6b,0x72,0x7a,0x82,
+0xaa,0xb7,0xb8,0xb4,0xba,0xbe,0xc0,0xc8,0xc2,0xc4,0xc6,0xc7,0xc7,0xc8,0xca,0xcc,
+0xc9,0xc8,0xc7,0xc5,0xc5,0xc5,0xc6,0xc7,0xc8,0xc6,0xc5,0xc5,0xc5,0xc3,0xc0,0xbd,
+0xb8,0xb7,0xb7,0xba,0xbb,0xba,0xba,0xbc,0xbf,0xc1,0xc3,0xc2,0xc1,0xbf,0xc0,0xc0,
+0xbe,0xbd,0xbd,0xbd,0xbd,0xbc,0xba,0xb8,0xb9,0xb7,0xb3,0xb0,0xae,0xaf,0xb1,0xb2,
+0xb2,0xb1,0xb0,0xb0,0xb1,0xb0,0xad,0xab,0xad,0xac,0xad,0xaf,0xb1,0xb2,0xb0,0xaf,
+0xab,0xa7,0xa3,0xa1,0xa0,0x9d,0x97,0x92,0x84,0x7e,0x7a,0x7f,0x87,0x85,0x81,0x85,
+0x63,0x66,0xbe,0xce,0xcf,0xcc,0xd6,0xdf,0xed,0xf3,0xf9,0xfa,0xfa,0xfb,0xfa,0xf7,
+0xf2,0xed,0xe7,0xe1,0xdb,0xd4,0xcb,0xc6,0xbd,0xba,0xb7,0xb5,0xb1,0xb4,0xc4,0xd6,
+0xdc,0xde,0xdf,0xdf,0xde,0xdd,0xdd,0xde,0xdf,0xde,0xdc,0xd9,0xd6,0xd3,0xd0,0xcf,
+0xc7,0xc4,0xbf,0xb9,0xb5,0xb2,0xb0,0xb0,0xb8,0xbc,0xc3,0xc9,0xce,0xd2,0xd6,0xd8,
+0xdd,0xe1,0xe5,0xe7,0xe6,0xe4,0xe4,0xe5,0xe7,0xe8,0xea,0xe9,0xe7,0xe5,0xe5,0xe5,
+0xe1,0xde,0xdb,0xd9,0xd8,0xd6,0xd5,0xd4,0xd4,0xd4,0xd4,0xd3,0xd4,0xd6,0xd9,0xdc,
+0xde,0xdc,0xda,0xd9,0xd8,0xd7,0xd6,0xd5,0xd2,0xd2,0xd1,0xd1,0xd2,0xd5,0xd8,0xda,
+0xdf,0xdf,0xde,0xde,0xde,0xdf,0xdf,0xe0,0xe0,0xe0,0xe0,0xdf,0xde,0xdc,0xdb,0xda,
+0xdc,0xda,0xda,0xdb,0xdd,0xde,0xdc,0xdb,0xd8,0xd7,0xd5,0xd4,0xd3,0xd3,0xd3,0xd2,
+0xd3,0xd1,0xcf,0xcf,0xd0,0xce,0xca,0xc7,0xc6,0xc5,0xc6,0xca,0xc9,0xc4,0xc0,0xc0,
+0xba,0xb4,0xad,0xa6,0x9f,0x97,0x93,0x94,0x9c,0x95,0x96,0x7e,0x67,0x66,0x63,0x67,
+0x6b,0x6f,0x73,0x74,0x75,0x78,0x7a,0x79,0x7a,0x79,0x79,0x79,0x78,0x76,0x75,0x75,
+0x72,0x72,0x72,0x71,0x70,0x6f,0x6d,0x6d,0x69,0x68,0x66,0x65,0x65,0x64,0x62,0x60,
+0x5c,0x5a,0x57,0x55,0x52,0x4f,0x4b,0x48,0x43,0x41,0x3d,0x38,0x35,0x32,0x32,0x32,
+0x38,0x44,0x54,0x61,0x67,0x68,0x69,0x69,0x71,0x73,0x77,0x7a,0x78,0x70,0x61,0x55,
+0x5a,0x61,0x64,0x60,0x5d,0x64,0x70,0x79,0x6c,0x52,0x38,0x32,0x3b,0x4c,0x64,0x78,
+0x65,0x55,0x44,0x39,0x33,0x32,0x3b,0x46,0x57,0x58,0x57,0x57,0x60,0x69,0x68,0x60,
+0x68,0x72,0x73,0x6b,0x6a,0x6c,0x61,0x4d,0x5f,0x59,0x55,0x52,0x49,0x3b,0x30,0x2c,
+0x24,0x2e,0x3d,0x4d,0x5d,0x64,0x5d,0x52,0x48,0x58,0x63,0x5e,0x57,0x5a,0x65,0x6d,
+0x55,0x48,0x4d,0x63,0x66,0x52,0x44,0x46,0x76,0x64,0x40,0x2a,0x31,0x3e,0x4d,0x62,
+0x54,0x3d,0x2f,0x37,0x70,0x8c,0x7c,0x4e,0x3b,0x42,0x42,0x39,0x3c,0x57,0x6c,0x69,
+0x4f,0x3c,0x3c,0x5d,0x81,0x92,0x97,0x9b,0x9e,0x9d,0x9d,0xad,0xc2,0xbe,0xae,0xab,
+0x94,0x87,0x77,0x6f,0x6f,0x6b,0x5a,0x4a,0x46,0x38,0x24,0x14,0x17,0x2b,0x46,0x57,
+0x66,0x5f,0x5d,0x62,0x62,0x5c,0x59,0x5b,0x5c,0x5e,0x64,0x6b,0x71,0x76,0x7d,0x84,
+0x83,0x85,0x88,0x8a,0x8b,0x89,0x85,0x82,0x81,0x83,0x86,0x85,0x7f,0x7a,0x80,0x89,
+0x7b,0x74,0x6c,0x6c,0x76,0x7e,0x7a,0x6f,0x6f,0x7b,0x86,0x85,0x76,0x67,0x65,0x69,
+0x6e,0x6a,0x6b,0x77,0x83,0x82,0x71,0x60,0x69,0x66,0x64,0x64,0x68,0x6e,0x75,0x78,
+0x6d,0x6b,0x67,0x6d,0x72,0x66,0x60,0x6d,0x6d,0x66,0x69,0x76,0x7e,0x79,0x70,0x6c,
+0x72,0x72,0x70,0x6c,0x6a,0x6c,0x6e,0x6d,0x74,0x7e,0x80,0x72,0x65,0x63,0x68,0x6a,
+0x73,0x73,0x75,0x79,0x7c,0x7d,0x7e,0x7e,0x81,0x7b,0x74,0x70,0x72,0x74,0x70,0x6a,
+0x70,0x74,0x75,0x71,0x6f,0x71,0x72,0x70,0x7e,0x7d,0x77,0x6c,0x64,0x64,0x69,0x6e,
+0x72,0x72,0x6c,0x61,0x60,0x67,0x68,0x62,0x63,0x6c,0x75,0x76,0x72,0x72,0x79,0x80,
+0x86,0x8b,0x8c,0x89,0x8b,0x93,0x9b,0x9f,0xa2,0x9a,0x93,0x8e,0x85,0x7e,0x7f,0x85,
+0x80,0x7b,0x72,0x6c,0x6d,0x6f,0x6a,0x62,0x66,0x5b,0x59,0x65,0x71,0x78,0x82,0x8d,
+0xaf,0xb8,0xb6,0xb5,0xbe,0xbe,0xbe,0xc9,0xc0,0xc2,0xc5,0xc7,0xc8,0xca,0xcd,0xcf,
+0xcb,0xca,0xc7,0xc5,0xc4,0xc4,0xc5,0xc6,0xc6,0xc4,0xc3,0xc4,0xc6,0xc5,0xc2,0xbe,
+0xb7,0xb6,0xb6,0xb8,0xb9,0xb8,0xb9,0xbb,0xbc,0xbf,0xc2,0xc3,0xc1,0xbf,0xbd,0xbd,
+0xbf,0xbe,0xbd,0xbe,0xbe,0xbe,0xbd,0xbb,0xb9,0xb8,0xb5,0xb2,0xb1,0xb1,0xb1,0xb2,
+0xb4,0xb1,0xaf,0xb0,0xb1,0xaf,0xab,0xa7,0xa5,0xa4,0xa4,0xa6,0xaa,0xad,0xae,0xad,
+0xa7,0xa6,0xa6,0xa7,0xa7,0xa2,0x9a,0x93,0x87,0x82,0x7b,0x7d,0x85,0x84,0x7f,0x80,
+0x60,0x5f,0xba,0xcb,0xc9,0xc3,0xcd,0xd7,0xdd,0xe6,0xee,0xf1,0xf2,0xf2,0xee,0xea,
+0xe2,0xde,0xd8,0xd3,0xd0,0xca,0xc4,0xbf,0xbb,0xb5,0xb1,0xb0,0xaf,0xb3,0xc4,0xd5,
+0xdb,0xdd,0xde,0xdf,0xde,0xdd,0xdc,0xdd,0xda,0xd8,0xd5,0xd1,0xce,0xcd,0xcc,0xcc,
+0xc1,0xbe,0xba,0xb5,0xb2,0xb2,0xb4,0xb6,0xbf,0xc3,0xca,0xd0,0xd4,0xd8,0xdb,0xdd,
+0xdf,0xe3,0xe7,0xe8,0xe6,0xe3,0xe3,0xe3,0xe4,0xe4,0xe5,0xe5,0xe3,0xe1,0xde,0xdc,
+0xd9,0xd9,0xd8,0xd7,0xd6,0xd4,0xd1,0xce,0xd2,0xd4,0xd5,0xd5,0xd4,0xd4,0xd6,0xd9,
+0xdc,0xda,0xd6,0xd4,0xd3,0xd2,0xd1,0xd0,0xd0,0xd0,0xd1,0xd3,0xd6,0xd9,0xd9,0xd9,
+0xda,0xda,0xd9,0xd9,0xda,0xdb,0xdd,0xde,0xe0,0xe2,0xe3,0xe4,0xe3,0xe1,0xde,0xdb,
+0xd9,0xd8,0xd7,0xd9,0xdc,0xdc,0xda,0xd7,0xd7,0xd5,0xd3,0xd2,0xd4,0xd5,0xd4,0xd3,
+0xd2,0xd0,0xcf,0xcf,0xd0,0xce,0xc9,0xc4,0xc5,0xc4,0xc7,0xca,0xc8,0xc2,0xbe,0xbf,
+0xb5,0xaf,0xa8,0xa2,0x9b,0x93,0x8e,0x8d,0x90,0x8a,0x8e,0x78,0x65,0x67,0x63,0x65,
+0x6b,0x70,0x73,0x74,0x75,0x78,0x79,0x78,0x78,0x78,0x78,0x77,0x76,0x75,0x74,0x74,
+0x72,0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x67,0x66,0x64,0x64,0x63,0x62,0x61,0x5f,
+0x5a,0x58,0x56,0x53,0x51,0x4d,0x49,0x46,0x3f,0x3d,0x39,0x35,0x33,0x34,0x37,0x39,
+0x43,0x4e,0x5a,0x60,0x64,0x69,0x6d,0x6e,0x70,0x72,0x76,0x7c,0x7c,0x77,0x70,0x6b,
+0x6a,0x68,0x60,0x57,0x5c,0x68,0x6a,0x64,0x55,0x44,0x2e,0x26,0x37,0x51,0x5b,0x57,
+0x5e,0x4c,0x3a,0x32,0x31,0x34,0x3c,0x46,0x49,0x46,0x46,0x51,0x66,0x73,0x6d,0x5f,
+0x67,0x5b,0x50,0x50,0x54,0x56,0x58,0x5a,0x5a,0x57,0x54,0x51,0x4e,0x48,0x3e,0x36,
+0x30,0x41,0x4c,0x50,0x5f,0x73,0x75,0x69,0x5a,0x52,0x44,0x3b,0x41,0x4c,0x4d,0x47,
+0x46,0x45,0x58,0x6e,0x66,0x48,0x3e,0x4a,0x3f,0x48,0x4d,0x42,0x36,0x3f,0x52,0x5c,
+0x6e,0x67,0x5e,0x4d,0x67,0x7d,0x8a,0x7b,0x65,0x53,0x40,0x35,0x39,0x4f,0x65,0x6b,
+0x74,0x55,0x49,0x63,0x7e,0x7e,0x71,0x6c,0x74,0x9e,0xa9,0x8d,0x6c,0x52,0x56,0x72,
+0x8e,0x97,0x9d,0x97,0x84,0x69,0x4e,0x3c,0x26,0x2a,0x34,0x44,0x52,0x5e,0x6b,0x76,
+0x5e,0x58,0x58,0x5f,0x63,0x5f,0x5e,0x60,0x60,0x63,0x69,0x70,0x76,0x7a,0x7c,0x7c,
+0x75,0x7a,0x81,0x86,0x84,0x80,0x80,0x83,0x95,0x9c,0x97,0x84,0x75,0x75,0x7c,0x7f,
+0x7a,0x77,0x75,0x75,0x73,0x6f,0x6c,0x6c,0x7b,0x83,0x83,0x7d,0x77,0x6e,0x6b,0x71,
+0x65,0x65,0x6b,0x74,0x75,0x6b,0x64,0x63,0x6f,0x6b,0x66,0x60,0x5a,0x5a,0x66,0x73,
+0x68,0x63,0x60,0x60,0x60,0x61,0x66,0x6c,0x63,0x6a,0x6b,0x71,0x78,0x6c,0x60,0x65,
+0x6e,0x74,0x78,0x78,0x77,0x77,0x76,0x76,0x7b,0x7b,0x7a,0x76,0x72,0x6f,0x6f,0x70,
+0x7a,0x7b,0x7a,0x77,0x74,0x76,0x7d,0x83,0x7b,0x70,0x63,0x70,0x75,0x7b,0x6e,0x69,
+0x68,0x6e,0x75,0x73,0x6e,0x77,0x82,0x81,0x8f,0x7a,0x65,0x5e,0x64,0x6b,0x6f,0x71,
+0x6e,0x6e,0x67,0x5e,0x5e,0x66,0x67,0x61,0x5c,0x6a,0x77,0x7e,0x82,0x83,0x7d,0x73,
+0x7d,0x83,0x8c,0x7d,0x6a,0x62,0x60,0x69,0x7a,0x80,0x8d,0x99,0x97,0x89,0x7e,0x7b,
+0x7b,0x7d,0x7c,0x77,0x6f,0x69,0x61,0x5b,0x69,0x61,0x64,0x6d,0x6c,0x7a,0x7c,0xa1,
+0xb9,0xb7,0xb6,0xb7,0xba,0xbd,0xc2,0xc5,0xc3,0xc4,0xc7,0xc9,0xcb,0xcd,0xcd,0xce,
+0xcb,0xc9,0xc6,0xc4,0xc3,0xc4,0xc5,0xc6,0xc5,0xc5,0xc4,0xc2,0xc1,0xbf,0xbd,0xbd,
+0xbd,0xbc,0xbc,0xbb,0xbc,0xbc,0xbd,0xbe,0xc0,0xc0,0xbf,0xbf,0xbe,0xbe,0xbe,0xbe,
+0xbe,0xbe,0xbd,0xbc,0xbc,0xbc,0xbd,0xbd,0xbd,0xba,0xb5,0xb2,0xb0,0xb0,0xb0,0xb0,
+0xb7,0xb4,0xb2,0xb3,0xb6,0xb6,0xb2,0xae,0xaa,0xa6,0xa3,0xa2,0xa5,0xa7,0xa7,0xa5,
+0xaa,0xa7,0xa3,0xa1,0xa0,0x9d,0x99,0x95,0x88,0x81,0x7c,0x7e,0x84,0x87,0x85,0x81,
+0x6c,0x69,0xb5,0xcf,0xc9,0xc7,0xc3,0xbf,0xcb,0xd1,0xda,0xe0,0xe1,0xde,0xda,0xd7,
+0xd3,0xc9,0xc2,0xc4,0xc6,0xc2,0xbb,0xb6,0xba,0xb6,0xb0,0xac,0xab,0xb2,0xc3,0xd3,
+0xd5,0xd7,0xda,0xdc,0xdc,0xdb,0xda,0xda,0xd5,0xd6,0xd4,0xce,0xcc,0xcc,0xc9,0xc4,
+0xc0,0xba,0xb4,0xb1,0xb0,0xb2,0xb7,0xbd,0xc5,0xcf,0xd6,0xd6,0xd8,0xde,0xe1,0xdf,
+0xdc,0xe1,0xe5,0xe3,0xe1,0xe1,0xe2,0xe2,0xe3,0xe0,0xde,0xe0,0xe1,0xdf,0xdb,0xd9,
+0xdf,0xd5,0xd8,0xd7,0xd6,0xd4,0xce,0xd4,0xd2,0xd2,0xd3,0xd3,0xd0,0xcd,0xcf,0xd3,
+0xd9,0xd7,0xd5,0xd2,0xd0,0xce,0xce,0xce,0xcf,0xd1,0xd3,0xd3,0xd2,0xd4,0xd6,0xd7,
+0xd2,0xd7,0xda,0xda,0xdb,0xde,0xdd,0xda,0xe2,0xe3,0xe0,0xdc,0xdc,0xdf,0xde,0xdb,
+0xda,0xdd,0xde,0xdd,0xdc,0xdd,0xdc,0xdb,0xda,0xda,0xda,0xd9,0xd8,0xd5,0xd3,0xd1,
+0xcf,0xce,0xce,0xce,0xcb,0xc6,0xc4,0xc4,0xca,0xc9,0xbf,0xd2,0xc3,0xbf,0xc2,0xb7,
+0xb9,0xae,0xa7,0xa5,0x9d,0x8e,0x85,0x87,0x90,0x8f,0x87,0x78,0x6a,0x64,0x66,0x6a,
+0x6e,0x71,0x74,0x76,0x77,0x78,0x79,0x7a,0x78,0x76,0x75,0x74,0x74,0x74,0x72,0x71,
+0x70,0x6f,0x6d,0x6c,0x6b,0x6a,0x69,0x69,0x69,0x68,0x65,0x64,0x62,0x5f,0x5c,0x5a,
+0x58,0x55,0x52,0x4e,0x4b,0x47,0x43,0x41,0x3e,0x39,0x37,0x36,0x2e,0x2b,0x3d,0x54,
+0x78,0x6c,0x60,0x5d,0x60,0x64,0x68,0x6b,0x6f,0x78,0x7e,0x7a,0x6e,0x65,0x65,0x69,
+0x76,0x6b,0x63,0x5c,0x55,0x5a,0x66,0x6d,0x56,0x30,0x20,0x39,0x4d,0x43,0x32,0x2e,
+0x40,0x49,0x4b,0x3e,0x31,0x30,0x38,0x40,0x48,0x39,0x3c,0x4e,0x55,0x51,0x51,0x53,
+0x49,0x5c,0x76,0x83,0x82,0x86,0x8b,0x89,0x8f,0x85,0x78,0x6a,0x5b,0x4d,0x43,0x40,
+0x45,0x46,0x4c,0x55,0x5a,0x57,0x50,0x4c,0x3d,0x31,0x3a,0x4b,0x48,0x44,0x4a,0x4d,
+0x3e,0x49,0x57,0x5d,0x55,0x44,0x37,0x33,0x2a,0x2f,0x37,0x43,0x52,0x63,0x74,0x7e,
+0x74,0x74,0x71,0x62,0x67,0x94,0xa8,0x8d,0x66,0x30,0x20,0x30,0x35,0x33,0x46,0x6f,
+0x7e,0x92,0x8c,0x69,0x52,0x5f,0x89,0xb1,0xbe,0x9e,0x72,0x5d,0x6f,0x98,0xb8,0xc3,
+0xab,0x90,0x6a,0x47,0x2f,0x25,0x27,0x2d,0x2e,0x31,0x36,0x3e,0x48,0x52,0x58,0x5a,
+0x68,0x5f,0x5c,0x63,0x69,0x67,0x63,0x62,0x5a,0x62,0x6c,0x72,0x73,0x73,0x73,0x74,
+0x7b,0x7d,0x81,0x81,0x7b,0x75,0x76,0x79,0x7f,0x7b,0x74,0x71,0x76,0x7b,0x76,0x6d,
+0x6e,0x6b,0x69,0x68,0x66,0x65,0x67,0x6a,0x74,0x7b,0x7b,0x77,0x73,0x6d,0x6a,0x6f,
+0x6e,0x6f,0x73,0x77,0x72,0x69,0x65,0x68,0x6a,0x67,0x65,0x63,0x5f,0x5c,0x5f,0x64,
+0x64,0x5f,0x5e,0x60,0x61,0x5d,0x5a,0x59,0x60,0x67,0x6b,0x71,0x77,0x6f,0x66,0x6b,
+0x72,0x76,0x78,0x75,0x73,0x71,0x6f,0x6d,0x76,0x78,0x78,0x79,0x7b,0x7a,0x73,0x6c,
+0x6d,0x6e,0x6f,0x72,0x75,0x78,0x7a,0x7b,0x70,0x6d,0x66,0x73,0x74,0x78,0x6e,0x6c,
+0x61,0x67,0x70,0x71,0x6f,0x76,0x7e,0x7b,0x78,0x6e,0x65,0x65,0x6b,0x6f,0x71,0x73,
+0x72,0x71,0x6a,0x60,0x5b,0x5c,0x5c,0x59,0x5b,0x6a,0x77,0x7c,0x7d,0x7e,0x7b,0x76,
+0x7b,0x7d,0x85,0x7b,0x6f,0x6a,0x64,0x69,0x75,0x77,0x78,0x75,0x71,0x6d,0x6a,0x67,
+0x70,0x75,0x7c,0x81,0x86,0x8b,0x8c,0x8b,0x7c,0x77,0x7c,0x87,0x88,0x8b,0x93,0xaf,
+0xba,0xb9,0xba,0xbc,0xbd,0xbd,0xc1,0xc6,0xc7,0xc8,0xc8,0xc9,0xcb,0xcc,0xcd,0xcd,
+0xca,0xc9,0xc9,0xc8,0xc7,0xc6,0xc5,0xc5,0xc3,0xc3,0xc3,0xc2,0xc1,0xc0,0xbf,0xbf,
+0xba,0xbb,0xbc,0xbe,0xbe,0xbf,0xbf,0xbe,0xbf,0xbf,0xbf,0xbe,0xbd,0xbd,0xbc,0xbc,
+0xbc,0xbc,0xbb,0xba,0xba,0xba,0xba,0xbb,0xbb,0xb8,0xb5,0xb4,0xb3,0xb4,0xb4,0xb4,
+0xb3,0xb2,0xb0,0xb2,0xb4,0xb5,0xb4,0xb2,0xb0,0xad,0xa8,0xa6,0xa6,0xa6,0xa6,0xa5,
+0xa6,0xa4,0xa1,0xa0,0x9f,0x9c,0x98,0x94,0x8b,0x86,0x80,0x81,0x85,0x87,0x85,0x81,
+0x6e,0x66,0xae,0xcb,0xc8,0xc5,0xbe,0xba,0xb8,0xb8,0xbb,0xc0,0xc6,0xc9,0xc9,0xc7,
+0xc2,0xbc,0xb8,0xb8,0xb8,0xb6,0xb3,0xb3,0xb5,0xb3,0xaf,0xab,0xac,0xb7,0xc7,0xd4,
+0xd4,0xd6,0xd8,0xda,0xda,0xd9,0xd8,0xd8,0xd4,0xd4,0xd1,0xcc,0xca,0xca,0xc5,0xc0,
+0xbb,0xb5,0xb1,0xb0,0xb2,0xb4,0xb9,0xbe,0xc4,0xcf,0xd7,0xd8,0xdb,0xe0,0xe2,0xdf,
+0xdc,0xe1,0xe3,0xe1,0xdf,0xdf,0xe0,0xe0,0xe0,0xe0,0xe2,0xe3,0xe0,0xdb,0xda,0xdc,
+0xd9,0xd5,0xd7,0xcf,0xd0,0xd6,0xcf,0xce,0xd2,0xd1,0xd1,0xd2,0xd0,0xcd,0xcd,0xd0,
+0xd6,0xd5,0xd3,0xd1,0xd0,0xd0,0xd1,0xd2,0xd7,0xd7,0xd6,0xd5,0xd6,0xd6,0xd6,0xd5,
+0xd6,0xd6,0xd6,0xd6,0xda,0xde,0xe0,0xe0,0xd9,0xda,0xdb,0xdc,0xde,0xde,0xd9,0xd4,
+0xda,0xdc,0xdc,0xdb,0xdc,0xdd,0xdd,0xdb,0xdd,0xdd,0xdd,0xdb,0xd9,0xd7,0xd4,0xd3,
+0xd2,0xd0,0xce,0xcb,0xc8,0xc6,0xc5,0xc6,0xc5,0xca,0xc5,0xd0,0xc2,0xc0,0xc0,0xc3,
+0xbb,0xb4,0xa5,0xa2,0x9e,0x90,0x8b,0x8e,0x93,0x8f,0x86,0x78,0x6b,0x66,0x67,0x6a,
+0x6e,0x70,0x74,0x76,0x77,0x77,0x78,0x79,0x77,0x76,0x75,0x74,0x74,0x73,0x71,0x6f,
+0x6f,0x6e,0x6d,0x6c,0x6a,0x69,0x69,0x69,0x67,0x66,0x63,0x62,0x60,0x5d,0x5a,0x58,
+0x55,0x53,0x4f,0x4b,0x48,0x45,0x41,0x3f,0x38,0x39,0x38,0x34,0x31,0x3a,0x4d,0x5f,
+0x63,0x5f,0x5e,0x62,0x66,0x6a,0x6e,0x73,0x72,0x73,0x71,0x6a,0x63,0x65,0x6f,0x79,
+0x70,0x6d,0x6a,0x60,0x50,0x47,0x43,0x3d,0x2a,0x42,0x68,0x85,0x86,0x77,0x74,0x7b,
+0x7b,0x69,0x53,0x42,0x36,0x2d,0x2c,0x2e,0x2b,0x29,0x3b,0x51,0x4e,0x3f,0x3d,0x43,
+0x59,0x57,0x5f,0x68,0x69,0x6a,0x6f,0x70,0x77,0x75,0x75,0x76,0x72,0x64,0x54,0x49,
+0x48,0x4a,0x4e,0x4e,0x49,0x40,0x3a,0x39,0x3c,0x2c,0x2b,0x33,0x37,0x3d,0x40,0x39,
+0x36,0x47,0x59,0x5b,0x4d,0x3c,0x31,0x2e,0x33,0x38,0x40,0x46,0x4d,0x58,0x67,0x71,
+0x75,0x70,0x6e,0x65,0x66,0x86,0x99,0x8a,0x5e,0x3c,0x37,0x3f,0x3e,0x3b,0x46,0x60,
+0x7c,0x82,0x6b,0x59,0x7b,0xa5,0xa4,0x8e,0x5d,0x63,0x70,0x87,0xa0,0xaa,0x9f,0x8f,
+0x71,0x5d,0x55,0x6b,0x87,0x83,0x5d,0x37,0x36,0x53,0x61,0x51,0x43,0x4c,0x5c,0x61,
+0x6b,0x61,0x5c,0x64,0x6e,0x70,0x6c,0x69,0x63,0x68,0x6c,0x6d,0x6c,0x6f,0x78,0x7f,
+0x77,0x77,0x78,0x77,0x73,0x6f,0x71,0x75,0x74,0x74,0x74,0x74,0x74,0x73,0x72,0x71,
+0x6b,0x66,0x63,0x61,0x61,0x63,0x68,0x6e,0x6f,0x76,0x77,0x75,0x74,0x70,0x6d,0x72,
+0x77,0x77,0x78,0x76,0x6d,0x63,0x64,0x6a,0x6e,0x6a,0x67,0x65,0x61,0x5b,0x57,0x56,
+0x57,0x54,0x56,0x5e,0x65,0x66,0x62,0x5f,0x5a,0x67,0x6d,0x6c,0x68,0x62,0x65,0x73,
+0x6e,0x70,0x6f,0x6d,0x6b,0x69,0x65,0x60,0x72,0x78,0x79,0x77,0x78,0x7a,0x74,0x6a,
+0x68,0x69,0x6b,0x70,0x75,0x75,0x70,0x6b,0x5f,0x64,0x65,0x70,0x6b,0x6d,0x65,0x67,
+0x5e,0x63,0x6d,0x70,0x6f,0x75,0x77,0x70,0x67,0x66,0x67,0x6c,0x70,0x72,0x76,0x79,
+0x77,0x76,0x71,0x67,0x5d,0x58,0x59,0x5c,0x5c,0x6a,0x75,0x77,0x75,0x76,0x79,0x7a,
+0x7b,0x7a,0x80,0x7d,0x78,0x73,0x65,0x62,0x70,0x72,0x6e,0x65,0x63,0x68,0x69,0x65,
+0x63,0x66,0x6a,0x6d,0x71,0x74,0x74,0x72,0x79,0x79,0x7e,0x88,0x8c,0x85,0x9c,0xb1,
+0xb8,0xb7,0xbb,0xc0,0xbe,0xb9,0xbd,0xc5,0xc8,0xc8,0xc7,0xc7,0xc8,0xca,0xcc,0xcd,
+0xc8,0xc9,0xc9,0xca,0xc8,0xc6,0xc3,0xc2,0xc0,0xc0,0xc0,0xbf,0xbf,0xbe,0xbe,0xbe,
+0xba,0xbb,0xbe,0xc0,0xc2,0xc2,0xc1,0xc0,0xbf,0xbe,0xbe,0xbd,0xbc,0xbb,0xba,0xba,
+0xba,0xb9,0xb8,0xb7,0xb7,0xb7,0xb8,0xb8,0xb7,0xb5,0xb3,0xb2,0xb2,0xb1,0xb0,0xaf,
+0xae,0xae,0xae,0xaf,0xb1,0xb3,0xb5,0xb6,0xb2,0xb0,0xad,0xaa,0xa9,0xa8,0xa9,0xa9,
+0xa4,0xa2,0xa0,0x9e,0x9c,0x99,0x93,0x8f,0x87,0x83,0x7f,0x7f,0x81,0x83,0x81,0x7f,
+0x6d,0x5f,0xa4,0xc5,0xc6,0xc1,0xba,0xb6,0xb2,0xad,0xaa,0xad,0xb4,0xb9,0xb8,0xb5,
+0xb4,0xb2,0xb1,0xb0,0xae,0xad,0xaf,0xb3,0xb0,0xb1,0xad,0xa9,0xae,0xbe,0xce,0xd6,
+0xd3,0xd4,0xd6,0xd7,0xd7,0xd7,0xd5,0xd5,0xd1,0xd0,0xcc,0xc9,0xc8,0xc6,0xc0,0xba,
+0xb4,0xb0,0xae,0xb1,0xb5,0xb9,0xbc,0xc0,0xc4,0xce,0xd6,0xd9,0xdc,0xe1,0xe2,0xdf,
+0xdd,0xe1,0xe3,0xe2,0xe1,0xe2,0xe3,0xe2,0xe0,0xdf,0xe1,0xe5,0xe3,0xdd,0xda,0xdc,
+0xd8,0xd5,0xde,0xdc,0xd6,0xd1,0xce,0xd9,0xd5,0xd2,0xd2,0xd4,0xd3,0xd1,0xce,0xcf,
+0xd4,0xd3,0xd2,0xd1,0xd1,0xd1,0xd2,0xd2,0xcb,0xc9,0xc8,0xca,0xcf,0xd3,0xd5,0xd6,
+0xdc,0xd8,0xd5,0xd5,0xd5,0xd4,0xd5,0xd6,0xda,0xd9,0xda,0xdb,0xdc,0xdc,0xde,0xe2,
+0xde,0xde,0xdc,0xdb,0xdd,0xe0,0xdf,0xdc,0xd7,0xd7,0xd7,0xd7,0xd7,0xd6,0xd4,0xd3,
+0xd4,0xd4,0xd2,0xcc,0xca,0xcb,0xcc,0xca,0xca,0xcc,0xc8,0xc8,0xc3,0xbc,0xa6,0xab,
+0xb8,0xc0,0xac,0xa8,0xa6,0x95,0x93,0x91,0x95,0x8e,0x83,0x77,0x6d,0x68,0x69,0x6b,
+0x6e,0x70,0x73,0x75,0x76,0x76,0x77,0x78,0x75,0x75,0x74,0x75,0x74,0x73,0x70,0x6e,
+0x6f,0x6e,0x6c,0x6b,0x69,0x68,0x68,0x67,0x65,0x63,0x61,0x5f,0x5d,0x5a,0x57,0x55,
+0x52,0x4f,0x4b,0x48,0x45,0x42,0x3e,0x3c,0x36,0x38,0x36,0x31,0x36,0x4a,0x60,0x6d,
+0x6b,0x6b,0x6c,0x6c,0x6b,0x69,0x6c,0x70,0x70,0x72,0x72,0x6e,0x6a,0x69,0x6b,0x6e,
+0x76,0x76,0x74,0x66,0x52,0x48,0x42,0x38,0x32,0x5f,0x8b,0x95,0x88,0x82,0x88,0x90,
+0x8d,0x82,0x75,0x6b,0x62,0x56,0x4a,0x42,0x3a,0x27,0x25,0x31,0x35,0x36,0x41,0x4d,
+0x51,0x3b,0x30,0x34,0x39,0x43,0x54,0x5f,0x70,0x77,0x7b,0x70,0x5d,0x56,0x63,0x75,
+0x6d,0x67,0x62,0x64,0x62,0x56,0x44,0x37,0x1e,0x19,0x1d,0x29,0x35,0x3f,0x3d,0x2f,
+0x2f,0x46,0x58,0x52,0x3f,0x32,0x30,0x32,0x43,0x49,0x4e,0x51,0x53,0x5a,0x66,0x70,
+0x66,0x65,0x71,0x7e,0x85,0x93,0x98,0x8b,0x72,0x56,0x46,0x34,0x28,0x2e,0x3a,0x4b,
+0x74,0x87,0x89,0x8a,0x91,0x81,0x64,0x59,0x7f,0x8c,0xa0,0xae,0xa5,0x85,0x5f,0x46,
+0x32,0x37,0x45,0x55,0x5b,0x4e,0x37,0x27,0x28,0x2a,0x3c,0x56,0x61,0x62,0x74,0x8d,
+0x6c,0x64,0x60,0x66,0x70,0x73,0x71,0x6e,0x68,0x67,0x64,0x63,0x64,0x6b,0x73,0x79,
+0x7d,0x79,0x75,0x72,0x6e,0x69,0x66,0x66,0x6d,0x73,0x78,0x74,0x6a,0x65,0x6c,0x78,
+0x6a,0x64,0x5e,0x5e,0x60,0x63,0x66,0x69,0x69,0x72,0x75,0x74,0x74,0x70,0x70,0x76,
+0x77,0x75,0x73,0x6e,0x66,0x5f,0x60,0x65,0x6a,0x65,0x60,0x5b,0x59,0x57,0x57,0x58,
+0x60,0x5c,0x5a,0x5d,0x62,0x64,0x62,0x5f,0x5d,0x63,0x65,0x61,0x5d,0x5f,0x68,0x72,
+0x6f,0x70,0x70,0x71,0x72,0x72,0x6c,0x66,0x6c,0x74,0x73,0x69,0x65,0x6c,0x6e,0x6a,
+0x67,0x69,0x6c,0x71,0x74,0x72,0x6b,0x65,0x5e,0x66,0x6a,0x73,0x6b,0x6d,0x66,0x69,
+0x65,0x67,0x6e,0x72,0x71,0x73,0x71,0x68,0x65,0x64,0x65,0x68,0x6c,0x70,0x76,0x7c,
+0x79,0x77,0x74,0x6c,0x60,0x5a,0x60,0x69,0x62,0x6a,0x6f,0x6e,0x6d,0x70,0x76,0x7a,
+0x7b,0x78,0x80,0x81,0x7f,0x79,0x67,0x61,0x69,0x6b,0x6a,0x67,0x68,0x69,0x65,0x5f,
+0x66,0x6a,0x6d,0x6f,0x71,0x73,0x71,0x6d,0x6b,0x6e,0x73,0x78,0x7c,0x75,0xa1,0xb4,
+0xb5,0xb3,0xb8,0xbe,0xbb,0xb5,0xb9,0xc3,0xc6,0xc5,0xc4,0xc5,0xc6,0xc9,0xcb,0xcd,
+0xcb,0xcb,0xcc,0xcb,0xca,0xc7,0xc5,0xc3,0xbf,0xbe,0xbd,0xbc,0xbb,0xba,0xba,0xb9,
+0xbb,0xbc,0xbe,0xc0,0xc1,0xc1,0xc0,0xc0,0xbe,0xbe,0xbd,0xbc,0xbc,0xbb,0xba,0xba,
+0xb9,0xb8,0xb7,0xb6,0xb5,0xb5,0xb6,0xb7,0xb7,0xb5,0xb3,0xb1,0xb0,0xad,0xaa,0xa8,
+0xaa,0xaa,0xab,0xab,0xac,0xae,0xb2,0xb5,0xae,0xaf,0xaf,0xaf,0xad,0xad,0xad,0xad,
+0xa6,0xa3,0xa0,0x9e,0x9a,0x95,0x8e,0x88,0x82,0x7f,0x7d,0x7d,0x7f,0x81,0x80,0x7f,
+0x6c,0x5b,0xa0,0xc2,0xc3,0xbd,0xb7,0xb7,0xb3,0xae,0xaa,0xab,0xb0,0xb2,0xb0,0xac,
+0xae,0xaf,0xaf,0xae,0xac,0xab,0xad,0xb0,0xad,0xaf,0xab,0xa7,0xb1,0xc5,0xd4,0xd8,
+0xd3,0xd3,0xd3,0xd4,0xd4,0xd4,0xd3,0xd1,0xce,0xcb,0xc7,0xc5,0xc4,0xc0,0xb9,0xb3,
+0xad,0xaa,0xab,0xb1,0xb7,0xbb,0xbd,0xbf,0xc2,0xca,0xd1,0xd4,0xd8,0xdc,0xde,0xdd,
+0xdb,0xde,0xe1,0xe0,0xe0,0xe3,0xe4,0xe4,0xe4,0xdf,0xdd,0xdf,0xe0,0xdc,0xd8,0xd6,
+0xdd,0xce,0xcb,0xcc,0xd4,0xd9,0xd0,0xcf,0xd7,0xd3,0xd2,0xd5,0xd6,0xd4,0xd0,0xce,
+0xd3,0xd3,0xd3,0xd2,0xd1,0xd0,0xcf,0xce,0xd1,0xce,0xcc,0xcd,0xd0,0xd2,0xd5,0xd7,
+0xd3,0xd1,0xd2,0xd6,0xd7,0xd4,0xd5,0xd8,0xd6,0xd5,0xd6,0xd6,0xd3,0xd1,0xd8,0xe0,
+0xdd,0xdc,0xd9,0xd7,0xd9,0xdc,0xdb,0xd7,0xda,0xda,0xda,0xd9,0xd8,0xd6,0xd5,0xd4,
+0xc8,0xd0,0xd3,0xcf,0xce,0xd2,0xd0,0xca,0xcb,0xc8,0xc5,0xc3,0xc9,0xab,0x6a,0x5c,
+0x95,0xb5,0xae,0xaa,0xa8,0x99,0x98,0x90,0x95,0x8b,0x7f,0x75,0x6e,0x6a,0x69,0x6a,
+0x6e,0x71,0x74,0x75,0x76,0x76,0x76,0x77,0x75,0x75,0x75,0x75,0x75,0x73,0x6f,0x6d,
+0x6d,0x6c,0x6b,0x69,0x67,0x66,0x66,0x65,0x62,0x61,0x5e,0x5c,0x5a,0x57,0x54,0x52,
+0x4e,0x4b,0x47,0x44,0x41,0x3f,0x3c,0x3a,0x39,0x36,0x33,0x35,0x43,0x59,0x6a,0x72,
+0x6c,0x69,0x68,0x67,0x67,0x68,0x6e,0x74,0x7b,0x74,0x6b,0x64,0x62,0x64,0x69,0x6c,
+0x6f,0x73,0x75,0x67,0x4f,0x3f,0x31,0x21,0x50,0x70,0x89,0x89,0x85,0x8e,0x98,0x99,
+0x96,0x90,0x80,0x6e,0x65,0x62,0x58,0x4b,0x33,0x25,0x22,0x2d,0x3a,0x48,0x50,0x4f,
+0x49,0x4a,0x5b,0x6e,0x70,0x6b,0x68,0x65,0x53,0x52,0x51,0x50,0x52,0x59,0x69,0x77,
+0x6b,0x5e,0x52,0x50,0x51,0x49,0x3a,0x2d,0x31,0x29,0x22,0x1f,0x20,0x23,0x24,0x21,
+0x34,0x4c,0x59,0x4a,0x34,0x2e,0x37,0x40,0x43,0x51,0x66,0x79,0x84,0x86,0x84,0x81,
+0x70,0x5c,0x4f,0x4e,0x57,0x70,0x89,0x8f,0x86,0x74,0x6d,0x62,0x5a,0x5c,0x55,0x52,
+0x6b,0x87,0x95,0x8b,0x6b,0x45,0x53,0x8d,0xa4,0x9d,0x91,0x7c,0x59,0x35,0x23,0x22,
+0x21,0x29,0x32,0x34,0x30,0x2e,0x37,0x42,0x55,0x4d,0x4c,0x5c,0x71,0x79,0x70,0x64,
+0x6c,0x68,0x66,0x68,0x6c,0x6e,0x6d,0x6d,0x78,0x76,0x76,0x7c,0x83,0x86,0x82,0x7d,
+0x77,0x72,0x6e,0x6f,0x70,0x6c,0x68,0x65,0x6a,0x68,0x68,0x6a,0x6b,0x6c,0x70,0x75,
+0x65,0x5c,0x56,0x58,0x5d,0x5e,0x5c,0x5a,0x60,0x6b,0x70,0x6f,0x6d,0x6a,0x6b,0x74,
+0x74,0x6f,0x69,0x65,0x61,0x5e,0x5e,0x5f,0x5d,0x5b,0x57,0x54,0x54,0x59,0x5f,0x63,
+0x62,0x60,0x5d,0x5d,0x5f,0x61,0x61,0x5f,0x64,0x60,0x5d,0x5d,0x62,0x6b,0x6d,0x67,
+0x68,0x69,0x6b,0x6e,0x71,0x71,0x6c,0x64,0x62,0x66,0x62,0x59,0x5d,0x69,0x6d,0x68,
+0x61,0x66,0x6c,0x70,0x70,0x6d,0x6a,0x68,0x5f,0x68,0x6a,0x72,0x6b,0x6f,0x69,0x6a,
+0x6e,0x6c,0x70,0x73,0x73,0x74,0x72,0x69,0x67,0x63,0x61,0x64,0x68,0x6e,0x74,0x79,
+0x7a,0x78,0x74,0x6a,0x5f,0x5a,0x62,0x6d,0x69,0x69,0x69,0x67,0x69,0x6f,0x74,0x77,
+0x77,0x72,0x7b,0x7e,0x81,0x81,0x78,0x79,0x79,0x72,0x6e,0x6f,0x6f,0x68,0x60,0x5c,
+0x63,0x69,0x6e,0x70,0x70,0x70,0x6e,0x6a,0x68,0x70,0x77,0x76,0x76,0x79,0xad,0xbe,
+0xb5,0xb4,0xb7,0xbd,0xbc,0xb7,0xba,0xc2,0xc6,0xc6,0xc6,0xc6,0xc8,0xca,0xcc,0xcd,
+0xcf,0xcf,0xce,0xcc,0xca,0xc8,0xc7,0xc6,0xc2,0xc1,0xbf,0xbd,0xba,0xb9,0xb8,0xb7,
+0xbc,0xbc,0xbb,0xbb,0xbb,0xbc,0xbc,0xbc,0xbd,0xbd,0xbd,0xbc,0xbc,0xbb,0xbb,0xbb,
+0xba,0xb9,0xb7,0xb6,0xb5,0xb5,0xb6,0xb7,0xba,0xb8,0xb7,0xb5,0xb3,0xb0,0xac,0xa9,
+0xa8,0xa9,0xa9,0xa8,0xa7,0xa9,0xad,0xb1,0xaf,0xb1,0xb3,0xb4,0xb2,0xaf,0xad,0xab,
+0xa6,0xa4,0xa1,0x9e,0x9a,0x95,0x8d,0x88,0x84,0x82,0x80,0x80,0x82,0x83,0x83,0x81,
+0x6f,0x60,0xa5,0xc5,0xc1,0xb9,0xb6,0xba,0xad,0xab,0xa9,0xa8,0xa9,0xab,0xab,0xac,
+0xad,0xad,0xad,0xad,0xac,0xac,0xaa,0xa8,0xab,0xac,0xa8,0xa7,0xb4,0xc9,0xd6,0xd7,
+0xd3,0xd2,0xd0,0xd0,0xd1,0xd1,0xcf,0xce,0xcb,0xc7,0xc3,0xc1,0xbe,0xb9,0xb3,0xae,
+0xa9,0xa8,0xab,0xb3,0xb9,0xbc,0xbf,0xc1,0xc4,0xc8,0xcc,0xcf,0xd3,0xd8,0xdb,0xdb,
+0xd9,0xdb,0xdd,0xdc,0xdc,0xde,0xde,0xdd,0xe1,0xdf,0xda,0xd5,0xd5,0xd8,0xda,0xd9,
+0xcf,0xd2,0xd6,0xcd,0xd0,0xe0,0xdd,0xd9,0xd7,0xd3,0xd2,0xd5,0xd7,0xd4,0xd0,0xce,
+0xcf,0xd0,0xd2,0xd3,0xd2,0xd0,0xce,0xcc,0xcc,0xcd,0xd0,0xd6,0xd8,0xd7,0xd8,0xdb,
+0xe2,0xe1,0xe1,0xe2,0xdf,0xdc,0xdb,0xdd,0xde,0xda,0xd7,0xd8,0xd7,0xd4,0xd1,0xd0,
+0xc9,0xc8,0xc4,0xc2,0xc3,0xc6,0xc4,0xc0,0xb4,0xb2,0xb0,0xad,0xaa,0xa7,0xa4,0xa3,
+0xaf,0xc2,0xd0,0xcf,0xce,0xd2,0xcc,0xc1,0xbd,0xbb,0xbe,0xbf,0xc5,0x92,0x42,0x30,
+0x6d,0x98,0xa3,0xa1,0x9c,0x97,0x98,0x8f,0x91,0x87,0x7b,0x74,0x6f,0x6b,0x69,0x6a,
+0x6f,0x71,0x74,0x76,0x76,0x75,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x72,0x6f,0x6c,
+0x6b,0x6a,0x69,0x67,0x65,0x64,0x63,0x63,0x60,0x5e,0x5c,0x5a,0x57,0x55,0x51,0x4f,
+0x4b,0x48,0x44,0x41,0x3e,0x3c,0x3a,0x39,0x38,0x34,0x37,0x47,0x5b,0x69,0x6f,0x72,
+0x75,0x6e,0x69,0x6a,0x6d,0x71,0x75,0x79,0x6f,0x6a,0x63,0x61,0x63,0x66,0x67,0x66,
+0x76,0x75,0x73,0x65,0x50,0x44,0x3d,0x32,0x44,0x5c,0x72,0x79,0x7d,0x85,0x8c,0x8d,
+0x93,0x8b,0x81,0x7b,0x7a,0x7b,0x7a,0x78,0x74,0x73,0x6f,0x63,0x58,0x54,0x48,0x34,
+0x35,0x52,0x7b,0x91,0x89,0x7a,0x6b,0x5e,0x58,0x5e,0x69,0x75,0x79,0x75,0x6d,0x69,
+0x64,0x59,0x49,0x37,0x27,0x1e,0x1f,0x23,0x36,0x33,0x33,0x38,0x39,0x31,0x2b,0x2c,
+0x3b,0x4c,0x52,0x40,0x2b,0x28,0x34,0x3e,0x39,0x35,0x35,0x3e,0x50,0x63,0x70,0x75,
+0x6e,0x6f,0x70,0x6e,0x6f,0x7a,0x88,0x8c,0x98,0x77,0x67,0x62,0x67,0x70,0x6b,0x69,
+0x72,0x84,0x7f,0x6a,0x64,0x67,0x79,0x95,0x8a,0x76,0x60,0x4c,0x39,0x2b,0x2e,0x39,
+0x34,0x40,0x52,0x62,0x6a,0x71,0x7b,0x85,0x85,0x7d,0x76,0x74,0x6d,0x5c,0x45,0x36,
+0x62,0x63,0x64,0x66,0x68,0x6a,0x6c,0x6e,0x6e,0x6e,0x72,0x7d,0x89,0x8d,0x87,0x7f,
+0x72,0x6f,0x6e,0x70,0x71,0x6e,0x6b,0x69,0x65,0x63,0x61,0x63,0x67,0x6a,0x6b,0x6a,
+0x62,0x5b,0x58,0x5d,0x63,0x62,0x5c,0x57,0x5c,0x67,0x6c,0x6b,0x6b,0x68,0x6a,0x72,
+0x73,0x6c,0x63,0x5f,0x5f,0x60,0x5e,0x5c,0x60,0x61,0x60,0x5e,0x5f,0x63,0x67,0x68,
+0x5c,0x5d,0x5f,0x60,0x63,0x66,0x66,0x63,0x60,0x63,0x68,0x67,0x63,0x68,0x69,0x5e,
+0x5f,0x60,0x61,0x61,0x63,0x64,0x5e,0x58,0x5d,0x5a,0x55,0x59,0x69,0x77,0x74,0x68,
+0x61,0x67,0x6c,0x6d,0x69,0x65,0x64,0x65,0x6f,0x77,0x77,0x7f,0x79,0x7f,0x78,0x78,
+0x70,0x6c,0x6f,0x73,0x73,0x75,0x75,0x6e,0x68,0x65,0x64,0x69,0x6e,0x71,0x75,0x77,
+0x7f,0x7d,0x76,0x6a,0x5f,0x5c,0x62,0x69,0x6b,0x68,0x65,0x67,0x6c,0x72,0x74,0x74,
+0x6e,0x68,0x70,0x76,0x7f,0x88,0x8a,0x95,0x90,0x7f,0x71,0x6f,0x6f,0x69,0x65,0x66,
+0x6c,0x72,0x75,0x72,0x6c,0x67,0x63,0x61,0x66,0x70,0x7a,0x75,0x71,0x86,0xb1,0xbb,
+0xb9,0xb9,0xbb,0xbf,0xc1,0xbf,0xbe,0xbf,0xc5,0xc6,0xc8,0xc9,0xcb,0xcc,0xcc,0xcc,
+0xce,0xcc,0xca,0xc7,0xc5,0xc4,0xc3,0xc3,0xc6,0xc4,0xc2,0xbf,0xbc,0xbb,0xba,0xba,
+0xbb,0xba,0xb9,0xb8,0xb7,0xb7,0xb8,0xb8,0xbb,0xbb,0xbb,0xbb,0xbc,0xbc,0xbc,0xbc,
+0xbc,0xbb,0xb8,0xb6,0xb6,0xb6,0xb7,0xb8,0xb8,0xb7,0xb6,0xb6,0xb5,0xb3,0xb0,0xae,
+0xa9,0xa9,0xa9,0xa7,0xa6,0xa7,0xaa,0xac,0xb1,0xb2,0xb4,0xb5,0xb3,0xaf,0xaa,0xa7,
+0xa5,0xa3,0xa0,0x9e,0x9c,0x98,0x92,0x8e,0x88,0x85,0x81,0x81,0x83,0x84,0x81,0x7e,
+0x73,0x67,0xac,0xc6,0xbd,0xb6,0xb4,0xb8,0xb2,0xb1,0xac,0xa7,0xa4,0xa4,0xa7,0xab,
+0xac,0xad,0xad,0xac,0xac,0xac,0xa8,0xa3,0xa8,0xa7,0xa6,0xab,0xbb,0xcd,0xd5,0xd4,
+0xd2,0xd0,0xcd,0xcd,0xcd,0xcd,0xcc,0xca,0xc8,0xc3,0xbf,0xbc,0xb7,0xb1,0xac,0xaa,
+0xac,0xae,0xb3,0xbb,0xc0,0xc3,0xc6,0xc9,0xcd,0xce,0xd0,0xd3,0xd6,0xda,0xdd,0xdf,
+0xdc,0xdd,0xdd,0xda,0xd9,0xda,0xda,0xd8,0xd5,0xda,0xd9,0xd2,0xd3,0xdb,0xdd,0xd7,
+0xcc,0xca,0xd8,0xdf,0xde,0xd6,0xcb,0xd0,0xd9,0xd5,0xd4,0xd6,0xd8,0xd7,0xd4,0xd2,
+0xcd,0xce,0xd0,0xd2,0xd2,0xd1,0xd0,0xcf,0xd4,0xd3,0xd7,0xde,0xdf,0xda,0xd7,0xd7,
+0xd5,0xd4,0xd1,0xcd,0xcb,0xca,0xc5,0xc0,0xb1,0xab,0xa3,0x9f,0xa3,0xa5,0xa0,0x99,
+0x9d,0x9c,0x9a,0x97,0x98,0x99,0x97,0x94,0x9b,0x9a,0x99,0x98,0x96,0x95,0x93,0x93,
+0x9a,0xb8,0xce,0xcf,0xce,0xd0,0xc8,0xb8,0xb0,0xb0,0xb2,0xb0,0xb1,0x82,0x60,0x6e,
+0x72,0x88,0x9d,0x9d,0x95,0x96,0x95,0x91,0x8d,0x82,0x78,0x74,0x70,0x6b,0x69,0x6a,
+0x6f,0x71,0x74,0x75,0x75,0x74,0x74,0x75,0x76,0x75,0x74,0x74,0x73,0x71,0x6e,0x6c,
+0x69,0x68,0x67,0x65,0x63,0x61,0x60,0x60,0x5e,0x5c,0x59,0x57,0x55,0x52,0x4e,0x4c,
+0x48,0x45,0x41,0x3e,0x3c,0x3a,0x39,0x37,0x35,0x37,0x46,0x5f,0x74,0x7a,0x76,0x73,
+0x7b,0x73,0x6e,0x70,0x76,0x79,0x79,0x78,0x66,0x65,0x67,0x6c,0x70,0x6e,0x66,0x5f,
+0x6c,0x67,0x65,0x5e,0x4f,0x47,0x43,0x3d,0x3b,0x3e,0x42,0x48,0x52,0x5d,0x64,0x68,
+0x7e,0x7a,0x7b,0x7a,0x6d,0x60,0x66,0x78,0x95,0x91,0x86,0x75,0x6a,0x69,0x5b,0x41,
+0x32,0x4a,0x67,0x6f,0x67,0x68,0x71,0x74,0x6f,0x70,0x70,0x69,0x5c,0x50,0x4d,0x50,
+0x49,0x46,0x43,0x42,0x41,0x43,0x4a,0x51,0x51,0x59,0x62,0x6b,0x66,0x4c,0x34,0x2f,
+0x39,0x41,0x3f,0x2f,0x1f,0x1b,0x21,0x26,0x30,0x2f,0x30,0x35,0x3b,0x3b,0x35,0x2f,
+0x3d,0x4a,0x50,0x4c,0x4e,0x62,0x81,0x97,0x7d,0x5a,0x52,0x64,0x7e,0x92,0x93,0x97,
+0x91,0x7f,0x5e,0x4c,0x61,0x7f,0x84,0x78,0x66,0x52,0x42,0x3f,0x42,0x3f,0x3c,0x3c,
+0x4a,0x57,0x6a,0x76,0x78,0x75,0x77,0x7b,0x85,0x78,0x75,0x79,0x64,0x3e,0x2d,0x34,
+0x63,0x66,0x68,0x69,0x6a,0x6c,0x6e,0x6f,0x6e,0x73,0x7d,0x87,0x8e,0x8e,0x8a,0x85,
+0x7b,0x7a,0x79,0x76,0x6d,0x65,0x62,0x64,0x63,0x67,0x64,0x5a,0x54,0x57,0x5b,0x5d,
+0x61,0x5f,0x62,0x69,0x6e,0x6c,0x68,0x65,0x5f,0x67,0x6a,0x6b,0x70,0x6f,0x6f,0x74,
+0x76,0x6e,0x62,0x5c,0x5c,0x5f,0x5f,0x5e,0x63,0x63,0x63,0x62,0x65,0x68,0x66,0x62,
+0x62,0x62,0x61,0x62,0x66,0x6a,0x66,0x5f,0x5a,0x5f,0x69,0x6a,0x67,0x70,0x72,0x64,
+0x65,0x65,0x62,0x5e,0x5e,0x5e,0x5c,0x58,0x58,0x56,0x58,0x61,0x71,0x79,0x72,0x67,
+0x64,0x69,0x6e,0x6d,0x68,0x63,0x62,0x62,0x69,0x71,0x72,0x77,0x6f,0x74,0x6b,0x69,
+0x6c,0x68,0x6c,0x72,0x72,0x74,0x75,0x70,0x6a,0x69,0x6a,0x6e,0x71,0x72,0x74,0x76,
+0x7e,0x7e,0x78,0x6b,0x62,0x63,0x66,0x67,0x66,0x65,0x67,0x6d,0x73,0x76,0x76,0x74,
+0x69,0x62,0x69,0x71,0x7b,0x85,0x89,0x95,0x90,0x80,0x6e,0x66,0x66,0x67,0x66,0x63,
+0x5d,0x65,0x6a,0x67,0x60,0x5e,0x60,0x62,0x67,0x6d,0x78,0x70,0x6b,0x95,0xb2,0xb6,
+0xba,0xbc,0xbe,0xc0,0xc5,0xc6,0xbe,0xb5,0xbb,0xbe,0xc2,0xc7,0xca,0xca,0xca,0xca,
+0xc9,0xc8,0xc6,0xc3,0xc1,0xbf,0xbe,0xbe,0xc2,0xc1,0xbf,0xbd,0xbb,0xbb,0xbb,0xbb,
+0xba,0xba,0xba,0xb9,0xb9,0xb8,0xb7,0xb7,0xb7,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,0xbe,
+0xbd,0xbc,0xb9,0xb7,0xb6,0xb6,0xb8,0xb8,0xb5,0xb4,0xb4,0xb4,0xb5,0xb4,0xb2,0xb0,
+0xac,0xac,0xab,0xa9,0xa8,0xa8,0xa9,0xab,0xa9,0xa9,0xaa,0xad,0xaf,0xaf,0xac,0xa9,
+0xa8,0xa5,0xa2,0xa0,0x9e,0x9b,0x96,0x92,0x88,0x83,0x7f,0x7f,0x83,0x83,0x7f,0x7b,
+0x71,0x68,0xac,0xc1,0xb8,0xb4,0xb3,0xb4,0xb8,0xb7,0xb3,0xad,0xa8,0xa5,0xa6,0xa8,
+0xa9,0xaa,0xaa,0xa8,0xa8,0xaa,0xa8,0xa3,0xa6,0xa4,0xa7,0xb4,0xc7,0xd4,0xd7,0xd4,
+0xd0,0xcd,0xc9,0xc8,0xc9,0xca,0xc8,0xc6,0xc4,0xbf,0xbb,0xb7,0xb0,0xa8,0xa5,0xa7,
+0xad,0xb0,0xb8,0xc0,0xc4,0xc7,0xcb,0xd0,0xd0,0xd0,0xd2,0xd5,0xd9,0xda,0xdc,0xdd,
+0xdd,0xde,0xdd,0xda,0xda,0xdb,0xda,0xd8,0xd1,0xd8,0xd7,0xd3,0xda,0xdc,0xc2,0x9f,
+0x7d,0x6b,0x74,0x97,0xc6,0xe3,0xe2,0xe2,0xd8,0xd4,0xd3,0xd5,0xd7,0xd6,0xd4,0xd4,
+0xd1,0xd0,0xd0,0xd0,0xd0,0xd1,0xd2,0xd3,0xd2,0xc5,0xb9,0xb5,0xb2,0xaa,0xa2,0xa0,
+0xa1,0xa3,0xa2,0xa2,0xa8,0xab,0x9e,0x8c,0x8e,0x9d,0xa7,0xa5,0xa3,0xa6,0xa9,0xa8,
+0xa1,0xa3,0xa3,0xa1,0xa0,0xa1,0xa0,0x9e,0x95,0x95,0x95,0x95,0x96,0x96,0x97,0x97,
+0x92,0xb7,0xd2,0xd1,0xcc,0xce,0xc6,0xb5,0xaf,0xb0,0xaf,0xac,0xa4,0x7a,0x8e,0xbe,
+0x91,0x7f,0x97,0xa0,0x99,0x99,0x8f,0x92,0x88,0x7e,0x77,0x75,0x72,0x6b,0x69,0x6b,
+0x6e,0x70,0x72,0x73,0x73,0x72,0x72,0x72,0x75,0x74,0x72,0x71,0x70,0x6f,0x6d,0x6b,
+0x67,0x66,0x65,0x63,0x61,0x5f,0x5e,0x5e,0x5b,0x59,0x57,0x54,0x52,0x4f,0x4b,0x48,
+0x46,0x43,0x3f,0x3b,0x39,0x38,0x37,0x36,0x37,0x44,0x59,0x6d,0x7c,0x82,0x80,0x7a,
+0x6d,0x67,0x64,0x6a,0x73,0x78,0x7a,0x7a,0x77,0x70,0x69,0x68,0x6c,0x70,0x71,0x6f,
+0x6c,0x66,0x67,0x66,0x58,0x46,0x39,0x30,0x3f,0x36,0x2e,0x31,0x3f,0x51,0x5c,0x60,
+0x55,0x57,0x57,0x55,0x57,0x64,0x79,0x8a,0x94,0x8b,0x82,0x7a,0x75,0x72,0x61,0x48,
+0x29,0x32,0x44,0x4c,0x48,0x4c,0x59,0x61,0x65,0x56,0x46,0x40,0x44,0x49,0x4e,0x52,
+0x55,0x4f,0x4d,0x50,0x52,0x4f,0x48,0x43,0x45,0x57,0x5d,0x53,0x46,0x37,0x36,0x44,
+0x46,0x3f,0x34,0x27,0x1e,0x1b,0x1c,0x1e,0x3d,0x41,0x45,0x43,0x3b,0x32,0x2b,0x27,
+0x17,0x1f,0x23,0x25,0x33,0x4d,0x70,0x8c,0x7e,0x4c,0x2e,0x2b,0x3a,0x4f,0x5c,0x6a,
+0x5d,0x52,0x58,0x6c,0x77,0x76,0x64,0x4c,0x2f,0x23,0x1a,0x1d,0x24,0x26,0x23,0x20,
+0x28,0x23,0x20,0x25,0x2a,0x29,0x25,0x21,0x1f,0x28,0x2c,0x28,0x2c,0x34,0x32,0x28,
+0x75,0x76,0x76,0x74,0x72,0x71,0x6f,0x6d,0x68,0x77,0x8a,0x94,0x8f,0x82,0x75,0x6e,
+0x6c,0x71,0x77,0x75,0x6d,0x69,0x6e,0x77,0x76,0x76,0x6c,0x5b,0x54,0x5a,0x60,0x61,
+0x5c,0x5f,0x66,0x6e,0x71,0x70,0x6f,0x6f,0x63,0x67,0x68,0x6c,0x74,0x76,0x73,0x75,
+0x79,0x70,0x64,0x5b,0x5a,0x5d,0x60,0x5f,0x55,0x54,0x53,0x55,0x5d,0x64,0x61,0x5a,
+0x58,0x56,0x55,0x5a,0x67,0x73,0x73,0x6c,0x5e,0x52,0x52,0x60,0x76,0x90,0x8d,0x70,
+0x66,0x64,0x5f,0x58,0x56,0x57,0x57,0x55,0x53,0x57,0x5e,0x65,0x6a,0x69,0x65,0x62,
+0x63,0x67,0x6c,0x6e,0x6c,0x6a,0x69,0x69,0x78,0x82,0x83,0x86,0x7b,0x7c,0x72,0x6e,
+0x69,0x66,0x6a,0x71,0x70,0x71,0x72,0x6d,0x6a,0x69,0x6b,0x6c,0x6c,0x6c,0x6f,0x73,
+0x76,0x79,0x74,0x69,0x64,0x68,0x6a,0x66,0x61,0x63,0x6a,0x73,0x79,0x7a,0x77,0x75,
+0x69,0x62,0x6a,0x71,0x79,0x7e,0x7a,0x81,0x91,0x87,0x76,0x69,0x68,0x6c,0x66,0x5b,
+0x61,0x69,0x6f,0x6b,0x64,0x64,0x6a,0x6f,0x72,0x73,0x7b,0x71,0x6d,0xa9,0xbd,0xbd,
+0xb9,0xbc,0xbe,0xc0,0xc6,0xc8,0xbc,0xab,0xad,0xb2,0xb9,0xc1,0xc6,0xc8,0xc8,0xc7,
+0xc9,0xc8,0xc7,0xc5,0xc2,0xc0,0xbe,0xbd,0xbb,0xba,0xb9,0xb8,0xb8,0xb9,0xba,0xbb,
+0xbb,0xbc,0xbd,0xbe,0xbd,0xbc,0xba,0xb9,0xb5,0xb5,0xb7,0xb8,0xba,0xbc,0xbd,0xbe,
+0xbe,0xbc,0xb9,0xb7,0xb6,0xb6,0xb8,0xb9,0xb6,0xb5,0xb4,0xb5,0xb5,0xb4,0xb3,0xb1,
+0xae,0xae,0xac,0xab,0xab,0xab,0xab,0xab,0x9c,0x9c,0x9e,0xa3,0xab,0xaf,0xb0,0xaf,
+0xac,0xa9,0xa5,0xa2,0x9f,0x9c,0x97,0x93,0x86,0x81,0x7d,0x7f,0x84,0x86,0x82,0x7c,
+0x6b,0x62,0xa6,0xba,0xb3,0xb4,0xb3,0xb1,0xaf,0xb0,0xb1,0xb0,0xae,0xaa,0xa7,0xa6,
+0xa2,0xa5,0xa5,0xa2,0xa1,0xa4,0xa5,0xa3,0xa5,0xa3,0xaa,0xbd,0xd2,0xdb,0xd9,0xd5,
+0xcf,0xcb,0xc7,0xc6,0xc7,0xc7,0xc5,0xc3,0xc1,0xbd,0xb9,0xb4,0xab,0xa3,0xa1,0xa5,
+0xa7,0xac,0xb5,0xbe,0xc1,0xc3,0xc9,0xd0,0xcb,0xcb,0xce,0xd2,0xd4,0xd5,0xd4,0xd5,
+0xd8,0xd9,0xd8,0xd7,0xd8,0xdb,0xdb,0xd9,0xdb,0xdb,0xd5,0xd3,0xdf,0xd4,0x95,0x4d,
+0x55,0x60,0x5c,0x4a,0x6a,0xb3,0xd5,0xd6,0xd2,0xcf,0xce,0xd0,0xd1,0xd0,0xd0,0xd1,
+0xd7,0xd5,0xd1,0xce,0xcd,0xcf,0xd2,0xd4,0xd2,0xba,0xa4,0x9d,0x9f,0xa0,0xa0,0xa1,
+0xa1,0xa3,0xa0,0x9e,0xa3,0x9f,0x82,0x60,0x44,0x76,0xa3,0xa9,0x9c,0x98,0x9e,0xa2,
+0x98,0x9c,0x9d,0x9b,0x9b,0x9b,0x9b,0x99,0x99,0x99,0x97,0x96,0x94,0x93,0x93,0x93,
+0x90,0xb8,0xd3,0xd0,0xc9,0xcb,0xc4,0xb3,0xb0,0xb5,0xb8,0xba,0xa8,0x74,0x98,0xce,
+0x9e,0x6d,0x88,0x9f,0x9d,0x9b,0x8a,0x93,0x86,0x7d,0x76,0x76,0x73,0x6c,0x6a,0x6d,
+0x6d,0x6f,0x71,0x72,0x71,0x71,0x70,0x71,0x74,0x73,0x71,0x6f,0x6e,0x6d,0x6b,0x6a,
+0x66,0x65,0x63,0x61,0x5f,0x5e,0x5d,0x5c,0x59,0x57,0x55,0x52,0x50,0x4c,0x49,0x46,
+0x44,0x41,0x3d,0x39,0x38,0x37,0x36,0x35,0x3e,0x53,0x66,0x6e,0x77,0x83,0x86,0x81,
+0x7f,0x77,0x70,0x70,0x73,0x75,0x76,0x78,0x71,0x6d,0x6b,0x6e,0x74,0x77,0x74,0x70,
+0x69,0x51,0x3e,0x36,0x2b,0x29,0x32,0x3b,0x30,0x36,0x3c,0x3e,0x42,0x48,0x4b,0x4c,
+0x41,0x46,0x40,0x41,0x60,0x86,0x83,0x65,0x54,0x4d,0x4c,0x4a,0x43,0x41,0x46,0x46,
+0x31,0x29,0x2d,0x35,0x31,0x2c,0x32,0x37,0x2a,0x38,0x49,0x54,0x53,0x51,0x55,0x5d,
+0x52,0x50,0x4f,0x4e,0x4c,0x4a,0x4d,0x52,0x72,0x93,0x98,0x78,0x54,0x42,0x4d,0x68,
+0x5f,0x4e,0x3a,0x2f,0x2c,0x2b,0x2c,0x2e,0x2d,0x41,0x57,0x60,0x59,0x4f,0x4c,0x4d,
+0x4e,0x49,0x43,0x4b,0x5e,0x6d,0x7c,0x8c,0x75,0x4d,0x3a,0x38,0x42,0x50,0x56,0x60,
+0x55,0x53,0x68,0x79,0x6b,0x57,0x40,0x24,0x1f,0x1d,0x1a,0x18,0x17,0x1a,0x1f,0x25,
+0x20,0x23,0x26,0x25,0x20,0x1c,0x20,0x27,0x2c,0x1f,0x17,0x19,0x1a,0x15,0x10,0x10,
+0x62,0x6a,0x70,0x70,0x69,0x64,0x63,0x65,0x63,0x68,0x70,0x78,0x78,0x71,0x6b,0x68,
+0x68,0x6b,0x71,0x75,0x70,0x68,0x66,0x69,0x6d,0x6b,0x66,0x5f,0x5d,0x5e,0x5e,0x5c,
+0x5e,0x5e,0x63,0x67,0x65,0x5d,0x58,0x57,0x62,0x69,0x72,0x77,0x71,0x6b,0x6c,0x73,
+0x7a,0x71,0x64,0x5b,0x58,0x5a,0x5c,0x5d,0x5a,0x58,0x53,0x4f,0x51,0x57,0x57,0x54,
+0x49,0x49,0x4b,0x51,0x5b,0x67,0x73,0x79,0x6d,0x5a,0x5a,0x74,0x80,0x71,0x63,0x63,
+0x68,0x65,0x61,0x5e,0x5d,0x5f,0x61,0x62,0x61,0x64,0x6b,0x70,0x6d,0x65,0x62,0x64,
+0x66,0x66,0x64,0x63,0x66,0x68,0x63,0x5b,0x68,0x71,0x79,0x7a,0x76,0x72,0x70,0x6e,
+0x6a,0x6b,0x6c,0x6e,0x70,0x72,0x73,0x74,0x78,0x70,0x6d,0x70,0x6e,0x67,0x68,0x71,
+0x73,0x77,0x73,0x69,0x68,0x6c,0x67,0x5c,0x5c,0x61,0x69,0x70,0x75,0x77,0x76,0x75,
+0x6f,0x70,0x6c,0x67,0x6b,0x76,0x7b,0x79,0x83,0x91,0x94,0x85,0x77,0x73,0x6c,0x62,
+0x5d,0x66,0x71,0x72,0x6e,0x6b,0x6f,0x75,0x74,0x70,0x6b,0x65,0x88,0xad,0xb4,0xca,
+0xbf,0xbd,0xba,0xbb,0xc0,0xc3,0xbf,0xb8,0xb5,0xb6,0xba,0xbf,0xc4,0xc6,0xc6,0xc4,
+0xca,0xc9,0xc8,0xc7,0xc5,0xc1,0xbd,0xba,0xb8,0xba,0xbb,0xbb,0xb9,0xb9,0xba,0xbc,
+0xbf,0xbe,0xbd,0xbd,0xbd,0xbc,0xbb,0xb9,0xb8,0xb8,0xb8,0xb9,0xba,0xbb,0xbc,0xbd,
+0xbe,0xbc,0xba,0xb9,0xb8,0xb8,0xb6,0xb5,0xb5,0xb3,0xb2,0xb4,0xb6,0xb6,0xb2,0xaf,
+0xb0,0xb1,0xb2,0xb0,0xac,0xaa,0xaa,0xaa,0xad,0xac,0xaa,0xa9,0xa7,0xa7,0xa7,0xa7,
+0xa9,0xa6,0xa2,0x9e,0x9a,0x96,0x94,0x92,0x86,0x7c,0x7b,0x7f,0x7f,0x82,0x84,0x80,
+0x69,0x6b,0xa0,0xc4,0xae,0xb3,0xb0,0xb1,0xae,0xb5,0xb9,0xb5,0xaf,0xac,0xa9,0xa6,
+0xa1,0xa3,0xa3,0xa2,0xa2,0xa3,0xa4,0xa3,0xa2,0xad,0xbd,0xcc,0xd7,0xdb,0xd5,0xcd,
+0xc9,0xc9,0xc8,0xc7,0xc5,0xc2,0xbf,0xbe,0xb8,0xb6,0xb2,0xab,0xa1,0x9b,0x9d,0xa3,
+0xab,0xaa,0xad,0xb4,0xbc,0xc1,0xc6,0xca,0xcd,0xcc,0xcc,0xcc,0xcc,0xce,0xcf,0xd0,
+0xcc,0xdc,0xd6,0xd1,0xd1,0xd2,0xd2,0xd8,0xd3,0xd3,0xcd,0xdc,0xdc,0xa2,0x5c,0x46,
+0x59,0x73,0x7a,0x54,0x4e,0x60,0xd2,0xcd,0xcc,0xc6,0xca,0xd0,0xcb,0xc6,0xc9,0xcb,
+0xd3,0xda,0xd7,0xce,0xce,0xd0,0xd1,0xd5,0xd5,0xb2,0x9d,0xa1,0xa4,0xa0,0x9e,0x9d,
+0xa5,0x9c,0x9b,0xa1,0x9c,0x8f,0x82,0xb2,0xc1,0x79,0x8c,0xa0,0x91,0xa1,0x9b,0x99,
+0x98,0x9c,0x9e,0x9d,0x9a,0x9a,0x9a,0x9a,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x96,
+0x91,0xae,0xd8,0xd0,0xcc,0xca,0xc4,0xb4,0xb3,0xad,0xad,0xb2,0xa9,0x7c,0xaf,0xc6,
+0xa2,0x68,0x75,0x88,0x9d,0x93,0x94,0x8a,0x80,0x7b,0x76,0x73,0x6f,0x6c,0x6b,0x6d,
+0x72,0x72,0x71,0x71,0x71,0x71,0x72,0x72,0x73,0x71,0x6e,0x6c,0x6b,0x6a,0x69,0x68,
+0x66,0x64,0x62,0x60,0x5f,0x5d,0x5b,0x59,0x57,0x55,0x51,0x4d,0x4b,0x48,0x46,0x44,
+0x42,0x3c,0x3b,0x3d,0x39,0x30,0x33,0x3d,0x4d,0x5b,0x6b,0x75,0x7c,0x83,0x86,0x85,
+0x7a,0x70,0x6d,0x6f,0x6a,0x62,0x68,0x76,0x78,0x77,0x71,0x6c,0x6d,0x71,0x72,0x6f,
+0x52,0x49,0x3f,0x2e,0x28,0x26,0x20,0x2b,0x34,0x39,0x39,0x3e,0x4a,0x4f,0x4c,0x4d,
+0x43,0x43,0x47,0x59,0x62,0x47,0x29,0x24,0x28,0x2b,0x31,0x32,0x50,0x54,0x4f,0x3e,
+0x30,0x26,0x23,0x27,0x26,0x21,0x28,0x36,0x45,0x4d,0x52,0x52,0x57,0x5f,0x60,0x5a,
+0x63,0x61,0x58,0x4b,0x47,0x56,0x72,0x86,0x89,0x7f,0x6e,0x5c,0x4b,0x43,0x45,0x4b,
+0x3c,0x34,0x2d,0x2b,0x25,0x22,0x2a,0x37,0x3e,0x3e,0x44,0x50,0x5a,0x5a,0x50,0x45,
+0x49,0x59,0x63,0x54,0x3c,0x38,0x52,0x6e,0x59,0x49,0x2e,0x25,0x38,0x4c,0x51,0x4f,
+0x4b,0x5b,0x68,0x63,0x4d,0x37,0x2f,0x30,0x3f,0x3f,0x41,0x38,0x2b,0x2b,0x33,0x35,
+0x2e,0x2b,0x2a,0x27,0x28,0x35,0x41,0x3f,0x48,0x43,0x3d,0x3d,0x47,0x57,0x67,0x71,
+0x5a,0x5e,0x61,0x60,0x5d,0x5d,0x61,0x65,0x6b,0x6c,0x6e,0x71,0x71,0x6d,0x6c,0x6d,
+0x69,0x69,0x6a,0x6a,0x66,0x60,0x61,0x65,0x6a,0x68,0x61,0x5a,0x57,0x58,0x58,0x56,
+0x5a,0x58,0x58,0x5b,0x5b,0x58,0x59,0x5c,0x63,0x66,0x6c,0x6f,0x6c,0x68,0x6a,0x70,
+0x74,0x6e,0x65,0x5e,0x5c,0x5e,0x62,0x65,0x6c,0x68,0x60,0x58,0x56,0x57,0x54,0x4f,
+0x4d,0x4b,0x4d,0x54,0x5d,0x66,0x6e,0x74,0x6a,0x62,0x61,0x65,0x63,0x5a,0x57,0x5c,
+0x60,0x5d,0x5d,0x5f,0x5b,0x53,0x55,0x5d,0x68,0x69,0x6c,0x6e,0x69,0x62,0x60,0x62,
+0x5e,0x68,0x6d,0x66,0x5d,0x5d,0x64,0x6b,0x68,0x6d,0x72,0x76,0x75,0x6f,0x63,0x57,
+0x5b,0x5e,0x64,0x6a,0x70,0x72,0x72,0x71,0x74,0x73,0x74,0x75,0x70,0x6c,0x71,0x7a,
+0x74,0x77,0x74,0x6d,0x6a,0x6a,0x66,0x60,0x5d,0x62,0x68,0x6c,0x71,0x74,0x76,0x76,
+0x6a,0x6e,0x72,0x73,0x71,0x74,0x7e,0x89,0x88,0x8a,0x8d,0x93,0x9c,0x9a,0x81,0x64,
+0x5b,0x65,0x74,0x83,0x8a,0x88,0x7f,0x78,0x79,0x73,0x69,0x7f,0xa8,0xbc,0xbd,0xbb,
+0xc0,0xbd,0xba,0xb9,0xbd,0xc3,0xc3,0xc0,0xc6,0xc5,0xc3,0xc3,0xc5,0xc6,0xc6,0xc6,
+0xc3,0xc3,0xc4,0xc5,0xc5,0xc2,0xbe,0xbb,0xb7,0xb9,0xbb,0xbd,0xbe,0xbe,0xbf,0xc0,
+0xc0,0xbf,0xbe,0xbe,0xbf,0xbe,0xbc,0xba,0xb7,0xb8,0xb8,0xb8,0xb9,0xba,0xbb,0xbc,
+0xbf,0xbd,0xbb,0xba,0xba,0xb9,0xb8,0xb7,0xb5,0xb3,0xb3,0xb5,0xb8,0xb9,0xb7,0xb4,
+0xb1,0xb1,0xb0,0xae,0xab,0xaa,0xab,0xac,0xb0,0xae,0xaa,0xa7,0xa5,0xa6,0xa9,0xab,
+0xa6,0xa4,0xa0,0x9c,0x97,0x93,0x8f,0x8d,0x8a,0x80,0x7e,0x81,0x80,0x80,0x80,0x7b,
+0x68,0x69,0x9b,0xc2,0xaf,0xb2,0xaf,0xb0,0xb0,0xb7,0xbb,0xb8,0xb3,0xaf,0xac,0xa8,
+0xa4,0xa4,0xa2,0xa0,0x9f,0xa1,0xa2,0xa2,0xa5,0xb3,0xc5,0xd4,0xdb,0xdb,0xd4,0xcc,
+0xcc,0xc9,0xc6,0xc3,0xc1,0xbf,0xbc,0xba,0xb7,0xb2,0xac,0xa6,0xa0,0x99,0x97,0x98,
+0xa3,0xa4,0xa8,0xb0,0xb6,0xbb,0xc0,0xc5,0xca,0xc9,0xc8,0xc7,0xc7,0xc7,0xc8,0xc9,
+0xcb,0xc5,0xc9,0xd1,0xc5,0xcb,0xc5,0xb6,0xbf,0xc0,0xcb,0xbc,0xcd,0x71,0x39,0x53,
+0xa3,0xcf,0xdd,0x90,0x42,0x48,0x84,0xb5,0xc3,0xbb,0xbe,0xc3,0xbe,0xba,0xbb,0xbb,
+0xd5,0xdc,0xd9,0xd0,0xd0,0xd2,0xd3,0xd7,0xd9,0xb3,0x9b,0x9c,0x9e,0x9c,0x9e,0xa0,
+0x9a,0x9e,0xa1,0xa2,0x9c,0x94,0x91,0xce,0xdb,0x9c,0x8a,0x74,0x5f,0x89,0xaa,0x9c,
+0xa3,0x9c,0x94,0x94,0x99,0x9c,0x96,0x8f,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x91,0xac,0xd4,0xcf,0xcd,0xcc,0xc6,0xb7,0xb2,0xb5,0xb8,0xb2,0xa1,0x78,0xae,0xcf,
+0x9c,0x5c,0x6b,0x84,0x9f,0x95,0x92,0x88,0x81,0x7b,0x76,0x74,0x71,0x6d,0x69,0x68,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6e,0x6d,0x6b,0x69,0x67,0x64,
+0x64,0x62,0x60,0x5e,0x5d,0x5b,0x58,0x57,0x55,0x52,0x4f,0x4b,0x49,0x46,0x43,0x41,
+0x3e,0x3b,0x39,0x38,0x34,0x34,0x3f,0x4d,0x56,0x5f,0x69,0x72,0x7a,0x80,0x81,0x7e,
+0x70,0x6f,0x6c,0x67,0x5f,0x60,0x6f,0x80,0x79,0x74,0x6e,0x71,0x7a,0x7c,0x70,0x61,
+0x4f,0x4d,0x4c,0x46,0x4a,0x4a,0x3e,0x3f,0x38,0x3a,0x39,0x3f,0x4d,0x54,0x52,0x53,
+0x49,0x54,0x5e,0x59,0x43,0x2e,0x36,0x50,0x50,0x52,0x45,0x39,0x38,0x3f,0x40,0x42,
+0x28,0x26,0x2a,0x32,0x35,0x33,0x39,0x42,0x47,0x53,0x5a,0x58,0x56,0x5b,0x5d,0x5b,
+0x63,0x5f,0x5e,0x6b,0x7d,0x85,0x79,0x68,0x5f,0x63,0x5f,0x51,0x40,0x37,0x34,0x35,
+0x4e,0x4a,0x46,0x40,0x36,0x30,0x36,0x3f,0x54,0x50,0x49,0x42,0x3e,0x43,0x4c,0x54,
+0x4a,0x43,0x3d,0x40,0x4d,0x5d,0x68,0x6d,0x7a,0x62,0x43,0x39,0x44,0x47,0x40,0x3c,
+0x48,0x4f,0x4f,0x41,0x2f,0x26,0x26,0x2a,0x45,0x54,0x69,0x6c,0x5f,0x59,0x5b,0x59,
+0x6f,0x77,0x83,0x84,0x78,0x72,0x70,0x6a,0x5f,0x5e,0x64,0x74,0x85,0x8d,0x88,0x7f,
+0x5f,0x60,0x60,0x5f,0x5e,0x60,0x66,0x6a,0x6c,0x6b,0x6b,0x6d,0x6c,0x6b,0x6d,0x70,
+0x69,0x65,0x62,0x60,0x5d,0x5c,0x5e,0x62,0x6e,0x6b,0x65,0x5e,0x5c,0x5c,0x5b,0x58,
+0x56,0x54,0x53,0x56,0x58,0x59,0x5d,0x60,0x63,0x64,0x66,0x69,0x69,0x69,0x6b,0x6f,
+0x74,0x71,0x6a,0x61,0x58,0x54,0x55,0x57,0x6f,0x6a,0x62,0x5c,0x59,0x59,0x56,0x51,
+0x4f,0x4c,0x51,0x5c,0x63,0x63,0x65,0x6b,0x6b,0x6c,0x67,0x5d,0x56,0x56,0x5b,0x5e,
+0x5b,0x58,0x5c,0x61,0x59,0x4b,0x4d,0x59,0x61,0x64,0x69,0x6a,0x66,0x60,0x5e,0x5f,
+0x5d,0x61,0x62,0x61,0x62,0x65,0x68,0x69,0x63,0x6e,0x79,0x7a,0x71,0x67,0x5e,0x58,
+0x5c,0x5e,0x63,0x6a,0x70,0x72,0x72,0x70,0x6b,0x6c,0x6e,0x6f,0x71,0x73,0x76,0x78,
+0x7f,0x7f,0x80,0x7e,0x7b,0x79,0x78,0x79,0x67,0x6d,0x72,0x74,0x74,0x76,0x77,0x76,
+0x71,0x6f,0x74,0x7d,0x7e,0x79,0x79,0x7f,0x7b,0x7c,0x81,0x8c,0x96,0x95,0x84,0x73,
+0x6c,0x6f,0x74,0x7e,0x88,0x90,0x93,0x94,0x81,0x7f,0x7d,0xa4,0xbf,0xbb,0xc2,0xbb,
+0xbf,0xbc,0xb8,0xb4,0xb7,0xbe,0xc3,0xc4,0xc8,0xc7,0xc6,0xc6,0xc7,0xc7,0xc6,0xc6,
+0xc4,0xc5,0xc5,0xc6,0xc5,0xc2,0xbe,0xba,0xb9,0xb9,0xbb,0xbd,0xbf,0xc0,0xc0,0xbf,
+0xbf,0xbf,0xbf,0xc0,0xc1,0xc0,0xbd,0xbc,0xba,0xba,0xba,0xba,0xba,0xbb,0xbc,0xbc,
+0xbf,0xbe,0xbc,0xbc,0xbc,0xbb,0xba,0xb8,0xb7,0xb5,0xb4,0xb5,0xb7,0xb9,0xb8,0xb7,
+0xb3,0xb2,0xaf,0xab,0xa8,0xa7,0xa8,0xa9,0xaa,0xa9,0xa5,0xa1,0x9f,0xa0,0xa4,0xa8,
+0xa6,0xa4,0xa1,0x9d,0x99,0x94,0x8e,0x8a,0x8a,0x81,0x80,0x83,0x81,0x80,0x7e,0x78,
+0x66,0x69,0x98,0xc4,0xb4,0xb1,0xae,0xb1,0xaf,0xb5,0xb9,0xb8,0xb4,0xb0,0xab,0xa7,
+0xa7,0xa4,0xa0,0x9e,0x9f,0xa1,0xa3,0xa4,0xac,0xbd,0xd2,0xde,0xdf,0xda,0xd1,0xca,
+0xcb,0xc6,0xc1,0xbf,0xbe,0xbd,0xba,0xb7,0xb4,0xad,0xa6,0xa4,0xa1,0x9c,0x97,0x94,
+0xa3,0xa6,0xac,0xb2,0xb7,0xba,0xbf,0xc4,0xcb,0xca,0xc9,0xc8,0xc8,0xc9,0xc9,0xca,
+0xcc,0xc5,0xc4,0xce,0xc8,0xd0,0xc7,0xc5,0xce,0xc7,0xcc,0xc1,0xbd,0x43,0x3c,0x8f,
+0xdf,0xdb,0xeb,0xdd,0x92,0x43,0x48,0xc4,0xcf,0xc8,0xca,0xd0,0xd0,0xcf,0xd0,0xcf,
+0xd5,0xdd,0xd9,0xd1,0xd0,0xd2,0xd4,0xd8,0xdb,0xb5,0x9b,0x9b,0x9d,0x9c,0x9e,0xa1,
+0x9f,0xa2,0xa3,0xa5,0x9c,0x8d,0x93,0xe3,0xe6,0x8f,0x6c,0xa0,0xa2,0x8a,0x94,0x9e,
+0x9c,0x9c,0x9c,0x9e,0x9f,0x9d,0x98,0x95,0x93,0x93,0x94,0x94,0x94,0x94,0x94,0x94,
+0x92,0xa9,0xd0,0xcd,0xce,0xce,0xc9,0xba,0xb2,0xb9,0xbd,0xb2,0xa1,0x79,0xa6,0xcf,
+0x93,0x5a,0x73,0x8c,0xa1,0x94,0x8e,0x86,0x7f,0x7a,0x75,0x74,0x72,0x6d,0x68,0x66,
+0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6c,0x6c,0x6b,0x68,0x64,0x61,
+0x61,0x5f,0x5d,0x5b,0x5a,0x58,0x55,0x53,0x51,0x4f,0x4c,0x49,0x46,0x43,0x3f,0x3d,
+0x39,0x39,0x36,0x32,0x34,0x40,0x54,0x64,0x65,0x67,0x6a,0x6f,0x76,0x7b,0x79,0x74,
+0x6d,0x6e,0x6a,0x61,0x5e,0x68,0x77,0x82,0x7c,0x77,0x70,0x6a,0x69,0x66,0x5e,0x56,
+0x68,0x5d,0x4e,0x3f,0x47,0x53,0x4e,0x51,0x3c,0x38,0x2f,0x30,0x3e,0x4a,0x51,0x58,
+0x5f,0x55,0x50,0x4b,0x41,0x3c,0x40,0x44,0x4a,0x50,0x47,0x54,0x58,0x5f,0x45,0x39,
+0x40,0x3b,0x36,0x31,0x2b,0x28,0x2c,0x31,0x49,0x4c,0x4e,0x53,0x5d,0x62,0x56,0x45,
+0x47,0x55,0x65,0x6c,0x6b,0x66,0x60,0x5b,0x64,0x60,0x56,0x4e,0x51,0x59,0x5c,0x59,
+0x4f,0x49,0x43,0x41,0x43,0x49,0x4e,0x52,0x59,0x53,0x46,0x35,0x28,0x27,0x30,0x3a,
+0x40,0x32,0x26,0x28,0x36,0x41,0x40,0x3a,0x34,0x38,0x3d,0x45,0x45,0x34,0x23,0x22,
+0x34,0x3b,0x3c,0x36,0x32,0x34,0x33,0x2d,0x33,0x41,0x5c,0x74,0x7f,0x85,0x81,0x75,
+0x6c,0x6d,0x7a,0x8b,0x93,0x97,0x96,0x8f,0x87,0x86,0x82,0x7c,0x76,0x74,0x76,0x79,
+0x66,0x65,0x65,0x64,0x65,0x66,0x69,0x6a,0x6c,0x6c,0x6d,0x6e,0x6b,0x67,0x65,0x66,
+0x65,0x62,0x5f,0x5d,0x5c,0x5d,0x5f,0x61,0x62,0x61,0x5e,0x5a,0x59,0x59,0x56,0x53,
+0x55,0x55,0x56,0x5a,0x5c,0x5e,0x5e,0x5f,0x5d,0x5d,0x5f,0x61,0x64,0x64,0x64,0x64,
+0x63,0x66,0x69,0x65,0x5e,0x59,0x5a,0x5d,0x62,0x5e,0x5a,0x59,0x5a,0x5a,0x57,0x54,
+0x50,0x4e,0x56,0x63,0x66,0x5f,0x5e,0x65,0x6a,0x68,0x61,0x5c,0x5d,0x62,0x64,0x61,
+0x53,0x52,0x53,0x54,0x4c,0x43,0x46,0x50,0x5b,0x62,0x69,0x6c,0x68,0x60,0x5b,0x59,
+0x5e,0x5b,0x5b,0x62,0x6d,0x72,0x6c,0x64,0x69,0x73,0x7b,0x79,0x72,0x6e,0x6e,0x6f,
+0x6f,0x6c,0x6a,0x6a,0x6d,0x6e,0x6e,0x6d,0x6e,0x6f,0x70,0x74,0x7e,0x86,0x85,0x7e,
+0x7c,0x7b,0x7c,0x7e,0x7d,0x7b,0x7f,0x86,0x7a,0x81,0x84,0x81,0x7c,0x7a,0x76,0x72,
+0x7c,0x7e,0x85,0x8b,0x88,0x7d,0x74,0x71,0x76,0x79,0x7f,0x85,0x85,0x81,0x7f,0x80,
+0x84,0x86,0x86,0x80,0x79,0x7a,0x82,0x8a,0x8a,0x88,0x97,0xbc,0xc5,0xb8,0xc0,0xc6,
+0xc1,0xc1,0xbd,0xb8,0xb7,0xbd,0xc4,0xc7,0xc3,0xc5,0xc8,0xca,0xcb,0xc9,0xc6,0xc3,
+0xc5,0xc4,0xc4,0xc4,0xc4,0xc2,0xc0,0xbd,0xbd,0xbb,0xb9,0xb9,0xbb,0xbb,0xba,0xb9,
+0xbe,0xbe,0xbf,0xc0,0xc1,0xc0,0xbe,0xbc,0xbf,0xbe,0xbe,0xbd,0xbd,0xbe,0xbe,0xbe,
+0xbe,0xbd,0xbc,0xbc,0xbc,0xbb,0xba,0xb8,0xba,0xb8,0xb5,0xb4,0xb4,0xb5,0xb5,0xb4,
+0xb5,0xb3,0xb0,0xac,0xa8,0xa5,0xa4,0xa3,0xa3,0xa3,0xa2,0xa0,0x9d,0x9d,0xa0,0xa3,
+0xaa,0xa8,0xa5,0xa2,0x9e,0x98,0x91,0x8b,0x87,0x7f,0x7f,0x84,0x84,0x83,0x80,0x7a,
+0x62,0x6c,0x9b,0xca,0xbb,0xb0,0xac,0xb1,0xae,0xb2,0xb7,0xb9,0xb6,0xb1,0xab,0xa6,
+0xa6,0xa3,0xa0,0xa0,0xa1,0xa3,0xa7,0xaa,0xb7,0xc9,0xdc,0xe3,0xdf,0xd6,0xce,0xc9,
+0xc7,0xc2,0xbe,0xbd,0xbe,0xbd,0xb9,0xb5,0xad,0xa9,0xa5,0xa7,0xa7,0xa3,0x9e,0x9b,
+0xad,0xb1,0xb7,0xbc,0xbe,0xbf,0xc3,0xc9,0xcd,0xcd,0xcd,0xcd,0xce,0xcf,0xd0,0xd1,
+0xc1,0xd2,0xcd,0xd5,0xd5,0xa8,0x67,0x66,0xa2,0xd0,0xc8,0xc7,0xaa,0x32,0x47,0xb9,
+0xe9,0xdf,0xdc,0xe8,0xd7,0x60,0x46,0xab,0xc9,0xc1,0xc2,0xc9,0xca,0xcb,0xcc,0xc8,
+0xd2,0xda,0xd7,0xcf,0xcf,0xd1,0xd3,0xd6,0xdc,0xb7,0x9f,0xa0,0xa2,0x9f,0x9f,0xa0,
+0xa9,0xa1,0x9c,0xa4,0x9f,0x88,0x87,0xda,0xea,0x8f,0x5a,0xc1,0xbc,0x82,0x6f,0x83,
+0x97,0x9a,0x9e,0x9e,0x99,0x94,0x94,0x97,0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x94,
+0x93,0xa6,0xcc,0xcb,0xcf,0xce,0xc9,0xbc,0xb2,0xb3,0xb6,0xb3,0xa9,0x80,0x96,0xc3,
+0x8b,0x64,0x8a,0x94,0x9d,0x92,0x8b,0x84,0x7d,0x78,0x73,0x71,0x6f,0x6b,0x68,0x68,
+0x6a,0x6b,0x6d,0x6e,0x6f,0x6e,0x6d,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x66,0x63,0x60,
+0x60,0x5e,0x5b,0x59,0x57,0x55,0x53,0x51,0x4d,0x4c,0x49,0x47,0x44,0x41,0x3c,0x3a,
+0x39,0x39,0x35,0x34,0x41,0x58,0x6d,0x77,0x72,0x70,0x6f,0x70,0x73,0x75,0x73,0x70,
+0x74,0x6e,0x66,0x65,0x6a,0x73,0x77,0x77,0x69,0x68,0x68,0x68,0x6b,0x71,0x75,0x77,
+0x60,0x56,0x48,0x36,0x3b,0x46,0x40,0x42,0x3d,0x31,0x25,0x2d,0x47,0x56,0x57,0x57,
+0x53,0x4b,0x4c,0x4b,0x42,0x43,0x48,0x42,0x48,0x4f,0x47,0x42,0x3b,0x41,0x44,0x51,
+0x75,0x6a,0x54,0x3b,0x29,0x22,0x23,0x25,0x35,0x48,0x58,0x59,0x52,0x4d,0x47,0x3f,
+0x46,0x52,0x5f,0x67,0x68,0x67,0x63,0x5f,0x46,0x4b,0x4d,0x47,0x3e,0x3c,0x43,0x4c,
+0x53,0x55,0x55,0x51,0x51,0x55,0x5a,0x5c,0x38,0x34,0x30,0x2f,0x32,0x34,0x36,0x35,
+0x39,0x34,0x2e,0x28,0x25,0x21,0x1e,0x1c,0x14,0x2c,0x3d,0x39,0x27,0x17,0x1b,0x2e,
+0x3e,0x43,0x44,0x46,0x53,0x60,0x5a,0x4a,0x3b,0x3f,0x50,0x69,0x7f,0x90,0x92,0x87,
+0x73,0x6c,0x74,0x87,0x92,0x92,0x8a,0x7f,0x69,0x69,0x72,0x88,0xa1,0xae,0xab,0xa2,
+0x5e,0x5d,0x5c,0x5c,0x5e,0x62,0x66,0x68,0x71,0x70,0x70,0x6e,0x68,0x5f,0x59,0x58,
+0x61,0x62,0x62,0x61,0x5f,0x5e,0x5c,0x5b,0x57,0x5a,0x5c,0x5c,0x5c,0x5c,0x5a,0x56,
+0x5b,0x5b,0x5c,0x5d,0x5f,0x60,0x5f,0x5d,0x58,0x5a,0x5c,0x5c,0x5c,0x59,0x54,0x51,
+0x59,0x61,0x69,0x6c,0x69,0x65,0x64,0x66,0x5a,0x57,0x55,0x57,0x5b,0x5b,0x59,0x57,
+0x56,0x53,0x58,0x62,0x62,0x5b,0x5d,0x67,0x66,0x5d,0x57,0x58,0x5c,0x5d,0x5c,0x5b,
+0x59,0x59,0x55,0x4d,0x4a,0x4c,0x50,0x53,0x65,0x6a,0x70,0x6e,0x68,0x60,0x5a,0x56,
+0x5b,0x60,0x67,0x6c,0x6b,0x6a,0x6a,0x6b,0x78,0x72,0x6c,0x6a,0x72,0x7c,0x80,0x80,
+0x79,0x75,0x70,0x6c,0x6b,0x6a,0x69,0x68,0x6b,0x72,0x77,0x7a,0x82,0x8b,0x8c,0x87,
+0x84,0x7e,0x7c,0x7e,0x7d,0x7b,0x7f,0x86,0x89,0x8d,0x8b,0x81,0x7a,0x77,0x72,0x6d,
+0x7a,0x8b,0x98,0x91,0x82,0x78,0x78,0x7a,0x78,0x76,0x7a,0x82,0x86,0x81,0x78,0x72,
+0x73,0x82,0x90,0x92,0x87,0x79,0x71,0x70,0x82,0x82,0xa5,0xc4,0xcb,0xc5,0xc0,0xcc,
+0xca,0xcc,0xca,0xc5,0xc2,0xc5,0xca,0xcc,0xcb,0xcd,0xcf,0xcf,0xce,0xcb,0xc8,0xc6,
+0xc3,0xc2,0xc1,0xc2,0xc3,0xc4,0xc4,0xc4,0xc1,0xbd,0xb9,0xb7,0xb7,0xb8,0xb8,0xb7,
+0xbc,0xbc,0xbd,0xbf,0xc0,0xc0,0xbf,0xbd,0xc2,0xc1,0xc0,0xbf,0xbe,0xbe,0xbe,0xbe,
+0xbb,0xbb,0xba,0xba,0xbb,0xbb,0xb9,0xb7,0xbb,0xb8,0xb6,0xb3,0xb3,0xb3,0xb2,0xb2,
+0xb3,0xb3,0xb1,0xaf,0xac,0xa9,0xa5,0xa3,0xa2,0xa5,0xa8,0xa8,0xa6,0xa4,0xa3,0xa3,
+0xab,0xa8,0xa6,0xa4,0xa1,0x9b,0x92,0x8c,0x85,0x7e,0x7f,0x85,0x85,0x84,0x81,0x7b,
+0x5b,0x70,0x9f,0xd0,0xc0,0xaf,0xab,0xaf,0xb0,0xb2,0xb7,0xbb,0xba,0xb4,0xad,0xa9,
+0xa5,0xa2,0xa0,0xa2,0xa2,0xa4,0xa9,0xaf,0xc4,0xd3,0xe1,0xe2,0xda,0xd0,0xca,0xc7,
+0xc4,0xc0,0xbd,0xbd,0xbe,0xbc,0xb5,0xb0,0xa7,0xa6,0xa8,0xab,0xab,0xa7,0xa4,0xa4,
+0xb2,0xb5,0xbb,0xc0,0xc2,0xc2,0xc6,0xcc,0xcd,0xcd,0xcd,0xce,0xce,0xcf,0xd0,0xd0,
+0xcc,0xd2,0xc4,0xc6,0xbe,0x73,0x3d,0x41,0x43,0xa2,0xcc,0xc7,0xa2,0x3b,0x45,0xc0,
+0xe7,0xea,0xdf,0xdf,0xe2,0x74,0x40,0x96,0xd0,0xc7,0xc5,0xc8,0xc7,0xc8,0xc6,0xc0,
+0xce,0xd6,0xd5,0xce,0xcf,0xd1,0xd2,0xd5,0xdd,0xb8,0xa0,0xa1,0xa2,0xa0,0xa0,0xa1,
+0xa5,0x9e,0x99,0xa0,0xa3,0x94,0x80,0xb2,0xe4,0x92,0x66,0xce,0x91,0x7e,0x7f,0x83,
+0xa8,0xa1,0x9b,0x9a,0x99,0x97,0x96,0x97,0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x94,
+0x94,0xa4,0xc9,0xcb,0xcf,0xcd,0xc8,0xbc,0xb4,0xae,0xb2,0xb3,0xae,0x83,0x85,0xbd,
+0x86,0x69,0x90,0x88,0x8e,0x93,0x8e,0x82,0x7b,0x76,0x70,0x6c,0x67,0x64,0x66,0x69,
+0x6a,0x6b,0x6c,0x6e,0x6e,0x6d,0x6c,0x6b,0x6c,0x6a,0x67,0x66,0x64,0x63,0x61,0x60,
+0x5e,0x5c,0x5a,0x57,0x56,0x53,0x51,0x4f,0x4a,0x49,0x47,0x44,0x42,0x3f,0x3b,0x38,
+0x3a,0x38,0x36,0x3d,0x54,0x6f,0x7e,0x7e,0x79,0x78,0x76,0x74,0x71,0x6f,0x6f,0x70,
+0x7b,0x6e,0x65,0x68,0x6e,0x6f,0x6e,0x6f,0x71,0x6b,0x66,0x6a,0x70,0x72,0x6b,0x64,
+0x71,0x6a,0x5d,0x46,0x40,0x3f,0x35,0x38,0x2d,0x26,0x23,0x34,0x4c,0x50,0x40,0x36,
+0x44,0x43,0x4a,0x4a,0x40,0x47,0x56,0x59,0x60,0x65,0x67,0x5c,0x61,0x64,0x7f,0x97,
+0x98,0x91,0x80,0x66,0x51,0x45,0x3e,0x39,0x38,0x47,0x52,0x4f,0x48,0x43,0x3b,0x32,
+0x3c,0x49,0x57,0x5d,0x59,0x4f,0x41,0x36,0x4a,0x42,0x41,0x4d,0x59,0x5c,0x5d,0x5f,
+0x5b,0x67,0x6f,0x6a,0x60,0x5f,0x67,0x6f,0x7b,0x73,0x6a,0x62,0x5b,0x51,0x45,0x3b,
+0x39,0x36,0x31,0x2d,0x2b,0x2b,0x2b,0x2c,0x34,0x4e,0x58,0x49,0x38,0x32,0x3b,0x4a,
+0x5e,0x55,0x46,0x44,0x5a,0x76,0x7c,0x72,0x63,0x65,0x6d,0x72,0x72,0x7a,0x81,0x7f,
+0x93,0x7b,0x63,0x4f,0x3b,0x33,0x39,0x3d,0x53,0x65,0x7a,0x82,0x7d,0x73,0x6e,0x6d,
+0x57,0x55,0x53,0x54,0x58,0x5f,0x67,0x6d,0x6e,0x6c,0x6b,0x69,0x64,0x5d,0x59,0x5a,
+0x60,0x64,0x66,0x63,0x5e,0x5a,0x55,0x51,0x58,0x5f,0x66,0x68,0x69,0x6a,0x6a,0x69,
+0x6a,0x67,0x62,0x5f,0x60,0x64,0x64,0x63,0x62,0x65,0x66,0x62,0x5c,0x56,0x50,0x4c,
+0x54,0x5b,0x64,0x68,0x68,0x64,0x61,0x60,0x56,0x52,0x52,0x57,0x5e,0x62,0x64,0x65,
+0x63,0x5b,0x58,0x5c,0x5d,0x5c,0x62,0x6b,0x68,0x60,0x5c,0x5c,0x58,0x52,0x53,0x5a,
+0x60,0x60,0x59,0x4f,0x4f,0x58,0x5d,0x5b,0x68,0x6c,0x6d,0x68,0x63,0x60,0x60,0x5f,
+0x5f,0x63,0x68,0x68,0x64,0x60,0x63,0x68,0x72,0x6d,0x65,0x60,0x65,0x72,0x80,0x87,
+0x77,0x76,0x73,0x70,0x6d,0x6b,0x6a,0x69,0x66,0x73,0x7c,0x7c,0x7a,0x80,0x8b,0x92,
+0x9b,0x92,0x8b,0x8a,0x88,0x83,0x81,0x82,0x89,0x89,0x82,0x76,0x71,0x74,0x74,0x6f,
+0x73,0x7f,0x84,0x7c,0x74,0x76,0x7c,0x7e,0x7a,0x77,0x78,0x7d,0x81,0x7d,0x75,0x6e,
+0x70,0x79,0x84,0x8b,0x8a,0x81,0x75,0x6e,0x69,0x82,0xb7,0xcb,0xcd,0xcb,0xc1,0xd3,
+0xcc,0xd0,0xd1,0xcd,0xca,0xcb,0xcd,0xce,0xcf,0xcf,0xce,0xcd,0xcc,0xcc,0xce,0xd0,
+0xcd,0xcb,0xc9,0xc7,0xc7,0xc6,0xc6,0xc5,0xc3,0xc0,0xbd,0xba,0xb9,0xba,0xbb,0xbc,
+0xbc,0xbb,0xbc,0xbd,0xbf,0xc0,0xbf,0xbe,0xc1,0xc1,0xbf,0xbe,0xbd,0xbc,0xbb,0xbb,
+0xba,0xba,0xba,0xba,0xbb,0xbb,0xb9,0xb8,0xb9,0xb7,0xb5,0xb3,0xb2,0xb2,0xb2,0xb2,
+0xaf,0xaf,0xaf,0xb0,0xb0,0xae,0xab,0xa9,0xa6,0xa8,0xab,0xad,0xad,0xab,0xa8,0xa5,
+0xa8,0xa6,0xa3,0xa2,0xa0,0x9a,0x92,0x8c,0x86,0x7e,0x7f,0x84,0x84,0x83,0x80,0x79,
+0x55,0x73,0x9f,0xd0,0xc2,0xb1,0xac,0xab,0xae,0xaf,0xb3,0xb8,0xb9,0xb4,0xac,0xa8,
+0xa4,0xa2,0xa1,0xa3,0xa2,0xa3,0xac,0xb6,0xd2,0xdb,0xe2,0xde,0xd4,0xcb,0xc6,0xc3,
+0xc3,0xc1,0xbe,0xbd,0xbb,0xb6,0xaf,0xa9,0xa4,0xa6,0xaa,0xad,0xac,0xa8,0xa6,0xa8,
+0xb1,0xb3,0xb8,0xbd,0xc0,0xc1,0xc5,0xca,0xce,0xce,0xce,0xcd,0xcd,0xcd,0xcd,0xcc,
+0xc7,0xc5,0xce,0xd1,0xa2,0x42,0x51,0x63,0x44,0x4a,0xbd,0xdb,0x9e,0x39,0x4d,0xc9,
+0xe7,0xdc,0xde,0xed,0xe8,0x81,0x2e,0xa3,0xcb,0xc3,0xc1,0xc2,0xc0,0xc1,0xc0,0xba,
+0xca,0xd4,0xd4,0xcf,0xd1,0xd2,0xd3,0xd5,0xde,0xb7,0x9c,0x9c,0x9d,0x9d,0xa0,0xa3,
+0x9e,0xa3,0xa2,0x9e,0xa1,0xa5,0x80,0x83,0xcf,0x9b,0x92,0xd4,0x75,0xa5,0xaf,0x7d,
+0x96,0x97,0x9b,0xa1,0xa0,0x9a,0x97,0x99,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,
+0x93,0xa2,0xc7,0xcb,0xcf,0xcb,0xc6,0xbd,0xb5,0xb1,0xb4,0xb1,0xac,0x84,0x78,0xb8,
+0x82,0x62,0x82,0x6e,0x7c,0x95,0x91,0x7e,0x77,0x70,0x68,0x63,0x60,0x5f,0x63,0x68,
+0x6a,0x6b,0x6b,0x6c,0x6c,0x6b,0x6a,0x6a,0x6a,0x67,0x64,0x62,0x61,0x60,0x5f,0x5e,
+0x5c,0x5a,0x57,0x55,0x53,0x50,0x4e,0x4c,0x47,0x46,0x43,0x41,0x40,0x3d,0x3a,0x38,
+0x36,0x37,0x3b,0x49,0x61,0x76,0x7c,0x78,0x7a,0x7a,0x79,0x76,0x70,0x6b,0x6c,0x71,
+0x77,0x6c,0x65,0x66,0x65,0x63,0x69,0x72,0x74,0x6f,0x6a,0x68,0x67,0x64,0x63,0x64,
+0x76,0x71,0x6a,0x57,0x4b,0x45,0x3d,0x46,0x47,0x4f,0x52,0x4f,0x43,0x30,0x26,0x2c,
+0x43,0x3f,0x40,0x43,0x46,0x4d,0x54,0x55,0x64,0x63,0x68,0x5f,0x69,0x5d,0x66,0x6e,
+0x88,0x8b,0x8a,0x7f,0x6d,0x5a,0x49,0x3e,0x36,0x33,0x2e,0x30,0x3c,0x44,0x3a,0x28,
+0x3a,0x4d,0x5a,0x4e,0x35,0x28,0x2e,0x3a,0x3d,0x58,0x72,0x6e,0x4f,0x38,0x41,0x57,
+0x6b,0x64,0x5c,0x55,0x56,0x5d,0x68,0x70,0x6e,0x71,0x72,0x6f,0x66,0x5b,0x53,0x4e,
+0x4c,0x47,0x3e,0x34,0x2c,0x2a,0x2f,0x33,0x3b,0x53,0x60,0x60,0x61,0x5e,0x51,0x44,
+0x4f,0x3e,0x29,0x27,0x43,0x6a,0x81,0x86,0x7d,0x7d,0x7e,0x79,0x6d,0x6a,0x6a,0x65,
+0x52,0x4d,0x4f,0x51,0x4b,0x44,0x3e,0x37,0x39,0x2e,0x21,0x1d,0x21,0x26,0x26,0x24,
+0x5a,0x5a,0x59,0x59,0x5b,0x61,0x69,0x6f,0x66,0x66,0x66,0x67,0x64,0x5f,0x5d,0x5e,
+0x60,0x65,0x67,0x61,0x5a,0x55,0x52,0x4e,0x53,0x5d,0x66,0x69,0x69,0x6c,0x70,0x73,
+0x72,0x6f,0x67,0x61,0x62,0x68,0x69,0x68,0x6c,0x70,0x6f,0x66,0x5b,0x56,0x55,0x54,
+0x4d,0x51,0x58,0x5f,0x64,0x65,0x64,0x62,0x53,0x4e,0x4c,0x53,0x5d,0x66,0x6f,0x74,
+0x6c,0x62,0x5a,0x5b,0x61,0x65,0x66,0x65,0x69,0x65,0x64,0x64,0x5f,0x58,0x58,0x5c,
+0x59,0x57,0x52,0x4e,0x4f,0x55,0x59,0x5a,0x63,0x67,0x68,0x64,0x61,0x63,0x66,0x67,
+0x65,0x5e,0x5b,0x61,0x67,0x66,0x60,0x5c,0x5f,0x66,0x67,0x5f,0x5a,0x61,0x73,0x82,
+0x77,0x77,0x74,0x70,0x6b,0x6a,0x6c,0x6e,0x73,0x7a,0x7e,0x7c,0x7a,0x80,0x8f,0x9c,
+0x9e,0x95,0x8c,0x89,0x88,0x84,0x7a,0x73,0x7b,0x7c,0x78,0x72,0x75,0x7f,0x82,0x7d,
+0x75,0x71,0x6c,0x6b,0x70,0x76,0x79,0x78,0x80,0x82,0x81,0x7e,0x7b,0x7b,0x7b,0x7b,
+0x84,0x80,0x7c,0x7a,0x79,0x75,0x70,0x6b,0x6d,0xa0,0xc8,0xcc,0xc9,0xc6,0xc5,0xd0,
+0xc6,0xcb,0xce,0xcc,0xcb,0xcc,0xcd,0xcc,0xcb,0xcb,0xca,0xc9,0xc8,0xca,0xcd,0xd1,
+0xd2,0xd0,0xcf,0xcd,0xcc,0xca,0xc6,0xc4,0xc5,0xc5,0xc4,0xc1,0xbf,0xbe,0xbf,0xc0,
+0xbc,0xbb,0xbb,0xbc,0xbe,0xc0,0xc0,0xc0,0xc1,0xc0,0xbe,0xbc,0xbb,0xb9,0xb8,0xb8,
+0xba,0xba,0xbb,0xbc,0xbd,0xbc,0xbb,0xb9,0xb7,0xb7,0xb5,0xb2,0xb0,0xae,0xae,0xae,
+0xab,0xab,0xab,0xad,0xaf,0xaf,0xae,0xac,0xa9,0xa7,0xa6,0xa8,0xaa,0xab,0xa9,0xa7,
+0xa7,0xa4,0xa2,0xa1,0xa0,0x9c,0x94,0x8d,0x86,0x7e,0x7f,0x84,0x83,0x82,0x7f,0x78,
+0x54,0x76,0x9c,0xcc,0xc5,0xb8,0xb2,0xab,0xad,0xab,0xae,0xb5,0xb7,0xb2,0xaa,0xa6,
+0xa3,0xa1,0xa1,0xa3,0xa3,0xa7,0xb5,0xc6,0xdb,0xe0,0xe0,0xda,0xd1,0xc9,0xc3,0xbe,
+0xc1,0xbf,0xbc,0xb9,0xb5,0xb0,0xa9,0xa5,0xa5,0xa7,0xac,0xb0,0xb0,0xad,0xac,0xad,
+0xb7,0xb7,0xb9,0xbd,0xc0,0xc1,0xc4,0xc7,0xce,0xce,0xce,0xce,0xce,0xcd,0xcd,0xcc,
+0xcd,0xc7,0xd0,0xd1,0xa4,0x48,0xab,0xe9,0x9e,0x3c,0x7d,0xd9,0x9d,0x2d,0x4b,0xc8,
+0xe5,0xe4,0xe8,0xe8,0xe5,0x80,0x3a,0x9a,0xcd,0xc7,0xc6,0xc6,0xc4,0xc6,0xc7,0xc1,
+0xc6,0xd1,0xd3,0xd0,0xd2,0xd4,0xd3,0xd5,0xdb,0xb4,0x9a,0x9a,0x9d,0x9c,0x9f,0xa2,
+0x9f,0xa2,0xa5,0x9e,0x9c,0xa8,0x85,0x78,0xc8,0xd3,0xcf,0xb4,0x62,0xb2,0x9f,0x56,
+0x74,0x7b,0x8b,0x98,0x9a,0x92,0x90,0x93,0x95,0x95,0x94,0x94,0x93,0x92,0x92,0x92,
+0x90,0x9f,0xc6,0xcc,0xcf,0xc9,0xc4,0xbe,0xb5,0xb5,0xb5,0xab,0xad,0x8e,0x6f,0xa5,
+0x80,0x5c,0x7c,0x66,0x75,0x91,0x8b,0x79,0x6d,0x63,0x5a,0x59,0x5c,0x60,0x64,0x67,
+0x6a,0x6a,0x6a,0x6a,0x69,0x69,0x68,0x68,0x65,0x64,0x62,0x60,0x5f,0x5e,0x5b,0x5a,
+0x58,0x56,0x53,0x51,0x4f,0x4c,0x49,0x47,0x45,0x43,0x40,0x3e,0x3d,0x3b,0x39,0x38,
+0x35,0x3d,0x4b,0x5b,0x6b,0x75,0x77,0x75,0x77,0x76,0x77,0x76,0x70,0x6a,0x6b,0x6f,
+0x6d,0x68,0x62,0x5f,0x61,0x67,0x6f,0x75,0x70,0x6d,0x65,0x55,0x40,0x32,0x34,0x3c,
+0x42,0x46,0x51,0x52,0x53,0x4f,0x4c,0x5c,0x76,0x79,0x73,0x60,0x48,0x33,0x33,0x43,
+0x36,0x3d,0x41,0x41,0x3f,0x3d,0x45,0x55,0x6e,0x73,0x74,0x6b,0x63,0x5d,0x70,0x8b,
+0x88,0x8c,0x91,0x91,0x8a,0x7f,0x76,0x72,0x8c,0x8f,0x83,0x68,0x4c,0x3c,0x31,0x29,
+0x36,0x3a,0x37,0x2d,0x27,0x31,0x47,0x58,0x73,0x72,0x63,0x49,0x3c,0x4c,0x6a,0x7f,
+0x6e,0x5c,0x4a,0x45,0x48,0x4d,0x54,0x5a,0x5d,0x63,0x68,0x67,0x60,0x5a,0x57,0x58,
+0x5e,0x5a,0x51,0x43,0x37,0x32,0x36,0x3b,0x4c,0x5d,0x65,0x62,0x5f,0x57,0x49,0x40,
+0x37,0x29,0x19,0x18,0x2e,0x52,0x71,0x81,0x84,0x83,0x83,0x7a,0x6b,0x65,0x63,0x5d,
+0x60,0x5c,0x5d,0x5f,0x5e,0x5d,0x56,0x49,0x4d,0x45,0x37,0x28,0x1b,0x15,0x14,0x15,
+0x5d,0x5f,0x61,0x61,0x60,0x60,0x63,0x66,0x67,0x67,0x69,0x6a,0x66,0x5e,0x59,0x57,
+0x5f,0x65,0x66,0x5e,0x57,0x53,0x52,0x51,0x53,0x5e,0x67,0x6a,0x6a,0x6e,0x75,0x7b,
+0x70,0x6e,0x67,0x62,0x63,0x68,0x68,0x65,0x6a,0x6e,0x6b,0x5f,0x53,0x50,0x54,0x58,
+0x61,0x60,0x60,0x62,0x64,0x63,0x5e,0x5a,0x56,0x4d,0x49,0x4e,0x58,0x63,0x6e,0x77,
+0x6e,0x64,0x5c,0x5f,0x6a,0x6e,0x66,0x5c,0x61,0x60,0x61,0x65,0x68,0x67,0x60,0x5b,
+0x5a,0x57,0x56,0x59,0x5a,0x58,0x5b,0x61,0x65,0x6a,0x6c,0x68,0x64,0x65,0x67,0x66,
+0x62,0x5b,0x5a,0x65,0x6e,0x6d,0x63,0x5b,0x59,0x5f,0x62,0x5f,0x5d,0x62,0x6d,0x74,
+0x7b,0x79,0x73,0x6a,0x63,0x63,0x6a,0x70,0x7b,0x76,0x70,0x70,0x75,0x7f,0x8c,0x95,
+0x96,0x8e,0x86,0x84,0x87,0x84,0x77,0x6a,0x6d,0x73,0x76,0x78,0x82,0x8f,0x91,0x8a,
+0x7b,0x75,0x73,0x76,0x76,0x73,0x76,0x7c,0x7c,0x7e,0x7e,0x7b,0x7a,0x7b,0x77,0x71,
+0x70,0x72,0x75,0x77,0x77,0x74,0x6f,0x6c,0x8f,0xc2,0xc8,0xc4,0xc8,0xc6,0xca,0xc2,
+0xc1,0xc6,0xca,0xca,0xcb,0xcc,0xcd,0xcd,0xcc,0xcd,0xcd,0xcb,0xc8,0xc5,0xc5,0xc6,
+0xc6,0xc7,0xc9,0xcc,0xcd,0xcd,0xca,0xc7,0xc7,0xc9,0xc9,0xc7,0xc4,0xc0,0xbf,0xc0,
+0xbd,0xbb,0xba,0xbb,0xbd,0xc0,0xc1,0xc2,0xc1,0xc0,0xbe,0xbc,0xba,0xb8,0xb7,0xb7,
+0xbc,0xbc,0xbc,0xbd,0xbf,0xbe,0xbd,0xbb,0xb8,0xb7,0xb4,0xb1,0xad,0xaa,0xa8,0xa7,
+0xaa,0xa8,0xa7,0xa8,0xab,0xac,0xac,0xab,0xac,0xa7,0xa2,0xa2,0xa6,0xa9,0xaa,0xa8,
+0xa9,0xa5,0xa3,0xa2,0xa2,0x9f,0x97,0x91,0x84,0x7c,0x7d,0x83,0x83,0x82,0x80,0x7a,
+0x55,0x78,0x9a,0xc8,0xc7,0xbe,0xb8,0xac,0xae,0xac,0xae,0xb5,0xb8,0xb3,0xac,0xa8,
+0xa2,0xa0,0xa1,0xa3,0xa4,0xac,0xc0,0xd5,0xe0,0xe2,0xdf,0xd8,0xcf,0xc8,0xc1,0xbb,
+0xbd,0xbb,0xb8,0xb5,0xb0,0xac,0xa8,0xa6,0xa8,0xa9,0xad,0xb3,0xb6,0xb4,0xb3,0xb3,
+0xc2,0xc0,0xbf,0xc1,0xc3,0xc3,0xc4,0xc6,0xca,0xcb,0xcc,0xcc,0xcd,0xcd,0xce,0xce,
+0xce,0xd1,0xcb,0xd0,0xbf,0x4b,0xa9,0xec,0xe3,0x89,0x48,0xbc,0xaf,0x3a,0x3d,0xbd,
+0xe8,0xea,0xe2,0xdd,0xe6,0x61,0x52,0xa8,0xce,0xc9,0xc7,0xc5,0xc0,0xc1,0xc1,0xbb,
+0xc2,0xce,0xd2,0xcf,0xd2,0xd3,0xd2,0xd4,0xd6,0xb2,0x9c,0x9e,0xa1,0x9e,0x9d,0x9e,
+0xa1,0x97,0x9c,0x9f,0x98,0xa3,0x8e,0x8c,0xce,0xf0,0xea,0xba,0x84,0x90,0x57,0x59,
+0x81,0x79,0x7a,0x88,0x97,0x9a,0x97,0x95,0x95,0x95,0x94,0x93,0x92,0x91,0x91,0x90,
+0x8d,0x9c,0xc5,0xcc,0xcf,0xc8,0xc4,0xbf,0xb5,0xb6,0xb3,0xa6,0xb2,0x9c,0x6a,0x8d,
+0x7e,0x5d,0x85,0x6f,0x77,0x8a,0x82,0x75,0x63,0x57,0x4e,0x51,0x5c,0x64,0x68,0x68,
+0x6a,0x6a,0x69,0x68,0x67,0x67,0x67,0x67,0x62,0x61,0x60,0x60,0x5f,0x5c,0x59,0x56,
+0x55,0x53,0x50,0x4e,0x4c,0x49,0x46,0x44,0x43,0x41,0x3e,0x3c,0x3b,0x3a,0x39,0x38,
+0x3c,0x4a,0x5e,0x6f,0x75,0x76,0x78,0x7a,0x74,0x73,0x73,0x74,0x70,0x6a,0x6a,0x6e,
+0x67,0x64,0x5e,0x5b,0x66,0x76,0x7a,0x74,0x6f,0x6b,0x67,0x62,0x57,0x4a,0x43,0x43,
+0x4a,0x44,0x44,0x41,0x45,0x4d,0x5b,0x79,0x64,0x52,0x3d,0x3a,0x42,0x3e,0x35,0x35,
+0x38,0x38,0x30,0x30,0x39,0x3c,0x46,0x5b,0x70,0x7b,0x7f,0x90,0x85,0x75,0x5c,0x5d,
+0x6b,0x6a,0x6d,0x74,0x7a,0x81,0x8c,0x97,0x92,0x97,0x90,0x78,0x5f,0x4f,0x46,0x3f,
+0x39,0x3e,0x3f,0x3a,0x3a,0x45,0x58,0x66,0x60,0x58,0x45,0x39,0x4a,0x64,0x61,0x4c,
+0x48,0x4c,0x56,0x5b,0x54,0x4d,0x55,0x63,0x70,0x6a,0x60,0x56,0x50,0x4e,0x50,0x52,
+0x51,0x4a,0x45,0x45,0x4a,0x4f,0x4f,0x4d,0x58,0x6f,0x7c,0x74,0x60,0x4d,0x4a,0x55,
+0x49,0x3b,0x29,0x20,0x28,0x41,0x61,0x77,0x7e,0x85,0x89,0x78,0x5a,0x4f,0x57,0x5e,
+0x4e,0x54,0x5b,0x58,0x51,0x56,0x5e,0x5d,0x56,0x52,0x50,0x54,0x5a,0x57,0x49,0x3c,
+0x5e,0x60,0x63,0x62,0x5d,0x59,0x5d,0x64,0x63,0x63,0x63,0x61,0x5b,0x54,0x54,0x59,
+0x5e,0x5d,0x65,0x60,0x67,0x5d,0x5f,0x59,0x58,0x5d,0x63,0x65,0x66,0x6a,0x75,0x80,
+0x7f,0x7b,0x71,0x66,0x64,0x68,0x67,0x62,0x6e,0x73,0x70,0x63,0x56,0x53,0x57,0x5b,
+0x6a,0x65,0x60,0x5e,0x60,0x61,0x60,0x5e,0x5a,0x5a,0x56,0x51,0x54,0x5e,0x68,0x6d,
+0x63,0x5e,0x64,0x6c,0x68,0x60,0x56,0x4c,0x56,0x5f,0x65,0x62,0x5f,0x60,0x61,0x5e,
+0x64,0x5f,0x59,0x54,0x54,0x5b,0x65,0x6c,0x67,0x73,0x7c,0x79,0x71,0x6a,0x66,0x63,
+0x5e,0x65,0x62,0x64,0x6d,0x6b,0x67,0x70,0x77,0x76,0x72,0x6d,0x6d,0x71,0x74,0x74,
+0x74,0x72,0x6f,0x6c,0x6a,0x6a,0x6c,0x6f,0x70,0x74,0x72,0x6a,0x6d,0x7c,0x85,0x86,
+0x89,0x8c,0x8f,0x8e,0x88,0x7f,0x74,0x6c,0x6a,0x6b,0x6d,0x6e,0x71,0x76,0x7a,0x7b,
+0x76,0x74,0x73,0x72,0x70,0x6d,0x6d,0x6f,0x79,0x7e,0x7f,0x79,0x73,0x72,0x76,0x7a,
+0x76,0x7f,0x7c,0x78,0x7c,0x78,0x75,0x7d,0xb9,0xbe,0xc4,0xc7,0xc5,0xc3,0xc3,0xc4,
+0xc3,0xc6,0xca,0xca,0xc8,0xc8,0xca,0xcd,0xcc,0xc8,0xc4,0xc2,0xc4,0xc6,0xc7,0xc8,
+0xc8,0xc7,0xc7,0xc6,0xc6,0xc7,0xc7,0xc8,0xcc,0xcb,0xca,0xc8,0xc5,0xc3,0xc2,0xc1,
+0xbf,0xbe,0xbd,0xbd,0xbd,0xbf,0xc1,0xc2,0xbf,0xbe,0xbc,0xb9,0xb7,0xb6,0xb8,0xba,
+0xb8,0xbb,0xbe,0xbf,0xbe,0xbd,0xbd,0xbe,0xba,0xba,0xb8,0xb2,0xaf,0xae,0xac,0xaa,
+0xac,0xac,0xab,0xaa,0xa9,0xa9,0xaa,0xab,0xa9,0xa6,0xa4,0xa2,0xa3,0xa4,0xa4,0xa4,
+0xa6,0xa8,0xa8,0xa5,0xa1,0x9d,0x96,0x90,0x80,0x84,0x78,0x7d,0x82,0x7f,0x80,0x71,
+0x60,0x85,0x9e,0xc7,0xc7,0xc3,0xba,0xb0,0xb0,0xad,0xae,0xb3,0xb7,0xb3,0xab,0xa6,
+0xa3,0xa3,0xa4,0xa5,0xa6,0xb2,0xcc,0xe4,0xe4,0xdd,0xd9,0xd4,0xca,0xc5,0xc1,0xb9,
+0xbe,0xb8,0xb3,0xb2,0xab,0xa2,0xa2,0xaa,0xaa,0xad,0xb3,0xb9,0xba,0xb5,0xb0,0xae,
+0xbf,0xc0,0xc1,0xc3,0xc6,0xc7,0xc7,0xc7,0xca,0xcf,0xce,0xcb,0xca,0xd3,0xd5,0xcf,
+0xc3,0xbf,0xc4,0xd1,0xd4,0x6d,0x8c,0xdf,0xe2,0xc5,0x51,0x6e,0xb7,0x31,0x3e,0xae,
+0xe9,0xec,0xda,0xf1,0xcc,0x59,0x5b,0xba,0xca,0xc8,0xc6,0xc3,0xc1,0xc0,0xc1,0xc3,
+0xcb,0xd4,0xce,0xd0,0xd6,0xd4,0xd7,0xd5,0xda,0xb6,0x9e,0x9d,0x9e,0x9d,0x9e,0x9d,
+0xa2,0x9c,0x97,0xa4,0x9a,0x9b,0x78,0xa2,0xe5,0xd1,0xd1,0xe8,0xdd,0x9c,0x6b,0xb9,
+0xe4,0xe0,0x87,0x8d,0x97,0x97,0x95,0x95,0x96,0x94,0x93,0x92,0x92,0x92,0x91,0x90,
+0x8c,0x9f,0xcb,0xcc,0xca,0xcb,0xcc,0xbf,0xb7,0xb7,0xb0,0xb4,0xab,0xb3,0x7c,0x6b,
+0x7a,0x6d,0x81,0x78,0x79,0x83,0x84,0x6b,0x51,0x4c,0x4b,0x54,0x5e,0x63,0x65,0x67,
+0x66,0x67,0x68,0x68,0x67,0x66,0x65,0x64,0x60,0x5f,0x5e,0x5d,0x5c,0x5a,0x57,0x55,
+0x53,0x50,0x4e,0x4b,0x4a,0x48,0x46,0x45,0x3f,0x3e,0x3a,0x36,0x36,0x38,0x39,0x38,
+0x4a,0x60,0x6d,0x6f,0x76,0x7b,0x78,0x74,0x82,0x82,0x79,0x71,0x70,0x6c,0x6a,0x6e,
+0x6b,0x68,0x5d,0x61,0x67,0x69,0x6e,0x68,0x68,0x6e,0x6f,0x67,0x5e,0x5c,0x5e,0x5f,
+0x4b,0x42,0x3b,0x2b,0x3e,0x4e,0x62,0x61,0x57,0x5d,0x61,0x62,0x61,0x59,0x47,0x36,
+0x34,0x2b,0x27,0x2b,0x31,0x37,0x43,0x4f,0x60,0x6d,0x74,0x7b,0x76,0x51,0x37,0x42,
+0x5b,0x70,0x81,0x81,0x7a,0x76,0x73,0x70,0x6d,0x6a,0x63,0x5d,0x5f,0x64,0x5f,0x55,
+0x4d,0x4b,0x4e,0x55,0x59,0x57,0x53,0x51,0x50,0x48,0x3d,0x39,0x40,0x4b,0x4d,0x4a,
+0x52,0x5e,0x63,0x61,0x6a,0x80,0x8e,0x90,0x75,0x56,0x4f,0x59,0x54,0x4d,0x54,0x5b,
+0x53,0x50,0x53,0x56,0x54,0x57,0x5e,0x5f,0x62,0x67,0x70,0x73,0x74,0x7b,0x7b,0x71,
+0x4d,0x48,0x3b,0x3e,0x46,0x3d,0x43,0x63,0x72,0x76,0x61,0x44,0x43,0x56,0x61,0x61,
+0x35,0x1a,0x2f,0x4a,0x55,0x59,0x54,0x5f,0x71,0x59,0x45,0x49,0x5a,0x68,0x70,0x75,
+0x5b,0x60,0x66,0x68,0x63,0x5d,0x5e,0x62,0x67,0x64,0x63,0x64,0x64,0x5f,0x5d,0x5d,
+0x5b,0x61,0x6d,0x70,0x75,0x6f,0x6f,0x6c,0x65,0x67,0x69,0x68,0x66,0x69,0x71,0x7a,
+0x7e,0x7b,0x74,0x6e,0x6b,0x6b,0x68,0x64,0x67,0x70,0x75,0x6d,0x61,0x56,0x4e,0x4a,
+0x5a,0x5f,0x62,0x5f,0x57,0x51,0x52,0x56,0x59,0x5b,0x5b,0x5b,0x60,0x68,0x6d,0x6d,
+0x69,0x67,0x6c,0x6b,0x5f,0x58,0x5b,0x5d,0x6e,0x6e,0x6d,0x6b,0x6b,0x6c,0x6a,0x66,
+0x62,0x64,0x65,0x65,0x65,0x67,0x6c,0x70,0x6c,0x73,0x76,0x70,0x68,0x66,0x68,0x69,
+0x7a,0x81,0x7a,0x71,0x75,0x76,0x73,0x76,0x7b,0x78,0x71,0x6b,0x6b,0x70,0x73,0x73,
+0x71,0x76,0x79,0x75,0x6e,0x6b,0x6d,0x71,0x79,0x7c,0x73,0x65,0x6b,0x82,0x8e,0x89,
+0x8a,0x89,0x89,0x87,0x82,0x79,0x70,0x6b,0x6f,0x71,0x72,0x73,0x74,0x76,0x77,0x77,
+0x76,0x74,0x74,0x73,0x71,0x6f,0x72,0x76,0x76,0x76,0x74,0x73,0x76,0x7a,0x7b,0x79,
+0x84,0x82,0x75,0x6d,0x73,0x79,0x85,0x98,0xb9,0xbd,0xc2,0xc4,0xc3,0xc3,0xc5,0xc7,
+0xc4,0xc7,0xc9,0xca,0xc8,0xc8,0xca,0xcc,0xca,0xc9,0xc7,0xc6,0xc5,0xc4,0xc3,0xc2,
+0xc5,0xc5,0xc4,0xc4,0xc4,0xc5,0xc6,0xc7,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,0xc6,
+0xc2,0xc1,0xc0,0xbf,0xbe,0xbd,0xbd,0xbd,0xbf,0xbf,0xbe,0xbc,0xb9,0xb7,0xb6,0xb6,
+0xb5,0xb7,0xb9,0xba,0xba,0xbb,0xbd,0xbe,0xbc,0xbf,0xc0,0xbd,0xb9,0xb6,0xb0,0xaa,
+0xa9,0xaa,0xab,0xab,0xa9,0xa7,0xa6,0xa5,0xa7,0xa5,0xa2,0xa1,0xa1,0xa1,0xa1,0xa1,
+0xa1,0xa3,0xa3,0xa0,0x9d,0x9a,0x94,0x8e,0x82,0x83,0x77,0x7d,0x83,0x80,0x7f,0x6e,
+0x6d,0x8a,0xa6,0xcd,0xc7,0xc1,0xbd,0xb4,0xaf,0xac,0xad,0xb3,0xb6,0xb2,0xaa,0xa5,
+0x9e,0xa4,0xa4,0xa0,0xa9,0xc1,0xd8,0xe4,0xe0,0xd8,0xd2,0xca,0xbf,0xbc,0xbe,0xbc,
+0xbc,0xb6,0xb1,0xae,0xa9,0xa3,0xa4,0xaa,0xaf,0xb2,0xb8,0xbf,0xc0,0xbc,0xb7,0xb5,
+0xc5,0xc6,0xc7,0xc8,0xc8,0xc8,0xc8,0xc8,0xca,0xce,0xcf,0xcd,0xcd,0xcf,0xca,0x9e,
+0x59,0x43,0x56,0x9d,0xd5,0x91,0x57,0xe2,0xe8,0xda,0x7a,0x42,0x7b,0x3e,0x42,0x94,
+0xe9,0xe9,0xe6,0xde,0x9f,0x4a,0x79,0xc8,0xc7,0xc6,0xc4,0xc1,0xbf,0xbe,0xbe,0xbe,
+0xc5,0xd1,0xce,0xd0,0xd3,0xd1,0xd6,0xd7,0xdc,0xb9,0xa0,0x9f,0xa0,0x9f,0x9e,0x9d,
+0x9b,0x9c,0x9b,0xa1,0x9f,0x8b,0x82,0xc2,0xeb,0xd0,0xcc,0xd5,0xd9,0xd7,0xc4,0xd1,
+0xea,0xd3,0x84,0x92,0x9e,0x9c,0x91,0x91,0x97,0x95,0x94,0x93,0x93,0x93,0x92,0x91,
+0x8e,0xa1,0xcd,0xce,0xcc,0xcc,0xcd,0xc0,0xb8,0xb4,0xab,0xaf,0xab,0xb7,0x88,0x80,
+0x74,0x7e,0x84,0x7a,0x86,0x8e,0x7a,0x58,0x46,0x46,0x4c,0x55,0x5d,0x61,0x64,0x68,
+0x66,0x66,0x67,0x66,0x65,0x64,0x62,0x61,0x5f,0x5d,0x5c,0x5b,0x59,0x57,0x54,0x52,
+0x50,0x4d,0x4a,0x48,0x47,0x45,0x43,0x41,0x3c,0x3c,0x3c,0x3a,0x38,0x3a,0x44,0x50,
+0x60,0x6d,0x6f,0x6a,0x6e,0x73,0x73,0x71,0x6d,0x75,0x75,0x73,0x70,0x68,0x61,0x63,
+0x5a,0x61,0x60,0x66,0x66,0x63,0x69,0x67,0x68,0x6e,0x71,0x71,0x72,0x7b,0x84,0x89,
+0x93,0x86,0x75,0x59,0x59,0x57,0x5c,0x54,0x58,0x5e,0x5f,0x57,0x4d,0x44,0x39,0x30,
+0x29,0x22,0x1f,0x23,0x25,0x26,0x2a,0x31,0x48,0x5d,0x66,0x6e,0x77,0x65,0x44,0x38,
+0x4a,0x61,0x72,0x6f,0x61,0x56,0x4e,0x48,0x52,0x53,0x52,0x51,0x56,0x5b,0x56,0x4d,
+0x59,0x4f,0x44,0x42,0x43,0x43,0x44,0x46,0x3b,0x3b,0x3b,0x3c,0x40,0x46,0x4e,0x55,
+0x4a,0x4d,0x4f,0x52,0x5a,0x5f,0x5a,0x51,0x4d,0x3c,0x43,0x5b,0x66,0x65,0x5d,0x50,
+0x44,0x55,0x71,0x87,0x90,0x90,0x81,0x6b,0x5a,0x5f,0x68,0x6b,0x6a,0x6d,0x69,0x5d,
+0x66,0x5e,0x49,0x42,0x48,0x40,0x3d,0x4e,0x62,0x67,0x52,0x38,0x41,0x5b,0x61,0x56,
+0x40,0x27,0x20,0x29,0x3b,0x53,0x66,0x77,0x6e,0x75,0x75,0x6c,0x62,0x61,0x67,0x6d,
+0x5c,0x60,0x66,0x69,0x66,0x61,0x62,0x65,0x69,0x64,0x61,0x65,0x69,0x68,0x62,0x5e,
+0x61,0x6b,0x73,0x78,0x6e,0x67,0x5e,0x5d,0x61,0x64,0x66,0x65,0x63,0x63,0x67,0x6a,
+0x6c,0x69,0x69,0x6b,0x6b,0x67,0x63,0x60,0x6c,0x70,0x72,0x6c,0x62,0x58,0x51,0x4d,
+0x53,0x5a,0x61,0x5f,0x58,0x54,0x58,0x5d,0x5e,0x60,0x62,0x64,0x69,0x6e,0x6f,0x6d,
+0x6d,0x6a,0x6b,0x68,0x5d,0x5c,0x67,0x6d,0x68,0x62,0x5f,0x63,0x69,0x6a,0x68,0x66,
+0x67,0x6a,0x6d,0x6c,0x68,0x65,0x64,0x65,0x6e,0x71,0x70,0x6b,0x67,0x6a,0x73,0x7a,
+0x88,0x8c,0x7f,0x6e,0x6f,0x75,0x75,0x74,0x74,0x73,0x6e,0x6a,0x6d,0x74,0x7b,0x7d,
+0x7e,0x7b,0x75,0x6f,0x6d,0x6f,0x76,0x7c,0x7f,0x81,0x76,0x68,0x73,0x8d,0x95,0x8a,
+0x8b,0x86,0x84,0x85,0x81,0x77,0x6f,0x6c,0x6a,0x6b,0x6c,0x6e,0x70,0x71,0x71,0x71,
+0x79,0x77,0x75,0x73,0x6f,0x6d,0x70,0x75,0x6d,0x70,0x77,0x85,0x95,0x9a,0x91,0x84,
+0x75,0x70,0x67,0x67,0x6f,0x7a,0x8f,0xa9,0xbd,0xc0,0xc2,0xc3,0xc3,0xc3,0xc5,0xc7,
+0xbe,0xc0,0xc2,0xc2,0xc1,0xc0,0xc1,0xc3,0xc8,0xc8,0xc8,0xc7,0xc5,0xc5,0xc6,0xc7,
+0xc4,0xc3,0xc2,0xc1,0xc1,0xc2,0xc2,0xc3,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc7,
+0xc4,0xc4,0xc3,0xc2,0xc0,0xbd,0xba,0xb9,0xbc,0xbe,0xbf,0xbf,0xbc,0xb8,0xb5,0xb4,
+0xb4,0xb5,0xb5,0xb6,0xb7,0xb9,0xbd,0xbf,0xc0,0xc3,0xc6,0xc4,0xc1,0xbc,0xb5,0xaf,
+0xa7,0xa9,0xab,0xac,0xac,0xaa,0xa7,0xa5,0xa9,0xa7,0xa5,0xa3,0xa3,0xa3,0xa2,0xa1,
+0x9e,0x9f,0x9f,0x9c,0x9a,0x98,0x92,0x8d,0x84,0x81,0x77,0x7c,0x84,0x82,0x7c,0x6d,
+0x7f,0x8e,0xad,0xd1,0xc5,0xbe,0xbf,0xb7,0xaf,0xad,0xae,0xb2,0xb3,0xaf,0xa8,0xa4,
+0x9d,0xa4,0xa2,0xa1,0xb3,0xd3,0xe4,0xe2,0xdc,0xd5,0xd0,0xc6,0xb9,0xb7,0xbb,0xbb,
+0xb9,0xb4,0xad,0xa8,0xa6,0xa6,0xa7,0xa8,0xac,0xae,0xb5,0xbd,0xbf,0xbc,0xb8,0xb7,
+0xc8,0xca,0xcc,0xcc,0xca,0xc9,0xc9,0xca,0xcb,0xca,0xcd,0xcb,0xcd,0xca,0xc2,0x66,
+0x33,0x39,0x44,0x4a,0xae,0xd0,0x58,0xa2,0xe7,0xe1,0xaa,0x35,0x4a,0x45,0x40,0x8f,
+0xe6,0xea,0xe7,0xc0,0x61,0x4c,0x9f,0xd3,0xc6,0xc5,0xc3,0xc1,0xbf,0xbd,0xbc,0xbc,
+0xc3,0xd0,0xce,0xcf,0xd1,0xcd,0xd3,0xd6,0xde,0xbb,0xa2,0xa1,0xa1,0x9f,0x9e,0x9d,
+0x98,0x9c,0x9b,0x9b,0x9b,0x76,0x86,0xcf,0xe4,0xe4,0xe7,0xde,0xe0,0xe8,0xec,0xe4,
+0xe6,0xbf,0x85,0x92,0x97,0x99,0x92,0x9d,0x97,0x96,0x95,0x94,0x94,0x94,0x93,0x91,
+0x8f,0xa2,0xcd,0xd0,0xcd,0xcc,0xcc,0xc0,0xb3,0xb0,0xab,0xb2,0xb0,0xb2,0x81,0x7d,
+0xa8,0xab,0x85,0x71,0x79,0x7d,0x64,0x4f,0x3f,0x45,0x4f,0x58,0x5c,0x5e,0x62,0x68,
+0x66,0x66,0x65,0x64,0x63,0x61,0x5f,0x5d,0x5d,0x5b,0x59,0x57,0x56,0x53,0x51,0x4e,
+0x4d,0x4a,0x47,0x45,0x43,0x42,0x3f,0x3e,0x3d,0x3c,0x3b,0x39,0x34,0x37,0x48,0x5a,
+0x74,0x7a,0x75,0x6d,0x6f,0x74,0x74,0x74,0x70,0x76,0x75,0x6e,0x68,0x5f,0x5a,0x5f,
+0x57,0x64,0x69,0x6d,0x66,0x60,0x69,0x6d,0x69,0x6d,0x70,0x74,0x7a,0x84,0x8c,0x90,
+0x7e,0x78,0x6f,0x5d,0x5f,0x61,0x66,0x60,0x60,0x51,0x3f,0x38,0x40,0x4b,0x47,0x3b,
+0x28,0x22,0x20,0x22,0x23,0x22,0x23,0x27,0x34,0x45,0x4b,0x52,0x64,0x66,0x57,0x50,
+0x63,0x70,0x72,0x60,0x4b,0x40,0x3f,0x3e,0x47,0x40,0x2e,0x18,0x0f,0x1a,0x2d,0x3a,
+0x3a,0x32,0x2b,0x2c,0x30,0x33,0x35,0x36,0x34,0x37,0x3a,0x38,0x2e,0x28,0x30,0x3d,
+0x44,0x42,0x44,0x50,0x5a,0x5d,0x58,0x53,0x51,0x59,0x69,0x70,0x6b,0x72,0x86,0x94,
+0x9b,0x9a,0x96,0x8b,0x83,0x80,0x6e,0x51,0x3e,0x48,0x5a,0x6a,0x75,0x81,0x85,0x7d,
+0x66,0x69,0x5f,0x58,0x57,0x48,0x3a,0x3d,0x4b,0x54,0x52,0x4d,0x55,0x5d,0x56,0x4c,
+0x3b,0x31,0x19,0x15,0x2a,0x44,0x5f,0x6b,0x6e,0x73,0x78,0x7d,0x7c,0x73,0x62,0x53,
+0x5f,0x60,0x61,0x63,0x63,0x63,0x68,0x6f,0x6d,0x68,0x65,0x66,0x6b,0x6b,0x68,0x64,
+0x63,0x6f,0x71,0x76,0x64,0x5f,0x54,0x55,0x5c,0x63,0x69,0x6b,0x6b,0x6b,0x6b,0x6a,
+0x6c,0x6b,0x6f,0x78,0x7b,0x76,0x72,0x73,0x73,0x73,0x72,0x6f,0x6a,0x66,0x64,0x62,
+0x5a,0x59,0x58,0x5c,0x62,0x67,0x6a,0x6b,0x65,0x66,0x66,0x67,0x69,0x6a,0x6b,0x6b,
+0x71,0x68,0x65,0x64,0x62,0x66,0x6b,0x69,0x63,0x5f,0x61,0x69,0x6f,0x6d,0x6d,0x6f,
+0x73,0x71,0x6d,0x69,0x65,0x62,0x62,0x62,0x64,0x65,0x62,0x5d,0x5b,0x62,0x6d,0x76,
+0x84,0x7d,0x6c,0x60,0x63,0x6b,0x6e,0x6d,0x6a,0x6d,0x6e,0x6c,0x6e,0x76,0x80,0x86,
+0x88,0x7a,0x6b,0x67,0x6f,0x79,0x7e,0x7f,0x7d,0x7e,0x79,0x75,0x83,0x96,0x96,0x88,
+0x88,0x82,0x80,0x83,0x80,0x76,0x6f,0x6d,0x6c,0x68,0x67,0x6a,0x70,0x74,0x75,0x75,
+0x76,0x74,0x72,0x6f,0x6a,0x68,0x6c,0x72,0x6e,0x72,0x7a,0x85,0x8f,0x8e,0x7f,0x6e,
+0x65,0x61,0x60,0x65,0x6a,0x74,0x8f,0xad,0xbe,0xbf,0xc0,0xbf,0xbd,0xbc,0xbb,0xbc,
+0xc0,0xc1,0xc3,0xc3,0xc2,0xc1,0xc1,0xc2,0xc3,0xc2,0xc1,0xbf,0xbf,0xc2,0xc8,0xcc,
+0xc5,0xc4,0xc3,0xc2,0xc1,0xc1,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,0xc2,
+0xc3,0xc4,0xc5,0xc5,0xc4,0xc1,0xbe,0xbb,0xbb,0xbd,0xc0,0xc0,0xbd,0xba,0xb8,0xb7,
+0xb8,0xb7,0xb5,0xb5,0xb6,0xb9,0xbd,0xc0,0xc1,0xc4,0xc5,0xc3,0xc0,0xbe,0xba,0xb6,
+0xac,0xab,0xab,0xac,0xad,0xad,0xad,0xad,0xab,0xaa,0xa8,0xa7,0xa6,0xa6,0xa5,0xa3,
+0xa0,0xa1,0xa0,0x9d,0x9b,0x99,0x93,0x8d,0x84,0x80,0x7a,0x7e,0x84,0x83,0x7b,0x70,
+0x8d,0x8e,0xae,0xce,0xc2,0xba,0xbf,0xb6,0xb2,0xb0,0xb0,0xb2,0xb1,0xab,0xa5,0xa2,
+0xa3,0xa0,0xa0,0xad,0xc8,0xe0,0xe6,0xe0,0xda,0xd4,0xd1,0xcb,0xc0,0xbb,0xba,0xb5,
+0xb6,0xb2,0xaa,0xa3,0xa3,0xa7,0xa9,0xa7,0xb0,0xb3,0xba,0xc3,0xc6,0xc4,0xc1,0xc1,
+0xc7,0xca,0xcd,0xcd,0xca,0xc8,0xc9,0xca,0xcb,0xc8,0xcb,0xc8,0xca,0xc7,0xc3,0x4b,
+0x3a,0xb1,0xcc,0x71,0x5f,0xbe,0x86,0x84,0xdd,0xe6,0xcc,0x57,0x3b,0x49,0x3c,0x8e,
+0xe5,0xf0,0xca,0x84,0x33,0x74,0xc5,0xcb,0xc8,0xc6,0xc3,0xc1,0xc0,0xc0,0xbf,0xbf,
+0xc7,0xd3,0xd0,0xd0,0xd1,0xcd,0xd1,0xd1,0xdf,0xbb,0xa3,0xa1,0xa1,0x9e,0x9d,0x9b,
+0x9a,0x9d,0x9b,0x9a,0x8e,0x72,0x94,0xcc,0xe2,0xe9,0xe1,0xde,0xe8,0xb9,0xa4,0xac,
+0x9a,0x88,0x83,0x9b,0x9a,0x9b,0x91,0x9e,0x97,0x96,0x95,0x94,0x95,0x94,0x93,0x91,
+0x8c,0x9e,0xcb,0xcf,0xcd,0xca,0xca,0xbf,0xb1,0xae,0xad,0xb3,0xb2,0xa7,0x77,0x7b,
+0xbc,0xad,0x79,0x6d,0x69,0x64,0x51,0x4a,0x43,0x4b,0x54,0x5b,0x5c,0x5d,0x61,0x65,
+0x65,0x64,0x64,0x62,0x61,0x5f,0x5d,0x5c,0x5b,0x59,0x57,0x54,0x52,0x50,0x4d,0x4b,
+0x4a,0x48,0x45,0x43,0x41,0x3f,0x3d,0x3c,0x39,0x39,0x38,0x39,0x41,0x50,0x62,0x6f,
+0x69,0x6e,0x6b,0x68,0x6d,0x6f,0x6c,0x6b,0x77,0x7a,0x75,0x6e,0x6a,0x64,0x61,0x65,
+0x65,0x6e,0x6e,0x6d,0x65,0x60,0x6b,0x6f,0x69,0x6b,0x6e,0x72,0x76,0x79,0x79,0x77,
+0x79,0x77,0x6f,0x5e,0x54,0x4f,0x4d,0x48,0x4a,0x39,0x2a,0x2e,0x45,0x57,0x51,0x41,
+0x44,0x3b,0x33,0x2e,0x29,0x25,0x22,0x23,0x2e,0x38,0x3e,0x42,0x47,0x44,0x48,0x57,
+0x5f,0x65,0x5f,0x4a,0x36,0x2f,0x2f,0x2f,0x41,0x48,0x56,0x66,0x73,0x71,0x5e,0x49,
+0x43,0x3e,0x38,0x34,0x30,0x2d,0x2b,0x2a,0x29,0x27,0x28,0x26,0x1c,0x16,0x20,0x30,
+0x3e,0x40,0x45,0x49,0x4a,0x48,0x46,0x45,0x41,0x44,0x4e,0x5d,0x69,0x75,0x80,0x87,
+0x95,0x8f,0x88,0x80,0x7d,0x80,0x76,0x60,0x54,0x58,0x64,0x6c,0x6e,0x72,0x71,0x68,
+0x6d,0x67,0x5a,0x55,0x56,0x4b,0x3e,0x3f,0x49,0x51,0x5d,0x68,0x5f,0x44,0x35,0x3d,
+0x3d,0x42,0x28,0x22,0x30,0x3a,0x4e,0x53,0x60,0x65,0x73,0x86,0x8c,0x81,0x72,0x69,
+0x5f,0x5d,0x5d,0x5f,0x61,0x65,0x6d,0x74,0x72,0x71,0x6e,0x6b,0x6c,0x6e,0x70,0x71,
+0x7a,0x80,0x7c,0x7b,0x66,0x62,0x57,0x5a,0x53,0x5a,0x60,0x61,0x61,0x62,0x62,0x61,
+0x5f,0x5e,0x63,0x6c,0x6e,0x69,0x66,0x67,0x6f,0x72,0x78,0x7d,0x7e,0x79,0x72,0x6e,
+0x61,0x5b,0x57,0x5a,0x64,0x6b,0x6b,0x68,0x62,0x64,0x66,0x67,0x66,0x64,0x65,0x67,
+0x71,0x68,0x63,0x61,0x60,0x65,0x66,0x60,0x6b,0x6e,0x76,0x7c,0x79,0x71,0x70,0x74,
+0x78,0x73,0x6d,0x6a,0x6c,0x6f,0x70,0x71,0x68,0x65,0x60,0x5a,0x58,0x5e,0x6b,0x76,
+0x85,0x70,0x5f,0x5d,0x61,0x66,0x69,0x69,0x65,0x6d,0x73,0x72,0x70,0x76,0x80,0x88,
+0x85,0x7a,0x6f,0x6e,0x76,0x7b,0x79,0x75,0x79,0x76,0x76,0x7e,0x8c,0x93,0x90,0x88,
+0x84,0x7e,0x7a,0x7a,0x79,0x73,0x71,0x72,0x70,0x68,0x63,0x65,0x6a,0x6d,0x6f,0x71,
+0x71,0x6f,0x6c,0x6a,0x66,0x65,0x69,0x6f,0x78,0x7b,0x7c,0x7d,0x7f,0x7f,0x7b,0x76,
+0x72,0x6a,0x66,0x65,0x63,0x6f,0x93,0xb5,0xba,0xbb,0xbc,0xbc,0xba,0xb7,0xb4,0xb3,
+0xb5,0xb6,0xb6,0xb7,0xb6,0xb5,0xb5,0xb6,0xbd,0xbd,0xbc,0xba,0xb9,0xbb,0xc0,0xc4,
+0xc2,0xc2,0xc1,0xc1,0xc1,0xc2,0xc3,0xc3,0xc2,0xc2,0xc1,0xc0,0xbf,0xbf,0xbe,0xbe,
+0xc0,0xc2,0xc5,0xc6,0xc7,0xc6,0xc4,0xc2,0xc1,0xc2,0xc3,0xc2,0xc0,0xbe,0xbc,0xbc,
+0xbd,0xba,0xb7,0xb5,0xb5,0xb8,0xbb,0xbd,0xbd,0xc0,0xc2,0xc1,0xc1,0xc0,0xbe,0xba,
+0xb3,0xaf,0xab,0xa8,0xa9,0xab,0xad,0xae,0xab,0xaa,0xa9,0xa9,0xaa,0xa9,0xa8,0xa7,
+0xa7,0xa7,0xa5,0xa2,0xa0,0x9d,0x96,0x8f,0x82,0x7d,0x7e,0x80,0x83,0x83,0x7b,0x77,
+0x92,0x8b,0xac,0xc5,0xbe,0xb9,0xbc,0xb4,0xb4,0xb2,0xb2,0xb2,0xae,0xa7,0xa2,0xa0,
+0xa6,0x9b,0xa1,0xc1,0xde,0xe6,0xe2,0xe0,0xd7,0xcf,0xcc,0xca,0xc3,0xbf,0xbb,0xb3,
+0xb4,0xaf,0xa7,0xa1,0xa2,0xa8,0xa9,0xa7,0xb0,0xb3,0xbb,0xc4,0xc8,0xc7,0xc5,0xc5,
+0xc7,0xcb,0xce,0xcd,0xca,0xc7,0xc7,0xc9,0xc9,0xc8,0xce,0xca,0xcb,0xc8,0xc8,0x53,
+0x4f,0xcb,0xeb,0xc3,0x5a,0x9d,0xb2,0x63,0xc3,0xf2,0xe4,0x8a,0x3b,0x46,0x42,0x90,
+0xe8,0xcf,0x88,0x47,0x4f,0xaa,0xdb,0xbf,0xca,0xc7,0xc3,0xc1,0xc1,0xc2,0xc3,0xc3,
+0xca,0xd4,0xcf,0xd1,0xd4,0xd1,0xd2,0xd0,0xe0,0xbc,0xa2,0xa0,0xa0,0x9e,0x9d,0x9c,
+0x9b,0x9e,0x9d,0x99,0x7b,0x80,0xae,0xd1,0xe1,0xe0,0xdf,0xe4,0xd3,0x73,0x5a,0x84,
+0x88,0x84,0x93,0xa0,0x98,0x9b,0x93,0x99,0x96,0x95,0x94,0x94,0x94,0x94,0x92,0x90,
+0x8a,0x9c,0xc9,0xcf,0xcd,0xc9,0xc9,0xbe,0xb4,0xae,0xab,0xad,0xad,0x9d,0x7b,0x92,
+0xbd,0xa1,0x6f,0x5a,0x47,0x4b,0x46,0x43,0x4a,0x4f,0x55,0x59,0x5c,0x5e,0x60,0x62,
+0x63,0x63,0x62,0x60,0x5f,0x5d,0x5c,0x5b,0x59,0x57,0x54,0x51,0x4f,0x4d,0x4a,0x48,
+0x46,0x44,0x41,0x3f,0x3e,0x3d,0x3b,0x39,0x38,0x38,0x37,0x3d,0x4f,0x65,0x70,0x6e,
+0x63,0x66,0x65,0x66,0x6c,0x6b,0x66,0x66,0x6a,0x6e,0x6e,0x70,0x75,0x72,0x6d,0x6e,
+0x6d,0x70,0x68,0x67,0x64,0x61,0x68,0x67,0x69,0x69,0x6b,0x71,0x76,0x77,0x74,0x72,
+0x76,0x79,0x72,0x63,0x50,0x49,0x44,0x43,0x3e,0x4e,0x61,0x6e,0x73,0x6f,0x62,0x55,
+0x4a,0x42,0x3a,0x35,0x31,0x2d,0x2a,0x29,0x2d,0x35,0x40,0x4d,0x55,0x50,0x49,0x4a,
+0x55,0x53,0x47,0x34,0x2d,0x36,0x42,0x47,0x4f,0x55,0x56,0x4d,0x44,0x45,0x50,0x5b,
+0x59,0x52,0x45,0x35,0x2a,0x27,0x2b,0x30,0x32,0x28,0x21,0x1f,0x1b,0x19,0x20,0x2c,
+0x38,0x40,0x46,0x43,0x3f,0x3b,0x32,0x29,0x1e,0x24,0x33,0x48,0x57,0x60,0x6d,0x7c,
+0x76,0x73,0x77,0x7b,0x76,0x6e,0x60,0x4f,0x51,0x51,0x57,0x5c,0x5b,0x5d,0x5d,0x56,
+0x5a,0x4a,0x3f,0x49,0x55,0x54,0x4f,0x52,0x43,0x48,0x53,0x5c,0x4f,0x31,0x28,0x39,
+0x3d,0x44,0x2e,0x2a,0x30,0x31,0x44,0x4f,0x5d,0x5f,0x65,0x72,0x82,0x8c,0x89,0x81,
+0x5b,0x5a,0x5c,0x60,0x64,0x68,0x6c,0x71,0x72,0x74,0x73,0x6d,0x69,0x6c,0x72,0x77,
+0x81,0x82,0x7c,0x77,0x69,0x63,0x5c,0x5c,0x68,0x6e,0x70,0x6b,0x68,0x6a,0x6c,0x6b,
+0x69,0x6a,0x6f,0x73,0x73,0x6e,0x69,0x68,0x6c,0x6f,0x75,0x7b,0x7d,0x79,0x73,0x71,
+0x67,0x65,0x62,0x61,0x62,0x61,0x5f,0x5d,0x5a,0x5c,0x61,0x66,0x66,0x63,0x62,0x64,
+0x65,0x64,0x65,0x62,0x5c,0x61,0x69,0x6a,0x6a,0x73,0x7d,0x7f,0x78,0x70,0x6f,0x73,
+0x73,0x70,0x6d,0x6d,0x70,0x73,0x73,0x73,0x6e,0x6a,0x66,0x64,0x65,0x6c,0x7a,0x86,
+0x86,0x6d,0x60,0x62,0x62,0x62,0x65,0x65,0x62,0x6e,0x78,0x79,0x78,0x7f,0x8b,0x94,
+0x89,0x84,0x7d,0x76,0x71,0x70,0x70,0x71,0x74,0x70,0x71,0x7b,0x84,0x87,0x87,0x88,
+0x86,0x81,0x7a,0x74,0x72,0x74,0x78,0x7c,0x77,0x71,0x6c,0x6b,0x69,0x65,0x66,0x6b,
+0x77,0x72,0x6d,0x68,0x64,0x61,0x62,0x65,0x64,0x6b,0x71,0x72,0x72,0x75,0x79,0x7b,
+0x75,0x6d,0x6c,0x6c,0x6a,0x7b,0xa1,0xbf,0xc1,0xc2,0xc4,0xc5,0xc4,0xc2,0xc0,0xbe,
+0xc6,0xc6,0xc7,0xc7,0xc7,0xc7,0xc6,0xc6,0xc3,0xc3,0xc4,0xc2,0xc0,0xbd,0xbb,0xba,
+0xbc,0xbb,0xbb,0xbb,0xbc,0xbe,0xbf,0xc0,0xc0,0xc0,0xbf,0xbf,0xbf,0xbf,0xbe,0xbe,
+0xbf,0xc0,0xc2,0xc5,0xc6,0xc7,0xc7,0xc6,0xc7,0xc8,0xc8,0xc6,0xc3,0xc1,0xc1,0xc1,
+0xbf,0xbc,0xb8,0xb6,0xb6,0xb6,0xb7,0xb8,0xb6,0xbb,0xbf,0xc1,0xc2,0xc2,0xbf,0xbb,
+0xba,0xb3,0xab,0xa5,0xa4,0xa4,0xa5,0xa5,0xaa,0xaa,0xab,0xac,0xae,0xaf,0xae,0xad,
+0xad,0xac,0xaa,0xa7,0xa5,0xa1,0x99,0x90,0x82,0x7b,0x7f,0x7f,0x81,0x82,0x7a,0x7b,
+0x8e,0x88,0xaa,0xba,0xba,0xb6,0xb7,0xb2,0xb3,0xb2,0xb1,0xb1,0xac,0xa4,0xa0,0x9f,
+0xa2,0x9f,0xb1,0xd3,0xe8,0xe5,0xdd,0xde,0xd1,0xc7,0xc2,0xc1,0xbd,0xbd,0xbb,0xb3,
+0xb2,0xab,0xa4,0xa2,0xa4,0xa7,0xaa,0xab,0xaf,0xb1,0xb8,0xc1,0xc4,0xc3,0xc1,0xc1,
+0xca,0xcc,0xcf,0xce,0xcc,0xc9,0xc9,0xc9,0xc7,0xca,0xd0,0xcd,0xcd,0xcb,0xca,0x75,
+0x39,0x97,0xf5,0xec,0x83,0x61,0xd2,0x72,0x90,0xe4,0xef,0xc4,0x59,0x43,0x60,0xbd,
+0xe2,0x87,0x3e,0x3d,0xa5,0xc9,0xd2,0xc5,0xca,0xc6,0xc2,0xc0,0xc1,0xc2,0xc2,0xc1,
+0xc9,0xd3,0xce,0xd1,0xd7,0xd4,0xd6,0xd3,0xdf,0xbb,0xa0,0x9e,0x9e,0x9d,0x9e,0x9e,
+0x98,0x9d,0x9d,0x8a,0x6f,0x91,0xbe,0xd3,0xe3,0xd8,0xe3,0xe6,0xb6,0x61,0x58,0x8e,
+0xa8,0xa0,0x9e,0x97,0x91,0x99,0x99,0x99,0x95,0x95,0x94,0x95,0x95,0x94,0x92,0x90,
+0x8b,0x9c,0xca,0xd1,0xcf,0xca,0xc8,0xbe,0xb1,0xad,0xaf,0xae,0xad,0x94,0x7c,0xa3,
+0xba,0xa0,0x7a,0x4f,0x3d,0x52,0x4d,0x42,0x4c,0x50,0x54,0x57,0x5b,0x5f,0x61,0x60,
+0x62,0x61,0x60,0x5e,0x5d,0x5b,0x5a,0x5a,0x56,0x54,0x51,0x4e,0x4c,0x4a,0x47,0x45,
+0x42,0x40,0x3d,0x3c,0x3b,0x3a,0x39,0x37,0x36,0x3a,0x42,0x4e,0x62,0x72,0x73,0x6b,
+0x6c,0x6c,0x67,0x66,0x6a,0x67,0x63,0x66,0x65,0x66,0x63,0x65,0x6e,0x71,0x6f,0x72,
+0x6e,0x6d,0x65,0x68,0x69,0x66,0x67,0x60,0x69,0x66,0x68,0x6e,0x75,0x78,0x79,0x79,
+0x7c,0x81,0x78,0x64,0x44,0x37,0x30,0x34,0x3a,0x57,0x75,0x80,0x7a,0x6f,0x65,0x5e,
+0x4d,0x48,0x42,0x3e,0x3b,0x38,0x32,0x2d,0x2f,0x55,0x73,0x69,0x48,0x33,0x35,0x3c,
+0x47,0x49,0x45,0x3f,0x44,0x55,0x62,0x65,0x4f,0x46,0x47,0x5d,0x7c,0x89,0x7b,0x67,
+0x6d,0x6b,0x62,0x56,0x4e,0x4f,0x55,0x5a,0x51,0x43,0x36,0x31,0x2f,0x2b,0x28,0x29,
+0x29,0x2c,0x2b,0x28,0x2c,0x30,0x2b,0x20,0x28,0x1d,0x17,0x27,0x44,0x55,0x5e,0x69,
+0x6c,0x65,0x65,0x65,0x5d,0x57,0x53,0x4e,0x4e,0x48,0x48,0x46,0x3f,0x3c,0x3b,0x34,
+0x1f,0x2f,0x52,0x71,0x71,0x57,0x41,0x3b,0x43,0x4b,0x4d,0x49,0x41,0x31,0x27,0x28,
+0x35,0x39,0x32,0x34,0x37,0x39,0x47,0x53,0x62,0x66,0x60,0x5b,0x6d,0x8a,0x92,0x88,
+0x5b,0x5a,0x5c,0x61,0x66,0x69,0x6b,0x6e,0x71,0x75,0x74,0x6b,0x64,0x64,0x6a,0x6f,
+0x64,0x64,0x67,0x67,0x6c,0x6a,0x6b,0x68,0x65,0x6e,0x71,0x6b,0x65,0x65,0x66,0x65,
+0x6b,0x71,0x77,0x79,0x79,0x77,0x72,0x6d,0x6e,0x6b,0x6c,0x6f,0x6f,0x6e,0x6f,0x72,
+0x71,0x6e,0x6a,0x66,0x64,0x62,0x60,0x5f,0x5b,0x58,0x5a,0x61,0x66,0x66,0x65,0x65,
+0x61,0x66,0x6d,0x6b,0x62,0x66,0x70,0x73,0x6a,0x71,0x76,0x76,0x74,0x73,0x73,0x73,
+0x6c,0x6c,0x6d,0x6c,0x6b,0x6a,0x6b,0x6c,0x68,0x68,0x6b,0x6f,0x72,0x75,0x7d,0x86,
+0x7f,0x6e,0x69,0x6a,0x64,0x64,0x68,0x65,0x61,0x6b,0x74,0x78,0x7c,0x87,0x93,0x9c,
+0x95,0x90,0x87,0x7b,0x70,0x6a,0x6b,0x6d,0x6c,0x6c,0x6e,0x71,0x75,0x79,0x7e,0x82,
+0x85,0x86,0x81,0x76,0x72,0x77,0x7d,0x7e,0x7b,0x7e,0x83,0x81,0x75,0x68,0x69,0x71,
+0x7a,0x74,0x6c,0x68,0x64,0x5f,0x5d,0x5e,0x6d,0x74,0x7b,0x7c,0x7b,0x7c,0x7c,0x7c,
+0x6b,0x66,0x6b,0x72,0x77,0x8e,0xb1,0xc4,0xca,0xcb,0xcc,0xcd,0xce,0xce,0xce,0xcd,
+0xca,0xca,0xca,0xcb,0xcc,0xcc,0xcb,0xcb,0xcd,0xcd,0xcd,0xcd,0xcb,0xc8,0xc3,0xc0,
+0xc0,0xbf,0xbe,0xbd,0xbc,0xbc,0xbc,0xbd,0xbf,0xbf,0xbf,0xc0,0xc0,0xc0,0xc0,0xc0,
+0xc0,0xc0,0xc0,0xc1,0xc2,0xc3,0xc4,0xc4,0xc5,0xc6,0xc7,0xc7,0xc6,0xc5,0xc4,0xc4,
+0xc0,0xbe,0xba,0xb8,0xb7,0xb7,0xb5,0xb4,0xb4,0xb8,0xbc,0xbd,0xbf,0xc1,0xc0,0xbd,
+0xbc,0xb6,0xae,0xa8,0xa5,0xa3,0xa0,0x9d,0xa4,0xa5,0xa7,0xab,0xae,0xaf,0xaf,0xae,
+0xae,0xad,0xac,0xa9,0xa8,0xa3,0x99,0x8f,0x84,0x79,0x7e,0x7c,0x7f,0x82,0x77,0x7a,
+0x83,0x87,0xab,0xb0,0xb4,0xb0,0xaf,0xb0,0xaf,0xaf,0xaf,0xae,0xa9,0xa2,0x9f,0xa0,
+0x9a,0xb1,0xcd,0xdf,0xe3,0xdf,0xda,0xd7,0xcc,0xc3,0xbf,0xbc,0xb7,0xb7,0xb7,0xb1,
+0xae,0xa7,0xa2,0xa4,0xa6,0xa8,0xac,0xb1,0xb7,0xb9,0xbe,0xc5,0xc7,0xc4,0xc2,0xc1,
+0xc8,0xca,0xcd,0xcf,0xcf,0xcf,0xce,0xcd,0xca,0xcc,0xcc,0xc9,0xc9,0xce,0xcd,0xa4,
+0x48,0x65,0xdf,0xea,0xbc,0x53,0xc2,0x94,0x5e,0xc5,0xea,0xe8,0xa0,0x7e,0xa6,0xe7,
+0xde,0x80,0x32,0x45,0xb5,0xce,0xc4,0xcd,0xc8,0xc5,0xc2,0xc1,0xc2,0xc2,0xbf,0xbc,
+0xc6,0xd2,0xcf,0xd2,0xd5,0xd2,0xd5,0xd4,0xdc,0xb7,0x9c,0x99,0x9a,0x9a,0x9c,0x9d,
+0x99,0x9b,0x9a,0x77,0x87,0xb3,0xcc,0xd5,0xe5,0xce,0xc1,0xc4,0xb9,0x8c,0x63,0x84,
+0x93,0x96,0x95,0x95,0x99,0x9a,0x9a,0x94,0x96,0x96,0x95,0x96,0x96,0x95,0x92,0x90,
+0x8d,0x9d,0xcb,0xd3,0xd0,0xc9,0xc7,0xbd,0xad,0xac,0xb1,0xae,0xab,0x8b,0x7c,0xb1,
+0x9f,0x93,0x88,0x5d,0x68,0x78,0x55,0x46,0x4b,0x51,0x56,0x58,0x5a,0x5e,0x60,0x5f,
+0x61,0x60,0x5f,0x5c,0x5a,0x58,0x57,0x56,0x53,0x50,0x4d,0x4a,0x49,0x47,0x45,0x43,
+0x3f,0x3e,0x3c,0x3b,0x3a,0x3a,0x39,0x37,0x36,0x41,0x58,0x70,0x7b,0x78,0x76,0x79,
+0x69,0x66,0x5f,0x5d,0x5f,0x5b,0x59,0x60,0x68,0x68,0x61,0x5e,0x63,0x66,0x68,0x6e,
+0x70,0x71,0x6a,0x6d,0x6e,0x69,0x6a,0x62,0x67,0x65,0x67,0x6e,0x74,0x76,0x76,0x77,
+0x73,0x7d,0x75,0x63,0x3e,0x33,0x32,0x3e,0x47,0x51,0x5a,0x5e,0x64,0x6e,0x74,0x74,
+0x6e,0x66,0x5b,0x50,0x48,0x40,0x36,0x2f,0x31,0x34,0x3d,0x46,0x49,0x49,0x42,0x35,
+0x2e,0x3c,0x4a,0x50,0x54,0x58,0x55,0x4d,0x42,0x38,0x35,0x46,0x63,0x79,0x7f,0x7c,
+0x73,0x75,0x75,0x71,0x6e,0x6d,0x6a,0x66,0x62,0x5c,0x56,0x55,0x56,0x51,0x47,0x3e,
+0x40,0x3b,0x33,0x2e,0x2d,0x2d,0x2c,0x2b,0x2b,0x3d,0x47,0x47,0x49,0x49,0x51,0x62,
+0x65,0x62,0x60,0x59,0x4d,0x4a,0x47,0x3e,0x34,0x2e,0x2f,0x31,0x2e,0x30,0x33,0x30,
+0x44,0x46,0x4c,0x49,0x3a,0x34,0x41,0x50,0x55,0x57,0x4d,0x3e,0x34,0x29,0x1d,0x18,
+0x3b,0x3a,0x44,0x46,0x45,0x4b,0x4c,0x4f,0x4f,0x5f,0x6a,0x65,0x61,0x6e,0x85,0x95,
+0x5e,0x5c,0x5c,0x60,0x65,0x68,0x6b,0x6e,0x74,0x78,0x77,0x6c,0x61,0x5f,0x62,0x65,
+0x5c,0x5a,0x62,0x62,0x70,0x6c,0x6e,0x67,0x5a,0x68,0x71,0x6d,0x67,0x65,0x63,0x5f,
+0x61,0x6b,0x74,0x77,0x79,0x7b,0x77,0x70,0x6c,0x6a,0x6b,0x6e,0x6f,0x6c,0x6d,0x71,
+0x79,0x70,0x66,0x63,0x67,0x6c,0x6c,0x6a,0x64,0x5a,0x55,0x5b,0x64,0x68,0x68,0x68,
+0x6b,0x70,0x78,0x76,0x6e,0x6e,0x70,0x6c,0x68,0x6a,0x69,0x65,0x67,0x6c,0x6b,0x66,
+0x67,0x6c,0x6e,0x6c,0x68,0x66,0x6a,0x6f,0x6e,0x72,0x7c,0x84,0x84,0x7e,0x7c,0x7d,
+0x78,0x72,0x75,0x72,0x69,0x6d,0x74,0x6e,0x63,0x68,0x6d,0x71,0x77,0x83,0x8d,0x93,
+0x97,0x93,0x8c,0x85,0x7d,0x72,0x67,0x5f,0x63,0x6b,0x6f,0x6b,0x6a,0x71,0x77,0x7a,
+0x7d,0x85,0x85,0x7a,0x74,0x79,0x7b,0x78,0x6d,0x78,0x86,0x87,0x75,0x63,0x64,0x70,
+0x73,0x6c,0x67,0x65,0x65,0x63,0x62,0x62,0x68,0x6a,0x6c,0x6e,0x72,0x7a,0x80,0x81,
+0x6f,0x66,0x69,0x6f,0x79,0x97,0xba,0xc7,0xcb,0xca,0xca,0xca,0xcb,0xcd,0xcd,0xcd,
+0xca,0xca,0xca,0xcb,0xcc,0xcd,0xcc,0xcb,0xd1,0xcf,0xce,0xce,0xd0,0xd0,0xce,0xcc,
+0xce,0xcc,0xc9,0xc6,0xc3,0xc0,0xbf,0xbe,0xc0,0xc0,0xc0,0xc1,0xc1,0xc1,0xc1,0xc1,
+0xc2,0xc1,0xbf,0xbe,0xbd,0xbe,0xbf,0xc0,0xbd,0xc0,0xc4,0xc6,0xc7,0xc7,0xc7,0xc7,
+0xc1,0xbf,0xbc,0xba,0xba,0xb8,0xb6,0xb4,0xb7,0xb8,0xb7,0xb6,0xb8,0xbd,0xc0,0xc1,
+0xbb,0xb7,0xb2,0xae,0xab,0xa6,0xa0,0x9a,0x9b,0x9c,0x9f,0xa4,0xa8,0xaa,0xaa,0xa9,
+0xac,0xac,0xab,0xa9,0xa8,0xa3,0x98,0x8e,0x87,0x78,0x7b,0x79,0x7e,0x83,0x75,0x77,
+0x7a,0x85,0xab,0xa9,0xaf,0xa9,0xa9,0xae,0xac,0xac,0xad,0xac,0xa7,0xa1,0x9f,0xa1,
+0x95,0xc2,0xe5,0xe3,0xd9,0xda,0xd8,0xce,0xca,0xc4,0xc2,0xbe,0xb6,0xb3,0xb2,0xac,
+0xac,0xa3,0xa0,0xa6,0xa9,0xa8,0xad,0xb5,0xb6,0xb7,0xbc,0xc1,0xc2,0xbe,0xbb,0xba,
+0xc3,0xc5,0xc9,0xcd,0xd2,0xd4,0xd3,0xd2,0xce,0xcd,0xc5,0xc1,0xc3,0xcf,0xd0,0xc9,
+0x64,0x34,0x8a,0xe7,0xd6,0x5c,0x73,0xa0,0x46,0xb7,0xe1,0xe7,0xe1,0xde,0xee,0xdf,
+0xe4,0xc2,0x58,0x38,0x72,0xcd,0xc7,0xc7,0xc7,0xc5,0xc4,0xc4,0xc4,0xc2,0xbc,0xb7,
+0xc5,0xd3,0xd1,0xd2,0xd3,0xce,0xd2,0xd2,0xd8,0xb2,0x97,0x94,0x95,0x96,0x9a,0x9b,
+0x9c,0x9a,0x97,0x70,0xb3,0xdf,0xe2,0xe1,0xd6,0xd7,0xba,0xb3,0xc8,0xa6,0x5a,0x83,
+0x98,0x9f,0x98,0x97,0x99,0x92,0x98,0x99,0x97,0x96,0x96,0x97,0x97,0x96,0x93,0x91,
+0x8e,0x9e,0xcc,0xd3,0xcf,0xc7,0xc4,0xba,0xb2,0xae,0xae,0xa5,0xa2,0x86,0x86,0xca,
+0xaa,0x97,0x88,0x5a,0x7a,0x7e,0x49,0x49,0x4c,0x54,0x5b,0x5b,0x5b,0x5d,0x5f,0x5e,
+0x62,0x60,0x5e,0x5b,0x58,0x56,0x54,0x53,0x51,0x4e,0x4b,0x48,0x46,0x45,0x43,0x41,
+0x3f,0x3e,0x3c,0x3b,0x3b,0x3b,0x3a,0x39,0x43,0x50,0x6c,0x84,0x7a,0x5d,0x54,0x5f,
+0x67,0x64,0x5e,0x5e,0x5f,0x5a,0x59,0x62,0x60,0x66,0x66,0x65,0x68,0x65,0x62,0x66,
+0x75,0x76,0x6f,0x6f,0x6c,0x67,0x6a,0x66,0x66,0x66,0x6b,0x75,0x79,0x77,0x75,0x74,
+0x76,0x81,0x76,0x62,0x36,0x2a,0x2a,0x39,0x3d,0x3a,0x34,0x33,0x40,0x5a,0x70,0x7b,
+0x7c,0x73,0x65,0x5a,0x55,0x53,0x4f,0x4b,0x43,0x3b,0x42,0x4d,0x43,0x33,0x32,0x39,
+0x4c,0x52,0x51,0x48,0x45,0x4c,0x52,0x52,0x33,0x2c,0x26,0x28,0x33,0x44,0x57,0x63,
+0x77,0x7a,0x7d,0x80,0x85,0x88,0x84,0x7d,0x74,0x76,0x77,0x77,0x75,0x6d,0x5c,0x4d,
+0x3a,0x38,0x39,0x37,0x2b,0x1d,0x1c,0x23,0x3b,0x4d,0x4e,0x49,0x50,0x52,0x4a,0x48,
+0x51,0x51,0x4d,0x3d,0x31,0x33,0x31,0x24,0x31,0x2c,0x30,0x36,0x38,0x3d,0x43,0x42,
+0x33,0x2e,0x2d,0x30,0x36,0x44,0x4e,0x4c,0x4b,0x43,0x35,0x2a,0x25,0x22,0x28,0x37,
+0x41,0x3a,0x48,0x41,0x3b,0x47,0x40,0x3a,0x3a,0x37,0x45,0x5d,0x63,0x5d,0x68,0x7e,
+0x60,0x5f,0x5e,0x60,0x66,0x6e,0x72,0x73,0x73,0x78,0x75,0x69,0x60,0x60,0x60,0x5e,
+0x56,0x61,0x6d,0x73,0x72,0x6d,0x68,0x63,0x63,0x6a,0x6a,0x64,0x68,0x74,0x74,0x6b,
+0x63,0x62,0x64,0x6c,0x75,0x7a,0x77,0x73,0x71,0x6c,0x68,0x67,0x67,0x68,0x6d,0x73,
+0x7a,0x7e,0x7d,0x75,0x6c,0x66,0x63,0x61,0x65,0x5f,0x5c,0x5e,0x60,0x61,0x66,0x6d,
+0x70,0x79,0x83,0x84,0x80,0x79,0x71,0x6b,0x6c,0x62,0x5d,0x62,0x6c,0x71,0x6f,0x6c,
+0x6a,0x6b,0x6f,0x74,0x74,0x70,0x70,0x74,0x7a,0x7a,0x77,0x73,0x76,0x7c,0x7e,0x7b,
+0x72,0x76,0x78,0x75,0x73,0x71,0x6f,0x6c,0x67,0x6b,0x6c,0x69,0x6d,0x78,0x83,0x89,
+0x8b,0x88,0x88,0x8a,0x84,0x75,0x68,0x63,0x62,0x6e,0x77,0x74,0x6d,0x6d,0x76,0x7e,
+0x83,0x86,0x83,0x7a,0x77,0x7c,0x7e,0x7c,0x79,0x8a,0x90,0x80,0x6e,0x6a,0x6e,0x71,
+0x68,0x65,0x64,0x67,0x6b,0x6a,0x63,0x5d,0x65,0x6a,0x6f,0x6e,0x6c,0x6e,0x75,0x7a,
+0x6c,0x6c,0x69,0x67,0x7b,0xa6,0xbf,0xba,0xbe,0xbf,0xc2,0xc7,0xc9,0xcb,0xce,0xd2,
+0xce,0xcb,0xca,0xca,0xca,0xc8,0xc9,0xcc,0xcf,0xd0,0xd0,0xce,0xce,0xcf,0xce,0xcb,
+0xcc,0xcb,0xc9,0xc9,0xc9,0xc7,0xc4,0xc1,0xbf,0xbf,0xc0,0xbf,0xbf,0xbf,0xc1,0xc3,
+0xc0,0xbf,0xbc,0xbc,0xbf,0xc2,0xc1,0xbd,0xc0,0xb8,0xbb,0xbc,0xb6,0xbb,0xc2,0xbe,
+0xc5,0xc5,0xc4,0xc2,0xbf,0xbd,0xbd,0xbe,0xba,0xba,0xb9,0xb7,0xb5,0xb4,0xb5,0xb6,
+0xbd,0xbd,0xba,0xb3,0xad,0xa9,0xa6,0xa3,0xa2,0xa0,0x9e,0x9e,0xa0,0xa2,0xa3,0xa3,
+0xa1,0xa1,0xa1,0xa1,0xa2,0xa1,0x99,0x91,0x87,0x78,0x76,0x75,0x79,0x7a,0x70,0x72,
+0x6c,0x76,0x87,0x98,0xa2,0xa4,0xa5,0xa6,0xa8,0xa5,0xa3,0xa1,0x9c,0x96,0x98,0x9f,
+0xb7,0xd4,0xe8,0xe2,0xd8,0xd7,0xd4,0xca,0xc3,0xbf,0xba,0xb8,0xb7,0xb4,0xac,0xa6,
+0xa1,0xa3,0xa5,0xa6,0xa7,0xa9,0xab,0xae,0xb2,0xb9,0xc1,0xc5,0xc4,0xc0,0xbc,0xb8,
+0xc5,0xba,0xbd,0xbf,0xc7,0xcf,0xd0,0xc6,0x92,0x6e,0x50,0x56,0x4a,0x53,0x7b,0xac,
+0x91,0x36,0x45,0xb3,0xe8,0x74,0x50,0x6b,0x3b,0x8b,0xdc,0xe9,0xde,0xe5,0xe5,0xdb,
+0xe3,0xe9,0x9c,0x46,0x41,0xa6,0xd9,0xc3,0xc9,0xcb,0xc5,0xbf,0xc2,0xc4,0xbe,0xb9,
+0xce,0xd1,0xd2,0xd1,0xd0,0xd2,0xd3,0xd2,0xd7,0xb1,0x97,0x97,0x98,0x96,0x97,0x99,
+0x9b,0x91,0x96,0x70,0xc2,0xe3,0xde,0xe0,0xe9,0xbc,0xbb,0xa9,0xd6,0xbc,0x53,0x88,
+0x9f,0x9d,0x93,0x97,0x9b,0x99,0x9a,0x91,0x96,0x94,0x99,0x9e,0x99,0x95,0x94,0x92,
+0x96,0x9a,0xc5,0xd9,0xcb,0xca,0xc6,0xba,0xae,0xb3,0xac,0xb1,0xa6,0x6c,0xa4,0xc7,
+0xb0,0x9e,0x86,0x8a,0x8f,0x69,0x47,0x50,0x51,0x53,0x56,0x58,0x5a,0x5c,0x5e,0x60,
+0x5d,0x5c,0x5a,0x59,0x57,0x55,0x51,0x4e,0x4c,0x4b,0x4c,0x4b,0x47,0x41,0x3e,0x3e,
+0x3e,0x3c,0x38,0x3a,0x3d,0x39,0x3a,0x44,0x59,0x60,0x6d,0x76,0x74,0x6a,0x64,0x63,
+0x6d,0x62,0x5c,0x60,0x65,0x63,0x60,0x60,0x5f,0x64,0x65,0x60,0x5f,0x62,0x65,0x63,
+0x62,0x6f,0x72,0x73,0x6a,0x61,0x66,0x65,0x5e,0x68,0x71,0x73,0x73,0x75,0x79,0x7b,
+0x7b,0x79,0x71,0x5d,0x45,0x36,0x39,0x44,0x5b,0x64,0x66,0x5a,0x4e,0x4b,0x50,0x54,
+0x64,0x6b,0x72,0x72,0x6d,0x64,0x57,0x4d,0x42,0x41,0x39,0x32,0x37,0x42,0x42,0x3b,
+0x36,0x3c,0x41,0x47,0x4e,0x53,0x4e,0x46,0x2a,0x2b,0x36,0x47,0x51,0x51,0x53,0x57,
+0x61,0x61,0x6c,0x69,0x75,0x70,0x7c,0x7e,0x7d,0x80,0x7f,0x7c,0x7c,0x7a,0x70,0x65,
+0x50,0x48,0x43,0x43,0x42,0x40,0x48,0x54,0x4e,0x5c,0x67,0x66,0x59,0x49,0x3c,0x35,
+0x2d,0x24,0x20,0x26,0x2c,0x30,0x38,0x40,0x44,0x4e,0x4e,0x46,0x43,0x3c,0x2d,0x24,
+0x2a,0x2f,0x31,0x31,0x37,0x40,0x41,0x3b,0x34,0x37,0x36,0x2c,0x1f,0x19,0x22,0x2f,
+0x34,0x3f,0x49,0x4a,0x48,0x49,0x4c,0x4d,0x4c,0x50,0x5a,0x63,0x63,0x5f,0x64,0x6d,
+0x6a,0x62,0x5d,0x5f,0x64,0x6b,0x72,0x79,0x83,0x7c,0x6f,0x65,0x65,0x6c,0x6d,0x67,
+0x67,0x6d,0x6e,0x67,0x67,0x6f,0x73,0x71,0x66,0x6c,0x6e,0x6d,0x73,0x7b,0x79,0x71,
+0x6d,0x69,0x66,0x66,0x69,0x6c,0x6e,0x6e,0x6d,0x68,0x66,0x68,0x69,0x6a,0x71,0x7b,
+0x82,0x86,0x7e,0x6d,0x63,0x68,0x6c,0x6a,0x60,0x5a,0x59,0x5e,0x60,0x5e,0x60,0x66,
+0x6d,0x73,0x77,0x76,0x73,0x70,0x6c,0x68,0x63,0x61,0x63,0x6b,0x71,0x6e,0x66,0x5f,
+0x59,0x5d,0x66,0x70,0x74,0x76,0x7b,0x81,0x71,0x6e,0x65,0x62,0x70,0x84,0x88,0x7f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6f,0x79,0x7f,0x7a,0x72,0x71,0x75,0x79,
+0x83,0x85,0x8a,0x8d,0x83,0x72,0x66,0x63,0x68,0x70,0x78,0x78,0x75,0x77,0x7c,0x80,
+0x89,0x8a,0x85,0x7b,0x76,0x78,0x7e,0x81,0x84,0x8b,0x8a,0x7c,0x6d,0x69,0x6a,0x6b,
+0x6c,0x6a,0x6d,0x77,0x82,0x84,0x7a,0x70,0x63,0x65,0x67,0x6c,0x73,0x78,0x77,0x73,
+0x6a,0x65,0x61,0x66,0x7d,0x9f,0xaf,0xab,0xaf,0xae,0xb0,0xb3,0xb5,0xb8,0xbf,0xc5,
+0xc6,0xc1,0xbd,0xbc,0xbc,0xbf,0xc4,0xc9,0xca,0xcd,0xce,0xcd,0xcd,0xcf,0xce,0xcc,
+0xcc,0xcb,0xc9,0xc9,0xc8,0xc8,0xc7,0xc6,0xc6,0xc2,0xbe,0xbc,0xbd,0xbf,0xc0,0xc0,
+0xbd,0xbf,0xbf,0xbe,0xbf,0xc1,0xc1,0xbf,0xba,0xb6,0xb6,0xb6,0xb3,0xb5,0xb8,0xb7,
+0xb9,0xba,0xbc,0xbe,0xbf,0xc1,0xc2,0xc3,0xbf,0xbe,0xbc,0xb9,0xb5,0xb3,0xb2,0xb2,
+0xb5,0xb6,0xb4,0xb0,0xad,0xab,0xa8,0xa5,0xa4,0xa2,0xa1,0xa1,0xa1,0xa2,0xa2,0xa1,
+0x9f,0x9f,0x9e,0x9e,0xa0,0x9e,0x97,0x8f,0x84,0x78,0x76,0x75,0x7a,0x7c,0x70,0x6e,
+0x63,0x66,0x6f,0x7d,0x88,0x8e,0x92,0x95,0x98,0x92,0x91,0x95,0x94,0x92,0x9c,0xab,
+0xde,0xe8,0xe9,0xe1,0xdc,0xdc,0xd3,0xc5,0xbf,0xb9,0xb3,0xb2,0xb3,0xb0,0xa7,0x9f,
+0xa1,0xa3,0xa5,0xa5,0xa6,0xa9,0xae,0xb3,0xb4,0xba,0xc0,0xc3,0xc0,0xbb,0xb5,0xb1,
+0xbb,0xbf,0xc7,0xbc,0xbd,0xcd,0xb2,0x79,0x33,0x3c,0x37,0x3f,0x41,0x4d,0x42,0x2e,
+0x3b,0x49,0x3e,0x4f,0xd2,0xb3,0x2d,0x46,0x3e,0x9b,0xe8,0xe7,0xe1,0xe0,0xe1,0xde,
+0xd6,0xe2,0xdc,0x6c,0x39,0x6c,0xc4,0xd2,0xc4,0xc4,0xc2,0xc1,0xc1,0xc0,0xbc,0xb8,
+0xcd,0xd0,0xd1,0xd0,0xd0,0xd1,0xd2,0xd1,0xd8,0xb1,0x96,0x95,0x94,0x90,0x90,0x91,
+0x9b,0x9c,0x8f,0x74,0xb2,0xa5,0xd0,0xe3,0xd7,0xcf,0xb7,0xba,0xe1,0xc3,0x60,0x83,
+0x94,0x9b,0x9b,0xa0,0x9b,0x91,0x98,0x9b,0x99,0x9e,0x9d,0x96,0x90,0x8f,0x91,0x94,
+0x95,0x97,0xc1,0xd6,0xca,0xc9,0xc5,0xb9,0xb0,0xb0,0xac,0xaf,0x94,0x67,0xa1,0xbf,
+0xae,0x95,0x95,0xab,0x9a,0x60,0x41,0x4d,0x52,0x54,0x57,0x59,0x5a,0x5a,0x5b,0x5c,
+0x59,0x58,0x57,0x55,0x54,0x51,0x4d,0x4a,0x4a,0x48,0x47,0x47,0x43,0x3e,0x3d,0x3f,
+0x3c,0x3e,0x3c,0x38,0x36,0x36,0x44,0x5a,0x6b,0x6c,0x71,0x76,0x75,0x6f,0x6b,0x6b,
+0x67,0x62,0x5f,0x61,0x64,0x63,0x62,0x61,0x6c,0x6e,0x6b,0x63,0x5c,0x5d,0x63,0x68,
+0x7e,0x8e,0x88,0x79,0x6f,0x6f,0x6f,0x5f,0x61,0x69,0x71,0x73,0x72,0x72,0x72,0x72,
+0x79,0x76,0x6d,0x5c,0x45,0x36,0x36,0x3c,0x58,0x5f,0x66,0x68,0x66,0x61,0x55,0x49,
+0x43,0x39,0x36,0x45,0x5e,0x70,0x70,0x69,0x5d,0x58,0x4c,0x42,0x46,0x4f,0x4c,0x3f,
+0x49,0x48,0x46,0x49,0x54,0x5a,0x4d,0x38,0x3a,0x3f,0x47,0x50,0x5a,0x64,0x6f,0x77,
+0x67,0x61,0x63,0x60,0x6d,0x6a,0x6d,0x65,0x70,0x79,0x82,0x84,0x80,0x7a,0x72,0x6c,
+0x6f,0x73,0x7f,0x8f,0x95,0x8d,0x83,0x7d,0x93,0x97,0x98,0x90,0x81,0x71,0x61,0x57,
+0x4b,0x3a,0x28,0x1e,0x1b,0x20,0x2d,0x3a,0x50,0x51,0x4d,0x43,0x2d,0x19,0x26,0x47,
+0x43,0x30,0x23,0x2a,0x38,0x3c,0x39,0x37,0x3b,0x37,0x2f,0x24,0x19,0x16,0x1e,0x28,
+0x2a,0x2e,0x33,0x37,0x3d,0x43,0x44,0x41,0x43,0x40,0x3e,0x45,0x50,0x58,0x57,0x51,
+0x6c,0x63,0x5c,0x5d,0x62,0x68,0x71,0x79,0x80,0x7e,0x7a,0x76,0x78,0x7b,0x74,0x6b,
+0x5e,0x60,0x61,0x62,0x65,0x6b,0x6f,0x70,0x6e,0x6c,0x69,0x6a,0x6f,0x74,0x73,0x70,
+0x74,0x72,0x6d,0x67,0x62,0x62,0x65,0x68,0x6d,0x67,0x66,0x69,0x67,0x63,0x6b,0x79,
+0x87,0x8a,0x7e,0x69,0x63,0x71,0x7a,0x77,0x69,0x63,0x64,0x6c,0x6c,0x64,0x61,0x66,
+0x69,0x6c,0x6e,0x6d,0x6c,0x6c,0x6a,0x67,0x60,0x63,0x6b,0x73,0x73,0x6b,0x60,0x59,
+0x60,0x65,0x6d,0x73,0x73,0x73,0x77,0x7c,0x78,0x72,0x65,0x61,0x75,0x8c,0x8a,0x77,
+0x6b,0x67,0x68,0x6f,0x72,0x6e,0x6a,0x6a,0x6b,0x75,0x80,0x83,0x81,0x82,0x85,0x88,
+0x83,0x8a,0x93,0x95,0x88,0x74,0x68,0x67,0x6d,0x6f,0x6e,0x6d,0x6f,0x75,0x7a,0x7c,
+0x87,0x88,0x84,0x7b,0x72,0x71,0x78,0x80,0x8e,0x8a,0x81,0x78,0x70,0x6b,0x6b,0x6b,
+0x69,0x69,0x6b,0x73,0x7b,0x7b,0x73,0x6b,0x62,0x60,0x62,0x6d,0x80,0x8b,0x87,0x7d,
+0x73,0x6a,0x65,0x71,0x8c,0xa3,0xa9,0xa4,0x9e,0x9c,0x9b,0x9a,0x99,0x9c,0xa4,0xac,
+0xb0,0xa9,0xa1,0x9e,0xa0,0xa7,0xb1,0xba,0xbf,0xc3,0xc7,0xc8,0xc9,0xcb,0xcb,0xca,
+0xc9,0xc7,0xc3,0xc0,0xbf,0xc0,0xc4,0xc7,0xc8,0xc3,0xbe,0xbd,0xbe,0xbe,0xbb,0xb7,
+0xc0,0xc3,0xc3,0xbe,0xb9,0xb7,0xb4,0xb2,0xb8,0xb9,0xb5,0xb3,0xb4,0xb3,0xb2,0xb4,
+0xb4,0xb5,0xb8,0xbb,0xbe,0xc0,0xc0,0xbf,0xc1,0xc0,0xbd,0xbb,0xb8,0xb6,0xb3,0xb2,
+0xb5,0xb5,0xb3,0xaf,0xad,0xab,0xa5,0xa0,0xa2,0xa0,0x9f,0x9f,0xa0,0xa0,0x9f,0x9e,
+0x9e,0x9f,0x9f,0x9e,0x9f,0x9e,0x97,0x8f,0x82,0x78,0x77,0x73,0x7a,0x7f,0x71,0x69,
+0x63,0x61,0x64,0x6d,0x76,0x7c,0x80,0x83,0x86,0x84,0x87,0x8d,0x8d,0x93,0xab,0xc6,
+0xea,0xe7,0xe0,0xd9,0xd7,0xd6,0xce,0xc3,0xbf,0xb8,0xb1,0xb0,0xb2,0xaf,0xa6,0x9d,
+0xa0,0xa3,0xa6,0xa6,0xa6,0xaa,0xb2,0xb8,0xb7,0xbb,0xbf,0xc1,0xbd,0xb5,0xae,0xa9,
+0xb9,0xb4,0xbf,0xbf,0xbc,0xb8,0x7c,0x36,0x36,0x5b,0x7b,0x9a,0x80,0x55,0x3f,0x45,
+0x44,0x36,0x43,0x38,0x72,0xd7,0x94,0x51,0x51,0xa6,0xe4,0xe0,0xe0,0xc8,0xcd,0xe4,
+0xde,0xe8,0xee,0xb0,0x45,0x40,0x91,0xcb,0xc8,0xc3,0xc5,0xc9,0xc7,0xc4,0xc3,0xc0,
+0xcb,0xce,0xd0,0xcf,0xcf,0xd1,0xd1,0xd1,0xd7,0xb1,0x96,0x94,0x93,0x8e,0x8d,0x8e,
+0x96,0x97,0x8e,0x78,0x89,0xce,0xe6,0xe7,0xdf,0xe6,0x98,0xb9,0xe6,0xb5,0x63,0x6f,
+0x9c,0x9d,0x99,0x9f,0x9c,0x93,0x96,0x95,0x9e,0x9f,0x99,0x99,0x9e,0x96,0x90,0x99,
+0x97,0x96,0xbf,0xd6,0xcc,0xcb,0xc7,0xbc,0xb1,0xae,0xaf,0xad,0x7c,0x64,0xa1,0xb9,
+0xb4,0x9d,0xa2,0xac,0x87,0x55,0x49,0x55,0x53,0x55,0x58,0x5a,0x59,0x58,0x58,0x58,
+0x58,0x57,0x55,0x54,0x52,0x4f,0x4c,0x49,0x48,0x45,0x43,0x42,0x3f,0x3c,0x3d,0x3f,
+0x37,0x3a,0x39,0x3b,0x43,0x4f,0x66,0x81,0x7f,0x7b,0x78,0x77,0x73,0x6d,0x67,0x65,
+0x6e,0x71,0x72,0x70,0x6f,0x6d,0x69,0x64,0x62,0x62,0x62,0x60,0x5d,0x5f,0x69,0x75,
+0x6a,0x61,0x5a,0x67,0x68,0x5c,0x61,0x67,0x6d,0x72,0x74,0x73,0x72,0x71,0x6f,0x6d,
+0x6d,0x6f,0x6f,0x68,0x5a,0x4c,0x47,0x49,0x4b,0x4d,0x51,0x58,0x60,0x64,0x5f,0x57,
+0x45,0x4e,0x5d,0x68,0x68,0x65,0x6b,0x75,0x6a,0x5b,0x4b,0x40,0x3a,0x36,0x37,0x3c,
+0x3b,0x41,0x44,0x44,0x46,0x47,0x3e,0x31,0x40,0x4d,0x56,0x55,0x56,0x5f,0x68,0x6c,
+0x67,0x69,0x6d,0x64,0x67,0x65,0x68,0x64,0x5d,0x60,0x66,0x69,0x6b,0x74,0x85,0x94,
+0xa6,0xa6,0xa0,0x90,0x80,0x7a,0x83,0x8d,0x74,0x75,0x76,0x77,0x7a,0x7d,0x7b,0x76,
+0x6b,0x61,0x56,0x4b,0x3e,0x30,0x28,0x27,0x27,0x23,0x1c,0x1e,0x27,0x2a,0x2d,0x37,
+0x33,0x2f,0x32,0x3d,0x41,0x3a,0x31,0x2e,0x36,0x2b,0x1d,0x16,0x16,0x20,0x2f,0x3c,
+0x3b,0x34,0x2c,0x2e,0x3b,0x49,0x4e,0x4c,0x52,0x52,0x4a,0x3f,0x40,0x4d,0x59,0x5d,
+0x67,0x64,0x5f,0x5e,0x64,0x6d,0x74,0x76,0x75,0x7f,0x88,0x87,0x81,0x7b,0x74,0x6f,
+0x65,0x60,0x63,0x6e,0x72,0x6d,0x6d,0x72,0x6c,0x64,0x5e,0x5f,0x65,0x6b,0x6f,0x71,
+0x73,0x75,0x74,0x6e,0x65,0x5f,0x60,0x64,0x6b,0x67,0x69,0x6c,0x64,0x5d,0x67,0x79,
+0x8d,0x8b,0x7e,0x6f,0x6e,0x7b,0x82,0x7f,0x78,0x71,0x73,0x7b,0x79,0x6d,0x65,0x65,
+0x64,0x68,0x6a,0x6b,0x6c,0x6c,0x69,0x64,0x61,0x65,0x6b,0x6f,0x6c,0x64,0x5f,0x5e,
+0x59,0x5e,0x65,0x67,0x66,0x66,0x6a,0x6e,0x6e,0x6a,0x67,0x6e,0x84,0x94,0x8c,0x7a,
+0x6c,0x68,0x6c,0x77,0x7b,0x73,0x6a,0x69,0x6f,0x6e,0x6f,0x74,0x7c,0x82,0x83,0x81,
+0x7b,0x82,0x8d,0x90,0x84,0x72,0x6a,0x6b,0x7a,0x75,0x6c,0x66,0x69,0x73,0x7c,0x80,
+0x7a,0x7d,0x7f,0x7c,0x77,0x77,0x81,0x8b,0x8e,0x84,0x7b,0x77,0x75,0x71,0x71,0x74,
+0x74,0x74,0x74,0x72,0x70,0x6e,0x6d,0x6d,0x62,0x62,0x64,0x6f,0x81,0x8f,0x8e,0x85,
+0x75,0x71,0x6d,0x77,0x92,0xa5,0xa4,0x9d,0x97,0x93,0x8f,0x89,0x84,0x82,0x88,0x8f,
+0x95,0x8c,0x84,0x80,0x83,0x8b,0x97,0xa1,0xac,0xb3,0xbb,0xbe,0xc0,0xc3,0xc5,0xc5,
+0xc5,0xc1,0xbb,0xb4,0xb0,0xb1,0xb6,0xbb,0xbf,0xbf,0xc1,0xc4,0xc4,0xc1,0xba,0xb4,
+0xb9,0xbd,0xbf,0xc0,0xc0,0xc1,0xc0,0xbe,0xb9,0xbd,0xb6,0xb1,0xb7,0xb5,0xb1,0xb8,
+0xb6,0xb6,0xb9,0xbb,0xbe,0xbe,0xbc,0xba,0xbc,0xbb,0xba,0xba,0xbb,0xbb,0xba,0xb8,
+0xb8,0xb8,0xb5,0xb2,0xb1,0xaf,0xa7,0xa0,0x9f,0x9d,0x9b,0x9a,0x9b,0x9d,0x9d,0x9d,
+0xa0,0xa1,0xa1,0xa0,0xa1,0x9f,0x99,0x93,0x82,0x79,0x75,0x70,0x77,0x7f,0x71,0x66,
+0x6a,0x6a,0x6d,0x73,0x78,0x79,0x7a,0x7b,0x80,0x86,0x8c,0x8e,0x92,0xa4,0xc5,0xe1,
+0xe5,0xe3,0xe1,0xdd,0xd7,0xd0,0xcb,0xca,0xbf,0xba,0xb5,0xb2,0xaf,0xab,0xa4,0x9f,
+0x9f,0xa4,0xa8,0xa9,0xa8,0xab,0xb2,0xba,0xba,0xbc,0xbf,0xc1,0xbd,0xb4,0xac,0xa8,
+0xb7,0xb1,0xb4,0xbd,0xbf,0xa5,0x53,0x26,0x4d,0xb5,0xde,0xe3,0xe5,0xe5,0xa6,0x50,
+0x36,0x4b,0x3d,0x3e,0x50,0xc5,0xe4,0xd1,0xd5,0xdc,0xe6,0xea,0xce,0x66,0x75,0xdc,
+0xec,0xec,0xdb,0xe2,0x86,0x39,0x5c,0xaf,0xcb,0xc0,0xbf,0xc4,0xc2,0xc2,0xc2,0xbd,
+0xcb,0xce,0xd0,0xcf,0xcf,0xd1,0xd2,0xd1,0xd6,0xaf,0x96,0x95,0x95,0x91,0x91,0x92,
+0x94,0x98,0xa7,0x8f,0x70,0xd2,0xe2,0xbf,0xe1,0xdf,0xae,0xb5,0xed,0xd8,0x68,0x70,
+0x98,0x9a,0x93,0x97,0x9b,0x9b,0x9f,0x99,0x9c,0x94,0x90,0xa6,0xbd,0xaa,0x93,0x99,
+0x96,0x92,0xbb,0xd6,0xcd,0xcb,0xc7,0xbe,0xb2,0xae,0xb6,0xa9,0x68,0x65,0xa5,0xb8,
+0xaa,0xa1,0xaa,0xb0,0x8d,0x5a,0x46,0x4e,0x54,0x56,0x59,0x5a,0x5a,0x58,0x56,0x56,
+0x57,0x55,0x53,0x52,0x50,0x4d,0x4a,0x48,0x46,0x44,0x42,0x41,0x3e,0x3b,0x3c,0x3e,
+0x3a,0x38,0x35,0x3d,0x50,0x5f,0x6c,0x7a,0x72,0x71,0x72,0x73,0x74,0x73,0x72,0x71,
+0x7d,0x82,0x83,0x7f,0x7c,0x78,0x70,0x66,0x66,0x61,0x5f,0x5d,0x58,0x54,0x58,0x61,
+0x55,0x62,0x62,0x64,0x6a,0x6e,0x6f,0x60,0x69,0x6a,0x6a,0x69,0x6b,0x6e,0x6f,0x6d,
+0x6e,0x6f,0x6d,0x65,0x58,0x4e,0x4e,0x53,0x59,0x5e,0x65,0x6b,0x6a,0x65,0x60,0x5d,
+0x56,0x4d,0x53,0x6f,0x85,0x80,0x68,0x55,0x38,0x3a,0x4b,0x5a,0x4b,0x2a,0x20,0x2c,
+0x30,0x23,0x20,0x32,0x4a,0x4e,0x3a,0x24,0x38,0x50,0x61,0x5f,0x59,0x5b,0x5a,0x54,
+0x4e,0x57,0x5f,0x5f,0x66,0x70,0x78,0x79,0x7d,0x87,0x9a,0xa9,0xa9,0x9e,0x97,0x98,
+0x79,0x6a,0x56,0x4c,0x50,0x5a,0x5c,0x58,0x58,0x4e,0x3e,0x35,0x3a,0x48,0x54,0x5a,
+0x56,0x50,0x4c,0x4d,0x4f,0x4e,0x4e,0x4f,0x40,0x42,0x3c,0x34,0x31,0x2d,0x2d,0x34,
+0x3d,0x3b,0x32,0x26,0x26,0x32,0x3c,0x3f,0x36,0x2a,0x1c,0x15,0x15,0x1b,0x25,0x2d,
+0x30,0x26,0x1f,0x28,0x3c,0x50,0x57,0x56,0x36,0x4e,0x67,0x6e,0x67,0x5e,0x59,0x56,
+0x66,0x69,0x65,0x5f,0x65,0x74,0x7b,0x78,0x76,0x7d,0x82,0x7d,0x74,0x6e,0x6f,0x71,
+0x6b,0x67,0x62,0x60,0x60,0x61,0x63,0x65,0x61,0x5c,0x5b,0x63,0x6b,0x70,0x72,0x75,
+0x71,0x76,0x78,0x72,0x67,0x60,0x5f,0x63,0x66,0x67,0x6c,0x6e,0x66,0x5f,0x6c,0x81,
+0x8c,0x80,0x73,0x6d,0x71,0x78,0x7d,0x7e,0x79,0x75,0x76,0x7b,0x7a,0x6e,0x64,0x61,
+0x64,0x67,0x68,0x67,0x68,0x68,0x65,0x61,0x61,0x63,0x66,0x68,0x64,0x60,0x60,0x64,
+0x60,0x64,0x67,0x65,0x61,0x60,0x62,0x65,0x64,0x62,0x67,0x76,0x84,0x84,0x7a,0x71,
+0x70,0x6d,0x71,0x7b,0x7e,0x77,0x72,0x73,0x76,0x70,0x6c,0x70,0x78,0x7e,0x80,0x7f,
+0x88,0x8b,0x92,0x94,0x8d,0x82,0x7e,0x81,0x79,0x75,0x6c,0x66,0x67,0x71,0x7a,0x7f,
+0x7a,0x7b,0x78,0x73,0x6f,0x70,0x78,0x7f,0x83,0x7a,0x74,0x75,0x75,0x72,0x74,0x79,
+0x70,0x6d,0x6a,0x68,0x68,0x69,0x68,0x66,0x62,0x69,0x6f,0x73,0x7a,0x82,0x82,0x7d,
+0x7d,0x83,0x7f,0x81,0x99,0xab,0xa6,0x9d,0x98,0x94,0x8d,0x86,0x7d,0x78,0x79,0x7d,
+0x82,0x7b,0x73,0x70,0x71,0x77,0x81,0x89,0x97,0xa3,0xaf,0xb6,0xb9,0xbd,0xbf,0xc0,
+0xc3,0xc1,0xbc,0xb4,0xac,0xa7,0xa5,0xa5,0xad,0xb2,0xb9,0xc0,0xc3,0xc2,0xbf,0xbe,
+0xb8,0xb9,0xbb,0xbc,0xbf,0xc1,0xbe,0xb9,0xb7,0xbb,0xb3,0xaf,0xb5,0xb5,0xb3,0xbb,
+0xb7,0xb8,0xbb,0xbd,0xbf,0xbe,0xbc,0xbb,0xb2,0xb3,0xb3,0xb5,0xb8,0xba,0xbb,0xbb,
+0xb7,0xb8,0xb7,0xb7,0xb8,0xb8,0xb2,0xab,0xa6,0xa2,0x9e,0x9b,0x9a,0x9b,0x9d,0x9d,
+0x9f,0xa0,0xa0,0x9f,0x9f,0x9e,0x99,0x93,0x85,0x7a,0x74,0x6c,0x73,0x7d,0x71,0x68,
+0x71,0x74,0x79,0x7d,0x7d,0x7b,0x7d,0x81,0x88,0x8d,0x8f,0x92,0xa5,0xc5,0xdf,0xea,
+0xe4,0xe0,0xdd,0xd9,0xcf,0xc3,0xbf,0xc0,0xbb,0xba,0xb6,0xb0,0xa8,0xa3,0xa0,0x9f,
+0xa0,0xa5,0xab,0xad,0xab,0xad,0xb2,0xb8,0xbd,0xbd,0xc0,0xc3,0xc1,0xb8,0xb0,0xad,
+0xb0,0xbf,0xb9,0xb7,0xc0,0xa2,0x41,0x2e,0x87,0xdb,0xec,0xed,0xe8,0xe7,0xde,0xd1,
+0x67,0x52,0x2d,0x4a,0x40,0xa9,0xf1,0xdf,0xec,0xea,0xdf,0xe5,0xd0,0x75,0x83,0xe1,
+0xe8,0xde,0xe2,0xe3,0xd0,0x58,0x38,0x84,0xcc,0xc7,0xc3,0xc2,0xc4,0xc6,0xc4,0xbd,
+0xcd,0xd0,0xd1,0xd0,0xd0,0xd2,0xd2,0xd2,0xd4,0xaf,0x96,0x96,0x97,0x94,0x94,0x95,
+0x9e,0x97,0x98,0x8c,0x85,0x8d,0xd5,0xcd,0xde,0xdf,0x87,0x66,0x98,0x93,0x65,0x5a,
+0x91,0xa0,0xa0,0x9b,0x95,0x96,0x9d,0x96,0x94,0x94,0x97,0xb1,0xcc,0xb8,0x97,0x91,
+0x91,0x8b,0xb5,0xd3,0xcb,0xc8,0xc4,0xbd,0xb3,0xb2,0xbc,0x9d,0x5d,0x6a,0xa6,0xb6,
+0xac,0xa3,0x95,0x90,0x83,0x59,0x42,0x53,0x54,0x56,0x59,0x5a,0x59,0x58,0x56,0x56,
+0x53,0x51,0x4f,0x4d,0x4b,0x49,0x46,0x44,0x43,0x41,0x40,0x40,0x3d,0x3a,0x39,0x3c,
+0x37,0x3a,0x3e,0x4c,0x63,0x6e,0x71,0x75,0x6c,0x6f,0x70,0x6f,0x6f,0x71,0x76,0x79,
+0x82,0x82,0x7e,0x78,0x77,0x77,0x71,0x68,0x6d,0x63,0x5c,0x5a,0x57,0x53,0x53,0x58,
+0x4f,0x64,0x68,0x67,0x6a,0x6e,0x6c,0x56,0x62,0x65,0x69,0x6c,0x72,0x77,0x78,0x76,
+0x6f,0x6b,0x63,0x56,0x49,0x48,0x56,0x65,0x67,0x59,0x50,0x56,0x60,0x63,0x5e,0x5a,
+0x61,0x6f,0x85,0x8e,0x7b,0x58,0x40,0x3a,0x5c,0x65,0x75,0x7b,0x68,0x4b,0x41,0x47,
+0x3d,0x2d,0x2c,0x43,0x50,0x40,0x25,0x15,0x29,0x44,0x5c,0x62,0x64,0x68,0x68,0x63,
+0x60,0x62,0x65,0x73,0x88,0x9f,0xa4,0xa1,0x9b,0x8f,0x83,0x78,0x66,0x4e,0x3a,0x32,
+0x3b,0x3a,0x3c,0x47,0x58,0x62,0x5e,0x54,0x48,0x50,0x5c,0x6a,0x79,0x84,0x87,0x85,
+0x7e,0x71,0x60,0x54,0x4b,0x41,0x37,0x30,0x3c,0x30,0x2e,0x3f,0x48,0x3d,0x3c,0x4d,
+0x5e,0x49,0x2e,0x23,0x30,0x42,0x41,0x35,0x2b,0x28,0x28,0x2c,0x34,0x3c,0x45,0x4c,
+0x4f,0x49,0x47,0x50,0x5f,0x68,0x67,0x62,0x62,0x57,0x4d,0x49,0x49,0x4a,0x50,0x57,
+0x68,0x69,0x64,0x5c,0x62,0x72,0x7a,0x78,0x75,0x74,0x72,0x70,0x6c,0x68,0x64,0x62,
+0x6d,0x76,0x73,0x64,0x63,0x71,0x75,0x6c,0x60,0x61,0x67,0x6f,0x74,0x72,0x6d,0x6a,
+0x77,0x79,0x79,0x73,0x69,0x63,0x64,0x68,0x66,0x68,0x6c,0x6b,0x64,0x61,0x6c,0x7b,
+0x77,0x68,0x5c,0x5c,0x64,0x6b,0x74,0x7b,0x76,0x75,0x76,0x77,0x77,0x72,0x69,0x63,
+0x6a,0x6b,0x6a,0x66,0x64,0x64,0x64,0x62,0x63,0x64,0x65,0x66,0x64,0x62,0x64,0x68,
+0x70,0x71,0x70,0x6b,0x67,0x67,0x68,0x68,0x68,0x63,0x68,0x76,0x7a,0x71,0x68,0x67,
+0x6f,0x6d,0x6e,0x72,0x73,0x72,0x76,0x7d,0x75,0x75,0x78,0x7c,0x7e,0x81,0x87,0x8d,
+0x85,0x82,0x80,0x7e,0x75,0x6c,0x6b,0x70,0x72,0x74,0x74,0x72,0x73,0x77,0x79,0x78,
+0x79,0x77,0x70,0x6a,0x6d,0x78,0x80,0x81,0x78,0x73,0x6f,0x70,0x6f,0x6f,0x72,0x78,
+0x7b,0x73,0x6e,0x71,0x77,0x78,0x6e,0x64,0x62,0x71,0x7c,0x7c,0x7b,0x7e,0x80,0x7f,
+0x88,0x94,0x8f,0x8e,0xa5,0xb3,0xac,0xa4,0x9e,0x99,0x92,0x8b,0x83,0x7c,0x79,0x7b,
+0x7b,0x75,0x6e,0x6a,0x69,0x6b,0x70,0x76,0x86,0x95,0xa7,0xb2,0xb7,0xba,0xbd,0xbe,
+0xc2,0xc4,0xc3,0xbf,0xb7,0xab,0xa1,0x9b,0x9e,0xa1,0xa5,0xaa,0xaf,0xb4,0xbb,0xbf,
+0xc0,0xbf,0xbc,0xba,0xbb,0xb9,0xb3,0xab,0xb4,0xb4,0xb0,0xae,0xb1,0xb3,0xb5,0xba,
+0xba,0xbb,0xbd,0xbd,0xba,0xb7,0xb5,0xb4,0xac,0xad,0xae,0xaf,0xaf,0xb1,0xb4,0xb6,
+0xba,0xbb,0xbc,0xbc,0xbd,0xbc,0xb8,0xb3,0xb3,0xaf,0xa8,0xa2,0x9f,0x9e,0x9d,0x9c,
+0x9a,0x9c,0x9d,0x9c,0x9b,0x9a,0x96,0x91,0x89,0x7b,0x74,0x6d,0x73,0x7b,0x72,0x6d,
+0x78,0x7b,0x80,0x83,0x83,0x83,0x89,0x91,0x93,0x93,0x93,0xa1,0xc1,0xe2,0xeb,0xe3,
+0xe6,0xdb,0xd0,0xcb,0xc6,0xbd,0xb7,0xb4,0xb8,0xb9,0xb5,0xad,0xa3,0x9e,0x9f,0xa2,
+0xa3,0xa8,0xae,0xb0,0xb0,0xb0,0xb4,0xb8,0xc0,0xbf,0xc2,0xc7,0xc5,0xbc,0xb5,0xb3,
+0xb4,0xc0,0xb8,0xbd,0xc6,0x9f,0x36,0x37,0xa5,0xed,0xe6,0xe3,0xe4,0xe4,0xea,0xee,
+0xe9,0xae,0x60,0x51,0x5a,0xbd,0xe8,0xe4,0xe6,0xde,0xbd,0xd4,0xef,0xd9,0xd2,0xe4,
+0xe3,0xd8,0xe7,0xd3,0xdb,0x9d,0x30,0x4e,0xb4,0xca,0xd0,0xc7,0xca,0xce,0xc8,0xc2,
+0xce,0xd2,0xd3,0xd1,0xd1,0xd2,0xd3,0xd2,0xd3,0xae,0x96,0x96,0x97,0x94,0x94,0x95,
+0x88,0x96,0x9c,0x98,0x90,0x68,0x98,0xd9,0xe5,0xc8,0x6c,0x59,0x7f,0x70,0x5f,0x51,
+0x88,0x99,0x9b,0x9b,0x98,0x99,0x9d,0x94,0x92,0x9f,0xa9,0xb8,0xc6,0xb9,0x9b,0x8c,
+0x8e,0x88,0xb4,0xd5,0xcd,0xc7,0xc5,0xc0,0xb4,0xb5,0xbb,0x89,0x5b,0x73,0xa4,0xae,
+0xaf,0xa8,0x75,0x46,0x49,0x50,0x4e,0x57,0x54,0x56,0x58,0x59,0x58,0x56,0x55,0x55,
+0x52,0x50,0x4d,0x4b,0x49,0x47,0x45,0x43,0x3f,0x3e,0x3d,0x3d,0x3b,0x38,0x38,0x3b,
+0x36,0x45,0x54,0x63,0x71,0x77,0x79,0x7f,0x76,0x76,0x72,0x69,0x64,0x67,0x6e,0x73,
+0x7e,0x78,0x6e,0x68,0x6a,0x70,0x72,0x71,0x6a,0x61,0x58,0x57,0x5c,0x62,0x67,0x6b,
+0x68,0x68,0x63,0x6a,0x6b,0x66,0x6d,0x6d,0x65,0x6b,0x72,0x77,0x7a,0x7a,0x76,0x70,
+0x67,0x65,0x5e,0x52,0x44,0x40,0x4a,0x58,0x50,0x51,0x4f,0x43,0x31,0x2e,0x45,0x62,
+0x72,0x75,0x73,0x64,0x4b,0x3b,0x41,0x51,0x64,0x80,0x94,0x92,0x86,0x76,0x5b,0x3f,
+0x2d,0x30,0x40,0x52,0x4b,0x31,0x25,0x2b,0x17,0x26,0x38,0x46,0x51,0x5c,0x66,0x6b,
+0x61,0x62,0x5f,0x69,0x6d,0x7a,0x7c,0x80,0x7a,0x5f,0x3f,0x2f,0x32,0x42,0x53,0x5f,
+0x5b,0x64,0x6d,0x6e,0x69,0x66,0x6b,0x71,0x82,0x77,0x65,0x56,0x51,0x58,0x60,0x65,
+0x66,0x65,0x66,0x6b,0x6f,0x6a,0x5f,0x55,0x40,0x46,0x49,0x46,0x3f,0x3e,0x56,0x79,
+0x6b,0x43,0x1c,0x13,0x1e,0x28,0x29,0x27,0x29,0x23,0x1e,0x1e,0x23,0x2c,0x38,0x42,
+0x3d,0x38,0x36,0x3e,0x49,0x52,0x57,0x59,0x53,0x3e,0x29,0x23,0x24,0x26,0x2b,0x33,
+0x6a,0x64,0x5f,0x5e,0x62,0x68,0x6e,0x71,0x70,0x6e,0x6e,0x70,0x6f,0x68,0x5d,0x55,
+0x5b,0x65,0x69,0x63,0x65,0x70,0x74,0x6f,0x71,0x72,0x71,0x6e,0x6a,0x68,0x65,0x62,
+0x73,0x75,0x74,0x70,0x6a,0x66,0x67,0x6a,0x67,0x67,0x66,0x64,0x63,0x66,0x6c,0x71,
+0x69,0x63,0x5b,0x57,0x59,0x62,0x6c,0x73,0x76,0x78,0x76,0x72,0x73,0x75,0x6e,0x64,
+0x68,0x6b,0x6c,0x69,0x67,0x67,0x68,0x67,0x68,0x65,0x63,0x63,0x63,0x62,0x65,0x68,
+0x65,0x66,0x65,0x63,0x66,0x6d,0x71,0x72,0x64,0x61,0x67,0x74,0x7c,0x7a,0x75,0x73,
+0x6c,0x6e,0x6d,0x6a,0x67,0x6b,0x76,0x80,0x78,0x78,0x7a,0x7d,0x7c,0x7a,0x7d,0x82,
+0x85,0x80,0x7a,0x72,0x68,0x60,0x62,0x6a,0x76,0x7b,0x80,0x84,0x85,0x83,0x7a,0x71,
+0x67,0x69,0x67,0x6b,0x7e,0x97,0x9e,0x97,0x74,0x70,0x6c,0x6b,0x6c,0x70,0x75,0x79,
+0x74,0x70,0x6c,0x6e,0x70,0x6b,0x60,0x55,0x66,0x76,0x7f,0x7b,0x78,0x7e,0x85,0x87,
+0x86,0x90,0x8c,0x92,0xac,0xb6,0xac,0xaa,0xa7,0xa0,0x98,0x92,0x8c,0x85,0x81,0x80,
+0x7e,0x78,0x70,0x6b,0x68,0x65,0x67,0x6a,0x79,0x8c,0xa2,0xb0,0xb6,0xba,0xbd,0xbe,
+0xc1,0xc2,0xc5,0xc5,0xc1,0xb8,0xaf,0xa8,0xa1,0x9d,0x98,0x96,0x99,0xa0,0xa7,0xac,
+0xb2,0xb4,0xb5,0xb5,0xb7,0xb9,0xb7,0xb3,0xab,0xa8,0xaa,0xac,0xaa,0xad,0xb1,0xb0,
+0xb3,0xb6,0xb8,0xb5,0xb0,0xab,0xaa,0xaa,0xaa,0xac,0xad,0xab,0xa8,0xa8,0xad,0xb1,
+0xba,0xbd,0xbe,0xbe,0xbe,0xbe,0xbb,0xb8,0xba,0xb6,0xb0,0xaa,0xa5,0xa0,0x9c,0x9a,
+0x99,0x9b,0x9c,0x9a,0x99,0x98,0x95,0x90,0x8c,0x7c,0x76,0x71,0x75,0x7a,0x72,0x72,
+0x81,0x83,0x88,0x8c,0x8f,0x91,0x97,0x9e,0x9d,0x9e,0xa9,0xc1,0xdb,0xe9,0xe6,0xde,
+0xe4,0xda,0xd0,0xcb,0xc9,0xc4,0xbe,0xb9,0xb7,0xb6,0xb1,0xa9,0xa0,0x9d,0xa0,0xa4,
+0xa8,0xab,0xaf,0xb2,0xb3,0xb5,0xb9,0xbc,0xc4,0xc1,0xc4,0xc9,0xc8,0xbf,0xb7,0xb5,
+0xbe,0xbb,0xb8,0xc5,0xc8,0xab,0x42,0x36,0x9d,0xf1,0xe9,0xe5,0xe9,0xe4,0xe4,0xe4,
+0xe6,0xe8,0xdc,0xcd,0xcd,0xed,0xe8,0xe7,0xe9,0xa0,0x61,0xab,0xe3,0xe5,0xdf,0xed,
+0xe7,0xe0,0xde,0xc8,0xc1,0xd0,0x69,0x39,0x71,0xb1,0xce,0xc3,0xc5,0xc8,0xc1,0xc1,
+0xd0,0xd3,0xd4,0xd2,0xd1,0xd2,0xd2,0xd1,0xd1,0xac,0x95,0x96,0x97,0x95,0x95,0x96,
+0xa0,0x99,0x8e,0x98,0xa3,0x9e,0x67,0x63,0x7d,0x5a,0x6d,0x75,0x86,0x8a,0x49,0x51,
+0x80,0x88,0x8a,0x93,0x96,0x94,0x9b,0x9a,0x98,0x9a,0xa6,0xba,0xc0,0xaf,0x97,0x8a,
+0x8d,0x88,0xb6,0xd9,0xd1,0xc9,0xc6,0xc4,0xb2,0xb3,0xb3,0x72,0x63,0x82,0xa4,0xa9,
+0xa3,0x98,0x6b,0x3f,0x40,0x52,0x51,0x47,0x55,0x56,0x57,0x57,0x55,0x53,0x53,0x53,
+0x51,0x4f,0x4c,0x49,0x48,0x46,0x43,0x42,0x3e,0x3c,0x3b,0x3b,0x3a,0x39,0x3b,0x3f,
+0x4a,0x5a,0x66,0x6a,0x6b,0x68,0x69,0x70,0x71,0x71,0x6d,0x67,0x66,0x6d,0x75,0x79,
+0x7c,0x74,0x6c,0x68,0x67,0x6a,0x6f,0x74,0x72,0x6c,0x63,0x5d,0x5f,0x66,0x6a,0x6b,
+0x6b,0x76,0x6f,0x68,0x67,0x6b,0x6c,0x5d,0x62,0x68,0x6e,0x71,0x70,0x6e,0x69,0x64,
+0x6a,0x68,0x62,0x55,0x43,0x35,0x33,0x37,0x3e,0x2f,0x2c,0x3e,0x53,0x5c,0x5f,0x61,
+0x5e,0x65,0x6b,0x67,0x5a,0x4c,0x45,0x43,0x66,0x7e,0x8c,0x8a,0x8d,0x94,0x8b,0x76,
+0x63,0x56,0x4e,0x4c,0x43,0x2f,0x1e,0x17,0x19,0x16,0x1c,0x2c,0x38,0x3e,0x48,0x52,
+0x53,0x57,0x53,0x54,0x40,0x3e,0x42,0x53,0x59,0x53,0x4c,0x4d,0x58,0x65,0x6b,0x6b,
+0x75,0x6d,0x6a,0x6f,0x71,0x6b,0x64,0x60,0x55,0x4f,0x45,0x3f,0x40,0x46,0x4a,0x4a,
+0x37,0x37,0x38,0x3a,0x3d,0x3f,0x3d,0x3a,0x4b,0x5e,0x6b,0x73,0x7d,0x7b,0x68,0x57,
+0x51,0x4b,0x49,0x4b,0x46,0x38,0x2d,0x2b,0x26,0x1f,0x18,0x19,0x1f,0x28,0x32,0x39,
+0x48,0x3c,0x2e,0x25,0x1e,0x18,0x15,0x15,0x13,0x16,0x1c,0x21,0x24,0x26,0x2b,0x30,
+0x6c,0x61,0x5f,0x67,0x6a,0x63,0x63,0x6b,0x71,0x71,0x72,0x72,0x6e,0x66,0x5f,0x5a,
+0x62,0x5d,0x5f,0x68,0x69,0x67,0x6f,0x7e,0x82,0x7e,0x71,0x62,0x5b,0x60,0x67,0x6a,
+0x67,0x69,0x6b,0x6b,0x68,0x66,0x65,0x65,0x64,0x63,0x60,0x60,0x67,0x71,0x75,0x72,
+0x72,0x76,0x71,0x63,0x5b,0x60,0x66,0x67,0x74,0x77,0x73,0x6a,0x6b,0x71,0x6c,0x5f,
+0x5d,0x65,0x6c,0x6d,0x6c,0x6b,0x6a,0x69,0x6a,0x64,0x5d,0x5b,0x5c,0x5d,0x60,0x64,
+0x70,0x6f,0x6a,0x65,0x66,0x6c,0x6f,0x6e,0x6e,0x6d,0x6f,0x77,0x80,0x82,0x7a,0x70,
+0x6c,0x73,0x74,0x6c,0x66,0x6a,0x76,0x80,0x7b,0x75,0x74,0x7a,0x81,0x84,0x84,0x85,
+0x79,0x75,0x71,0x6a,0x61,0x5d,0x65,0x71,0x72,0x76,0x7b,0x80,0x81,0x7b,0x6c,0x5e,
+0x61,0x64,0x63,0x66,0x7b,0x91,0x8e,0x7b,0x75,0x71,0x6c,0x69,0x6d,0x74,0x7a,0x7d,
+0x73,0x77,0x79,0x75,0x6d,0x65,0x60,0x5f,0x6d,0x77,0x78,0x6f,0x6b,0x75,0x7f,0x83,
+0x88,0x8e,0x8c,0x9c,0xbb,0xc0,0xb4,0xb8,0xaf,0xa6,0x9d,0x97,0x91,0x8b,0x86,0x84,
+0x85,0x7f,0x77,0x71,0x6b,0x66,0x66,0x68,0x72,0x86,0x9f,0xaf,0xb6,0xba,0xbc,0xbe,
+0xbe,0xbe,0xbf,0xc2,0xc4,0xc3,0xbf,0xbc,0xb1,0xa8,0x9b,0x92,0x91,0x93,0x96,0x96,
+0x9d,0xa0,0xa2,0xa1,0xa0,0xa1,0xa1,0x9f,0xa0,0x9c,0xa2,0xa7,0xa2,0xa4,0xa9,0xa2,
+0xa4,0xa9,0xad,0xac,0xa7,0xa4,0xa6,0xa9,0xab,0xad,0xad,0xaa,0xa5,0xa5,0xaa,0xb0,
+0xb2,0xb7,0xbb,0xbc,0xbe,0xc1,0xc2,0xc1,0xb9,0xb6,0xb2,0xad,0xa7,0xa1,0x9b,0x98,
+0x9b,0x9d,0x9e,0x9c,0x9b,0x9a,0x97,0x93,0x8e,0x7d,0x78,0x76,0x79,0x7a,0x72,0x76,
+0x86,0x88,0x8d,0x95,0x99,0x9b,0x9d,0xa0,0xa1,0xab,0xc4,0xe0,0xea,0xe2,0xdd,0xe0,
+0xd7,0xd5,0xd1,0xcb,0xc4,0xbe,0xb8,0xb5,0xb4,0xb1,0xab,0xa3,0x9e,0x9d,0xa0,0xa4,
+0xac,0xad,0xb0,0xb2,0xb4,0xb8,0xbd,0xc0,0xc7,0xc3,0xc5,0xcb,0xc9,0xbf,0xb6,0xb5,
+0xc0,0xc4,0xc5,0xc2,0xc0,0xc8,0x63,0x2e,0x7e,0xe5,0xe9,0xe7,0xee,0xed,0xee,0xec,
+0xe1,0xf2,0xe5,0xdd,0xe8,0xe1,0xdf,0xe7,0xf4,0xbb,0x81,0xc3,0xe5,0xf2,0xe8,0xdf,
+0xe9,0xe4,0xe0,0xc1,0xba,0xd0,0xbf,0x4f,0x3d,0x9d,0xce,0xc4,0xc6,0xc9,0xc3,0xc8,
+0xd0,0xd3,0xd4,0xd2,0xd0,0xd1,0xd1,0xd0,0xcf,0xaa,0x93,0x96,0x98,0x96,0x97,0x98,
+0x97,0xa0,0x99,0x98,0x93,0x92,0xa3,0x70,0x60,0x8d,0x79,0x92,0x7b,0x89,0xb3,0xa9,
+0x97,0x9b,0x99,0x97,0x81,0x6b,0x78,0x8a,0x9c,0x84,0x8f,0xb7,0xc1,0xa4,0x8c,0x88,
+0x8a,0x85,0xb5,0xda,0xd1,0xc7,0xc5,0xc5,0xaf,0xb0,0xab,0x63,0x6c,0x8f,0xa8,0xa9,
+0xb1,0x83,0x69,0x6b,0x62,0x52,0x4e,0x51,0x55,0x56,0x56,0x55,0x53,0x51,0x51,0x51,
+0x4d,0x4b,0x48,0x46,0x44,0x42,0x40,0x3e,0x3f,0x3c,0x3a,0x3a,0x39,0x3a,0x3f,0x45,
+0x5c,0x67,0x6d,0x6c,0x6d,0x6c,0x6d,0x74,0x78,0x77,0x73,0x6f,0x6f,0x74,0x75,0x73,
+0x7d,0x77,0x73,0x71,0x6b,0x66,0x68,0x6f,0x6f,0x70,0x6b,0x63,0x61,0x66,0x69,0x66,
+0x67,0x68,0x74,0x94,0x98,0x7b,0x6a,0x63,0x63,0x68,0x6c,0x6e,0x6f,0x71,0x72,0x71,
+0x73,0x6d,0x64,0x5a,0x4f,0x49,0x4c,0x52,0x51,0x46,0x40,0x42,0x3f,0x39,0x3c,0x46,
+0x4e,0x47,0x3c,0x36,0x3a,0x43,0x45,0x43,0x4d,0x61,0x76,0x82,0x84,0x83,0x7e,0x79,
+0x70,0x67,0x57,0x48,0x3f,0x3e,0x3f,0x3f,0x2e,0x21,0x20,0x30,0x38,0x34,0x36,0x3f,
+0x48,0x47,0x41,0x48,0x38,0x38,0x3b,0x4f,0x65,0x67,0x66,0x63,0x68,0x6f,0x71,0x6e,
+0x67,0x5f,0x5d,0x62,0x63,0x5d,0x5d,0x61,0x65,0x6a,0x6f,0x75,0x77,0x71,0x62,0x54,
+0x58,0x60,0x6b,0x75,0x80,0x8b,0x95,0x9a,0xa0,0x9e,0x98,0x94,0x8f,0x81,0x79,0x7e,
+0x90,0xa1,0xad,0xa8,0x9e,0x97,0x93,0x8e,0x86,0x81,0x7f,0x7f,0x7b,0x6f,0x60,0x57,
+0x41,0x3c,0x37,0x36,0x30,0x24,0x19,0x14,0x11,0x26,0x3e,0x4b,0x4f,0x4f,0x47,0x3e,
+0x73,0x6d,0x65,0x60,0x62,0x69,0x6f,0x72,0x6f,0x66,0x64,0x6b,0x6d,0x63,0x5b,0x5a,
+0x64,0x6a,0x6d,0x67,0x5f,0x60,0x6d,0x7b,0x81,0x7c,0x69,0x5c,0x62,0x6b,0x6a,0x67,
+0x60,0x66,0x6c,0x6c,0x6a,0x6b,0x6f,0x73,0x6b,0x63,0x5a,0x57,0x5b,0x63,0x69,0x6c,
+0x7a,0x7a,0x7a,0x74,0x67,0x72,0x5f,0x62,0x6a,0x76,0x79,0x71,0x6b,0x6f,0x6e,0x69,
+0x63,0x6a,0x6e,0x6d,0x6b,0x6b,0x69,0x66,0x68,0x61,0x59,0x55,0x57,0x5f,0x67,0x6c,
+0x6f,0x69,0x63,0x61,0x66,0x6d,0x6e,0x6b,0x74,0x77,0x74,0x6c,0x6b,0x72,0x79,0x7b,
+0x73,0x70,0x6e,0x6d,0x6b,0x6a,0x6f,0x75,0x78,0x79,0x78,0x75,0x79,0x7f,0x7f,0x7a,
+0x75,0x7b,0x7b,0x70,0x65,0x62,0x65,0x68,0x74,0x7e,0x89,0x88,0x7a,0x6a,0x61,0x60,
+0x66,0x60,0x64,0x73,0x7b,0x76,0x72,0x73,0x75,0x6e,0x69,0x6b,0x72,0x78,0x79,0x78,
+0x7a,0x75,0x70,0x6e,0x6d,0x6c,0x6c,0x6d,0x75,0x71,0x6f,0x73,0x74,0x74,0x79,0x81,
+0x86,0x7c,0x98,0xaf,0xc5,0xba,0xb6,0xb2,0xaf,0xa4,0xa0,0x9c,0x94,0x8f,0x8c,0x87,
+0x84,0x81,0x7c,0x76,0x6d,0x65,0x62,0x64,0x6e,0x83,0x99,0xa5,0xad,0xb6,0xbc,0xbd,
+0xbd,0xbd,0xbc,0xbc,0xbd,0xc0,0xc4,0xc7,0xbf,0xba,0xb1,0xa3,0x96,0x8f,0x8e,0x90,
+0x96,0x92,0x8e,0x8e,0x90,0x92,0x91,0x90,0x8d,0x90,0x94,0x98,0x9a,0x99,0x95,0x91,
+0x99,0xa0,0xa4,0xa0,0x9c,0x9d,0x9f,0xa0,0xa2,0xa9,0xab,0xa5,0xa4,0xab,0xae,0xab,
+0xb3,0xb8,0xba,0xb5,0xb4,0xba,0xbf,0xc0,0xc5,0xc1,0xbb,0xb6,0xb1,0xac,0xa6,0xa2,
+0x9f,0x9c,0x98,0x95,0x94,0x93,0x92,0x92,0x8e,0x86,0x7d,0x78,0x78,0x7a,0x7b,0x7b,
+0x89,0x91,0x97,0x97,0x9b,0xa2,0xa4,0xa1,0xac,0xc5,0xdf,0xe9,0xe8,0xe5,0xe0,0xda,
+0xcf,0xce,0xca,0xc5,0xc2,0xbf,0xb9,0xb3,0xb8,0xaf,0xa8,0xa4,0x9f,0x9b,0xa0,0xa8,
+0xad,0xb2,0xb6,0xb6,0xb8,0xbd,0xc0,0xbe,0xc8,0xc0,0xc1,0xca,0xc6,0xb9,0xb7,0xc1,
+0xc6,0xc4,0xc5,0xce,0xc4,0xca,0xa5,0x27,0x4c,0xc3,0xf7,0xed,0xe4,0xe9,0xed,0xeb,
+0xe8,0xdf,0xe5,0xe8,0xe3,0xdf,0xea,0xe3,0xe4,0xe8,0xeb,0xea,0xe6,0xe4,0xe7,0xea,
+0xe7,0xe4,0xc5,0xcb,0xb4,0xbf,0xe3,0x89,0x38,0x61,0xbd,0xcf,0xc0,0xc6,0xb7,0xbd,
+0xd1,0xd2,0xd4,0xd5,0xd3,0xd1,0xd0,0xcf,0xd2,0xab,0x92,0x93,0x95,0x95,0x9b,0xa1,
+0x99,0x9c,0x99,0x9b,0x9b,0x9c,0x9a,0x84,0x80,0xc7,0x83,0x87,0x8f,0x85,0xdd,0xdb,
+0xe3,0xe4,0xe6,0xe6,0xe1,0xcc,0x95,0x5b,0x7b,0x73,0x73,0xaf,0xb3,0x93,0x7f,0x8b,
+0x8c,0x8a,0xba,0xd4,0xcb,0xcb,0xc7,0xc3,0xb2,0xb5,0x95,0x5a,0x7a,0x9a,0xa3,0xae,
+0xa2,0x7d,0x65,0x63,0x5c,0x50,0x4e,0x52,0x54,0x53,0x53,0x54,0x54,0x53,0x50,0x4e,
+0x4a,0x47,0x45,0x45,0x43,0x3f,0x3c,0x3c,0x39,0x3b,0x3d,0x3d,0x3a,0x40,0x55,0x6a,
+0x71,0x75,0x7f,0x88,0x84,0x7a,0x7a,0x82,0x8c,0x89,0x7e,0x75,0x75,0x76,0x79,0x80,
+0x88,0x7e,0x6f,0x63,0x63,0x6b,0x70,0x70,0x69,0x6e,0x6f,0x6a,0x68,0x6c,0x6d,0x6a,
+0x68,0x74,0x85,0x8f,0x84,0x68,0x5d,0x69,0x58,0x63,0x67,0x69,0x72,0x78,0x78,0x78,
+0x78,0x6b,0x68,0x6b,0x6b,0x6e,0x64,0x4e,0x47,0x41,0x39,0x22,0x14,0x1a,0x21,0x2f,
+0x3d,0x50,0x54,0x44,0x3d,0x42,0x3e,0x2f,0x32,0x44,0x5e,0x76,0x87,0x8b,0x83,0x79,
+0x6e,0x61,0x53,0x4c,0x49,0x45,0x43,0x43,0x45,0x39,0x35,0x39,0x3e,0x46,0x47,0x40,
+0x2a,0x1d,0x25,0x41,0x4a,0x3b,0x38,0x45,0x5c,0x67,0x74,0x7a,0x76,0x6d,0x66,0x62,
+0x6c,0x6f,0x70,0x6f,0x72,0x73,0x6c,0x62,0x5d,0x60,0x57,0x49,0x3d,0x2d,0x2e,0x41,
+0x65,0x72,0x7d,0x7c,0x79,0x81,0x93,0xa1,0xa2,0xa2,0xa0,0x9c,0x9d,0xa2,0xa5,0xa4,
+0xa4,0xa1,0x9e,0x9c,0x9e,0x9f,0x9e,0x9c,0x9a,0x96,0x92,0x93,0x98,0x97,0x8c,0x80,
+0x6b,0x4e,0x39,0x38,0x36,0x30,0x39,0x4a,0x61,0x65,0x62,0x57,0x51,0x52,0x51,0x4d,
+0x6d,0x69,0x64,0x5f,0x5f,0x63,0x68,0x6b,0x60,0x5e,0x5e,0x61,0x63,0x60,0x5b,0x56,
+0x51,0x5a,0x60,0x5d,0x59,0x5e,0x66,0x6d,0x6c,0x6f,0x68,0x5f,0x5e,0x5d,0x5c,0x5f,
+0x64,0x69,0x6d,0x6d,0x6c,0x6c,0x69,0x65,0x5d,0x56,0x51,0x54,0x5f,0x6a,0x6f,0x70,
+0x68,0x6c,0x74,0x6d,0x64,0x6a,0x60,0x63,0x6d,0x73,0x77,0x74,0x6f,0x69,0x64,0x61,
+0x61,0x69,0x70,0x72,0x70,0x70,0x71,0x73,0x60,0x63,0x65,0x65,0x64,0x65,0x69,0x6d,
+0x6f,0x66,0x60,0x60,0x62,0x62,0x66,0x6b,0x6f,0x6e,0x6f,0x70,0x6f,0x6e,0x6e,0x70,
+0x76,0x75,0x75,0x75,0x74,0x71,0x6a,0x64,0x6d,0x6f,0x71,0x73,0x77,0x7c,0x7e,0x7c,
+0x7a,0x7a,0x75,0x6c,0x66,0x67,0x6c,0x6f,0x74,0x79,0x7c,0x79,0x70,0x67,0x64,0x65,
+0x65,0x64,0x69,0x71,0x73,0x71,0x73,0x78,0x76,0x73,0x72,0x75,0x77,0x78,0x79,0x7b,
+0x76,0x73,0x6d,0x66,0x61,0x60,0x64,0x69,0x6c,0x6d,0x70,0x71,0x70,0x70,0x76,0x7e,
+0x8f,0x8f,0xa9,0xb5,0xc1,0xb8,0xb7,0xb4,0xb1,0xa8,0xa4,0xa1,0x97,0x8f,0x8a,0x83,
+0x7a,0x77,0x74,0x73,0x70,0x6b,0x68,0x68,0x70,0x82,0x98,0xa8,0xb4,0xbb,0xba,0xb4,
+0xba,0xbb,0xbd,0xbd,0xbc,0xbb,0xbb,0xbc,0xc6,0xc5,0xc2,0xba,0xb0,0xa7,0xa0,0x9e,
+0x92,0x8e,0x89,0x86,0x85,0x84,0x81,0x7f,0x88,0x86,0x84,0x85,0x89,0x8e,0x93,0x95,
+0x9e,0xa1,0x9f,0x98,0x94,0x98,0x9e,0xa1,0x9b,0xa8,0xb0,0xac,0xa4,0xa3,0xa7,0xaa,
+0xab,0xb0,0xb3,0xb0,0xad,0xaf,0xb4,0xb7,0xbc,0xbc,0xbc,0xbc,0xbb,0xb7,0xb0,0xac,
+0xa2,0x9f,0x9b,0x99,0x99,0x98,0x96,0x94,0x89,0x83,0x7e,0x7d,0x7b,0x78,0x78,0x7a,
+0x8c,0x90,0x97,0x9e,0xa4,0xa7,0xaa,0xac,0xc6,0xd7,0xe6,0xe7,0xe2,0xde,0xd9,0xd4,
+0xd1,0xcf,0xc9,0xc1,0xbd,0xba,0xb6,0xb2,0xb5,0xab,0xa3,0xa2,0xa2,0xa0,0xa2,0xa7,
+0xab,0xb0,0xb4,0xb6,0xb8,0xbc,0xbf,0xbe,0xc4,0xbf,0xc2,0xc8,0xc4,0xb8,0xb5,0xbc,
+0xc1,0xc4,0xc8,0xd1,0xc9,0xce,0xb7,0x56,0x35,0x6c,0xd0,0xe7,0xf3,0xef,0xe2,0xeb,
+0xe3,0xf1,0xe4,0xd3,0xd3,0xe3,0xd5,0xe4,0xe5,0xe8,0xea,0xe8,0xe4,0xe3,0xe5,0xe8,
+0xe0,0xe9,0xc8,0xbe,0xc2,0xbe,0xc8,0xbe,0x4a,0x41,0x91,0xc8,0xc3,0xc3,0xbe,0xc0,
+0xd0,0xd2,0xd3,0xd4,0xd3,0xd2,0xd2,0xd2,0xd5,0xae,0x96,0x97,0x99,0x97,0x98,0x9a,
+0x98,0x9c,0x99,0x9b,0x9c,0x9d,0x9c,0x87,0x85,0xd1,0xa0,0x87,0x86,0x89,0xd3,0xeb,
+0xcd,0xcc,0xd1,0xdc,0xe1,0xd2,0xb6,0xa1,0x4b,0x5e,0x84,0x97,0x9a,0x8a,0x8e,0x92,
+0x90,0x8d,0xbb,0xd6,0xcd,0xcc,0xc9,0xc4,0xb6,0xb4,0x88,0x60,0x8a,0xa3,0xa8,0xad,
+0x98,0x78,0x64,0x62,0x59,0x4e,0x4f,0x55,0x52,0x52,0x51,0x52,0x51,0x50,0x4e,0x4c,
+0x47,0x43,0x41,0x41,0x40,0x3d,0x3c,0x3d,0x3a,0x3d,0x3c,0x3e,0x4e,0x65,0x70,0x6e,
+0x6f,0x76,0x7f,0x81,0x7a,0x74,0x7c,0x88,0x84,0x7f,0x74,0x71,0x78,0x79,0x75,0x75,
+0x7b,0x7c,0x7a,0x75,0x70,0x6d,0x6c,0x6b,0x6f,0x68,0x64,0x68,0x6f,0x72,0x72,0x70,
+0x71,0x7d,0x82,0x7f,0x78,0x6f,0x6e,0x78,0x6e,0x67,0x58,0x56,0x68,0x74,0x70,0x68,
+0x5b,0x5e,0x62,0x55,0x43,0x49,0x5b,0x60,0x64,0x53,0x48,0x38,0x2a,0x28,0x2f,0x45,
+0x62,0x5f,0x52,0x41,0x3b,0x3f,0x42,0x40,0x3d,0x46,0x49,0x45,0x4a,0x5c,0x6c,0x71,
+0x6f,0x67,0x5f,0x5a,0x54,0x49,0x3f,0x3a,0x44,0x42,0x47,0x4c,0x48,0x40,0x34,0x25,
+0x1d,0x26,0x3c,0x51,0x51,0x44,0x43,0x4d,0x58,0x57,0x57,0x57,0x55,0x4b,0x3b,0x2f,
+0x34,0x46,0x58,0x5b,0x55,0x4e,0x49,0x44,0x48,0x4b,0x48,0x45,0x48,0x4a,0x4a,0x4d,
+0x61,0x63,0x67,0x70,0x7b,0x81,0x7b,0x72,0x69,0x73,0x7c,0x7b,0x73,0x68,0x5b,0x51,
+0x58,0x5f,0x61,0x5c,0x57,0x56,0x58,0x59,0x4b,0x4f,0x54,0x5b,0x6a,0x7f,0x91,0x9b,
+0x8b,0x7a,0x5a,0x3c,0x34,0x42,0x54,0x5e,0x5c,0x4e,0x42,0x41,0x3e,0x32,0x26,0x21,
+0x65,0x64,0x61,0x5e,0x5c,0x5e,0x64,0x69,0x72,0x73,0x6f,0x66,0x60,0x5d,0x56,0x4e,
+0x53,0x57,0x60,0x72,0x87,0x92,0x88,0x78,0x68,0x6d,0x6f,0x70,0x70,0x68,0x63,0x67,
+0x68,0x6c,0x6d,0x6d,0x73,0x79,0x76,0x6e,0x61,0x59,0x54,0x58,0x65,0x72,0x78,0x79,
+0x84,0x84,0x87,0x70,0x62,0x5a,0x56,0x58,0x5d,0x5f,0x67,0x6f,0x70,0x69,0x65,0x66,
+0x5d,0x63,0x69,0x6b,0x66,0x62,0x64,0x69,0x67,0x70,0x79,0x79,0x74,0x70,0x72,0x76,
+0x6b,0x63,0x61,0x68,0x6b,0x6c,0x74,0x80,0x76,0x71,0x73,0x7b,0x7c,0x75,0x70,0x71,
+0x70,0x6e,0x6a,0x6c,0x75,0x7d,0x79,0x71,0x65,0x69,0x6f,0x74,0x73,0x71,0x71,0x73,
+0x7a,0x79,0x75,0x73,0x72,0x71,0x6d,0x67,0x70,0x72,0x73,0x71,0x6e,0x6c,0x6d,0x6f,
+0x68,0x6b,0x6c,0x68,0x63,0x62,0x68,0x6e,0x74,0x75,0x77,0x79,0x77,0x74,0x76,0x7a,
+0x78,0x77,0x76,0x72,0x6d,0x68,0x64,0x61,0x65,0x70,0x79,0x78,0x74,0x75,0x7a,0x7f,
+0x86,0x9c,0xba,0xc1,0xc6,0xc1,0xc3,0xbe,0xbd,0xb5,0xb3,0xb0,0xa6,0x9c,0x94,0x8b,
+0x8a,0x7e,0x70,0x67,0x62,0x5f,0x5f,0x61,0x65,0x7c,0x93,0x9e,0xa2,0xab,0xb5,0xbc,
+0xba,0xb8,0xb6,0xb4,0xb4,0xb7,0xbd,0xc1,0xbf,0xc1,0xc3,0xc3,0xc0,0xb9,0xb2,0xae,
+0xaa,0xa5,0x9f,0x9b,0x98,0x95,0x92,0x8f,0x90,0x8a,0x81,0x7b,0x7b,0x7f,0x84,0x87,
+0x89,0x8d,0x90,0x91,0x93,0x97,0x9a,0x9a,0x97,0x9b,0xa1,0xa5,0xa7,0xa8,0xa9,0xa9,
+0xa9,0xab,0xae,0xae,0xaa,0xa7,0xa9,0xad,0xb1,0xb2,0xb5,0xb9,0xba,0xba,0xb7,0xb4,
+0xaa,0xa5,0x9f,0x9c,0x9b,0x99,0x97,0x94,0x8b,0x84,0x80,0x80,0x7b,0x74,0x76,0x7d,
+0x8b,0x8e,0x97,0xa0,0xa2,0xa5,0xb2,0xc3,0xe1,0xe7,0xe9,0xe3,0xdc,0xd9,0xd5,0xd1,
+0xcd,0xca,0xc3,0xbb,0xb6,0xb5,0xb4,0xb3,0xb0,0xa5,0x9e,0xa0,0xa5,0xa6,0xa5,0xa6,
+0xaa,0xaf,0xb4,0xb7,0xba,0xbe,0xc0,0xbf,0xc5,0xc5,0xc8,0xcc,0xc7,0xbf,0xbb,0xbd,
+0xc3,0xc9,0xca,0xd2,0xce,0xd2,0xcd,0x99,0x33,0x38,0x53,0xb9,0xd6,0xe5,0xed,0xd8,
+0xd1,0xc2,0x8d,0x5c,0x62,0xd1,0xe6,0xe7,0xe5,0xe7,0xe8,0xe7,0xe5,0xe4,0xe5,0xe7,
+0xe7,0xe1,0xd2,0xbd,0xba,0xbd,0xbd,0xd0,0x88,0x39,0x56,0xaf,0xca,0xc4,0xc0,0xc2,
+0xd0,0xd1,0xd2,0xd3,0xd3,0xd3,0xd4,0xd6,0xd5,0xb1,0x9a,0x9d,0x9f,0x9b,0x99,0x98,
+0x99,0x9c,0x99,0x9c,0x9c,0x9d,0x9d,0x89,0x78,0xd4,0xe8,0xb0,0x7d,0xa1,0xe5,0xd7,
+0xbe,0xbb,0xbe,0xd0,0xd8,0xc6,0xbe,0xcf,0x7e,0x79,0xa1,0x8b,0x91,0x8c,0x99,0x8c,
+0x94,0x91,0xba,0xd7,0xce,0xcc,0xcb,0xc5,0xb5,0xb1,0x7f,0x78,0xaf,0xb6,0xae,0xa5,
+0x8a,0x70,0x61,0x5f,0x55,0x4c,0x4f,0x57,0x51,0x50,0x4f,0x4f,0x4e,0x4c,0x4a,0x48,
+0x45,0x42,0x40,0x3f,0x3d,0x3b,0x3b,0x3d,0x3a,0x3d,0x41,0x4d,0x67,0x7e,0x7d,0x6f,
+0x6a,0x76,0x85,0x8a,0x83,0x79,0x72,0x70,0x71,0x71,0x6d,0x6f,0x78,0x79,0x74,0x74,
+0x75,0x7b,0x81,0x80,0x77,0x6e,0x6c,0x6f,0x6a,0x6e,0x74,0x76,0x6f,0x6a,0x76,0x87,
+0x81,0x8b,0x84,0x72,0x6d,0x72,0x76,0x79,0x76,0x7b,0x78,0x73,0x75,0x71,0x66,0x5f,
+0x57,0x5e,0x61,0x51,0x40,0x45,0x53,0x55,0x47,0x3c,0x38,0x30,0x2d,0x34,0x3e,0x51,
+0x54,0x43,0x32,0x2c,0x2e,0x32,0x38,0x3e,0x33,0x3c,0x44,0x45,0x4a,0x5b,0x76,0x89,
+0x7f,0x74,0x69,0x64,0x61,0x5b,0x51,0x4b,0x43,0x43,0x49,0x4c,0x44,0x3d,0x35,0x2b,
+0x2e,0x3c,0x4c,0x52,0x4e,0x49,0x4b,0x4f,0x4d,0x50,0x51,0x4e,0x48,0x48,0x4f,0x56,
+0x70,0x7b,0x81,0x77,0x63,0x53,0x4c,0x4b,0x47,0x35,0x39,0x4e,0x50,0x43,0x42,0x4b,
+0x5f,0x64,0x61,0x52,0x44,0x46,0x55,0x64,0x74,0x7f,0x85,0x7c,0x6e,0x68,0x6e,0x75,
+0x78,0x7b,0x79,0x74,0x79,0x88,0x93,0x96,0x8a,0x7b,0x5f,0x45,0x3e,0x50,0x6e,0x84,
+0x94,0x85,0x7b,0x79,0x6a,0x54,0x51,0x5e,0x4e,0x44,0x3b,0x38,0x31,0x26,0x21,0x23,
+0x60,0x5f,0x5e,0x5c,0x5a,0x5c,0x65,0x6e,0x74,0x71,0x69,0x5f,0x58,0x54,0x52,0x51,
+0x5b,0x5d,0x5d,0x59,0x51,0x4f,0x55,0x5d,0x6c,0x6c,0x6c,0x73,0x77,0x6c,0x61,0x63,
+0x6e,0x70,0x6d,0x6a,0x73,0x81,0x85,0x7f,0x76,0x6d,0x62,0x60,0x67,0x72,0x7b,0x7f,
+0x8b,0x87,0x83,0x65,0x5c,0x55,0x5f,0x63,0x71,0x70,0x73,0x76,0x73,0x6b,0x65,0x63,
+0x65,0x65,0x67,0x68,0x65,0x61,0x63,0x68,0x67,0x6d,0x72,0x6f,0x67,0x64,0x68,0x6d,
+0x6d,0x67,0x64,0x66,0x66,0x65,0x69,0x6f,0x71,0x6c,0x6c,0x72,0x76,0x73,0x6d,0x6b,
+0x60,0x5e,0x58,0x55,0x60,0x6e,0x6e,0x65,0x65,0x6a,0x73,0x77,0x70,0x68,0x6a,0x72,
+0x7c,0x77,0x72,0x71,0x74,0x70,0x65,0x5a,0x65,0x6b,0x71,0x72,0x71,0x70,0x70,0x70,
+0x6b,0x6e,0x6b,0x62,0x5e,0x63,0x68,0x6a,0x76,0x73,0x73,0x73,0x71,0x6f,0x72,0x78,
+0x7c,0x7b,0x79,0x79,0x79,0x75,0x6b,0x61,0x66,0x72,0x7b,0x79,0x76,0x78,0x7c,0x7e,
+0x7d,0xa4,0xbf,0xc4,0xc5,0xc2,0xc1,0xb7,0xc0,0xb7,0xb4,0xb0,0xa4,0x99,0x8f,0x86,
+0x79,0x76,0x73,0x70,0x67,0x58,0x4a,0x42,0x47,0x67,0x8f,0xa6,0xad,0xb1,0xb7,0xbc,
+0xbc,0xb9,0xb4,0xaf,0xac,0xad,0xb0,0xb3,0xbd,0xbf,0xc2,0xc7,0xca,0xca,0xc8,0xc6,
+0xc4,0xc1,0xbd,0xba,0xb8,0xb6,0xb3,0xb2,0xad,0xa8,0xa0,0x99,0x93,0x8e,0x8b,0x88,
+0x84,0x87,0x8d,0x93,0x98,0x9c,0x9d,0x9d,0x99,0x97,0x99,0x9e,0xa3,0xa5,0xa7,0xaa,
+0xa9,0xa6,0xa7,0xaa,0xa9,0xa3,0xa1,0xa4,0xa9,0xa8,0xa7,0xa8,0xaa,0xad,0xb0,0xb2,
+0xb3,0xae,0xa8,0xa1,0x9c,0x99,0x97,0x96,0x94,0x8a,0x82,0x7f,0x78,0x72,0x79,0x85,
+0x8a,0x91,0x9a,0x9e,0x9e,0xa9,0xc3,0xdd,0xe8,0xe9,0xe5,0xde,0xd9,0xd7,0xd4,0xd0,
+0xc3,0xc1,0xbc,0xb6,0xb3,0xb4,0xb4,0xb3,0xa9,0xa2,0x9d,0xa1,0xa6,0xa8,0xa7,0xa7,
+0xad,0xb1,0xb6,0xbb,0xbe,0xc1,0xc3,0xc3,0xc5,0xca,0xcf,0xd1,0xcf,0xca,0xc6,0xc4,
+0xc8,0xcd,0xc9,0xce,0xcc,0xcd,0xd5,0xc8,0x77,0x3c,0x3c,0x3a,0x53,0x5a,0x6c,0x65,
+0x53,0x38,0x3c,0x46,0x40,0xae,0xe8,0xe6,0xe5,0xe5,0xe6,0xe6,0xe6,0xe5,0xe4,0xe4,
+0xea,0xe2,0xda,0xbd,0xb6,0xc4,0xbf,0xc0,0xd0,0x64,0x36,0x7d,0xc7,0xcc,0xbd,0xc3,
+0xd1,0xd2,0xd2,0xd2,0xd2,0xd3,0xd5,0xd7,0xd3,0xb3,0x9f,0xa1,0xa2,0x9f,0x9e,0x9e,
+0x9d,0x9e,0x9b,0x9d,0x9c,0x9c,0x9b,0x8a,0x7e,0xc1,0xf4,0xe5,0xb1,0xb8,0xe1,0xd5,
+0xc1,0xbd,0xbc,0xcd,0xd5,0xbc,0xb3,0xce,0xb4,0x80,0x9d,0x8a,0x96,0x96,0x9a,0x90,
+0x96,0x92,0xb6,0xd5,0xce,0xc9,0xcc,0xc5,0xb5,0xaf,0x79,0x8f,0xca,0xc2,0xb2,0x9f,
+0x82,0x6a,0x5c,0x5a,0x53,0x4c,0x50,0x55,0x50,0x4f,0x4d,0x4c,0x4b,0x49,0x46,0x44,
+0x45,0x42,0x40,0x3f,0x3c,0x39,0x3a,0x3c,0x38,0x3d,0x4d,0x66,0x79,0x7c,0x78,0x74,
+0x77,0x78,0x78,0x76,0x77,0x77,0x72,0x6b,0x64,0x6d,0x71,0x72,0x75,0x74,0x76,0x7e,
+0x7b,0x7b,0x7b,0x79,0x72,0x6c,0x6f,0x76,0x76,0x72,0x72,0x75,0x77,0x77,0x79,0x7e,
+0x84,0x8a,0x80,0x6e,0x6c,0x71,0x71,0x6f,0x68,0x76,0x77,0x69,0x5d,0x57,0x58,0x5e,
+0x6b,0x6c,0x63,0x50,0x43,0x42,0x3b,0x2e,0x3d,0x3f,0x3f,0x30,0x30,0x3f,0x42,0x43,
+0x37,0x26,0x1a,0x1d,0x26,0x2d,0x37,0x41,0x3f,0x3c,0x3e,0x42,0x42,0x45,0x5a,0x73,
+0x7a,0x70,0x67,0x65,0x68,0x69,0x64,0x5f,0x62,0x60,0x64,0x62,0x56,0x4b,0x41,0x37,
+0x2c,0x34,0x3f,0x4a,0x53,0x54,0x4b,0x41,0x4c,0x47,0x47,0x52,0x64,0x74,0x79,0x78,
+0x83,0x7d,0x73,0x66,0x59,0x4e,0x49,0x48,0x39,0x2e,0x45,0x69,0x67,0x54,0x55,0x61,
+0x60,0x61,0x61,0x60,0x65,0x6f,0x79,0x7e,0x6e,0x68,0x5c,0x50,0x4b,0x54,0x64,0x71,
+0x73,0x78,0x6f,0x57,0x46,0x4c,0x5d,0x67,0x6d,0x7a,0x7e,0x6c,0x52,0x4a,0x57,0x67,
+0x78,0x81,0x82,0x77,0x6d,0x68,0x61,0x59,0x4e,0x4d,0x43,0x32,0x29,0x2c,0x2e,0x2d,
+0x60,0x5d,0x5c,0x5b,0x5a,0x5c,0x65,0x6f,0x73,0x68,0x5e,0x57,0x4f,0x48,0x4a,0x51,
+0x50,0x4f,0x52,0x53,0x4c,0x49,0x59,0x70,0x79,0x76,0x73,0x76,0x76,0x6a,0x61,0x67,
+0x75,0x76,0x70,0x69,0x6c,0x76,0x7b,0x78,0x78,0x72,0x69,0x63,0x62,0x68,0x70,0x76,
+0x8d,0x89,0x82,0x6b,0x6b,0x6a,0x7d,0x81,0x79,0x7a,0x78,0x72,0x6c,0x68,0x63,0x5d,
+0x63,0x60,0x60,0x65,0x6a,0x6e,0x72,0x76,0x66,0x65,0x63,0x5f,0x5b,0x5b,0x5f,0x63,
+0x6a,0x6a,0x67,0x62,0x63,0x66,0x64,0x5f,0x66,0x67,0x66,0x68,0x6e,0x72,0x6b,0x61,
+0x5a,0x5f,0x60,0x60,0x69,0x75,0x76,0x6f,0x6c,0x6f,0x73,0x72,0x69,0x65,0x70,0x7f,
+0x7f,0x73,0x67,0x63,0x66,0x65,0x5f,0x58,0x5b,0x65,0x6e,0x6e,0x6a,0x68,0x69,0x68,
+0x6a,0x6b,0x67,0x64,0x6a,0x76,0x7b,0x78,0x7b,0x72,0x6b,0x6b,0x6b,0x6b,0x71,0x78,
+0x78,0x78,0x75,0x70,0x6e,0x71,0x73,0x72,0x70,0x74,0x73,0x6b,0x69,0x6f,0x75,0x77,
+0x95,0xb8,0xb9,0xb2,0xab,0xa6,0xa2,0x96,0x8f,0x86,0x82,0x7d,0x71,0x66,0x5e,0x56,
+0x4f,0x49,0x42,0x3b,0x35,0x32,0x35,0x3a,0x3c,0x4d,0x66,0x80,0x95,0xa2,0xa5,0xa3,
+0xb5,0xb8,0xbc,0xbd,0xb9,0xb3,0xad,0xaa,0xb5,0xb6,0xb9,0xbe,0xc2,0xc4,0xc5,0xc5,
+0xc6,0xc5,0xc3,0xc1,0xc1,0xc0,0xbf,0xbf,0xbb,0xba,0xb8,0xb5,0xaf,0xa8,0x9f,0x9a,
+0x94,0x91,0x8e,0x8e,0x91,0x95,0x99,0x9c,0x9d,0xa4,0xab,0xa8,0x9d,0x96,0x9d,0xa8,
+0xa3,0x9d,0x9c,0xa2,0xa6,0xa3,0x9f,0x9e,0xa3,0xa2,0x9f,0x9d,0x9d,0x9f,0xa3,0xa6,
+0xaf,0xb0,0xaf,0xaa,0xa3,0x9c,0x99,0x98,0x95,0x8b,0x82,0x7d,0x78,0x76,0x7e,0x8b,
+0x8b,0x94,0x9b,0xa0,0xab,0xc2,0xda,0xe9,0xe5,0xe3,0xdf,0xda,0xd7,0xd4,0xcf,0xca,
+0xbd,0xbc,0xb9,0xb6,0xb5,0xb6,0xb3,0xaf,0xa2,0xa0,0xa0,0xa3,0xa6,0xa8,0xa9,0xaa,
+0xaf,0xb2,0xb7,0xbd,0xc0,0xc2,0xc4,0xc6,0xc3,0xca,0xd1,0xd4,0xd2,0xcf,0xcc,0xc9,
+0xcc,0xcf,0xca,0xcc,0xcd,0xc9,0xce,0xd3,0xd0,0x97,0x50,0x38,0x29,0x41,0x2d,0x2f,
+0x37,0x5b,0x7b,0x72,0x42,0x63,0xa8,0xe5,0xe7,0xe6,0xe4,0xe5,0xe6,0xe6,0xe3,0xe1,
+0xe1,0xf0,0xda,0xbe,0xc2,0xc5,0xbc,0xbb,0xde,0xa3,0x47,0x46,0xa7,0xd2,0xbf,0xc5,
+0xd3,0xd3,0xd3,0xd2,0xd2,0xd2,0xd4,0xd6,0xd4,0xb7,0xa4,0xa3,0xa2,0xa0,0xa3,0xa5,
+0xa3,0xa4,0x9f,0xa1,0x9e,0x9c,0x9c,0x8c,0x7f,0xcc,0xda,0xda,0xe2,0xd9,0xdf,0xde,
+0xc6,0xc1,0xbe,0xce,0xdc,0xc6,0xb6,0xc7,0xb9,0x7a,0x97,0x99,0x97,0x98,0x93,0x99,
+0x94,0x90,0xb0,0xd3,0xcd,0xc6,0xcc,0xc3,0xb8,0xad,0x77,0x9a,0xcd,0xc2,0xb5,0x9e,
+0x80,0x68,0x58,0x55,0x52,0x4f,0x50,0x50,0x4f,0x4d,0x4b,0x4a,0x48,0x46,0x44,0x42,
+0x42,0x40,0x3e,0x3d,0x3a,0x38,0x3a,0x3d,0x45,0x4e,0x60,0x73,0x7d,0x7b,0x77,0x77,
+0x6e,0x76,0x7f,0x85,0x86,0x81,0x76,0x6c,0x6f,0x78,0x79,0x76,0x74,0x71,0x75,0x7f,
+0x7f,0x79,0x73,0x6f,0x6d,0x6b,0x6c,0x6e,0x70,0x71,0x70,0x70,0x74,0x78,0x75,0x6e,
+0x75,0x77,0x6f,0x68,0x6d,0x70,0x6c,0x6b,0x71,0x77,0x71,0x68,0x68,0x6a,0x6a,0x6c,
+0x68,0x6a,0x5f,0x4c,0x43,0x45,0x44,0x40,0x46,0x46,0x46,0x39,0x38,0x42,0x3d,0x39,
+0x2d,0x23,0x19,0x17,0x1e,0x29,0x37,0x41,0x46,0x45,0x46,0x46,0x42,0x3e,0x41,0x47,
+0x5a,0x60,0x66,0x66,0x63,0x61,0x62,0x63,0x72,0x6a,0x63,0x59,0x4b,0x44,0x40,0x39,
+0x37,0x30,0x30,0x3b,0x48,0x4a,0x3f,0x34,0x3c,0x50,0x67,0x70,0x6c,0x68,0x6c,0x73,
+0x73,0x67,0x5a,0x50,0x45,0x39,0x32,0x31,0x30,0x3c,0x58,0x6a,0x6b,0x72,0x78,0x73,
+0x7c,0x74,0x6b,0x6b,0x72,0x71,0x62,0x51,0x3e,0x3a,0x3e,0x50,0x66,0x6f,0x66,0x5a,
+0x45,0x37,0x29,0x32,0x56,0x7e,0x8f,0x8c,0x89,0x73,0x5b,0x54,0x5f,0x67,0x60,0x52,
+0x5f,0x6e,0x78,0x77,0x75,0x73,0x67,0x58,0x5b,0x52,0x42,0x37,0x3a,0x43,0x42,0x3a,
+0x5e,0x5a,0x5a,0x5d,0x5d,0x5c,0x5f,0x65,0x6e,0x62,0x5a,0x58,0x51,0x49,0x4a,0x53,
+0x57,0x4d,0x4d,0x59,0x5f,0x5b,0x57,0x58,0x5f,0x63,0x63,0x61,0x5a,0x51,0x54,0x64,
+0x76,0x76,0x72,0x6d,0x6b,0x6b,0x6b,0x69,0x67,0x66,0x64,0x60,0x5e,0x5f,0x64,0x69,
+0x7e,0x7e,0x72,0x64,0x61,0x5f,0x6d,0x6b,0x67,0x6c,0x6e,0x6a,0x67,0x68,0x67,0x63,
+0x60,0x5f,0x5f,0x62,0x6b,0x75,0x79,0x78,0x69,0x65,0x60,0x5e,0x5f,0x61,0x62,0x63,
+0x65,0x6b,0x6b,0x66,0x6a,0x72,0x70,0x67,0x66,0x69,0x69,0x69,0x6f,0x74,0x6c,0x5e,
+0x53,0x57,0x58,0x59,0x60,0x6b,0x73,0x75,0x73,0x6f,0x69,0x62,0x5d,0x60,0x6e,0x7c,
+0x75,0x6c,0x64,0x64,0x66,0x63,0x5d,0x58,0x5e,0x67,0x6c,0x67,0x62,0x62,0x65,0x66,
+0x68,0x66,0x62,0x63,0x6d,0x7a,0x7f,0x7c,0x7b,0x6e,0x63,0x62,0x64,0x65,0x6b,0x73,
+0x6d,0x79,0x80,0x79,0x70,0x71,0x7c,0x84,0x7f,0x78,0x6c,0x61,0x5f,0x67,0x72,0x78,
+0x8f,0xa1,0x81,0x6f,0x63,0x5f,0x5e,0x57,0x56,0x4e,0x4d,0x4d,0x47,0x42,0x3f,0x39,
+0x3b,0x3c,0x3f,0x3f,0x3b,0x36,0x34,0x37,0x41,0x41,0x41,0x47,0x52,0x61,0x6f,0x76,
+0x83,0x8b,0x96,0xa2,0xab,0xb1,0xb5,0xb6,0xb0,0xb3,0xb8,0xbd,0xc0,0xc1,0xc2,0xc2,
+0xc5,0xc4,0xc3,0xc2,0xc1,0xc1,0xc0,0xc0,0xbd,0xbc,0xbc,0xbb,0xb8,0xb3,0xad,0xa8,
+0x9f,0x9b,0x97,0x97,0x97,0x97,0x99,0x9b,0xa6,0xad,0xb3,0xb0,0xa7,0xa0,0xa0,0xa2,
+0xa1,0x9c,0x99,0x9e,0xa5,0xa6,0xa3,0xa0,0xa0,0xa1,0xa1,0x9f,0x9d,0x9c,0x9b,0x9b,
+0x9f,0xa4,0xaa,0xab,0xa7,0xa0,0x9b,0x99,0x90,0x88,0x7f,0x7b,0x7b,0x7e,0x86,0x8d,
+0x8f,0x95,0x9e,0xad,0xc6,0xde,0xe7,0xe2,0xe1,0xde,0xd9,0xd6,0xd2,0xcd,0xc6,0xc0,
+0xbd,0xbb,0xb9,0xb7,0xb8,0xb6,0xaf,0xa7,0x9e,0xa0,0xa3,0xa5,0xa7,0xa9,0xac,0xae,
+0xb0,0xb2,0xb6,0xbc,0xbf,0xc1,0xc4,0xc7,0xc5,0xca,0xd2,0xd6,0xd5,0xd1,0xce,0xcd,
+0xcf,0xd1,0xd0,0xd1,0xd3,0xcc,0xc8,0xcc,0xcd,0xd1,0xb6,0x9d,0x9a,0x77,0x97,0xa2,
+0xb8,0xa5,0x66,0x40,0x3f,0x40,0x54,0xc5,0xe9,0xe5,0xe0,0xe0,0xe4,0xe7,0xe6,0xe3,
+0xe6,0xe9,0xdc,0xd3,0xc2,0xb4,0xbc,0xb7,0xbe,0xcf,0x7f,0x31,0x75,0xc9,0xc7,0xc6,
+0xd3,0xd4,0xd3,0xd2,0xd1,0xd1,0xd3,0xd4,0xd8,0xbb,0xa6,0xa3,0xa1,0xa0,0xa3,0xa5,
+0xa7,0xa6,0xa1,0xa4,0xa0,0x9d,0x9e,0x90,0x76,0xd7,0xe2,0xd8,0xe2,0xe5,0xed,0xd9,
+0xc5,0xbd,0xb9,0xca,0xdc,0xd0,0xbf,0xc1,0xc2,0x88,0x97,0x9a,0x8e,0x97,0x8e,0x94,
+0x91,0x8d,0xa9,0xd1,0xcd,0xc4,0xcc,0xc1,0xb4,0xa8,0x7f,0xa7,0xcb,0xc4,0xb6,0x99,
+0x80,0x67,0x55,0x51,0x50,0x50,0x4f,0x4a,0x4e,0x4c,0x49,0x47,0x46,0x44,0x42,0x40,
+0x3e,0x3c,0x3b,0x3a,0x3a,0x3c,0x42,0x49,0x64,0x6d,0x72,0x72,0x76,0x7c,0x78,0x6d,
+0x6e,0x73,0x75,0x6d,0x62,0x5f,0x69,0x74,0x83,0x85,0x7f,0x78,0x75,0x70,0x6d,0x70,
+0x77,0x76,0x73,0x6f,0x6d,0x6b,0x66,0x60,0x63,0x6f,0x77,0x72,0x6e,0x6f,0x6f,0x6d,
+0x6c,0x6a,0x63,0x62,0x6a,0x6c,0x69,0x6a,0x70,0x72,0x6a,0x63,0x68,0x6c,0x68,0x66,
+0x63,0x64,0x5a,0x4e,0x4f,0x51,0x4f,0x50,0x39,0x2c,0x2f,0x34,0x38,0x36,0x2e,0x35,
+0x25,0x25,0x23,0x20,0x20,0x26,0x2d,0x33,0x35,0x43,0x4a,0x49,0x4d,0x57,0x55,0x4a,
+0x4f,0x5f,0x6b,0x66,0x5a,0x56,0x61,0x6c,0x65,0x5e,0x58,0x50,0x44,0x3f,0x3d,0x38,
+0x43,0x3c,0x3d,0x47,0x4d,0x47,0x3c,0x35,0x4c,0x51,0x5b,0x62,0x64,0x5d,0x52,0x4a,
+0x40,0x3c,0x39,0x35,0x30,0x31,0x42,0x56,0x5c,0x55,0x51,0x52,0x58,0x6a,0x7a,0x7e,
+0x8a,0x8b,0x88,0x82,0x7f,0x7e,0x7e,0x7c,0x74,0x68,0x5d,0x5e,0x67,0x70,0x75,0x78,
+0x7a,0x8a,0x99,0x99,0x89,0x73,0x5e,0x51,0x42,0x45,0x49,0x4f,0x57,0x5e,0x5f,0x5c,
+0x5d,0x54,0x59,0x6e,0x82,0x90,0xa2,0xb5,0xb4,0xa6,0x9a,0x99,0x99,0x94,0x91,0x93,
+0x57,0x54,0x58,0x62,0x66,0x60,0x5a,0x58,0x50,0x4e,0x50,0x55,0x57,0x56,0x57,0x59,
+0x51,0x51,0x4f,0x4a,0x49,0x4f,0x59,0x61,0x5d,0x64,0x65,0x61,0x5c,0x58,0x61,0x72,
+0x75,0x72,0x71,0x71,0x6f,0x69,0x64,0x63,0x62,0x62,0x62,0x62,0x62,0x63,0x67,0x69,
+0x71,0x7a,0x6c,0x6b,0x63,0x65,0x6f,0x6d,0x73,0x76,0x7a,0x7a,0x75,0x6c,0x67,0x66,
+0x6c,0x70,0x70,0x6d,0x72,0x7b,0x7b,0x74,0x68,0x62,0x5b,0x5a,0x5c,0x5f,0x5f,0x5e,
+0x64,0x68,0x69,0x67,0x67,0x6a,0x69,0x65,0x6a,0x67,0x64,0x64,0x68,0x68,0x62,0x5b,
+0x67,0x64,0x60,0x5c,0x5c,0x61,0x69,0x70,0x6f,0x67,0x5d,0x56,0x59,0x62,0x69,0x6b,
+0x67,0x65,0x66,0x6b,0x6b,0x65,0x5d,0x58,0x64,0x6a,0x6b,0x65,0x63,0x68,0x6d,0x6e,
+0x69,0x67,0x64,0x63,0x67,0x6e,0x74,0x77,0x79,0x6b,0x61,0x61,0x62,0x60,0x65,0x6d,
+0x6d,0x7d,0x88,0x82,0x77,0x76,0x7d,0x82,0x7c,0x73,0x67,0x61,0x5f,0x65,0x6f,0x78,
+0x8d,0x95,0x67,0x59,0x51,0x4e,0x4e,0x4c,0x4b,0x45,0x47,0x4c,0x49,0x48,0x47,0x42,
+0x48,0x42,0x3b,0x36,0x32,0x32,0x36,0x3c,0x3d,0x41,0x45,0x44,0x40,0x3f,0x45,0x4b,
+0x48,0x4d,0x55,0x60,0x6d,0x7c,0x88,0x90,0x97,0x9d,0xa6,0xae,0xb6,0xbd,0xc4,0xc8,
+0xc7,0xc7,0xc6,0xc4,0xc3,0xc1,0xc1,0xc1,0xc3,0xc1,0xc0,0xbf,0xbe,0xbc,0xb9,0xb7,
+0xae,0xab,0xab,0xad,0xac,0xa9,0xa8,0xab,0xad,0xaf,0xaf,0xaf,0xb2,0xb4,0xad,0xa4,
+0xa7,0xa5,0xa2,0xa1,0xa3,0xa6,0xa5,0xa2,0x9f,0xa2,0xa5,0xa5,0xa3,0x9f,0x9d,0x9c,
+0x98,0x9a,0x9d,0xa1,0xa4,0xa3,0xa1,0x9e,0x93,0x8b,0x7e,0x76,0x7a,0x85,0x8d,0x8e,
+0x98,0x9f,0xaf,0xc5,0xdb,0xe6,0xe3,0xdc,0xdd,0xd9,0xd3,0xd0,0xcd,0xc8,0xc1,0xbd,
+0xbd,0xba,0xb5,0xb4,0xb7,0xb4,0xaa,0x9e,0x9b,0x9f,0xa3,0xa6,0xa8,0xac,0xb0,0xb2,
+0xb2,0xb2,0xb5,0xbb,0xbe,0xbf,0xc3,0xc8,0xca,0xcd,0xd3,0xd9,0xd7,0xd0,0xcc,0xcd,
+0xd0,0xd1,0xd2,0xd0,0xd0,0xce,0xc7,0xc7,0xc6,0xc1,0xca,0xc8,0xbe,0xc7,0xb0,0xcc,
+0xa7,0x55,0x47,0x60,0x4a,0x41,0x38,0xba,0xdc,0xd5,0xce,0xcf,0xd7,0xe1,0xe6,0xe7,
+0xea,0xdf,0xe2,0xe5,0xc9,0xb7,0xbe,0xb6,0xb8,0xde,0xbd,0x4e,0x50,0xb0,0xcc,0xc6,
+0xd2,0xd3,0xd3,0xd2,0xd1,0xd1,0xd2,0xd3,0xdc,0xbb,0xa4,0xa0,0xa1,0xa2,0xa3,0xa0,
+0xa3,0xa3,0x9f,0xa3,0xa0,0x9d,0xa0,0x94,0x76,0xb5,0xde,0xf2,0xe6,0xd9,0xe8,0xe2,
+0xc9,0xbb,0xba,0xce,0xdb,0xd2,0xc2,0xbb,0xb6,0x85,0x8b,0x8b,0x88,0x94,0x8f,0x8f,
+0x8f,0x8b,0xa6,0xd0,0xce,0xc4,0xce,0xc2,0xb5,0xa0,0x81,0xa4,0xb9,0xbf,0xb7,0x97,
+0x7e,0x67,0x54,0x4e,0x4d,0x4f,0x4e,0x48,0x4c,0x4a,0x47,0x45,0x44,0x42,0x40,0x3e,
+0x3e,0x3b,0x3a,0x3c,0x40,0x49,0x57,0x63,0x74,0x78,0x75,0x6e,0x6e,0x73,0x6e,0x63,
+0x70,0x7d,0x8a,0x88,0x74,0x62,0x63,0x6e,0x84,0x88,0x84,0x7b,0x75,0x6c,0x65,0x68,
+0x6f,0x77,0x7a,0x72,0x6d,0x6e,0x6b,0x65,0x6f,0x6d,0x6c,0x70,0x75,0x76,0x6d,0x63,
+0x6d,0x6c,0x64,0x63,0x6c,0x6f,0x6b,0x69,0x7a,0x79,0x6a,0x5b,0x5a,0x61,0x68,0x6e,
+0x6d,0x67,0x55,0x4c,0x4e,0x44,0x33,0x2e,0x35,0x28,0x31,0x41,0x48,0x3f,0x30,0x35,
+0x2e,0x2f,0x30,0x30,0x2c,0x27,0x28,0x2d,0x34,0x37,0x35,0x30,0x31,0x3c,0x46,0x49,
+0x4f,0x59,0x60,0x5b,0x55,0x57,0x5f,0x66,0x5d,0x5e,0x63,0x61,0x55,0x4e,0x4c,0x47,
+0x49,0x4f,0x5a,0x65,0x66,0x5a,0x47,0x3b,0x3c,0x45,0x4c,0x49,0x41,0x3c,0x41,0x48,
+0x47,0x41,0x3a,0x2e,0x20,0x26,0x49,0x6f,0x8b,0x70,0x55,0x4e,0x54,0x5b,0x6b,0x80,
+0x81,0x85,0x8b,0x91,0x96,0x97,0x92,0x8b,0x9d,0x9a,0x95,0x8b,0x78,0x62,0x53,0x4e,
+0x54,0x51,0x4d,0x47,0x3b,0x30,0x2a,0x2a,0x38,0x3f,0x47,0x4f,0x58,0x62,0x6a,0x6d,
+0x6c,0x79,0x81,0x82,0x8a,0x96,0x96,0x8b,0x8c,0x82,0x79,0x73,0x69,0x5d,0x5b,0x5f,
+0x4f,0x4f,0x57,0x67,0x6e,0x66,0x59,0x51,0x4d,0x54,0x5a,0x5e,0x61,0x61,0x5c,0x55,
+0x57,0x59,0x52,0x4b,0x53,0x64,0x68,0x60,0x6b,0x6d,0x69,0x64,0x63,0x63,0x67,0x71,
+0x79,0x71,0x6d,0x71,0x6f,0x67,0x60,0x60,0x6d,0x6b,0x68,0x68,0x6a,0x6e,0x71,0x73,
+0x6b,0x78,0x69,0x6d,0x61,0x66,0x70,0x70,0x77,0x78,0x7f,0x87,0x7f,0x6d,0x65,0x69,
+0x6e,0x77,0x79,0x72,0x71,0x78,0x75,0x6b,0x6d,0x65,0x5c,0x58,0x5a,0x5e,0x5f,0x5e,
+0x5a,0x5d,0x62,0x68,0x6a,0x6d,0x73,0x79,0x78,0x6c,0x63,0x64,0x65,0x62,0x60,0x62,
+0x56,0x56,0x59,0x5d,0x5e,0x5e,0x61,0x66,0x62,0x5b,0x54,0x54,0x62,0x6e,0x6d,0x63,
+0x64,0x62,0x62,0x65,0x63,0x5e,0x5c,0x5d,0x65,0x69,0x69,0x65,0x68,0x71,0x76,0x75,
+0x6c,0x6c,0x6a,0x67,0x65,0x68,0x71,0x7b,0x79,0x6e,0x67,0x68,0x66,0x61,0x63,0x6b,
+0x76,0x7c,0x7c,0x72,0x6c,0x6f,0x74,0x74,0x69,0x63,0x60,0x60,0x60,0x61,0x68,0x72,
+0x81,0x8a,0x5d,0x5b,0x58,0x52,0x4f,0x4e,0x4d,0x47,0x49,0x4c,0x48,0x44,0x41,0x3a,
+0x3c,0x39,0x39,0x3b,0x3c,0x3a,0x36,0x35,0x42,0x3f,0x3d,0x3e,0x41,0x42,0x42,0x42,
+0x42,0x43,0x44,0x44,0x44,0x45,0x46,0x48,0x51,0x58,0x64,0x71,0x7f,0x8f,0xa0,0xaa,
+0xc1,0xc1,0xc1,0xbf,0xbd,0xbc,0xbb,0xbc,0xbb,0xbb,0xbb,0xbb,0xbc,0xbc,0xbb,0xba,
+0xba,0xb3,0xad,0xaa,0xa7,0xa6,0xab,0xb2,0xac,0xb3,0xb4,0xaf,0xae,0xb4,0xb4,0xae,
+0xad,0xaf,0xab,0xa3,0x9f,0xa2,0xa2,0x9f,0x9f,0xa2,0xa5,0xa6,0xa5,0xa2,0xa1,0xa1,
+0xa0,0x9a,0x96,0x98,0xa0,0xa7,0xa9,0xa8,0x9d,0x92,0x7f,0x72,0x77,0x88,0x91,0x90,
+0xa4,0xaf,0xc6,0xdc,0xe5,0xe1,0xdd,0xdf,0xd8,0xd3,0xce,0xcb,0xca,0xc6,0xc3,0xc2,
+0xbb,0xb6,0xb0,0xb0,0xb4,0xb2,0xa6,0x99,0x9b,0x9e,0xa2,0xa5,0xaa,0xaf,0xb3,0xb4,
+0xb4,0xb3,0xb6,0xbb,0xbe,0xbf,0xc4,0xc9,0xcc,0xcc,0xd2,0xd8,0xd5,0xcb,0xc7,0xc9,
+0xcd,0xcb,0xcc,0xc5,0xc5,0xca,0xc6,0xc5,0xba,0xbc,0xba,0xbd,0xbe,0xbc,0xce,0xcc,
+0x8f,0x2c,0x74,0x9e,0x50,0x92,0x76,0x81,0xc7,0xbe,0xb6,0xb8,0xc6,0xd6,0xe1,0xe5,
+0xdd,0xeb,0xe6,0xde,0xe7,0xd4,0xb9,0xc6,0xd3,0xe2,0xe3,0x77,0x43,0x99,0xc9,0xc4,
+0xd0,0xd1,0xd2,0xd2,0xd2,0xd1,0xd2,0xd3,0xdb,0xb9,0x9f,0x9d,0xa2,0xa5,0xa3,0x9d,
+0x9d,0x9d,0x9a,0xa0,0x9e,0x9c,0xa0,0x96,0x64,0xa6,0xcd,0xdc,0xeb,0xec,0xe6,0xe6,
+0xd1,0xc0,0xc4,0xdb,0xe3,0xd6,0xc7,0xbe,0xa8,0x84,0x93,0x94,0x92,0x8d,0x8c,0x8c,
+0x8e,0x8a,0xa4,0xd1,0xd0,0xc5,0xd0,0xc3,0xbe,0x9c,0x76,0x8d,0x99,0xb2,0xb9,0xa0,
+0x7c,0x66,0x54,0x4d,0x4a,0x4d,0x4e,0x48,0x4a,0x48,0x46,0x44,0x42,0x41,0x3f,0x3d,
+0x41,0x3e,0x3d,0x40,0x48,0x56,0x6b,0x7a,0x6a,0x69,0x6b,0x6e,0x6c,0x67,0x64,0x67,
+0x6c,0x75,0x81,0x83,0x72,0x5e,0x5b,0x65,0x76,0x83,0x88,0x7f,0x73,0x66,0x63,0x6b,
+0x6d,0x7b,0x7f,0x72,0x6a,0x70,0x76,0x76,0x6b,0x6e,0x75,0x78,0x70,0x66,0x65,0x6c,
+0x6c,0x70,0x6a,0x67,0x71,0x78,0x73,0x6d,0x6c,0x6f,0x68,0x61,0x66,0x68,0x65,0x63,
+0x68,0x62,0x51,0x48,0x47,0x3b,0x2f,0x33,0x2c,0x2d,0x41,0x55,0x62,0x60,0x4c,0x45,
+0x42,0x38,0x31,0x2d,0x24,0x1c,0x21,0x2c,0x36,0x2f,0x33,0x3b,0x33,0x22,0x25,0x36,
+0x40,0x42,0x46,0x4d,0x57,0x5b,0x52,0x47,0x4d,0x45,0x3d,0x33,0x2f,0x42,0x62,0x76,
+0x88,0x7f,0x6e,0x5e,0x55,0x51,0x4a,0x41,0x3c,0x3d,0x3d,0x3f,0x40,0x42,0x43,0x44,
+0x3f,0x3a,0x33,0x29,0x1d,0x26,0x4f,0x7a,0x93,0x8d,0x72,0x59,0x53,0x4e,0x4b,0x52,
+0x5e,0x68,0x73,0x79,0x7b,0x7c,0x7c,0x7c,0x7b,0x73,0x70,0x76,0x79,0x70,0x61,0x56,
+0x4b,0x3e,0x35,0x38,0x3c,0x3d,0x40,0x45,0x44,0x48,0x47,0x3e,0x3b,0x48,0x5f,0x72,
+0x82,0x7c,0x7e,0x84,0x7f,0x70,0x68,0x6a,0x64,0x5e,0x52,0x4b,0x51,0x5c,0x5c,0x53,
+0x4e,0x4d,0x52,0x5b,0x60,0x5d,0x58,0x56,0x52,0x54,0x5a,0x60,0x61,0x61,0x66,0x6e,
+0x7e,0x7b,0x69,0x55,0x5a,0x6e,0x6e,0x5f,0x60,0x63,0x63,0x5f,0x5e,0x64,0x6a,0x6c,
+0x75,0x6e,0x68,0x68,0x6b,0x69,0x61,0x58,0x54,0x62,0x63,0x5e,0x5b,0x5e,0x62,0x5a,
+0x62,0x6c,0x6f,0x62,0x56,0x58,0x64,0x6f,0x72,0x7f,0x83,0x86,0x7f,0x71,0x6a,0x5e,
+0x64,0x6f,0x76,0x76,0x74,0x75,0x75,0x72,0x6f,0x68,0x60,0x5c,0x5e,0x61,0x5f,0x5b,
+0x5e,0x60,0x63,0x65,0x67,0x6c,0x72,0x77,0x78,0x72,0x68,0x61,0x63,0x68,0x63,0x59,
+0x5d,0x5f,0x60,0x60,0x62,0x64,0x60,0x5b,0x52,0x53,0x55,0x5b,0x64,0x6a,0x68,0x62,
+0x62,0x62,0x64,0x67,0x67,0x62,0x5f,0x5f,0x65,0x61,0x5e,0x60,0x67,0x6d,0x6e,0x6c,
+0x67,0x66,0x64,0x62,0x64,0x6a,0x73,0x79,0x77,0x7b,0x7c,0x6c,0x58,0x5b,0x6f,0x7c,
+0x7b,0x77,0x6a,0x5c,0x5d,0x67,0x6a,0x63,0x62,0x68,0x6a,0x63,0x5e,0x60,0x67,0x6d,
+0x85,0x86,0x71,0x59,0x53,0x4e,0x47,0x49,0x4a,0x48,0x45,0x45,0x47,0x46,0x43,0x40,
+0x3e,0x3d,0x3d,0x3c,0x38,0x35,0x36,0x3b,0x3f,0x40,0x42,0x43,0x43,0x43,0x44,0x44,
+0x46,0x46,0x46,0x46,0x46,0x45,0x45,0x44,0x44,0x43,0x44,0x47,0x4e,0x57,0x61,0x67,
+0x89,0xa4,0xbd,0xc3,0xbf,0xbc,0xba,0xb8,0xb2,0xb5,0xb7,0xb7,0xba,0xbf,0xbe,0xb8,
+0xbb,0xb7,0xb1,0xae,0xae,0xae,0xac,0xaa,0xa7,0xa6,0xaa,0xb0,0xb3,0xb2,0xb3,0xb7,
+0xae,0xb0,0xb1,0xb0,0xab,0xa6,0xa1,0x9f,0x9d,0x9e,0xa1,0xa4,0xa5,0xa3,0x9f,0x9c,
+0x9c,0x99,0x9b,0xa1,0xa4,0xa3,0xa3,0xa5,0x9e,0x9a,0x84,0x72,0x78,0x85,0x92,0xa3,
+0xc0,0xd0,0xdd,0xdf,0xdd,0xdc,0xd8,0xd2,0xd1,0xcf,0xcc,0xc9,0xc8,0xc8,0xc3,0xbd,
+0xb9,0xb5,0xb5,0xb6,0xb3,0xa8,0x9d,0x98,0x9c,0x9e,0xa2,0xa8,0xad,0xb0,0xb1,0xb1,
+0xb4,0xb4,0xb6,0xbb,0xc2,0xc7,0xca,0xcb,0xc9,0xcf,0xd1,0xd2,0xd2,0xcb,0xc6,0xcb,
+0xca,0xc9,0xc5,0xbe,0xb9,0xb8,0xb5,0xb1,0xc0,0xb9,0xb9,0xbd,0xc4,0xbe,0xba,0xcd,
+0xb7,0x3e,0x4f,0x63,0x4e,0xaa,0xd8,0x6f,0xb9,0xc0,0xbb,0xbd,0xc0,0xc5,0xd9,0xe7,
+0xe2,0xe4,0xe5,0xe5,0xe4,0xe2,0xe2,0xe2,0xe3,0xed,0xe1,0xab,0x49,0x7c,0xbd,0xc8,
+0xd2,0xd4,0xd5,0xd2,0xd0,0xd0,0xd1,0xd0,0xd8,0xbc,0x9c,0xa6,0xa1,0xa1,0xa0,0x9c,
+0x9e,0x9f,0x9d,0x9b,0x9d,0xa1,0x9e,0x98,0x69,0xae,0xc3,0xd5,0xe7,0xe8,0xea,0xe3,
+0xdf,0xdc,0xe4,0xdb,0xe3,0xdf,0xd9,0xd0,0xa2,0x84,0x92,0x92,0x96,0x8d,0x8a,0x8a,
+0x8b,0x8e,0xa1,0xd0,0xd1,0xcb,0xc9,0xc5,0xbc,0xa7,0x73,0x86,0x96,0xac,0xb9,0x9c,
+0x77,0x64,0x4d,0x47,0x4c,0x4b,0x48,0x4b,0x48,0x43,0x41,0x42,0x41,0x3e,0x3d,0x3f,
+0x42,0x3c,0x3e,0x4e,0x61,0x6c,0x6e,0x6d,0x6b,0x6b,0x6d,0x6f,0x6b,0x65,0x67,0x6d,
+0x6b,0x72,0x7b,0x7a,0x6f,0x65,0x64,0x69,0x6e,0x78,0x81,0x7f,0x74,0x67,0x60,0x5f,
+0x67,0x70,0x7a,0x7c,0x74,0x6c,0x6d,0x72,0x6e,0x6c,0x70,0x71,0x6a,0x68,0x6c,0x6c,
+0x6f,0x6d,0x6a,0x6b,0x72,0x79,0x79,0x76,0x67,0x62,0x65,0x70,0x77,0x72,0x67,0x60,
+0x5f,0x5e,0x57,0x52,0x4f,0x42,0x33,0x2f,0x27,0x32,0x48,0x5d,0x5e,0x53,0x4f,0x54,
+0x51,0x47,0x39,0x2e,0x29,0x28,0x27,0x26,0x2c,0x37,0x42,0x44,0x42,0x40,0x40,0x41,
+0x42,0x50,0x5e,0x64,0x67,0x66,0x5d,0x51,0x4b,0x46,0x42,0x46,0x51,0x5b,0x5f,0x5e,
+0x47,0x4c,0x54,0x5b,0x58,0x4c,0x3f,0x37,0x3b,0x36,0x31,0x31,0x37,0x3d,0x40,0x40,
+0x39,0x2b,0x26,0x31,0x36,0x30,0x3f,0x5f,0x7c,0x77,0x6e,0x63,0x5c,0x58,0x53,0x4f,
+0x52,0x57,0x5b,0x5a,0x56,0x56,0x59,0x5d,0x65,0x6c,0x72,0x72,0x73,0x72,0x6a,0x60,
+0x63,0x5b,0x57,0x59,0x53,0x47,0x43,0x48,0x3e,0x46,0x42,0x3c,0x50,0x78,0x8e,0x8c,
+0x83,0x7a,0x65,0x4f,0x49,0x58,0x6d,0x79,0x7b,0x81,0x7d,0x68,0x4d,0x38,0x29,0x20,
+0x53,0x53,0x59,0x63,0x68,0x65,0x60,0x5e,0x5d,0x59,0x55,0x50,0x4a,0x48,0x4f,0x59,
+0x7e,0x83,0x79,0x64,0x5d,0x67,0x6d,0x69,0x64,0x60,0x5a,0x58,0x60,0x6c,0x73,0x73,
+0x64,0x62,0x62,0x67,0x6d,0x6d,0x66,0x5f,0x62,0x66,0x64,0x63,0x66,0x69,0x67,0x5e,
+0x65,0x69,0x68,0x65,0x65,0x68,0x67,0x62,0x6d,0x77,0x75,0x76,0x72,0x6d,0x73,0x70,
+0x70,0x77,0x7d,0x7c,0x78,0x75,0x73,0x72,0x6c,0x6a,0x65,0x5e,0x59,0x58,0x5a,0x5c,
+0x5d,0x60,0x62,0x62,0x5f,0x5c,0x5a,0x59,0x65,0x65,0x63,0x60,0x63,0x69,0x69,0x65,
+0x66,0x68,0x6b,0x6e,0x6e,0x68,0x60,0x59,0x59,0x5b,0x5f,0x64,0x6a,0x6e,0x6c,0x67,
+0x64,0x64,0x65,0x67,0x66,0x60,0x5c,0x5b,0x63,0x60,0x5f,0x63,0x6a,0x6e,0x6c,0x68,
+0x6b,0x69,0x66,0x63,0x64,0x6a,0x72,0x78,0x7d,0x7e,0x7d,0x6e,0x5c,0x5d,0x6b,0x72,
+0x78,0x77,0x70,0x64,0x5f,0x62,0x63,0x60,0x6e,0x6f,0x6d,0x67,0x60,0x62,0x6b,0x74,
+0x7d,0x8d,0x88,0x6f,0x5a,0x4a,0x46,0x4e,0x4c,0x4a,0x49,0x48,0x48,0x47,0x43,0x40,
+0x41,0x40,0x40,0x3f,0x3b,0x38,0x39,0x3d,0x3f,0x40,0x42,0x43,0x43,0x43,0x44,0x45,
+0x42,0x43,0x44,0x45,0x46,0x46,0x46,0x46,0x49,0x47,0x45,0x44,0x44,0x47,0x4a,0x4c,
+0x51,0x6c,0x90,0xab,0xba,0xbf,0xbd,0xb8,0xb2,0xb4,0xb7,0xb8,0xb5,0xb2,0xb4,0xb8,
+0xb7,0xb3,0xaf,0xad,0xad,0xac,0xa9,0xa7,0xa3,0xa4,0xa9,0xaf,0xb2,0xb0,0xb0,0xb2,
+0xaf,0xb0,0xb2,0xb0,0xad,0xa9,0xa6,0xa4,0xa1,0xa0,0x9f,0x9f,0xa0,0xa1,0xa1,0xa0,
+0xa3,0x9a,0x94,0x98,0x9e,0x9e,0x9b,0x97,0x9a,0x9a,0x86,0x73,0x7b,0x91,0xa9,0xbe,
+0xce,0xd7,0xdb,0xd7,0xd3,0xd4,0xd3,0xd0,0xcc,0xcd,0xcb,0xc9,0xc9,0xc8,0xc3,0xbd,
+0xb6,0xb5,0xb5,0xb4,0xad,0xa2,0x9b,0x99,0x99,0x9b,0x9f,0xa5,0xac,0xb2,0xb7,0xba,
+0xba,0xba,0xbb,0xbf,0xc5,0xc9,0xcb,0xcc,0xcc,0xd0,0xd1,0xd4,0xd7,0xce,0xc5,0xc5,
+0xc8,0xc5,0xbf,0xb8,0xb3,0xb3,0xb7,0xbb,0xb2,0xb6,0xb6,0xbe,0xbb,0xbd,0xc9,0xbd,
+0x89,0x38,0x3e,0x43,0x3e,0xba,0xf0,0x89,0x97,0xc8,0xba,0xb8,0xbe,0xbc,0xd7,0xe6,
+0xe3,0xe4,0xe6,0xe6,0xe4,0xe3,0xe2,0xe2,0xda,0xdd,0xe4,0xc1,0x4c,0x73,0xc8,0xc1,
+0xd4,0xd5,0xd4,0xd1,0xd0,0xd2,0xd2,0xd0,0xda,0xbd,0x9c,0xa5,0xa0,0xa0,0x9e,0x9b,
+0x9e,0x9f,0x9e,0x9d,0x9f,0xa0,0x9d,0x97,0x67,0x9d,0xc2,0xe3,0xf1,0xe9,0xe8,0xe1,
+0xe8,0xde,0xe3,0xd9,0xdd,0xe3,0xea,0xde,0xa3,0x86,0x92,0x95,0x99,0x8d,0x8a,0x8c,
+0x90,0x93,0xa7,0xd3,0xd0,0xc8,0xc7,0xc6,0xb8,0xaa,0x74,0x8b,0xb0,0xae,0xaa,0x9c,
+0x76,0x5e,0x4b,0x48,0x4a,0x49,0x47,0x48,0x4b,0x46,0x43,0x43,0x41,0x3d,0x3a,0x3b,
+0x3b,0x44,0x54,0x65,0x6e,0x70,0x73,0x78,0x70,0x69,0x67,0x68,0x5e,0x4f,0x4c,0x54,
+0x73,0x76,0x7a,0x7b,0x75,0x6d,0x69,0x69,0x6b,0x79,0x86,0x84,0x75,0x68,0x67,0x6a,
+0x68,0x6a,0x70,0x79,0x7d,0x77,0x6e,0x67,0x61,0x6c,0x70,0x6d,0x6e,0x73,0x73,0x6e,
+0x72,0x71,0x6f,0x6e,0x72,0x75,0x75,0x71,0x5c,0x62,0x66,0x67,0x6a,0x6f,0x70,0x6d,
+0x60,0x63,0x5d,0x54,0x48,0x37,0x2d,0x2f,0x42,0x4a,0x54,0x5c,0x62,0x65,0x64,0x61,
+0x57,0x54,0x4f,0x4a,0x45,0x3f,0x38,0x34,0x2e,0x31,0x36,0x3e,0x48,0x4c,0x46,0x3e,
+0x4b,0x54,0x57,0x4e,0x45,0x45,0x48,0x4a,0x42,0x46,0x5a,0x70,0x6b,0x54,0x4a,0x52,
+0x68,0x72,0x7d,0x7d,0x6f,0x5b,0x4d,0x49,0x3d,0x44,0x45,0x3d,0x37,0x36,0x33,0x2e,
+0x1a,0x1e,0x25,0x2c,0x24,0x16,0x22,0x41,0x5c,0x66,0x66,0x5c,0x59,0x60,0x60,0x57,
+0x4d,0x44,0x41,0x48,0x51,0x54,0x51,0x4e,0x4f,0x54,0x5a,0x5f,0x64,0x65,0x63,0x5e,
+0x68,0x64,0x58,0x49,0x41,0x42,0x44,0x43,0x49,0x39,0x3d,0x60,0x7e,0x7d,0x6a,0x5b,
+0x4e,0x50,0x5a,0x6d,0x7a,0x76,0x63,0x51,0x3e,0x32,0x27,0x25,0x2a,0x32,0x3b,0x44,
+0x7a,0x78,0x77,0x78,0x74,0x6b,0x62,0x5c,0x51,0x52,0x53,0x51,0x4c,0x4a,0x4e,0x55,
+0x51,0x59,0x59,0x4f,0x49,0x51,0x5d,0x62,0x5a,0x5b,0x5a,0x5b,0x5e,0x60,0x5d,0x59,
+0x5d,0x5e,0x62,0x67,0x6a,0x68,0x62,0x5d,0x65,0x64,0x66,0x6a,0x6e,0x6f,0x6d,0x6c,
+0x64,0x67,0x67,0x63,0x62,0x65,0x65,0x62,0x61,0x70,0x77,0x7e,0x7d,0x77,0x7b,0x77,
+0x7a,0x7a,0x7b,0x7a,0x74,0x6e,0x6e,0x71,0x6a,0x68,0x63,0x5f,0x5c,0x5c,0x5f,0x61,
+0x5e,0x60,0x63,0x63,0x61,0x5d,0x5b,0x59,0x50,0x52,0x58,0x60,0x6a,0x70,0x6e,0x69,
+0x64,0x63,0x68,0x6f,0x6f,0x64,0x58,0x53,0x53,0x57,0x5b,0x5e,0x62,0x64,0x62,0x5f,
+0x68,0x67,0x68,0x69,0x65,0x5e,0x59,0x57,0x50,0x55,0x5c,0x61,0x63,0x63,0x63,0x64,
+0x66,0x64,0x62,0x62,0x65,0x6c,0x75,0x7b,0x84,0x81,0x7f,0x76,0x6a,0x6a,0x70,0x6f,
+0x76,0x78,0x77,0x71,0x68,0x63,0x63,0x66,0x75,0x73,0x71,0x6f,0x68,0x65,0x6b,0x75,
+0x76,0x80,0x7d,0x71,0x67,0x5c,0x52,0x50,0x48,0x48,0x48,0x47,0x47,0x45,0x44,0x43,
+0x40,0x3f,0x3f,0x3e,0x3b,0x37,0x38,0x3c,0x3f,0x41,0x43,0x43,0x44,0x44,0x45,0x46,
+0x43,0x44,0x45,0x46,0x46,0x47,0x47,0x47,0x47,0x47,0x46,0x44,0x43,0x43,0x42,0x42,
+0x44,0x47,0x58,0x78,0x9a,0xb2,0xbc,0xbe,0xbb,0xb5,0xb3,0xb4,0xb1,0xab,0xae,0xb6,
+0xb2,0xb0,0xad,0xad,0xac,0xab,0xa7,0xa4,0x9f,0xa1,0xa6,0xad,0xb0,0xae,0xad,0xad,
+0xac,0xad,0xae,0xad,0xab,0xa8,0xa6,0xa6,0xa5,0xa2,0xa0,0x9e,0x9e,0x9e,0x9e,0x9e,
+0x9e,0x9d,0x9c,0x9b,0x98,0x94,0x95,0x97,0x96,0x92,0x80,0x77,0x8b,0xaa,0xc5,0xd5,
+0xd6,0xd8,0xd6,0xcf,0xcc,0xce,0xce,0xcc,0xca,0xcb,0xca,0xc9,0xc8,0xc6,0xc1,0xba,
+0xb5,0xb6,0xb5,0xb0,0xa6,0x9b,0x97,0x99,0x9a,0x9a,0x9c,0x9f,0xa5,0xac,0xb2,0xb6,
+0xba,0xba,0xbc,0xc0,0xc4,0xc9,0xcb,0xcc,0xcb,0xcd,0xcc,0xcf,0xd2,0xc8,0xba,0xb7,
+0xb5,0xb4,0xb5,0xb7,0xb3,0xae,0xb1,0xb8,0xb5,0xbe,0xb8,0xbf,0xb3,0xb4,0xc1,0x92,
+0x3f,0x38,0x60,0x56,0x39,0xba,0xf8,0xb4,0x74,0xbd,0xbd,0xb8,0xbc,0xb3,0xd4,0xe2,
+0xe3,0xe5,0xe6,0xe6,0xe5,0xe4,0xe3,0xe4,0xea,0xe2,0xea,0xc6,0x4e,0x6a,0xca,0xc5,
+0xd6,0xd6,0xd4,0xd1,0xd1,0xd3,0xd3,0xd2,0xdd,0xbf,0x9e,0xa6,0xa0,0xa0,0x9f,0x9c,
+0x9e,0x9f,0x9f,0x9f,0xa0,0xa0,0x9c,0x97,0x6b,0x97,0xc5,0xdf,0xe0,0xd5,0xda,0xd9,
+0xdf,0xe4,0xd9,0xc1,0xce,0xd1,0xd5,0xd5,0x9a,0x87,0x92,0x97,0x99,0x8e,0x8b,0x8f,
+0x93,0x96,0xa9,0xd5,0xd0,0xc7,0xc7,0xc8,0xb9,0xb3,0x83,0x88,0xc4,0xbf,0xa4,0x99,
+0x73,0x55,0x47,0x4a,0x47,0x45,0x47,0x44,0x40,0x40,0x41,0x40,0x3d,0x3c,0x40,0x46,
+0x4e,0x55,0x63,0x72,0x79,0x76,0x71,0x6e,0x5d,0x69,0x67,0x5e,0x6b,0x8a,0x9c,0x9a,
+0x66,0x64,0x67,0x6e,0x72,0x70,0x6a,0x66,0x68,0x73,0x7e,0x7e,0x73,0x6a,0x69,0x6b,
+0x67,0x6b,0x73,0x7a,0x7b,0x73,0x6a,0x65,0x7a,0x88,0x7d,0x68,0x6a,0x72,0x6d,0x68,
+0x73,0x73,0x6f,0x6a,0x69,0x6b,0x6b,0x6a,0x6d,0x6f,0x6e,0x69,0x63,0x5d,0x56,0x51,
+0x5c,0x63,0x61,0x54,0x42,0x2f,0x2a,0x32,0x58,0x69,0x70,0x64,0x5c,0x63,0x6c,0x6f,
+0x69,0x67,0x62,0x5a,0x51,0x47,0x3f,0x3a,0x39,0x33,0x2e,0x33,0x42,0x4f,0x51,0x4d,
+0x45,0x47,0x47,0x46,0x49,0x4e,0x4d,0x48,0x3c,0x4d,0x60,0x63,0x58,0x4e,0x51,0x5b,
+0x5b,0x5c,0x61,0x67,0x6a,0x65,0x5f,0x5c,0x53,0x52,0x4e,0x47,0x3d,0x32,0x29,0x24,
+0x28,0x22,0x1d,0x21,0x25,0x1f,0x1d,0x27,0x3f,0x4e,0x58,0x57,0x55,0x59,0x5b,0x5a,
+0x4c,0x48,0x44,0x3f,0x38,0x34,0x3c,0x47,0x4f,0x4a,0x45,0x45,0x49,0x4e,0x54,0x5a,
+0x4b,0x4c,0x47,0x3d,0x35,0x32,0x2e,0x29,0x28,0x35,0x48,0x56,0x5a,0x56,0x50,0x4d,
+0x48,0x47,0x3a,0x26,0x1d,0x24,0x29,0x28,0x2d,0x2f,0x35,0x3a,0x3a,0x3f,0x54,0x6b,
+0x68,0x65,0x63,0x61,0x5f,0x5b,0x58,0x55,0x5a,0x5d,0x5f,0x5d,0x55,0x4f,0x4f,0x51,
+0x58,0x57,0x55,0x52,0x52,0x56,0x5c,0x5f,0x65,0x5c,0x53,0x52,0x5a,0x62,0x63,0x60,
+0x5e,0x62,0x66,0x66,0x61,0x5d,0x5c,0x5c,0x5c,0x5d,0x67,0x6a,0x66,0x61,0x5f,0x6a,
+0x6b,0x6a,0x63,0x5b,0x5c,0x64,0x6b,0x6c,0x67,0x72,0x74,0x77,0x76,0x74,0x7f,0x7f,
+0x7f,0x79,0x75,0x73,0x6d,0x67,0x6a,0x71,0x6d,0x65,0x5e,0x5f,0x63,0x63,0x5f,0x5c,
+0x5e,0x5d,0x5c,0x5d,0x61,0x65,0x69,0x6b,0x5d,0x55,0x51,0x59,0x67,0x6f,0x6d,0x68,
+0x5d,0x58,0x5b,0x64,0x64,0x5a,0x52,0x51,0x53,0x57,0x5b,0x5d,0x5f,0x61,0x62,0x60,
+0x66,0x65,0x65,0x66,0x62,0x5a,0x54,0x52,0x4c,0x58,0x64,0x69,0x66,0x65,0x6a,0x70,
+0x60,0x5f,0x5f,0x60,0x64,0x6a,0x71,0x75,0x7a,0x75,0x74,0x75,0x72,0x74,0x75,0x6f,
+0x70,0x71,0x75,0x75,0x6e,0x67,0x69,0x70,0x77,0x75,0x77,0x7b,0x75,0x6b,0x6b,0x73,
+0x78,0x74,0x6d,0x6b,0x70,0x70,0x64,0x59,0x49,0x49,0x48,0x47,0x46,0x45,0x46,0x47,
+0x40,0x3f,0x3e,0x3d,0x3a,0x37,0x38,0x3b,0x40,0x42,0x43,0x44,0x44,0x45,0x46,0x47,
+0x48,0x48,0x49,0x49,0x48,0x48,0x47,0x47,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,
+0x4f,0x45,0x42,0x50,0x68,0x85,0xa5,0xbe,0xc1,0xb9,0xb2,0xb0,0xaf,0xae,0xae,0xaf,
+0xaf,0xae,0xae,0xae,0xad,0xab,0xa6,0xa3,0x9f,0xa1,0xa4,0xa9,0xac,0xac,0xab,0xaa,
+0xaa,0xab,0xab,0xaa,0xa8,0xa7,0xa6,0xa6,0xa5,0xa4,0xa2,0xa1,0x9f,0x9d,0x9a,0x97,
+0x96,0x99,0x9d,0x9c,0x98,0x94,0x94,0x97,0x91,0x83,0x78,0x86,0xa8,0xc6,0xd3,0xd5,
+0xd0,0xd1,0xd0,0xcc,0xcb,0xcc,0xcb,0xc8,0xcb,0xcb,0xc9,0xc5,0xc3,0xc0,0xbb,0xb6,
+0xb7,0xb6,0xb3,0xab,0xa0,0x97,0x95,0x96,0x99,0x9a,0x9b,0x9c,0xa0,0xa6,0xac,0xb0,
+0xb6,0xb8,0xbb,0xbf,0xc4,0xc9,0xcc,0xcd,0xcc,0xcc,0xc7,0xc5,0xc3,0xb8,0xab,0xa9,
+0xa6,0xa5,0xaa,0xb2,0xb3,0xae,0xaf,0xb5,0xb5,0xba,0xb5,0xbd,0xba,0xbb,0xbc,0x92,
+0x2c,0x3c,0x93,0x8b,0x4f,0xbc,0xeb,0xd5,0x74,0x92,0xc3,0xbe,0xb8,0xb1,0xd2,0xde,
+0xe4,0xe5,0xe6,0xe6,0xe5,0xe4,0xe4,0xe5,0xe1,0xd4,0xea,0xb9,0x53,0x71,0xc2,0xce,
+0xd7,0xd7,0xd4,0xd1,0xd2,0xd4,0xd5,0xd3,0xdf,0xc1,0x9f,0xa7,0xa1,0xa2,0xa2,0xa0,
+0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0x9d,0x9a,0x69,0x9d,0xd7,0xe3,0xdb,0xc6,0xc1,0xc4,
+0xd6,0xe8,0xe3,0xc5,0xc1,0xc1,0xd3,0xd4,0x87,0x89,0x95,0x98,0x95,0x8f,0x8f,0x91,
+0x92,0x93,0xa5,0xd2,0xd0,0xc9,0xca,0xcb,0xc1,0xbd,0xa2,0x7d,0xb2,0xcc,0xaa,0x96,
+0x6d,0x4c,0x43,0x4b,0x45,0x42,0x46,0x41,0x3b,0x40,0x42,0x3e,0x39,0x3b,0x46,0x52,
+0x5c,0x60,0x69,0x72,0x77,0x77,0x73,0x70,0x73,0x5f,0x5f,0x7e,0x97,0x8c,0x6b,0x54,
+0x60,0x5f,0x64,0x6f,0x78,0x78,0x72,0x6c,0x69,0x6c,0x70,0x73,0x74,0x71,0x6b,0x66,
+0x6a,0x6c,0x70,0x76,0x76,0x71,0x6b,0x68,0x7d,0x8b,0x7d,0x6a,0x71,0x77,0x71,0x71,
+0x7c,0x7b,0x75,0x6e,0x6b,0x6d,0x6e,0x6e,0x70,0x6b,0x69,0x64,0x57,0x49,0x48,0x50,
+0x58,0x60,0x5f,0x54,0x45,0x33,0x2e,0x36,0x58,0x6e,0x78,0x68,0x59,0x5c,0x69,0x6f,
+0x6d,0x6e,0x6e,0x6b,0x66,0x61,0x5c,0x5a,0x4e,0x46,0x39,0x31,0x37,0x47,0x57,0x60,
+0x5c,0x52,0x44,0x3f,0x48,0x54,0x58,0x55,0x53,0x4d,0x47,0x4b,0x5e,0x70,0x71,0x67,
+0x51,0x41,0x33,0x32,0x3c,0x47,0x50,0x55,0x56,0x4e,0x4d,0x4d,0x3f,0x2a,0x24,0x2c,
+0x31,0x35,0x32,0x2c,0x28,0x21,0x1f,0x26,0x36,0x4f,0x6e,0x73,0x55,0x36,0x39,0x4f,
+0x5a,0x52,0x46,0x3d,0x39,0x37,0x33,0x2f,0x28,0x34,0x4b,0x62,0x68,0x59,0x47,0x3d,
+0x42,0x36,0x2e,0x2b,0x25,0x1d,0x21,0x2c,0x3e,0x47,0x40,0x2d,0x30,0x4c,0x5d,0x5c,
+0x3f,0x3b,0x35,0x33,0x35,0x38,0x36,0x33,0x30,0x3c,0x44,0x3f,0x40,0x57,0x7f,0x9e,
+0x64,0x61,0x5c,0x59,0x58,0x5a,0x5d,0x5e,0x5c,0x5d,0x5c,0x57,0x52,0x52,0x55,0x58,
+0x5d,0x58,0x55,0x54,0x54,0x55,0x58,0x5b,0x57,0x4f,0x4d,0x5b,0x6f,0x77,0x70,0x66,
+0x5e,0x64,0x67,0x62,0x5a,0x57,0x5d,0x65,0x6a,0x66,0x72,0x73,0x6b,0x62,0x58,0x63,
+0x69,0x61,0x56,0x54,0x5e,0x6c,0x6f,0x69,0x6f,0x7b,0x7d,0x80,0x7e,0x7a,0x81,0x7f,
+0x7f,0x7a,0x76,0x74,0x6e,0x67,0x67,0x6c,0x6d,0x66,0x61,0x61,0x62,0x5d,0x56,0x52,
+0x5b,0x57,0x53,0x54,0x59,0x60,0x66,0x69,0x68,0x58,0x49,0x46,0x4b,0x52,0x59,0x5e,
+0x64,0x5b,0x58,0x5c,0x5c,0x55,0x53,0x56,0x54,0x57,0x5a,0x5a,0x5b,0x5f,0x62,0x63,
+0x5e,0x5d,0x5e,0x5e,0x5b,0x55,0x50,0x4e,0x53,0x59,0x61,0x67,0x69,0x6a,0x6c,0x6f,
+0x60,0x60,0x5f,0x5f,0x61,0x63,0x64,0x65,0x65,0x5f,0x61,0x68,0x6c,0x70,0x6f,0x67,
+0x68,0x67,0x69,0x6d,0x6a,0x66,0x6a,0x74,0x78,0x76,0x7a,0x7f,0x7b,0x71,0x6e,0x73,
+0x7a,0x78,0x77,0x73,0x6f,0x6d,0x6b,0x66,0x56,0x54,0x50,0x4b,0x47,0x45,0x45,0x46,
+0x43,0x41,0x40,0x3f,0x3d,0x3a,0x3b,0x3d,0x41,0x43,0x44,0x45,0x45,0x46,0x48,0x49,
+0x4a,0x4a,0x4a,0x4b,0x4a,0x4a,0x49,0x49,0x4b,0x4a,0x49,0x47,0x47,0x47,0x47,0x48,
+0x43,0x45,0x4a,0x4b,0x49,0x54,0x79,0x9e,0xb2,0xba,0xbc,0xb6,0xb2,0xb2,0xaf,0xa9,
+0xad,0xae,0xae,0xae,0xad,0xaa,0xa6,0xa3,0xa2,0xa2,0xa2,0xa4,0xa7,0xaa,0xab,0xab,
+0xac,0xac,0xac,0xab,0xa9,0xa7,0xa7,0xa7,0xa5,0xa4,0xa2,0xa0,0x9f,0x9d,0x9a,0x98,
+0x9a,0x93,0x8e,0x90,0x97,0x9a,0x94,0x8c,0x89,0x7b,0x80,0xa3,0xc5,0xd3,0xd2,0xcd,
+0xc9,0xc9,0xc9,0xc8,0xc9,0xcb,0xca,0xc7,0xcb,0xca,0xc6,0xc0,0xbd,0xbb,0xb8,0xb5,
+0xba,0xb6,0xae,0xa5,0x9d,0x98,0x95,0x93,0x96,0x98,0x9b,0x9e,0xa2,0xa7,0xad,0xb1,
+0xb6,0xb9,0xbd,0xc2,0xc6,0xc9,0xcc,0xcd,0xd0,0xd0,0xc7,0xbe,0xb5,0xa9,0xa2,0xa5,
+0xaa,0xa2,0xa0,0xa8,0xae,0xaf,0xb4,0xbc,0xbb,0xbd,0xbe,0xbf,0xc2,0xc1,0xb9,0xb7,
+0x6a,0x35,0x7f,0x83,0x60,0xd0,0xe2,0xe4,0x9e,0x67,0xbd,0xc2,0xb4,0xb9,0xd7,0xe2,
+0xe4,0xe5,0xe6,0xe6,0xe5,0xe5,0xe5,0xe6,0xa1,0x92,0xe0,0xaf,0x55,0x86,0xc3,0xcb,
+0xd7,0xd7,0xd5,0xd2,0xd2,0xd5,0xd6,0xd5,0xde,0xc0,0x9d,0xa5,0xa0,0xa2,0xa3,0xa2,
+0xa3,0xa1,0x9f,0x9f,0x9f,0x9e,0x9f,0x9f,0x74,0x97,0xd4,0xdb,0xd6,0xbd,0xb4,0xc3,
+0xd9,0xd9,0xd3,0xbe,0xb7,0xc5,0xdc,0xbd,0x79,0x91,0x9b,0x99,0x91,0x91,0x92,0x90,
+0x91,0x8e,0x9e,0xce,0xd1,0xcb,0xca,0xca,0xc8,0xbb,0xc0,0x7b,0x85,0xb6,0xa5,0x95,
+0x63,0x46,0x41,0x4a,0x43,0x40,0x45,0x3f,0x45,0x43,0x40,0x3f,0x42,0x4a,0x53,0x58,
+0x56,0x63,0x71,0x75,0x74,0x76,0x7e,0x86,0x87,0x83,0x84,0x84,0x76,0x64,0x65,0x72,
+0x61,0x62,0x68,0x74,0x7b,0x79,0x71,0x6c,0x69,0x6a,0x6e,0x74,0x7a,0x79,0x74,0x6f,
+0x70,0x68,0x66,0x70,0x7c,0x7c,0x70,0x65,0x6a,0x77,0x73,0x70,0x7a,0x74,0x66,0x69,
+0x77,0x76,0x72,0x6e,0x6d,0x6e,0x6d,0x6b,0x71,0x6e,0x63,0x4e,0x39,0x33,0x3d,0x4b,
+0x5e,0x63,0x60,0x59,0x4e,0x3e,0x35,0x37,0x4e,0x5a,0x65,0x66,0x64,0x65,0x66,0x66,
+0x6a,0x6c,0x6f,0x6f,0x6c,0x68,0x63,0x61,0x5b,0x57,0x4d,0x42,0x3e,0x42,0x49,0x4d,
+0x49,0x45,0x3f,0x3b,0x3d,0x46,0x50,0x55,0x54,0x5a,0x67,0x6b,0x5a,0x40,0x3a,0x43,
+0x47,0x46,0x47,0x49,0x48,0x45,0x46,0x49,0x50,0x53,0x57,0x54,0x48,0x3e,0x43,0x50,
+0x56,0x4c,0x3f,0x45,0x61,0x79,0x7e,0x7e,0x60,0x5b,0x68,0x83,0x8e,0x7e,0x69,0x5f,
+0x4a,0x50,0x4e,0x46,0x43,0x44,0x3b,0x2d,0x34,0x30,0x32,0x38,0x39,0x34,0x31,0x32,
+0x29,0x20,0x1c,0x1e,0x1b,0x16,0x1c,0x29,0x38,0x47,0x5f,0x74,0x77,0x66,0x4b,0x37,
+0x41,0x37,0x38,0x40,0x3b,0x2d,0x2e,0x3d,0x4c,0x4a,0x43,0x4a,0x6d,0x8f,0x87,0x6a,
+0x6f,0x6b,0x61,0x56,0x4f,0x4c,0x4b,0x4a,0x48,0x4c,0x51,0x53,0x57,0x5c,0x60,0x61,
+0x5a,0x5c,0x5d,0x5a,0x55,0x55,0x5c,0x65,0x50,0x5b,0x6c,0x7a,0x7a,0x6d,0x5d,0x53,
+0x62,0x65,0x65,0x5f,0x57,0x57,0x5f,0x67,0x71,0x65,0x72,0x76,0x77,0x72,0x5c,0x60,
+0x69,0x6e,0x71,0x72,0x77,0x80,0x83,0x82,0x71,0x7f,0x84,0x8c,0x89,0x81,0x81,0x78,
+0x79,0x78,0x79,0x78,0x72,0x6a,0x64,0x62,0x63,0x64,0x67,0x68,0x61,0x58,0x58,0x5d,
+0x5c,0x58,0x54,0x55,0x5a,0x60,0x63,0x64,0x58,0x52,0x4f,0x50,0x4c,0x49,0x4f,0x5a,
+0x6a,0x61,0x5a,0x59,0x58,0x54,0x54,0x56,0x4f,0x52,0x54,0x54,0x56,0x5b,0x5e,0x5e,
+0x5b,0x5a,0x5a,0x5b,0x59,0x54,0x51,0x51,0x58,0x54,0x53,0x59,0x62,0x66,0x62,0x5c,
+0x5f,0x5e,0x5d,0x5e,0x5f,0x60,0x60,0x5f,0x5d,0x57,0x5b,0x63,0x67,0x6a,0x69,0x64,
+0x64,0x62,0x62,0x63,0x62,0x63,0x6b,0x74,0x79,0x75,0x74,0x75,0x72,0x6d,0x6d,0x71,
+0x73,0x72,0x76,0x74,0x6b,0x68,0x6a,0x68,0x65,0x61,0x5a,0x52,0x4b,0x45,0x40,0x3e,
+0x44,0x41,0x3f,0x3f,0x3e,0x3b,0x3b,0x3d,0x43,0x44,0x46,0x46,0x47,0x48,0x4a,0x4c,
+0x4a,0x4a,0x4b,0x4c,0x4d,0x4d,0x4d,0x4d,0x4f,0x4e,0x4b,0x49,0x48,0x48,0x48,0x49,
+0x45,0x46,0x49,0x4b,0x46,0x46,0x55,0x68,0x8f,0xab,0xc0,0xbe,0xb6,0xb5,0xb3,0xae,
+0xae,0xae,0xae,0xad,0xab,0xa8,0xa5,0xa3,0xa5,0xa3,0xa1,0xa0,0xa3,0xa9,0xac,0xab,
+0xaa,0xab,0xab,0xaa,0xa8,0xa6,0xa6,0xa6,0xa6,0xa3,0x9f,0x9d,0x9d,0x9e,0x9f,0x9f,
+0x9e,0x98,0x90,0x8d,0x90,0x93,0x90,0x8a,0x7f,0x7f,0x98,0xbc,0xcc,0xcc,0xca,0xc8,
+0xc7,0xc5,0xc4,0xc4,0xc5,0xc7,0xc8,0xc8,0xc8,0xc7,0xc3,0xbc,0xb9,0xb9,0xb8,0xb6,
+0xb9,0xb3,0xa9,0xa0,0x9b,0x9a,0x97,0x92,0x97,0x99,0x9c,0x9e,0xa0,0xa3,0xa7,0xab,
+0xb6,0xba,0xbf,0xc3,0xc6,0xc7,0xc8,0xc9,0xd0,0xd0,0xc7,0xb9,0xac,0x9f,0x9c,0xa5,
+0xa8,0xa2,0xa0,0xa7,0xae,0xb0,0xb3,0xb5,0xbc,0xc1,0xc5,0xbd,0xbf,0xbe,0xb8,0xcb,
+0x97,0x2c,0x47,0x46,0x58,0xd8,0xe1,0xed,0xce,0x69,0xa1,0xc1,0xba,0xc8,0xe0,0xe8,
+0xe4,0xe5,0xe6,0xe6,0xe5,0xe5,0xe6,0xe7,0x7f,0x6a,0xd6,0x9a,0x4f,0x9b,0xd1,0xc8,
+0xd5,0xd7,0xd6,0xd3,0xd2,0xd4,0xd6,0xd6,0xdc,0xbd,0x9a,0xa1,0x9c,0x9f,0xa1,0xa0,
+0xa4,0xa0,0x9e,0x9e,0x9d,0x9d,0x9f,0xa2,0x86,0x8a,0xd4,0xe1,0xd7,0xc0,0xbe,0xcc,
+0xcc,0xef,0xe0,0xba,0xb7,0xb6,0xc7,0xbe,0x7a,0x9a,0x9d,0x9a,0x8f,0x91,0x91,0x90,
+0x92,0x8c,0x9b,0xcd,0xd1,0xca,0xc8,0xc7,0xc7,0xb2,0xc8,0x8c,0x66,0x8e,0x98,0x8e,
+0x56,0x45,0x42,0x47,0x42,0x41,0x43,0x40,0x42,0x3d,0x3b,0x46,0x5c,0x6e,0x71,0x6c,
+0x68,0x70,0x77,0x7a,0x7a,0x7b,0x7d,0x7e,0x83,0x90,0x8b,0x74,0x6e,0x78,0x72,0x5e,
+0x5b,0x5e,0x65,0x6f,0x75,0x73,0x6e,0x6b,0x66,0x6d,0x76,0x7b,0x7c,0x7b,0x7b,0x7c,
+0x73,0x6f,0x70,0x78,0x7c,0x77,0x6a,0x61,0x68,0x6a,0x67,0x6a,0x6c,0x5f,0x54,0x5b,
+0x6d,0x6b,0x69,0x69,0x6d,0x6f,0x6b,0x65,0x66,0x67,0x60,0x57,0x5e,0x6f,0x74,0x6d,
+0x63,0x65,0x61,0x5b,0x53,0x44,0x37,0x37,0x45,0x50,0x5e,0x69,0x69,0x62,0x5f,0x60,
+0x68,0x64,0x5e,0x59,0x57,0x58,0x5b,0x5c,0x6f,0x71,0x73,0x72,0x6e,0x64,0x53,0x44,
+0x2f,0x2d,0x2d,0x32,0x39,0x3f,0x3f,0x3d,0x43,0x4c,0x5d,0x6d,0x71,0x68,0x5a,0x52,
+0x4e,0x51,0x59,0x63,0x66,0x60,0x56,0x51,0x4f,0x4d,0x45,0x3f,0x4a,0x60,0x6c,0x6b,
+0x64,0x76,0x80,0x7e,0x7c,0x7b,0x7e,0x85,0x84,0x80,0x79,0x6f,0x67,0x5f,0x54,0x4a,
+0x4a,0x55,0x57,0x4b,0x43,0x47,0x4b,0x4a,0x3b,0x35,0x2d,0x28,0x23,0x1e,0x1c,0x1d,
+0x16,0x1f,0x25,0x26,0x29,0x30,0x36,0x37,0x34,0x36,0x3c,0x3e,0x32,0x23,0x25,0x32,
+0x42,0x4d,0x4a,0x32,0x1f,0x25,0x39,0x47,0x6a,0x72,0x71,0x6b,0x72,0x7d,0x71,0x5a,
+0x64,0x65,0x63,0x5d,0x5a,0x5a,0x59,0x56,0x50,0x53,0x56,0x58,0x5c,0x60,0x5e,0x59,
+0x5b,0x5f,0x60,0x5a,0x53,0x54,0x5d,0x65,0x76,0x7a,0x7e,0x79,0x6a,0x5b,0x58,0x5c,
+0x65,0x63,0x61,0x5e,0x5c,0x5d,0x5f,0x62,0x5d,0x53,0x66,0x6d,0x74,0x73,0x5a,0x5b,
+0x56,0x67,0x74,0x71,0x6a,0x6d,0x79,0x82,0x7c,0x80,0x78,0x77,0x76,0x76,0x7e,0x7b,
+0x73,0x76,0x79,0x76,0x72,0x6d,0x66,0x60,0x5e,0x61,0x67,0x69,0x63,0x5d,0x61,0x6c,
+0x61,0x5c,0x56,0x55,0x5a,0x5e,0x5f,0x5e,0x53,0x54,0x5d,0x6a,0x6a,0x5e,0x57,0x5a,
+0x5b,0x58,0x54,0x53,0x53,0x53,0x51,0x50,0x51,0x54,0x57,0x58,0x5b,0x5f,0x5f,0x5d,
+0x59,0x57,0x57,0x58,0x57,0x54,0x53,0x54,0x5c,0x5a,0x5a,0x5d,0x62,0x64,0x61,0x5d,
+0x60,0x5e,0x5c,0x5c,0x5e,0x61,0x62,0x62,0x5e,0x59,0x5d,0x64,0x64,0x64,0x66,0x64,
+0x62,0x63,0x62,0x5f,0x5d,0x61,0x6c,0x77,0x78,0x75,0x70,0x6b,0x69,0x69,0x6c,0x6e,
+0x6e,0x66,0x68,0x6c,0x6a,0x6f,0x73,0x6d,0x6c,0x68,0x63,0x5d,0x56,0x4f,0x46,0x40,
+0x45,0x42,0x3f,0x3f,0x3e,0x3c,0x3c,0x3d,0x45,0x46,0x47,0x47,0x48,0x49,0x4c,0x4e,
+0x4e,0x4e,0x4f,0x50,0x51,0x51,0x51,0x51,0x50,0x4f,0x4f,0x4e,0x4d,0x4d,0x4d,0x4d,
+0x53,0x4b,0x46,0x47,0x49,0x49,0x49,0x49,0x65,0x82,0xa0,0xad,0xb1,0xb4,0xb6,0xb4,
+0xb1,0xb0,0xaf,0xad,0xaa,0xa8,0xa6,0xa5,0xa5,0xa3,0xa0,0x9e,0xa2,0xa9,0xab,0xaa,
+0xa8,0xa9,0xab,0xaa,0xa8,0xa7,0xa6,0xa6,0xa6,0xa3,0xa0,0x9e,0x9e,0x9f,0x9f,0x9f,
+0x9d,0xa0,0x9e,0x96,0x8e,0x8b,0x8a,0x89,0x79,0x88,0xa9,0xbf,0xbe,0xbd,0xc3,0xc2,
+0xc2,0xc1,0xc2,0xc3,0xc3,0xc4,0xc6,0xc8,0xc7,0xc6,0xc3,0xbd,0xb9,0xb8,0xb7,0xb5,
+0xb3,0xae,0xa5,0x9c,0x9a,0x9b,0x99,0x95,0x99,0x9b,0x9d,0x9d,0x9c,0x9e,0xa2,0xa6,
+0xb4,0xb9,0xc0,0xc5,0xc7,0xc7,0xc7,0xc7,0xca,0xcc,0xc4,0xb8,0xac,0x9f,0x9c,0xa4,
+0xa7,0xa7,0xa8,0xab,0xae,0xaf,0xae,0xac,0xac,0xb5,0xb8,0xb9,0xbc,0xc3,0xc3,0xb3,
+0x72,0x39,0x44,0x32,0x61,0xd7,0xe0,0xea,0xe4,0x9a,0x7a,0xbf,0xce,0xdb,0xe7,0xe8,
+0xe4,0xe5,0xe5,0xe5,0xe4,0xe4,0xe6,0xe7,0xa6,0x95,0xcb,0x6f,0x5a,0xb4,0xd5,0xc8,
+0xd2,0xd6,0xd8,0xd5,0xd2,0xd2,0xd5,0xd6,0xdb,0xbc,0x98,0x9e,0x99,0x9c,0x9e,0x9e,
+0xa0,0x9d,0x9c,0x9d,0x9d,0x9b,0x9d,0xa1,0x8b,0x82,0xe9,0xeb,0xbc,0xb3,0xc4,0xb8,
+0xca,0xe3,0xd6,0xbc,0xbf,0xc6,0xd3,0xaf,0x83,0x9d,0x95,0x98,0x8f,0x8e,0x8f,0x92,
+0x91,0x8c,0x9d,0xcf,0xd2,0xc9,0xc8,0xc9,0xc0,0xb1,0xba,0xa3,0x6e,0x83,0x99,0x7c,
+0x4b,0x46,0x44,0x44,0x43,0x42,0x43,0x43,0x3d,0x40,0x49,0x5b,0x72,0x82,0x81,0x79,
+0x79,0x78,0x77,0x78,0x7c,0x7d,0x76,0x6c,0x78,0x77,0x79,0x7e,0x7d,0x78,0x73,0x72,
+0x61,0x61,0x66,0x6f,0x74,0x74,0x72,0x72,0x6b,0x72,0x7a,0x7e,0x7e,0x7b,0x7a,0x7a,
+0x76,0x78,0x7c,0x7d,0x78,0x6e,0x67,0x65,0x64,0x5f,0x5e,0x61,0x5f,0x59,0x5b,0x64,
+0x71,0x6a,0x61,0x62,0x6b,0x74,0x73,0x6c,0x63,0x5b,0x57,0x5f,0x6c,0x6c,0x5b,0x49,
+0x55,0x5a,0x59,0x53,0x4b,0x3e,0x37,0x3b,0x43,0x4e,0x5c,0x63,0x61,0x5c,0x5a,0x5b,
+0x5c,0x58,0x56,0x58,0x61,0x6c,0x75,0x7b,0x83,0x8b,0x95,0x9d,0x9e,0x95,0x81,0x70,
+0x66,0x53,0x3e,0x34,0x34,0x35,0x30,0x2a,0x26,0x3d,0x50,0x52,0x56,0x62,0x67,0x64,
+0x87,0x7c,0x72,0x72,0x76,0x76,0x71,0x6e,0x5b,0x54,0x51,0x5e,0x79,0x90,0x97,0x94,
+0x9b,0x96,0x84,0x75,0x76,0x7d,0x84,0x8c,0x8d,0x88,0x79,0x67,0x5c,0x58,0x53,0x4c,
+0x48,0x36,0x23,0x1f,0x28,0x2f,0x2d,0x27,0x1f,0x21,0x21,0x22,0x24,0x27,0x26,0x24,
+0x1e,0x21,0x1f,0x1a,0x1e,0x2c,0x3d,0x46,0x58,0x48,0x2f,0x1b,0x1a,0x28,0x36,0x3c,
+0x3e,0x46,0x37,0x1f,0x2d,0x5c,0x78,0x74,0x59,0x51,0x57,0x6f,0x81,0x76,0x53,0x36,
+0x50,0x57,0x5e,0x62,0x66,0x6b,0x6c,0x69,0x61,0x5e,0x58,0x54,0x58,0x60,0x62,0x60,
+0x59,0x5c,0x5e,0x5f,0x64,0x6f,0x7b,0x81,0x7b,0x6d,0x62,0x62,0x66,0x64,0x5f,0x5b,
+0x60,0x5c,0x5a,0x5d,0x62,0x66,0x64,0x61,0x57,0x54,0x6f,0x74,0x76,0x75,0x5e,0x62,
+0x64,0x6e,0x72,0x6b,0x66,0x6d,0x7a,0x84,0x82,0x86,0x7f,0x80,0x7e,0x7c,0x7f,0x79,
+0x72,0x77,0x77,0x73,0x70,0x71,0x6e,0x68,0x62,0x5f,0x60,0x64,0x63,0x60,0x63,0x6a,
+0x63,0x5a,0x50,0x4b,0x4d,0x50,0x51,0x50,0x59,0x51,0x53,0x62,0x68,0x5d,0x4e,0x48,
+0x45,0x48,0x4b,0x4d,0x51,0x53,0x50,0x4b,0x4e,0x51,0x55,0x57,0x5b,0x5d,0x5b,0x57,
+0x55,0x53,0x52,0x53,0x52,0x50,0x50,0x52,0x55,0x5d,0x65,0x65,0x5f,0x5c,0x60,0x66,
+0x68,0x64,0x5f,0x5d,0x5d,0x5f,0x60,0x61,0x5c,0x58,0x5c,0x61,0x5e,0x5d,0x60,0x60,
+0x5e,0x61,0x61,0x5c,0x59,0x5f,0x6d,0x78,0x7a,0x78,0x73,0x6c,0x69,0x6c,0x6d,0x6c,
+0x72,0x68,0x6a,0x6e,0x6c,0x75,0x80,0x7f,0x6e,0x6c,0x6a,0x68,0x65,0x5e,0x54,0x4d,
+0x48,0x45,0x43,0x43,0x42,0x40,0x3f,0x40,0x45,0x46,0x48,0x48,0x49,0x4a,0x4d,0x4f,
+0x55,0x55,0x55,0x55,0x55,0x54,0x54,0x53,0x52,0x52,0x51,0x50,0x4f,0x4d,0x4c,0x4b,
+0x4a,0x4c,0x4e,0x4c,0x47,0x45,0x49,0x4d,0x46,0x57,0x73,0x8f,0xa4,0xb0,0xb4,0xb5,
+0xb4,0xb4,0xb2,0xae,0xab,0xa9,0xa8,0xa8,0xa4,0xa3,0x9f,0x9d,0xa1,0xa8,0xaa,0xa8,
+0xa9,0xab,0xad,0xad,0xac,0xab,0xaa,0xaa,0xa5,0xa4,0xa4,0xa3,0xa2,0x9f,0x9b,0x98,
+0x9f,0xa0,0x9e,0x99,0x96,0x91,0x85,0x7a,0x78,0x8d,0xab,0xb5,0xae,0xb4,0xbf,0xba,
+0xbb,0xbd,0xc1,0xc5,0xc6,0xc5,0xc5,0xc7,0xc8,0xc8,0xc5,0xbf,0xba,0xb7,0xb4,0xb1,
+0xad,0xaa,0xa3,0x9a,0x98,0x9b,0x9b,0x99,0x98,0x9a,0x9c,0x9d,0x9e,0xa2,0xa8,0xad,
+0xb4,0xbb,0xc3,0xc9,0xcc,0xcc,0xcc,0xcc,0xc6,0xc9,0xc4,0xbb,0xb1,0xa4,0x9f,0xa6,
+0xb3,0xb2,0xae,0xa8,0xa8,0xad,0xb1,0xb2,0xb2,0xbb,0xb3,0xbb,0xbd,0xc6,0xc0,0x7b,
+0x36,0x50,0x6a,0x4c,0x82,0xe0,0xe1,0xdc,0xe3,0xca,0x5d,0xc0,0xe3,0xe9,0xea,0xe2,
+0xe3,0xe4,0xe5,0xe5,0xe4,0xe4,0xe5,0xe7,0xd5,0xd6,0xc1,0x48,0x76,0xcb,0xcc,0xc5,
+0xd0,0xd6,0xd9,0xd6,0xd1,0xd1,0xd4,0xd7,0xdd,0xbd,0x98,0x9e,0x98,0x9b,0x9d,0x9d,
+0x9d,0x9a,0x9b,0x9d,0x9d,0x9a,0x9b,0x9f,0x91,0x7d,0xe2,0xb8,0x5d,0x78,0xb8,0xa1,
+0x6e,0x8d,0xdd,0xd4,0x71,0x80,0xe0,0xb2,0x89,0x9a,0x8a,0x95,0x90,0x8d,0x8d,0x96,
+0x8e,0x8b,0x9e,0xd2,0xd2,0xc9,0xc9,0xcd,0xb9,0xb8,0xaa,0xb1,0x86,0x91,0xa7,0x6a,
+0x44,0x48,0x45,0x41,0x43,0x43,0x42,0x44,0x47,0x56,0x67,0x73,0x78,0x79,0x74,0x6e,
+0x6b,0x70,0x74,0x73,0x74,0x77,0x78,0x75,0x78,0x71,0x6d,0x74,0x85,0x8d,0x85,0x78,
+0x69,0x66,0x65,0x6a,0x6e,0x6e,0x6c,0x6c,0x77,0x78,0x7a,0x7e,0x81,0x7f,0x77,0x70,
+0x7b,0x76,0x73,0x76,0x79,0x76,0x6f,0x6b,0x66,0x62,0x66,0x69,0x62,0x5e,0x60,0x62,
+0x6f,0x61,0x50,0x4d,0x5b,0x6a,0x6f,0x6c,0x63,0x56,0x5b,0x6e,0x68,0x49,0x3b,0x44,
+0x40,0x4a,0x4d,0x49,0x40,0x36,0x36,0x41,0x47,0x48,0x4b,0x52,0x5d,0x63,0x5d,0x54,
+0x53,0x58,0x63,0x71,0x7e,0x84,0x84,0x82,0x79,0x83,0x8f,0x97,0x9c,0x9d,0x9a,0x96,
+0x8d,0x81,0x6f,0x5c,0x48,0x37,0x2c,0x27,0x24,0x2d,0x3e,0x4e,0x55,0x56,0x5b,0x63,
+0x5a,0x61,0x6b,0x70,0x69,0x58,0x49,0x41,0x38,0x40,0x5f,0x89,0x98,0x8f,0x8e,0x9b,
+0x96,0x9d,0x9d,0x99,0x96,0x8a,0x7c,0x77,0x75,0x80,0x8c,0x89,0x75,0x5f,0x59,0x60,
+0x4e,0x3b,0x2f,0x33,0x34,0x2d,0x28,0x2c,0x35,0x3c,0x42,0x45,0x4b,0x52,0x52,0x4d,
+0x46,0x40,0x3e,0x42,0x3f,0x3c,0x45,0x53,0x53,0x57,0x60,0x6b,0x6c,0x5b,0x3f,0x29,
+0x41,0x49,0x54,0x5b,0x5d,0x5a,0x55,0x51,0x63,0x55,0x5a,0x69,0x5d,0x3c,0x33,0x43,
+0x5b,0x56,0x52,0x54,0x5b,0x64,0x6a,0x6c,0x67,0x65,0x61,0x5f,0x5e,0x5e,0x5e,0x5e,
+0x60,0x5e,0x61,0x6d,0x7c,0x7e,0x6f,0x5d,0x4e,0x53,0x5a,0x60,0x62,0x62,0x60,0x5e,
+0x65,0x5f,0x5a,0x5d,0x6a,0x76,0x74,0x6b,0x5b,0x60,0x63,0x72,0x72,0x78,0x72,0x73,
+0x74,0x7c,0x7c,0x72,0x6a,0x6e,0x77,0x7b,0x7c,0x83,0x8b,0x91,0x93,0x8a,0x75,0x61,
+0x64,0x6a,0x6e,0x6f,0x6e,0x6f,0x6f,0x6e,0x66,0x5f,0x60,0x61,0x5d,0x5d,0x62,0x64,
+0x6a,0x64,0x59,0x4d,0x49,0x4d,0x50,0x4f,0x56,0x50,0x4d,0x53,0x5b,0x5b,0x52,0x49,
+0x4a,0x4b,0x51,0x54,0x53,0x55,0x52,0x47,0x4d,0x52,0x54,0x52,0x56,0x5e,0x5d,0x56,
+0x52,0x52,0x57,0x5b,0x59,0x53,0x53,0x57,0x5a,0x64,0x6a,0x63,0x54,0x4d,0x55,0x60,
+0x68,0x61,0x58,0x54,0x54,0x56,0x5b,0x60,0x61,0x65,0x60,0x5f,0x5c,0x57,0x5d,0x5b,
+0x5e,0x5a,0x57,0x57,0x58,0x5a,0x61,0x67,0x6b,0x68,0x66,0x66,0x64,0x63,0x65,0x69,
+0x69,0x66,0x65,0x69,0x71,0x78,0x7b,0x7b,0x60,0x61,0x5f,0x5b,0x5b,0x5f,0x65,0x69,
+0x58,0x4f,0x47,0x43,0x3f,0x3a,0x3c,0x42,0x48,0x48,0x4a,0x4e,0x52,0x54,0x53,0x51,
+0x58,0x59,0x59,0x5a,0x5a,0x5a,0x59,0x59,0x59,0x58,0x57,0x56,0x54,0x52,0x51,0x51,
+0x4f,0x4e,0x4e,0x4d,0x4d,0x4b,0x49,0x47,0x48,0x49,0x4f,0x5c,0x71,0x8a,0xa2,0xaf,
+0xaf,0xb4,0xb5,0xb0,0xab,0xaa,0xa9,0xa8,0xa8,0xa4,0xa0,0x9f,0xa0,0xa4,0xaa,0xb0,
+0xa7,0xa6,0xa7,0xaa,0xae,0xb0,0xaf,0xad,0xa7,0xa6,0xa4,0xa1,0x9f,0x9d,0x9c,0x9b,
+0x9d,0x9b,0x9d,0x99,0x93,0x95,0x88,0x6a,0x7e,0x93,0xa3,0xa8,0xaa,0xaa,0xae,0xb8,
+0xb4,0xbb,0xc3,0xcb,0xd1,0xd4,0xd1,0xcc,0xc9,0xcb,0xc8,0xbf,0xb8,0xb6,0xb4,0xb1,
+0xa9,0xa4,0x9d,0x9a,0x9b,0x9c,0x9b,0x9a,0x97,0x99,0x9c,0x9f,0xa2,0xa7,0xac,0xb0,
+0xb5,0xb8,0xbd,0xc1,0xc5,0xc8,0xcc,0xce,0xcb,0xc7,0xc7,0xc8,0xbe,0xb0,0xad,0xb4,
+0xb8,0xb8,0xb8,0xb4,0xac,0xa4,0xa7,0xae,0xb5,0xa8,0xb9,0xba,0xb2,0xc1,0xcb,0x79,
+0x2a,0x75,0x8e,0x52,0xa2,0xdc,0xdd,0xe1,0xe7,0xe1,0x7e,0x6c,0xbd,0xe0,0xe3,0xe5,
+0xe4,0xe3,0xe4,0xe4,0xf2,0xe3,0xe7,0xde,0xea,0xdb,0x77,0x49,0xa1,0xda,0xc7,0xca,
+0xd6,0xd7,0xd6,0xd3,0xd3,0xd5,0xd6,0xd5,0xde,0xbd,0x9a,0xa3,0x9e,0x9c,0x9b,0x99,
+0x9a,0x9c,0x9d,0x9d,0x9c,0x9c,0x9e,0x9f,0x98,0x7a,0xda,0xa8,0x48,0x75,0xcf,0xa2,
+0x71,0x60,0xa7,0xd2,0x75,0x73,0xce,0xbf,0x80,0x96,0x90,0x91,0x95,0x8f,0x94,0x94,
+0x90,0x93,0xa2,0xce,0xd1,0xca,0xc6,0xc7,0xca,0xa9,0xac,0xaf,0x97,0x87,0x96,0x6b,
+0x48,0x47,0x46,0x44,0x41,0x42,0x47,0x4d,0x5c,0x76,0x86,0x7f,0x79,0x7c,0x77,0x6b,
+0x68,0x6f,0x71,0x6d,0x6e,0x78,0x83,0x88,0x7d,0x6b,0x55,0x65,0x76,0x92,0x92,0x93,
+0x83,0x6d,0x60,0x65,0x69,0x63,0x60,0x64,0x6e,0x72,0x7a,0x80,0x7c,0x73,0x70,0x74,
+0x70,0x6b,0x6b,0x71,0x73,0x70,0x6d,0x6e,0x63,0x64,0x60,0x5a,0x59,0x60,0x68,0x6c,
+0x5d,0x4f,0x3f,0x3d,0x4b,0x5b,0x60,0x5c,0x59,0x63,0x6d,0x6f,0x5c,0x59,0x5d,0x44,
+0x1e,0x32,0x47,0x46,0x3b,0x3e,0x44,0x41,0x42,0x3a,0x3a,0x46,0x54,0x58,0x53,0x4d,
+0x52,0x62,0x6d,0x76,0x84,0x89,0x7f,0x75,0x75,0x8a,0x9b,0x9c,0x9c,0xa0,0x9a,0x8e,
+0x79,0x73,0x6e,0x5c,0x50,0x4a,0x3b,0x36,0x2b,0x29,0x2d,0x3a,0x4a,0x52,0x4f,0x4a,
+0x52,0x4c,0x4a,0x4a,0x45,0x40,0x4b,0x5c,0x6e,0x75,0x80,0x87,0x86,0x85,0x8c,0x95,
+0x99,0x95,0x98,0x9c,0x8d,0x73,0x6a,0x70,0x6e,0x69,0x6e,0x7c,0x83,0x79,0x68,0x5d,
+0x76,0x8a,0xa4,0xb4,0xb4,0xae,0xaa,0xa9,0xad,0xaf,0xb2,0xb4,0xb2,0xac,0xa7,0xa4,
+0x8c,0x7b,0x67,0x5c,0x58,0x57,0x55,0x54,0x58,0x5d,0x5e,0x5b,0x5d,0x60,0x5a,0x4f,
+0x74,0x7f,0x7d,0x6e,0x68,0x6b,0x62,0x50,0x46,0x4d,0x4d,0x42,0x36,0x2f,0x28,0x20,
+0x57,0x58,0x5b,0x60,0x65,0x68,0x68,0x67,0x69,0x6e,0x6f,0x69,0x5e,0x58,0x5a,0x5f,
+0x66,0x6d,0x73,0x74,0x6f,0x66,0x59,0x4f,0x4c,0x4f,0x53,0x56,0x58,0x58,0x56,0x55,
+0x59,0x5c,0x60,0x65,0x69,0x69,0x5f,0x54,0x4e,0x55,0x60,0x78,0x77,0x74,0x68,0x6b,
+0x69,0x6f,0x76,0x76,0x71,0x6e,0x73,0x7a,0x6e,0x6a,0x6b,0x71,0x75,0x6f,0x61,0x56,
+0x61,0x66,0x6b,0x6e,0x6f,0x6f,0x6c,0x69,0x65,0x5c,0x5c,0x61,0x60,0x62,0x6b,0x71,
+0x70,0x67,0x5f,0x5b,0x57,0x52,0x51,0x52,0x53,0x4e,0x47,0x46,0x4b,0x51,0x52,0x50,
+0x45,0x44,0x4a,0x4f,0x53,0x57,0x54,0x49,0x45,0x4c,0x52,0x57,0x5b,0x5d,0x56,0x4d,
+0x4b,0x4f,0x58,0x5f,0x5e,0x58,0x58,0x5c,0x6c,0x62,0x55,0x4d,0x49,0x4a,0x4e,0x51,
+0x53,0x58,0x5f,0x5f,0x56,0x50,0x59,0x67,0x6c,0x6c,0x63,0x65,0x67,0x65,0x66,0x5e,
+0x5a,0x59,0x59,0x5a,0x5a,0x5a,0x5f,0x65,0x6f,0x6e,0x6c,0x67,0x63,0x62,0x67,0x6f,
+0x69,0x67,0x66,0x69,0x6e,0x70,0x6f,0x6d,0x62,0x61,0x5d,0x58,0x55,0x56,0x5a,0x5c,
+0x69,0x63,0x5a,0x52,0x4a,0x44,0x41,0x42,0x4c,0x4c,0x4e,0x52,0x56,0x59,0x5a,0x59,
+0x5c,0x5c,0x5d,0x5e,0x5e,0x5e,0x5d,0x5c,0x5c,0x5b,0x5a,0x58,0x56,0x55,0x54,0x53,
+0x51,0x50,0x4f,0x4f,0x4f,0x4e,0x4c,0x4b,0x4a,0x4a,0x4a,0x4c,0x51,0x5c,0x6a,0x73,
+0x8f,0x9a,0xa5,0xa9,0xaa,0xad,0xae,0xad,0xae,0xae,0xac,0xa8,0xa4,0xa2,0xa1,0xa1,
+0xa0,0xa1,0xa2,0xa2,0xa3,0xa4,0xa5,0xa6,0xa6,0xa5,0xa3,0xa1,0xa0,0x9f,0x9e,0x9e,
+0x9c,0x99,0x9b,0x99,0x92,0x90,0x82,0x69,0x7e,0x92,0xa0,0xa3,0xa3,0xa2,0xa7,0xb2,
+0xb9,0xba,0xbc,0xc0,0xc7,0xce,0xce,0xca,0xc7,0xc8,0xc5,0xbe,0xb8,0xb5,0xb2,0xaf,
+0xa2,0x9e,0x9a,0x99,0x9b,0x9e,0x9e,0x9e,0x9b,0x9c,0x9d,0x9f,0xa1,0xa5,0xaa,0xad,
+0xb7,0xbb,0xc0,0xc6,0xcb,0xcf,0xd1,0xd3,0xcf,0xcc,0xcd,0xce,0xc5,0xb8,0xb6,0xbd,
+0xbe,0xbc,0xbb,0xb9,0xb2,0xac,0xac,0xb0,0xad,0xb0,0xae,0xb0,0xc1,0xba,0xc3,0xb9,
+0x48,0x46,0x53,0x46,0xbb,0xf1,0xe6,0xdd,0xde,0xe7,0x9f,0x45,0x67,0xf1,0xee,0xdd,
+0xe7,0xe5,0xf1,0xe3,0xc7,0xde,0xe8,0xe6,0xe3,0xa9,0x52,0x6f,0xc1,0xd5,0xd0,0xc3,
+0xd6,0xd7,0xd6,0xd3,0xd3,0xd6,0xd7,0xd6,0xe0,0xbe,0x9a,0xa2,0x9d,0x9b,0x9a,0x99,
+0x9a,0x9c,0x9d,0x9d,0x9c,0x9c,0x9d,0x9e,0x99,0x7b,0xd2,0xaf,0x58,0x78,0xd5,0xa8,
+0x7e,0x77,0x9f,0xcc,0x86,0x7a,0xb5,0xbe,0x7e,0x95,0x93,0x94,0x97,0x91,0x95,0x93,
+0x92,0x93,0x9f,0xca,0xcf,0xca,0xc7,0xc8,0xbf,0xad,0xab,0xab,0x9a,0x74,0x6f,0x59,
+0x40,0x44,0x47,0x47,0x44,0x47,0x50,0x59,0x6d,0x77,0x7e,0x7e,0x7d,0x7b,0x71,0x65,
+0x61,0x68,0x6e,0x6f,0x73,0x7b,0x82,0x84,0x7d,0x71,0x61,0x6c,0x73,0x85,0x84,0x86,
+0x86,0x75,0x62,0x5a,0x5c,0x63,0x69,0x6d,0x6d,0x75,0x7a,0x7a,0x7a,0x7a,0x75,0x6e,
+0x72,0x6b,0x66,0x67,0x6a,0x6a,0x69,0x68,0x63,0x66,0x69,0x6f,0x77,0x7c,0x77,0x6e,
+0x5c,0x40,0x29,0x2e,0x43,0x53,0x5c,0x61,0x65,0x63,0x66,0x6d,0x67,0x63,0x57,0x31,
+0x23,0x36,0x51,0x5c,0x58,0x57,0x54,0x4c,0x37,0x33,0x2d,0x2e,0x38,0x42,0x43,0x3f,
+0x3e,0x50,0x5f,0x6a,0x77,0x7c,0x79,0x78,0x6c,0x73,0x7f,0x85,0x85,0x8a,0x8f,0x8b,
+0x8c,0x72,0x5a,0x45,0x44,0x4c,0x46,0x45,0x3a,0x35,0x33,0x38,0x3e,0x40,0x40,0x41,
+0x3c,0x48,0x51,0x4e,0x4b,0x50,0x5c,0x64,0x67,0x67,0x68,0x67,0x64,0x66,0x6f,0x7a,
+0x79,0x70,0x68,0x6a,0x6f,0x70,0x6f,0x6f,0x6d,0x66,0x64,0x6a,0x74,0x81,0x93,0xa3,
+0x8e,0x99,0xa5,0xa8,0xa1,0x98,0x92,0x90,0x9a,0x9e,0xa5,0xad,0xb4,0xb8,0xbc,0xbe,
+0xb1,0xac,0x9d,0x87,0x72,0x62,0x50,0x43,0x3a,0x3a,0x3d,0x43,0x4a,0x53,0x5e,0x66,
+0x5f,0x5c,0x57,0x50,0x48,0x41,0x3e,0x3f,0x42,0x3d,0x36,0x30,0x28,0x20,0x19,0x15,
+0x5c,0x60,0x65,0x69,0x6b,0x6c,0x6c,0x6c,0x6a,0x6b,0x6d,0x6f,0x70,0x6f,0x6d,0x6c,
+0x74,0x78,0x77,0x6c,0x5d,0x54,0x50,0x4f,0x43,0x46,0x4b,0x4e,0x51,0x52,0x54,0x56,
+0x5b,0x5f,0x63,0x62,0x5f,0x5b,0x57,0x52,0x58,0x5c,0x5e,0x71,0x73,0x76,0x68,0x63,
+0x5a,0x5f,0x6c,0x78,0x78,0x72,0x73,0x7b,0x72,0x6a,0x6a,0x76,0x7c,0x73,0x64,0x5b,
+0x57,0x5d,0x64,0x68,0x6c,0x6e,0x6a,0x65,0x6a,0x5c,0x5a,0x62,0x63,0x65,0x6d,0x73,
+0x70,0x66,0x61,0x65,0x62,0x58,0x53,0x56,0x51,0x51,0x4e,0x48,0x48,0x4d,0x4e,0x4c,
+0x4b,0x47,0x4a,0x50,0x55,0x5c,0x5b,0x51,0x4f,0x50,0x53,0x57,0x5a,0x59,0x54,0x50,
+0x4c,0x4b,0x4f,0x59,0x5d,0x5c,0x5d,0x60,0x56,0x4a,0x41,0x46,0x4f,0x51,0x4b,0x44,
+0x53,0x51,0x4f,0x4e,0x4d,0x52,0x5e,0x6b,0x62,0x62,0x5b,0x63,0x6d,0x6e,0x6d,0x5f,
+0x4b,0x54,0x62,0x6c,0x6b,0x63,0x5b,0x59,0x61,0x64,0x68,0x6a,0x6d,0x6f,0x70,0x71,
+0x63,0x64,0x67,0x6b,0x6f,0x70,0x6d,0x6b,0x68,0x65,0x60,0x5b,0x56,0x55,0x57,0x59,
+0x5d,0x63,0x68,0x69,0x65,0x5f,0x55,0x4d,0x4e,0x4e,0x50,0x54,0x59,0x5d,0x5f,0x5f,
+0x61,0x62,0x63,0x63,0x63,0x63,0x62,0x61,0x60,0x5f,0x5e,0x5c,0x5a,0x58,0x57,0x56,
+0x54,0x53,0x51,0x51,0x51,0x51,0x51,0x50,0x50,0x50,0x4f,0x4b,0x47,0x48,0x4e,0x53,
+0x67,0x78,0x8d,0x9c,0xa3,0xa8,0xab,0xac,0xa7,0xac,0xad,0xa7,0xa3,0xa3,0xa4,0xa3,
+0xa1,0xa2,0xa2,0xa0,0x9d,0x9d,0x9f,0xa2,0xa3,0xa3,0xa2,0xa1,0xa1,0xa0,0xa0,0xa0,
+0x9c,0x96,0x98,0x9a,0x93,0x89,0x7b,0x6b,0x81,0x93,0x9f,0xa0,0xa0,0xa0,0xa6,0xb0,
+0xbe,0xbd,0xbc,0xbf,0xc7,0xce,0xce,0xca,0xc4,0xc4,0xc1,0xbb,0xb7,0xb4,0xaf,0xaa,
+0x9d,0x9b,0x98,0x99,0x9c,0x9f,0xa0,0xa0,0x9e,0x9f,0x9f,0xa0,0xa3,0xa7,0xac,0xb0,
+0xb5,0xb8,0xbd,0xc4,0xcb,0xd0,0xd3,0xd4,0xd2,0xd0,0xd2,0xd4,0xcd,0xc2,0xc1,0xc8,
+0xc5,0xc1,0xbf,0xbd,0xba,0xb5,0xb1,0xb0,0xb0,0xb7,0xb9,0xb4,0xba,0xbb,0xc0,0xab,
+0x59,0x35,0x3c,0x4e,0xcb,0xe2,0xde,0xe4,0xe1,0xe4,0xda,0x54,0x5d,0xd6,0xde,0xe9,
+0xdf,0xda,0xe8,0xc3,0x79,0xc6,0xe6,0xe2,0xca,0x6a,0x4b,0x9b,0xd2,0xcc,0xca,0xc4,
+0xd5,0xd7,0xd6,0xd4,0xd4,0xd6,0xd7,0xd6,0xdf,0xbd,0x98,0xa0,0x9b,0x9b,0x9c,0x9c,
+0x9b,0x9c,0x9d,0x9d,0x9c,0x9c,0x9c,0x9d,0x99,0x78,0xba,0xae,0x65,0x76,0xd9,0xb2,
+0x7e,0x85,0x89,0xbb,0x8f,0x7e,0x91,0xb9,0x7d,0x94,0x97,0x96,0x97,0x94,0x96,0x92,
+0x95,0x93,0x9b,0xc6,0xcd,0xca,0xc8,0xc9,0xb8,0xb6,0xae,0xac,0xa1,0x68,0x4c,0x4c,
+0x57,0x4d,0x44,0x45,0x51,0x5f,0x67,0x6a,0x74,0x76,0x79,0x7d,0x7c,0x75,0x6b,0x64,
+0x5d,0x63,0x6b,0x72,0x79,0x7f,0x81,0x80,0x80,0x79,0x70,0x75,0x75,0x7c,0x7a,0x7d,
+0x80,0x82,0x7d,0x74,0x75,0x7c,0x7a,0x70,0x6f,0x75,0x74,0x6e,0x77,0x89,0x8c,0x82,
+0x67,0x6a,0x6c,0x6c,0x6c,0x6b,0x67,0x63,0x6c,0x6a,0x69,0x6c,0x74,0x79,0x78,0x72,
+0x5d,0x3a,0x21,0x25,0x32,0x3b,0x4a,0x5c,0x5a,0x64,0x71,0x79,0x6c,0x5c,0x4e,0x2e,
+0x2d,0x2f,0x38,0x3e,0x39,0x34,0x2f,0x27,0x31,0x32,0x2d,0x29,0x2f,0x39,0x3c,0x37,
+0x41,0x46,0x4c,0x59,0x69,0x69,0x5b,0x52,0x43,0x3b,0x4b,0x6a,0x7d,0x81,0x70,0x54,
+0x32,0x27,0x27,0x28,0x33,0x41,0x44,0x4b,0x3d,0x36,0x33,0x35,0x35,0x32,0x35,0x3c,
+0x39,0x4e,0x56,0x4b,0x48,0x53,0x53,0x47,0x45,0x4a,0x53,0x58,0x57,0x53,0x51,0x53,
+0x5b,0x62,0x66,0x66,0x69,0x6c,0x67,0x5d,0x57,0x5b,0x6f,0x91,0xaa,0xac,0x9d,0x8f,
+0x95,0x8e,0x82,0x78,0x76,0x80,0x91,0x9f,0x9b,0x9f,0xa5,0xab,0xae,0xaf,0xae,0xac,
+0xbd,0xbd,0xb2,0xa1,0x94,0x89,0x74,0x5f,0x4e,0x3c,0x2f,0x2f,0x30,0x30,0x3b,0x4b,
+0x4d,0x4b,0x4b,0x4b,0x43,0x3a,0x3c,0x45,0x44,0x39,0x30,0x2b,0x24,0x1b,0x1a,0x20,
+0x54,0x5b,0x63,0x66,0x65,0x63,0x62,0x63,0x67,0x66,0x68,0x6f,0x77,0x7a,0x75,0x6f,
+0x72,0x71,0x6b,0x63,0x5b,0x57,0x53,0x50,0x41,0x47,0x4e,0x51,0x50,0x52,0x57,0x5c,
+0x64,0x66,0x65,0x5f,0x59,0x55,0x54,0x55,0x51,0x57,0x59,0x6b,0x7b,0x8e,0x7f,0x6d,
+0x5d,0x60,0x6a,0x74,0x78,0x75,0x72,0x72,0x76,0x6f,0x6e,0x77,0x81,0x7d,0x6e,0x61,
+0x5d,0x63,0x6a,0x6d,0x6e,0x6f,0x6d,0x6a,0x69,0x58,0x56,0x62,0x66,0x65,0x68,0x6a,
+0x6a,0x61,0x5d,0x5f,0x5d,0x55,0x4f,0x50,0x4e,0x51,0x4e,0x48,0x48,0x4f,0x51,0x4f,
+0x4b,0x45,0x44,0x46,0x47,0x4d,0x50,0x4b,0x4e,0x4c,0x4f,0x55,0x59,0x56,0x53,0x51,
+0x48,0x49,0x52,0x63,0x6c,0x66,0x59,0x51,0x50,0x4c,0x4f,0x5b,0x64,0x60,0x56,0x4e,
+0x51,0x51,0x51,0x52,0x57,0x5b,0x58,0x52,0x4e,0x53,0x50,0x59,0x63,0x66,0x65,0x57,
+0x55,0x55,0x58,0x5d,0x5f,0x5f,0x60,0x62,0x6b,0x6b,0x6a,0x6b,0x6e,0x70,0x69,0x60,
+0x5e,0x61,0x65,0x6a,0x6e,0x6f,0x6e,0x6c,0x6c,0x68,0x63,0x60,0x5d,0x5b,0x5d,0x60,
+0x59,0x64,0x6d,0x71,0x71,0x70,0x67,0x5d,0x50,0x51,0x53,0x57,0x5b,0x5f,0x62,0x64,
+0x66,0x66,0x67,0x68,0x67,0x67,0x66,0x65,0x63,0x62,0x61,0x5f,0x5e,0x5c,0x5b,0x5a,
+0x58,0x56,0x54,0x53,0x53,0x54,0x53,0x53,0x4c,0x4d,0x4e,0x4d,0x4b,0x4b,0x4c,0x4e,
+0x45,0x51,0x63,0x72,0x81,0x92,0xa4,0xb0,0xa9,0xaf,0xb0,0xa7,0xa2,0xa4,0xa7,0xa6,
+0xa6,0xa5,0xa4,0xa1,0x9e,0x9d,0x9f,0xa1,0xa1,0xa0,0xa0,0xa0,0xa0,0xa1,0xa1,0xa1,
+0x9e,0x97,0x97,0x9b,0x94,0x82,0x74,0x6e,0x83,0x92,0x9b,0x9d,0xa2,0xa4,0xa7,0xae,
+0xb9,0xbe,0xc4,0xca,0xd0,0xd2,0xce,0xc9,0xc2,0xc0,0xbc,0xb8,0xb4,0xaf,0xa9,0xa4,
+0x9d,0x9b,0x9a,0x9a,0x9d,0x9f,0xa0,0xa0,0x9f,0x9f,0xa0,0xa2,0xa5,0xab,0xb2,0xb7,
+0xb1,0xb2,0xb5,0xbb,0xc3,0xca,0xce,0xd0,0xd3,0xd3,0xd6,0xd8,0xd2,0xc9,0xc9,0xce,
+0xcd,0xc9,0xc5,0xc4,0xc3,0xbf,0xb9,0xb4,0xba,0xbc,0xc3,0xbd,0xb9,0xbf,0x9e,0x54,
+0x42,0x4c,0x42,0x5e,0xe2,0xe8,0xe6,0xe6,0xde,0xe4,0xbc,0x34,0x48,0xc5,0xea,0xe5,
+0xef,0xea,0xec,0xae,0x4e,0xb1,0xed,0xd6,0x85,0x45,0x7c,0xc1,0xcf,0xcc,0xbb,0xcb,
+0xd4,0xd6,0xd6,0xd4,0xd4,0xd7,0xd8,0xd7,0xdb,0xb9,0x95,0x9e,0x9a,0x9c,0x9f,0xa0,
+0x9d,0x9d,0x9e,0x9d,0x9d,0x9c,0x9d,0x9d,0x9d,0x77,0x9e,0xa8,0x6a,0x6e,0xd8,0xbe,
+0x78,0x88,0x79,0xaf,0x8d,0x84,0x7f,0xb7,0x7f,0x91,0x99,0x96,0x94,0x95,0x96,0x92,
+0x95,0x91,0x99,0xc4,0xcd,0xcb,0xc8,0xc8,0xba,0xbb,0xb0,0xae,0xa5,0x6f,0x48,0x4d,
+0x41,0x41,0x47,0x59,0x6f,0x7b,0x76,0x6b,0x6d,0x75,0x7e,0x80,0x7b,0x74,0x6e,0x6c,
+0x61,0x62,0x68,0x72,0x7c,0x81,0x81,0x80,0x7d,0x75,0x6f,0x72,0x75,0x77,0x75,0x74,
+0x74,0x7c,0x7b,0x72,0x72,0x7a,0x7a,0x71,0x6f,0x73,0x6f,0x69,0x71,0x84,0x8a,0x83,
+0x71,0x76,0x75,0x6c,0x64,0x65,0x66,0x64,0x64,0x69,0x6f,0x72,0x73,0x75,0x78,0x7b,
+0x65,0x50,0x3f,0x38,0x30,0x2c,0x3f,0x59,0x6c,0x68,0x65,0x70,0x75,0x71,0x63,0x42,
+0x2d,0x33,0x3d,0x37,0x24,0x28,0x48,0x65,0x6d,0x5e,0x48,0x37,0x2f,0x30,0x33,0x34,
+0x39,0x39,0x3b,0x48,0x58,0x55,0x46,0x3f,0x36,0x2d,0x38,0x4d,0x59,0x65,0x66,0x56,
+0x55,0x4e,0x52,0x51,0x4e,0x4a,0x3d,0x3d,0x37,0x30,0x2e,0x32,0x30,0x2a,0x2b,0x33,
+0x57,0x5c,0x50,0x3c,0x41,0x55,0x55,0x43,0x38,0x3a,0x3d,0x3f,0x3f,0x3e,0x40,0x42,
+0x3e,0x43,0x44,0x43,0x49,0x57,0x5f,0x5e,0x5c,0x6c,0x85,0x97,0x95,0x83,0x6f,0x65,
+0x3c,0x3b,0x3c,0x3f,0x45,0x4d,0x56,0x5b,0x59,0x5b,0x60,0x69,0x79,0x8d,0x9d,0xa5,
+0xa1,0xab,0xb4,0xb6,0xb2,0xa8,0x95,0x85,0x6f,0x53,0x39,0x2f,0x2a,0x24,0x24,0x29,
+0x30,0x34,0x32,0x27,0x1b,0x17,0x1a,0x1e,0x31,0x2f,0x2e,0x2a,0x23,0x1e,0x23,0x2b,
+0x5b,0x65,0x70,0x75,0x72,0x6d,0x6a,0x69,0x65,0x6a,0x6f,0x6f,0x6b,0x67,0x65,0x65,
+0x65,0x68,0x6a,0x69,0x65,0x5d,0x51,0x46,0x4a,0x52,0x5a,0x5a,0x54,0x52,0x56,0x5c,
+0x61,0x63,0x66,0x66,0x60,0x57,0x4f,0x4a,0x4d,0x58,0x66,0x84,0x8e,0x92,0x7a,0x6a,
+0x6e,0x6f,0x6e,0x6d,0x71,0x74,0x6f,0x67,0x70,0x6b,0x62,0x62,0x6e,0x79,0x73,0x65,
+0x60,0x65,0x69,0x67,0x63,0x62,0x62,0x62,0x5f,0x50,0x51,0x60,0x67,0x65,0x62,0x5e,
+0x5d,0x59,0x53,0x4f,0x4f,0x4f,0x4b,0x47,0x49,0x46,0x3f,0x3a,0x41,0x4f,0x59,0x5b,
+0x4d,0x46,0x43,0x40,0x3b,0x3f,0x48,0x4a,0x49,0x4c,0x56,0x61,0x66,0x61,0x59,0x54,
+0x4b,0x4b,0x51,0x59,0x5b,0x55,0x50,0x4f,0x6b,0x61,0x5b,0x5d,0x5f,0x5b,0x56,0x55,
+0x4f,0x53,0x51,0x49,0x4a,0x50,0x4e,0x47,0x4f,0x55,0x4f,0x50,0x54,0x58,0x5e,0x57,
+0x58,0x52,0x4e,0x50,0x54,0x59,0x5d,0x61,0x70,0x75,0x73,0x6c,0x69,0x6b,0x69,0x64,
+0x5b,0x5d,0x60,0x63,0x65,0x66,0x68,0x69,0x6b,0x65,0x61,0x5f,0x5f,0x5e,0x61,0x65,
+0x71,0x72,0x6e,0x66,0x63,0x66,0x66,0x62,0x56,0x57,0x5a,0x5d,0x60,0x64,0x68,0x6a,
+0x6a,0x6a,0x6b,0x6b,0x6b,0x6a,0x69,0x68,0x66,0x66,0x65,0x63,0x62,0x61,0x60,0x5f,
+0x5e,0x5c,0x59,0x58,0x57,0x57,0x57,0x56,0x53,0x52,0x51,0x52,0x53,0x52,0x4f,0x4d,
+0x4c,0x4b,0x49,0x49,0x4f,0x61,0x78,0x8a,0xa2,0xab,0xb0,0xad,0xa8,0xa6,0xa5,0xa2,
+0xa7,0xa4,0xa1,0x9f,0x9f,0x9f,0x9e,0x9d,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0xa0,0xa1,
+0xa0,0x9a,0x98,0x9d,0x95,0x7e,0x71,0x74,0x83,0x8d,0x93,0x98,0xa1,0xa6,0xa5,0xa8,
+0xb2,0xbd,0xca,0xd1,0xd2,0xd1,0xcc,0xc8,0xc0,0xbd,0xb8,0xb4,0xb0,0xa9,0xa2,0x9e,
+0x9d,0x9c,0x9b,0x9b,0x9d,0x9f,0xa1,0xa1,0xa0,0xa1,0xa2,0xa3,0xa7,0xad,0xb4,0xb8,
+0xb1,0xb0,0xb1,0xb4,0xbb,0xc3,0xcb,0xcf,0xd3,0xd4,0xd8,0xda,0xd5,0xce,0xcd,0xd2,
+0xd5,0xd1,0xcd,0xcc,0xcc,0xc9,0xc2,0xbc,0xbc,0xbd,0xb9,0xbb,0xc8,0xc4,0x7c,0x2d,
+0x70,0x91,0x50,0x74,0xe9,0xd5,0xbf,0xad,0xb3,0xb8,0x6e,0x4f,0x36,0x9c,0xe6,0xe0,
+0xe4,0xe2,0xe1,0xb4,0x72,0xbb,0xe5,0xa2,0x41,0x5a,0xb7,0xd7,0xcd,0xce,0xbd,0xc6,
+0xd3,0xd5,0xd5,0xd4,0xd5,0xd7,0xd8,0xd7,0xdb,0xb9,0x95,0x9e,0x9a,0x9c,0x9e,0x9f,
+0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9d,0xa2,0x7b,0x8b,0xac,0x6f,0x69,0xc9,0xbf,
+0x79,0x88,0x79,0xb1,0x85,0x88,0x7f,0xb6,0x85,0x8d,0x97,0x94,0x90,0x94,0x95,0x93,
+0x93,0x8f,0x97,0xc4,0xce,0xcc,0xc8,0xc6,0xbf,0xb7,0xad,0xac,0xa1,0x7e,0x5b,0x5b,
+0x54,0x5e,0x6b,0x75,0x7b,0x7d,0x79,0x73,0x69,0x76,0x81,0x83,0x7f,0x7b,0x75,0x6e,
+0x64,0x62,0x65,0x70,0x7a,0x7f,0x82,0x86,0x7b,0x6d,0x64,0x65,0x70,0x73,0x71,0x6c,
+0x65,0x6c,0x71,0x70,0x6f,0x70,0x70,0x6c,0x6f,0x70,0x6e,0x69,0x68,0x6a,0x6b,0x6a,
+0x6f,0x70,0x6c,0x63,0x5d,0x56,0x49,0x3c,0x51,0x5d,0x6c,0x75,0x74,0x6d,0x69,0x67,
+0x74,0x70,0x69,0x5c,0x4b,0x46,0x55,0x68,0x6b,0x5d,0x4a,0x4d,0x55,0x59,0x5a,0x4c,
+0x42,0x3b,0x3a,0x35,0x2c,0x34,0x51,0x69,0x57,0x44,0x35,0x35,0x36,0x33,0x35,0x3d,
+0x49,0x4c,0x47,0x40,0x38,0x2f,0x2f,0x39,0x4a,0x6d,0x97,0x9b,0x7a,0x5c,0x4a,0x3b,
+0x39,0x29,0x25,0x26,0x33,0x3e,0x38,0x38,0x3c,0x33,0x2e,0x2e,0x2b,0x22,0x1f,0x22,
+0x30,0x38,0x39,0x38,0x44,0x53,0x4e,0x3d,0x39,0x38,0x36,0x32,0x2e,0x2d,0x2d,0x2d,
+0x31,0x2f,0x34,0x45,0x5c,0x6f,0x79,0x7b,0x7b,0x85,0x8e,0x8a,0x75,0x5d,0x4f,0x4b,
+0x61,0x60,0x60,0x64,0x6a,0x6f,0x72,0x73,0x76,0x77,0x78,0x77,0x7a,0x7e,0x7d,0x7a,
+0x82,0x90,0xa5,0xb3,0xae,0x9e,0x93,0x91,0x8a,0x78,0x5e,0x49,0x3b,0x30,0x27,0x21,
+0x23,0x28,0x2c,0x2a,0x2a,0x31,0x3f,0x4b,0x50,0x56,0x5a,0x58,0x54,0x4f,0x46,0x3d,
+0x58,0x5d,0x62,0x61,0x5e,0x5e,0x62,0x67,0x6a,0x6a,0x6a,0x6c,0x6e,0x6d,0x6a,0x66,
+0x6d,0x72,0x74,0x6f,0x65,0x5c,0x53,0x4d,0x51,0x57,0x5d,0x5d,0x58,0x55,0x59,0x5e,
+0x5b,0x5b,0x5f,0x65,0x66,0x60,0x58,0x53,0x61,0x68,0x7a,0x98,0x8f,0x7a,0x65,0x69,
+0x71,0x71,0x6b,0x66,0x6a,0x73,0x73,0x6d,0x66,0x64,0x5c,0x59,0x66,0x78,0x76,0x67,
+0x5a,0x5e,0x60,0x5d,0x5b,0x5d,0x5f,0x5f,0x5d,0x54,0x57,0x60,0x60,0x5c,0x57,0x50,
+0x4c,0x4c,0x48,0x46,0x4b,0x53,0x53,0x4d,0x46,0x40,0x3b,0x3d,0x45,0x4e,0x54,0x56,
+0x50,0x48,0x45,0x41,0x3a,0x3d,0x49,0x4f,0x51,0x53,0x57,0x5c,0x5f,0x5f,0x5a,0x56,
+0x5e,0x61,0x66,0x66,0x5f,0x59,0x5e,0x68,0x6f,0x5f,0x52,0x53,0x56,0x55,0x54,0x56,
+0x5a,0x51,0x47,0x43,0x4a,0x57,0x5d,0x5e,0x5e,0x61,0x54,0x4e,0x50,0x59,0x68,0x67,
+0x56,0x53,0x52,0x56,0x5a,0x5a,0x59,0x59,0x60,0x76,0x84,0x7b,0x6d,0x69,0x6c,0x6c,
+0x56,0x59,0x5c,0x5e,0x60,0x64,0x69,0x6d,0x6c,0x64,0x5e,0x5e,0x5e,0x5f,0x62,0x68,
+0x6f,0x6d,0x67,0x60,0x5c,0x5d,0x5f,0x5e,0x57,0x5a,0x5d,0x61,0x64,0x67,0x6b,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x6c,0x6b,0x6b,0x6a,0x69,0x68,0x67,0x67,0x66,
+0x65,0x63,0x61,0x60,0x60,0x5f,0x5d,0x5c,0x60,0x5d,0x5a,0x5a,0x5c,0x5b,0x56,0x52,
+0x5a,0x56,0x51,0x4b,0x46,0x46,0x4d,0x55,0x6f,0x7c,0x8e,0x9d,0xa6,0xa8,0xa9,0xaa,
+0xa4,0xa2,0xa0,0xa1,0xa2,0xa2,0x9f,0x9c,0x9f,0x9f,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,
+0xa1,0x9d,0x99,0x9b,0x93,0x7b,0x6f,0x79,0x83,0x8b,0x8f,0x94,0xa1,0xa7,0xa8,0xaa,
+0xb6,0xc2,0xcd,0xd1,0xcf,0xcd,0xcb,0xca,0xbd,0xb9,0xb4,0xb1,0xab,0xa3,0x9e,0x9b,
+0x9b,0x9b,0x9a,0x9b,0x9d,0xa0,0xa3,0xa5,0xa4,0xa4,0xa5,0xa5,0xa7,0xab,0xb0,0xb4,
+0xb6,0xb6,0xb4,0xb5,0xb8,0xc0,0xca,0xd1,0xd3,0xd6,0xdb,0xdc,0xd7,0xd2,0xd2,0xd5,
+0xd6,0xd5,0xd2,0xcf,0xce,0xcc,0xc7,0xc1,0xbc,0xb7,0xbb,0xbc,0xbc,0xc9,0x8c,0x38,
+0x52,0x6d,0x3e,0xa2,0xc8,0x73,0x4b,0x50,0x51,0x39,0x3d,0x95,0x6f,0x70,0xdb,0xf4,
+0xea,0xe3,0xe7,0xe7,0xd9,0xe1,0xbf,0x58,0x4f,0x9d,0xce,0xd2,0xc6,0xc3,0xca,0xbf,
+0xd1,0xd3,0xd4,0xd3,0xd5,0xd7,0xd8,0xd7,0xde,0xbd,0x98,0xa1,0x9b,0x9a,0x9a,0x9a,
+0x9e,0x9d,0x9d,0x9d,0x9e,0x9f,0x9e,0x9d,0xa0,0x7f,0x81,0xb7,0x72,0x66,0xaf,0xb2,
+0x7b,0x82,0x7c,0xb5,0x7a,0x82,0x7c,0xb2,0x8d,0x89,0x93,0x93,0x8e,0x93,0x92,0x93,
+0x90,0x8d,0x97,0xc5,0xce,0xcc,0xc7,0xc6,0xc3,0xb5,0xac,0xab,0x9d,0x88,0x6c,0x72,
+0x8c,0x8b,0x85,0x7d,0x7b,0x7e,0x7e,0x7a,0x69,0x73,0x7c,0x80,0x82,0x80,0x74,0x67,
+0x66,0x62,0x65,0x6f,0x77,0x7b,0x83,0x8c,0x85,0x72,0x65,0x62,0x72,0x74,0x75,0x6e,
+0x6a,0x70,0x78,0x7d,0x7c,0x78,0x75,0x74,0x73,0x6f,0x6a,0x66,0x60,0x5e,0x68,0x74,
+0x74,0x6a,0x5f,0x5c,0x5f,0x5a,0x46,0x33,0x33,0x37,0x41,0x50,0x5f,0x6e,0x7d,0x87,
+0x7c,0x7e,0x7a,0x6f,0x68,0x6b,0x75,0x7d,0x82,0x81,0x74,0x6d,0x62,0x55,0x58,0x57,
+0x4d,0x40,0x3a,0x3b,0x38,0x37,0x39,0x37,0x2d,0x1c,0x19,0x29,0x34,0x33,0x39,0x46,
+0x3d,0x42,0x3d,0x35,0x35,0x3e,0x52,0x67,0x89,0x81,0x64,0x3b,0x20,0x1b,0x20,0x26,
+0x27,0x23,0x29,0x2d,0x3e,0x52,0x55,0x59,0x46,0x3e,0x36,0x31,0x2e,0x29,0x25,0x23,
+0x1f,0x30,0x44,0x50,0x56,0x58,0x53,0x4c,0x41,0x43,0x43,0x3e,0x38,0x33,0x2e,0x2a,
+0x2a,0x35,0x4c,0x64,0x6b,0x62,0x58,0x57,0x5e,0x60,0x62,0x5f,0x57,0x4c,0x43,0x3e,
+0x41,0x4b,0x5d,0x71,0x80,0x85,0x82,0x7e,0x76,0x79,0x7a,0x76,0x72,0x6b,0x5f,0x53,
+0x40,0x39,0x3d,0x52,0x69,0x7a,0x8b,0x9a,0x91,0x8f,0x80,0x67,0x51,0x45,0x3b,0x32,
+0x3d,0x3b,0x43,0x4c,0x49,0x3e,0x3f,0x49,0x51,0x5a,0x63,0x6d,0x77,0x76,0x62,0x4b,
+0x5f,0x61,0x62,0x60,0x5e,0x60,0x68,0x6f,0x6c,0x65,0x61,0x69,0x76,0x7d,0x7a,0x74,
+0x79,0x78,0x73,0x69,0x62,0x61,0x61,0x61,0x57,0x58,0x59,0x59,0x58,0x59,0x5a,0x5c,
+0x5b,0x58,0x5a,0x60,0x65,0x64,0x62,0x62,0x62,0x69,0x74,0x86,0x79,0x6f,0x67,0x72,
+0x69,0x68,0x65,0x63,0x66,0x6e,0x76,0x7a,0x67,0x62,0x59,0x58,0x64,0x72,0x71,0x67,
+0x65,0x65,0x65,0x64,0x67,0x6b,0x6c,0x69,0x60,0x5f,0x62,0x60,0x56,0x52,0x51,0x4d,
+0x4b,0x48,0x48,0x4e,0x55,0x59,0x58,0x56,0x49,0x44,0x43,0x4a,0x4e,0x4d,0x4c,0x4e,
+0x4a,0x41,0x3e,0x3c,0x36,0x38,0x43,0x48,0x4f,0x4f,0x4b,0x48,0x4d,0x57,0x5c,0x5c,
+0x4a,0x51,0x5d,0x67,0x65,0x5b,0x54,0x54,0x5f,0x56,0x54,0x5c,0x60,0x5c,0x5b,0x5e,
+0x58,0x4d,0x50,0x63,0x6c,0x66,0x63,0x69,0x68,0x67,0x56,0x50,0x57,0x64,0x72,0x6d,
+0x67,0x61,0x5a,0x55,0x53,0x55,0x5d,0x65,0x68,0x82,0x90,0x81,0x6b,0x61,0x60,0x5e,
+0x55,0x59,0x5c,0x5e,0x61,0x65,0x6c,0x72,0x6e,0x64,0x5d,0x5e,0x5f,0x60,0x65,0x6d,
+0x61,0x61,0x64,0x67,0x67,0x63,0x61,0x61,0x57,0x5b,0x60,0x65,0x68,0x6b,0x6f,0x72,
+0x72,0x72,0x73,0x73,0x72,0x71,0x70,0x6f,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6e,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x69,0x67,0x66,0x63,0x61,0x5f,0x5f,0x60,0x60,0x5f,0x5d,
+0x57,0x58,0x5c,0x5f,0x5d,0x57,0x52,0x52,0x4a,0x4f,0x5f,0x74,0x85,0x90,0x9b,0xa6,
+0xa0,0xa2,0xa4,0xa6,0xa7,0xa5,0xa3,0xa1,0xa1,0xa1,0xa0,0x9f,0x9e,0x9d,0x9d,0x9d,
+0x9f,0x9e,0x99,0x98,0x90,0x78,0x6e,0x7b,0x80,0x89,0x8d,0x93,0xa0,0xab,0xb1,0xb9,
+0xc1,0xc9,0xd0,0xd0,0xcd,0xca,0xc8,0xc7,0xb8,0xb5,0xb1,0xae,0xa7,0x9f,0x9b,0x9c,
+0x9b,0x9a,0x9a,0x9a,0x9c,0x9f,0xa3,0xa6,0xa8,0xa9,0xa9,0xa9,0xaa,0xac,0xaf,0xb2,
+0xb8,0xb9,0xb8,0xb6,0xb6,0xbc,0xc6,0xce,0xd1,0xd5,0xdb,0xdc,0xd9,0xd5,0xd5,0xd8,
+0xd6,0xd8,0xd7,0xd2,0xcf,0xce,0xcb,0xc7,0xc2,0xb8,0xc2,0xc1,0xad,0xb5,0x80,0x3b,
+0x3f,0x3d,0x32,0xa7,0x6d,0x4a,0x68,0x94,0x87,0x40,0x3f,0x42,0x3e,0x36,0xaa,0xe3,
+0xea,0xdf,0xe3,0xea,0xd7,0xa6,0x63,0x3c,0x94,0xca,0xcc,0xc6,0xc2,0xbc,0xca,0xc2,
+0xd0,0xd2,0xd3,0xd3,0xd4,0xd7,0xd8,0xd6,0xe1,0xc0,0x9c,0xa5,0x9f,0x9c,0x99,0x97,
+0x9d,0x9c,0x9b,0x9c,0x9d,0x9e,0x9e,0x9c,0x9c,0x81,0x7c,0xc2,0x74,0x69,0x9b,0xac,
+0x7c,0x7a,0x7b,0xb7,0x7b,0x7d,0x7a,0xb8,0x93,0x85,0x91,0x94,0x90,0x92,0x8f,0x92,
+0x8f,0x8d,0x97,0xc4,0xcd,0xca,0xc7,0xc7,0xc4,0xba,0xae,0xac,0x9d,0x84,0x69,0x87,
+0x88,0x86,0x82,0x7f,0x82,0x83,0x79,0x6c,0x69,0x6e,0x78,0x82,0x83,0x7a,0x6f,0x6a,
+0x6b,0x68,0x6c,0x76,0x79,0x79,0x80,0x8c,0x8d,0x79,0x6e,0x64,0x72,0x71,0x75,0x71,
+0x7a,0x7a,0x76,0x71,0x6f,0x74,0x7c,0x81,0x78,0x74,0x6f,0x68,0x61,0x63,0x71,0x82,
+0x85,0x74,0x62,0x5d,0x60,0x63,0x62,0x60,0x5f,0x57,0x4d,0x48,0x4a,0x58,0x6e,0x82,
+0x7f,0x7c,0x73,0x6a,0x68,0x70,0x7b,0x83,0x7b,0x7b,0x70,0x70,0x68,0x4e,0x3b,0x2d,
+0x2d,0x35,0x41,0x3e,0x2f,0x2e,0x3e,0x4b,0x61,0x4c,0x3c,0x38,0x33,0x2b,0x30,0x3c,
+0x4c,0x55,0x53,0x4b,0x4d,0x55,0x60,0x6b,0x76,0x5e,0x35,0x28,0x3d,0x43,0x35,0x2f,
+0x14,0x1d,0x2c,0x2a,0x31,0x42,0x47,0x4c,0x4f,0x4e,0x4b,0x46,0x43,0x42,0x3e,0x39,
+0x36,0x3c,0x3e,0x3c,0x3a,0x3f,0x4b,0x54,0x56,0x57,0x53,0x49,0x42,0x3f,0x3f,0x3e,
+0x42,0x50,0x61,0x63,0x4f,0x36,0x2f,0x34,0x49,0x4e,0x4d,0x42,0x3a,0x44,0x5f,0x76,
+0x7e,0x77,0x70,0x6a,0x68,0x67,0x65,0x63,0x71,0x71,0x6b,0x65,0x65,0x69,0x68,0x62,
+0x47,0x35,0x26,0x27,0x32,0x3d,0x47,0x4d,0x69,0x6d,0x6c,0x67,0x66,0x6b,0x6a,0x64,
+0x4f,0x51,0x5b,0x66,0x63,0x55,0x4c,0x4c,0x48,0x4e,0x5a,0x6c,0x7d,0x80,0x76,0x69,
+0x57,0x60,0x69,0x6e,0x6d,0x69,0x67,0x67,0x67,0x66,0x66,0x69,0x6e,0x73,0x77,0x78,
+0x72,0x6e,0x68,0x65,0x68,0x6c,0x6b,0x67,0x63,0x5d,0x57,0x55,0x57,0x58,0x56,0x54,
+0x5c,0x5a,0x5c,0x63,0x65,0x61,0x5c,0x5b,0x5c,0x6a,0x6b,0x6b,0x63,0x6c,0x64,0x5c,
+0x67,0x64,0x64,0x65,0x64,0x65,0x70,0x7d,0x7e,0x6e,0x5c,0x57,0x61,0x6e,0x75,0x75,
+0x70,0x6c,0x67,0x66,0x6b,0x6e,0x69,0x62,0x5e,0x63,0x68,0x5f,0x50,0x4f,0x55,0x56,
+0x5a,0x52,0x52,0x5c,0x60,0x5a,0x53,0x53,0x50,0x46,0x43,0x4a,0x4c,0x4a,0x4e,0x57,
+0x4d,0x43,0x40,0x40,0x3b,0x3c,0x44,0x47,0x47,0x4c,0x4e,0x4f,0x5a,0x6b,0x73,0x72,
+0x63,0x56,0x4f,0x56,0x62,0x67,0x65,0x63,0x54,0x55,0x5b,0x62,0x5d,0x52,0x52,0x5b,
+0x4f,0x47,0x53,0x68,0x5f,0x45,0x49,0x65,0x6e,0x69,0x57,0x53,0x5d,0x68,0x6e,0x60,
+0x64,0x64,0x63,0x5f,0x58,0x54,0x59,0x60,0x73,0x82,0x82,0x6f,0x5f,0x60,0x65,0x64,
+0x5a,0x5d,0x60,0x60,0x5f,0x61,0x67,0x6c,0x6d,0x62,0x5b,0x5c,0x5f,0x61,0x67,0x70,
+0x6c,0x69,0x6a,0x6e,0x6e,0x68,0x66,0x69,0x5a,0x5f,0x65,0x6a,0x6e,0x72,0x75,0x78,
+0x75,0x75,0x76,0x76,0x75,0x74,0x73,0x72,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,
+0x72,0x72,0x71,0x72,0x72,0x71,0x6f,0x6d,0x6e,0x6d,0x6c,0x6b,0x6b,0x6c,0x6e,0x6f,
+0x6d,0x69,0x66,0x67,0x64,0x5f,0x5c,0x5d,0x59,0x4f,0x4b,0x54,0x5e,0x68,0x79,0x8b,
+0x9c,0xa1,0xa6,0xa9,0xa8,0xa6,0xa4,0xa4,0xa3,0xa3,0xa1,0x9f,0x9e,0x9d,0x9c,0x9c,
+0x9d,0x9e,0x99,0x95,0x8d,0x76,0x6d,0x7b,0x79,0x84,0x8a,0x90,0x9d,0xab,0xb9,0xc6,
+0xc6,0xcb,0xcf,0xce,0xcb,0xc7,0xc3,0xbe,0xb5,0xb2,0xaf,0xac,0xa5,0x9d,0x9b,0x9e,
+0x9c,0x9b,0x9a,0x99,0x9a,0x9d,0xa1,0xa5,0xab,0xac,0xac,0xac,0xad,0xaf,0xb2,0xb4,
+0xb6,0xb8,0xb8,0xb5,0xb3,0xb7,0xc0,0xc8,0xce,0xd3,0xd9,0xdc,0xd9,0xd5,0xd6,0xd9,
+0xdb,0xde,0xde,0xd8,0xd3,0xd3,0xd2,0xcf,0xca,0xc4,0xb7,0xbf,0xbc,0x90,0x3b,0x31,
+0x3d,0x3f,0x52,0xa7,0x31,0x67,0x9b,0x8e,0x6a,0x56,0x70,0x43,0x42,0x39,0x57,0xb0,
+0xd0,0xd1,0xda,0xc9,0x8f,0x4f,0x3b,0x92,0xc0,0xc9,0xc9,0xc6,0xca,0xc5,0xbf,0xc8,
+0xcf,0xd1,0xd3,0xd2,0xd4,0xd7,0xd7,0xd6,0xe0,0xc0,0x9e,0xa8,0xa2,0x9e,0x9b,0x98,
+0x9b,0x9a,0x99,0x9a,0x9d,0x9e,0x9d,0x9c,0x9b,0x84,0x7c,0xc9,0x76,0x70,0x96,0xb1,
+0x7f,0x78,0x7c,0xbd,0x87,0x83,0x80,0xca,0x97,0x82,0x90,0x96,0x92,0x93,0x8d,0x91,
+0x8f,0x8d,0x96,0xc3,0xcb,0xc9,0xc7,0xc9,0xc1,0xbe,0xae,0xab,0x9c,0x79,0x5b,0x91,
+0x8f,0x91,0x8d,0x80,0x77,0x73,0x6d,0x66,0x69,0x6e,0x7d,0x8a,0x84,0x73,0x6f,0x77,
+0x71,0x70,0x75,0x7e,0x7d,0x77,0x7d,0x8a,0x87,0x76,0x6d,0x60,0x69,0x65,0x6e,0x6d,
+0x71,0x78,0x7a,0x74,0x72,0x76,0x77,0x74,0x78,0x7b,0x7c,0x74,0x69,0x63,0x66,0x6c,
+0x64,0x65,0x6a,0x6d,0x67,0x5c,0x57,0x59,0x5d,0x60,0x62,0x5c,0x51,0x50,0x61,0x75,
+0x83,0x7b,0x6e,0x61,0x5a,0x5f,0x6f,0x7e,0x86,0x95,0x97,0x96,0x83,0x63,0x5a,0x5a,
+0x68,0x5e,0x54,0x49,0x42,0x4a,0x59,0x5f,0x59,0x58,0x5b,0x5d,0x52,0x3f,0x31,0x2e,
+0x4d,0x69,0x77,0x70,0x65,0x60,0x62,0x68,0x3c,0x37,0x27,0x30,0x4e,0x48,0x32,0x34,
+0x45,0x40,0x3a,0x2c,0x33,0x4d,0x54,0x56,0x58,0x5f,0x62,0x5e,0x5b,0x5a,0x53,0x4a,
+0x3f,0x40,0x3e,0x3a,0x38,0x3d,0x43,0x47,0x50,0x5b,0x63,0x61,0x57,0x4a,0x3d,0x32,
+0x3c,0x45,0x4b,0x46,0x35,0x25,0x21,0x25,0x35,0x3b,0x43,0x4b,0x53,0x5a,0x60,0x62,
+0x62,0x61,0x5f,0x5d,0x59,0x50,0x46,0x3e,0x3e,0x47,0x4f,0x52,0x53,0x4f,0x41,0x32,
+0x44,0x58,0x6c,0x6e,0x60,0x50,0x47,0x44,0x44,0x43,0x47,0x58,0x72,0x87,0x8b,0x86,
+0x8a,0x8e,0x8b,0x81,0x7a,0x78,0x70,0x65,0x6b,0x69,0x6b,0x6f,0x6c,0x62,0x5e,0x61,
+0x62,0x6b,0x6f,0x69,0x63,0x65,0x6d,0x73,0x77,0x78,0x74,0x6f,0x73,0x7c,0x7d,0x78,
+0x6e,0x5f,0x56,0x5a,0x63,0x64,0x60,0x5e,0x5c,0x58,0x55,0x53,0x50,0x4e,0x4f,0x52,
+0x53,0x59,0x5f,0x64,0x6a,0x6f,0x69,0x60,0x61,0x66,0x69,0x69,0x6a,0x6e,0x6c,0x68,
+0x69,0x6f,0x6c,0x5f,0x58,0x60,0x6d,0x74,0x76,0x6a,0x60,0x61,0x64,0x65,0x6a,0x71,
+0x6b,0x6a,0x66,0x60,0x5d,0x60,0x67,0x6c,0x69,0x63,0x57,0x4c,0x4d,0x56,0x5b,0x59,
+0x4f,0x54,0x5b,0x60,0x63,0x63,0x60,0x5c,0x50,0x54,0x63,0x68,0x56,0x45,0x45,0x4c,
+0x53,0x46,0x3c,0x3a,0x3b,0x3e,0x45,0x4c,0x48,0x4a,0x47,0x46,0x51,0x62,0x6a,0x67,
+0x63,0x54,0x47,0x47,0x51,0x5b,0x62,0x66,0x69,0x68,0x66,0x61,0x57,0x4d,0x4a,0x4b,
+0x44,0x50,0x5a,0x50,0x46,0x44,0x4b,0x63,0x69,0x65,0x5d,0x5e,0x67,0x65,0x59,0x53,
+0x50,0x5f,0x6c,0x69,0x5d,0x57,0x57,0x59,0x6b,0x73,0x6d,0x67,0x5d,0x56,0x5e,0x5e,
+0x5c,0x58,0x58,0x5d,0x62,0x64,0x64,0x64,0x69,0x6b,0x6d,0x68,0x5c,0x53,0x55,0x5d,
+0x60,0x66,0x67,0x62,0x61,0x67,0x6d,0x6d,0x63,0x63,0x65,0x6a,0x6f,0x74,0x78,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x78,0x78,0x77,0x76,0x76,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x73,0x70,0x6e,0x6a,0x68,0x63,0x5c,0x56,0x55,0x5a,0x5f,
+0x77,0x86,0x99,0xa6,0xa9,0xa8,0xa7,0xa8,0xa7,0xa3,0x9f,0x9f,0xa0,0xa0,0x9d,0x9a,
+0x9d,0x9b,0x94,0x99,0x84,0x6b,0x72,0x72,0x7e,0x81,0x89,0x95,0xa2,0xb0,0xbd,0xc7,
+0xd0,0xce,0xcd,0xce,0xce,0xc8,0xbe,0xb6,0xb1,0xae,0xa9,0xa3,0x9d,0x9a,0x99,0x9a,
+0x9f,0xa0,0x9f,0x9d,0x9c,0x9e,0xa3,0xa7,0xa9,0xaa,0xab,0xad,0xb0,0xb2,0xb4,0xb4,
+0xba,0xba,0xb9,0xb8,0xb5,0xb6,0xbc,0xc4,0xce,0xd1,0xcf,0xde,0xdc,0xc7,0xcb,0xd9,
+0xd6,0xd3,0xd5,0xdb,0xda,0xd3,0xd0,0xd3,0xcd,0xc4,0xc1,0xbd,0xbc,0x7f,0x3e,0x61,
+0x6a,0x36,0x9a,0x83,0x37,0x85,0x88,0x87,0x5a,0x6a,0x93,0x85,0x3d,0x3b,0x36,0x46,
+0x52,0x5b,0x57,0x4d,0x45,0x55,0x90,0xc7,0xc9,0xcb,0xc7,0xc6,0xc7,0xc1,0xbd,0xc0,
+0xcf,0xd0,0xd3,0xd6,0xd8,0xd8,0xd8,0xd7,0xde,0xc3,0x9c,0xa1,0xa1,0xa2,0x9e,0x9b,
+0x97,0x98,0x9a,0x9c,0x9e,0x9f,0x9f,0x9f,0xa6,0x86,0x8f,0xd4,0x76,0x77,0x8d,0xc4,
+0x7f,0x7f,0x84,0xcc,0x93,0x7e,0x86,0xcd,0x99,0x91,0x8c,0x94,0x9a,0x91,0x8b,0x94,
+0x8c,0x8b,0x97,0xc0,0xce,0xd0,0xc5,0xc8,0xc7,0xb3,0xac,0xae,0x95,0x6d,0x67,0x7c,
+0x81,0x8c,0x89,0x76,0x6f,0x77,0x79,0x6f,0x75,0x79,0x82,0x86,0x82,0x81,0x7f,0x77,
+0x73,0x66,0x73,0x81,0x78,0x76,0x7f,0x7e,0x7e,0x72,0x6b,0x6b,0x68,0x63,0x6a,0x77,
+0x76,0x7b,0x72,0x74,0x6e,0x74,0x75,0x84,0x8e,0x94,0x80,0x76,0x6b,0x5c,0x63,0x64,
+0x65,0x6a,0x71,0x73,0x66,0x55,0x50,0x55,0x50,0x4d,0x52,0x5a,0x55,0x4c,0x59,0x70,
+0x82,0x7e,0x6c,0x56,0x4b,0x48,0x4e,0x59,0x73,0x7c,0x80,0x7d,0x7d,0x81,0x80,0x7b,
+0x74,0x5e,0x62,0x61,0x62,0x65,0x76,0x6d,0x67,0x66,0x75,0x7c,0x6b,0x5a,0x4f,0x43,
+0x4b,0x50,0x55,0x59,0x5a,0x54,0x43,0x32,0x2e,0x20,0x25,0x48,0x45,0x3f,0x35,0x3e,
+0x5a,0x5f,0x60,0x61,0x6b,0x79,0x78,0x6c,0x71,0x73,0x6b,0x5a,0x4c,0x49,0x48,0x46,
+0x46,0x46,0x40,0x37,0x36,0x3d,0x41,0x3f,0x3e,0x40,0x3b,0x2f,0x2a,0x33,0x40,0x47,
+0x54,0x5a,0x4d,0x30,0x22,0x30,0x42,0x47,0x42,0x45,0x46,0x40,0x39,0x3a,0x47,0x56,
+0x56,0x57,0x54,0x4e,0x48,0x44,0x40,0x3c,0x3f,0x39,0x46,0x52,0x4d,0x52,0x67,0x75,
+0x82,0x75,0x72,0x6b,0x68,0x71,0x7c,0x74,0x68,0x5c,0x63,0x80,0x93,0x90,0x8e,0x94,
+0x91,0x9d,0x9c,0x8e,0x86,0x88,0x80,0x71,0x72,0x7b,0x87,0x8e,0x88,0x78,0x67,0x5e,
+0x69,0x6e,0x6f,0x6c,0x6d,0x74,0x79,0x79,0x7e,0x81,0x7f,0x77,0x73,0x74,0x72,0x6e,
+0x62,0x5d,0x59,0x57,0x56,0x55,0x57,0x59,0x59,0x57,0x56,0x56,0x55,0x53,0x53,0x55,
+0x55,0x5a,0x62,0x6a,0x70,0x71,0x6b,0x63,0x5d,0x61,0x60,0x5d,0x5d,0x62,0x65,0x64,
+0x6a,0x72,0x74,0x6c,0x65,0x69,0x72,0x78,0x73,0x6a,0x61,0x5e,0x5d,0x5d,0x60,0x63,
+0x61,0x5e,0x5b,0x5d,0x64,0x6d,0x71,0x72,0x60,0x53,0x45,0x44,0x4f,0x58,0x56,0x4e,
+0x51,0x49,0x43,0x4a,0x5c,0x6c,0x70,0x6d,0x67,0x57,0x4e,0x4a,0x41,0x3d,0x44,0x4b,
+0x42,0x48,0x4b,0x49,0x49,0x4c,0x4c,0x49,0x4f,0x4f,0x4c,0x4b,0x52,0x5d,0x61,0x60,
+0x5f,0x5e,0x5c,0x57,0x51,0x4e,0x54,0x5d,0x60,0x67,0x6e,0x6d,0x60,0x4f,0x47,0x46,
+0x4b,0x4d,0x4f,0x46,0x42,0x43,0x43,0x52,0x62,0x66,0x65,0x65,0x67,0x62,0x5a,0x5a,
+0x60,0x61,0x62,0x63,0x62,0x61,0x5f,0x5e,0x67,0x66,0x5c,0x5c,0x5e,0x60,0x67,0x62,
+0x61,0x5b,0x59,0x5c,0x62,0x66,0x6a,0x6d,0x6d,0x6e,0x71,0x72,0x6c,0x63,0x5d,0x5e,
+0x5e,0x61,0x60,0x5b,0x5d,0x67,0x6f,0x71,0x64,0x66,0x69,0x6d,0x72,0x77,0x7a,0x7b,
+0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7f,0x7f,0x7f,0x7f,0x80,0x82,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x84,0x83,0x83,0x83,0x82,0x82,0x82,0x82,
+0x81,0x81,0x81,0x82,0x82,0x80,0x7d,0x7b,0x78,0x76,0x72,0x6f,0x6b,0x67,0x63,0x61,
+0x54,0x60,0x76,0x8e,0xa1,0xab,0xac,0xa9,0xa1,0xa9,0xae,0xaa,0x9f,0x99,0x9d,0xa3,
+0x99,0x97,0x93,0x97,0x81,0x69,0x6e,0x70,0x7f,0x85,0x90,0x9d,0xaa,0xb7,0xc5,0xce,
+0xd2,0xd0,0xce,0xcc,0xc9,0xc3,0xbb,0xb5,0xb3,0xaf,0xa8,0xa1,0x9c,0x99,0x98,0x98,
+0x9f,0xa0,0xa1,0xa1,0xa1,0xa3,0xa8,0xac,0xb1,0xb1,0xb1,0xb0,0xb0,0xb1,0xb3,0xb5,
+0xb8,0xb8,0xb8,0xb8,0xb6,0xb6,0xbb,0xc1,0xc7,0xd8,0xdf,0xcd,0xca,0xd6,0xd5,0xd4,
+0xd6,0xd3,0xd3,0xd8,0xdb,0xd9,0xd4,0xd1,0xd1,0xd2,0xd2,0xc8,0xc9,0x9a,0x49,0x3e,
+0x3e,0x41,0xb6,0x7d,0x44,0x82,0x8d,0x80,0x49,0x7c,0x8b,0x84,0x6a,0x2a,0x44,0x3a,
+0x42,0x4b,0x44,0x3a,0x51,0x90,0xc5,0xca,0xc6,0xc9,0xc6,0xc5,0xc6,0xc1,0xbf,0xc4,
+0xd3,0xd3,0xd5,0xd6,0xd7,0xd8,0xd9,0xd9,0xde,0xc2,0x9b,0xa0,0xa1,0xa3,0xa0,0x9e,
+0x9a,0x9a,0x9a,0x9a,0x9b,0x9d,0x9e,0x9e,0x9e,0x81,0x84,0xc2,0x80,0x83,0x9c,0xd8,
+0x82,0x82,0x7f,0xb4,0x95,0x91,0x70,0x60,0x6c,0x86,0x94,0x90,0x90,0x93,0x92,0x91,
+0x93,0x8d,0x98,0xc1,0xcd,0xce,0xc4,0xc9,0xc1,0xb5,0xb0,0xac,0x94,0x74,0x6a,0x74,
+0x7b,0x7e,0x83,0x86,0x83,0x7e,0x7b,0x7a,0x79,0x77,0x77,0x74,0x70,0x79,0x85,0x87,
+0x71,0x5c,0x68,0x7e,0x75,0x6a,0x73,0x7c,0x78,0x74,0x6c,0x66,0x67,0x6d,0x70,0x71,
+0x75,0x71,0x64,0x6c,0x6e,0x75,0x73,0x7e,0x78,0x81,0x76,0x74,0x71,0x69,0x72,0x76,
+0x66,0x65,0x67,0x6c,0x6a,0x5f,0x51,0x49,0x43,0x32,0x2d,0x3b,0x48,0x4c,0x56,0x64,
+0x6f,0x75,0x6d,0x5b,0x50,0x4e,0x54,0x60,0x58,0x4a,0x56,0x73,0x75,0x5e,0x5b,0x6e,
+0x70,0x52,0x4c,0x47,0x4b,0x53,0x6b,0x6b,0x6a,0x6a,0x78,0x81,0x77,0x6b,0x5f,0x51,
+0x53,0x52,0x4f,0x4a,0x46,0x41,0x38,0x2f,0x34,0x27,0x2b,0x43,0x47,0x43,0x39,0x35,
+0x48,0x51,0x62,0x71,0x76,0x72,0x6b,0x68,0x6b,0x75,0x78,0x6f,0x5f,0x50,0x41,0x34,
+0x42,0x3f,0x41,0x43,0x38,0x27,0x25,0x30,0x39,0x33,0x28,0x23,0x2a,0x3d,0x53,0x5f,
+0x80,0x61,0x3b,0x2b,0x37,0x4c,0x52,0x4c,0x53,0x59,0x60,0x66,0x67,0x63,0x5c,0x57,
+0x4c,0x40,0x2f,0x22,0x26,0x3b,0x53,0x63,0x67,0x65,0x6a,0x72,0x7f,0x93,0x93,0x7d,
+0x73,0x68,0x69,0x6e,0x74,0x78,0x6e,0x56,0x5d,0x65,0x6f,0x6e,0x60,0x54,0x5b,0x6a,
+0x80,0x70,0x69,0x70,0x75,0x72,0x71,0x75,0x6b,0x52,0x3f,0x41,0x4d,0x52,0x53,0x54,
+0x74,0x76,0x73,0x70,0x79,0x86,0x88,0x80,0x7a,0x80,0x81,0x77,0x6d,0x68,0x64,0x61,
+0x5f,0x60,0x5e,0x59,0x56,0x56,0x57,0x56,0x5b,0x5a,0x5c,0x60,0x62,0x61,0x61,0x63,
+0x5e,0x5e,0x62,0x68,0x6b,0x67,0x62,0x5f,0x71,0x73,0x71,0x6a,0x67,0x6a,0x6d,0x6d,
+0x72,0x7c,0x7f,0x76,0x6b,0x68,0x69,0x6b,0x67,0x64,0x5d,0x58,0x59,0x5d,0x5f,0x5e,
+0x60,0x61,0x63,0x67,0x6a,0x68,0x64,0x60,0x4f,0x53,0x59,0x5c,0x58,0x53,0x54,0x59,
+0x58,0x53,0x54,0x60,0x70,0x76,0x6f,0x64,0x50,0x4a,0x4d,0x52,0x4c,0x45,0x46,0x47,
+0x47,0x57,0x5d,0x53,0x4e,0x55,0x54,0x4c,0x52,0x4f,0x4d,0x4d,0x4f,0x51,0x51,0x50,
+0x4e,0x4c,0x4d,0x4f,0x50,0x53,0x58,0x5e,0x61,0x60,0x60,0x5b,0x51,0x48,0x45,0x47,
+0x51,0x4f,0x4e,0x45,0x45,0x4b,0x4f,0x62,0x6c,0x6e,0x6a,0x66,0x67,0x61,0x59,0x5a,
+0x54,0x56,0x5c,0x61,0x60,0x5e,0x63,0x6b,0x66,0x65,0x5b,0x5e,0x64,0x65,0x67,0x5d,
+0x65,0x60,0x5b,0x5b,0x5b,0x5b,0x5c,0x5d,0x69,0x63,0x5f,0x5f,0x5e,0x5a,0x54,0x51,
+0x5a,0x5e,0x60,0x61,0x65,0x6d,0x71,0x71,0x66,0x68,0x6c,0x71,0x76,0x7a,0x7d,0x7e,
+0x7e,0x7e,0x80,0x81,0x82,0x82,0x83,0x83,0x82,0x83,0x85,0x86,0x86,0x87,0x89,0x8b,
+0x8a,0x8a,0x89,0x89,0x89,0x8a,0x8b,0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8e,0x8e,
+0x8f,0x8f,0x8f,0x90,0x90,0x8f,0x8c,0x8a,0x8b,0x87,0x83,0x82,0x81,0x7d,0x75,0x6e,
+0x6a,0x64,0x5e,0x60,0x6e,0x81,0x93,0x9d,0xaf,0xac,0xa9,0xa9,0xa9,0xa6,0xa0,0x9a,
+0x9b,0x9a,0x97,0x95,0x7b,0x63,0x68,0x6d,0x7e,0x89,0x97,0xa5,0xb0,0xbb,0xc7,0xcf,
+0xd3,0xd1,0xce,0xc8,0xc1,0xbb,0xb5,0xb3,0xb1,0xab,0xa3,0x9d,0x9a,0x99,0x99,0x98,
+0x9b,0x9e,0xa0,0xa1,0xa3,0xa6,0xab,0xaf,0xb0,0xb2,0xb6,0xb7,0xb7,0xb7,0xb8,0xb9,
+0xb5,0xb5,0xb6,0xb7,0xb7,0xb6,0xba,0xbe,0xce,0xcc,0xdc,0xd6,0xd1,0xd2,0xca,0xd8,
+0xd7,0xca,0xb5,0xa2,0x97,0x8f,0x85,0x7b,0x6e,0x5f,0x5b,0x58,0x60,0x54,0x37,0x43,
+0x38,0x6e,0xdf,0x7c,0x61,0x87,0x8b,0x64,0x54,0x94,0x8d,0x80,0x85,0x34,0x86,0xa9,
+0x50,0x2e,0x42,0x80,0xae,0xcf,0xd3,0xb9,0xc3,0xc6,0xc5,0xc4,0xc5,0xc1,0xc1,0xc9,
+0xd5,0xd5,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xdf,0xc3,0x9c,0xa1,0xa1,0xa4,0xa3,0xa2,
+0xa1,0xa0,0x9e,0x9d,0x9d,0x9e,0x9f,0xa0,0xa2,0x8d,0x68,0x70,0x60,0x80,0x78,0x73,
+0x72,0x92,0x60,0x4b,0x69,0x93,0x6b,0x41,0x67,0x8a,0x9a,0x8f,0x8b,0x93,0x94,0x8e,
+0x92,0x87,0x93,0xc0,0xcc,0xcd,0xc6,0xcd,0xc1,0xb8,0xaa,0x9a,0x88,0x79,0x76,0x7a,
+0x7e,0x7d,0x83,0x8b,0x89,0x7d,0x75,0x75,0x79,0x77,0x77,0x72,0x6b,0x71,0x7c,0x7e,
+0x73,0x62,0x6b,0x7e,0x76,0x6c,0x71,0x78,0x72,0x75,0x6d,0x63,0x6c,0x81,0x84,0x77,
+0x6e,0x6a,0x60,0x6c,0x70,0x76,0x73,0x7e,0x83,0x81,0x71,0x6d,0x6d,0x65,0x60,0x5a,
+0x63,0x6f,0x76,0x70,0x62,0x58,0x54,0x54,0x3b,0x2a,0x25,0x34,0x44,0x4b,0x51,0x59,
+0x69,0x79,0x7b,0x6b,0x5c,0x52,0x4e,0x50,0x4c,0x58,0x5a,0x4f,0x4d,0x58,0x5a,0x52,
+0x47,0x39,0x44,0x48,0x4a,0x48,0x5e,0x64,0x65,0x69,0x74,0x7b,0x76,0x72,0x6d,0x63,
+0x5f,0x55,0x48,0x3d,0x39,0x37,0x2f,0x26,0x24,0x20,0x32,0x4b,0x61,0x64,0x60,0x53,
+0x36,0x30,0x39,0x52,0x5f,0x5d,0x62,0x70,0x72,0x77,0x76,0x6b,0x62,0x5f,0x60,0x5f,
+0x59,0x66,0x72,0x72,0x66,0x52,0x3d,0x30,0x23,0x20,0x20,0x27,0x33,0x45,0x59,0x67,
+0x5d,0x3a,0x1a,0x16,0x26,0x38,0x46,0x4f,0x44,0x4f,0x56,0x53,0x51,0x58,0x64,0x6c,
+0x6c,0x72,0x7b,0x82,0x89,0x90,0x92,0x91,0x90,0x86,0x82,0x7d,0x6f,0x5c,0x46,0x30,
+0x3b,0x43,0x49,0x45,0x39,0x42,0x53,0x5a,0x66,0x6f,0x7b,0x86,0x91,0x97,0x91,0x87,
+0x6c,0x70,0x75,0x75,0x6e,0x64,0x5f,0x5f,0x53,0x4d,0x46,0x44,0x49,0x55,0x66,0x73,
+0x71,0x73,0x6e,0x6b,0x76,0x86,0x87,0x7c,0x74,0x79,0x7a,0x73,0x6a,0x65,0x63,0x61,
+0x66,0x66,0x64,0x61,0x64,0x67,0x63,0x5a,0x5c,0x5b,0x5d,0x62,0x65,0x67,0x68,0x6a,
+0x66,0x61,0x5f,0x63,0x63,0x60,0x60,0x63,0x6e,0x72,0x70,0x68,0x63,0x63,0x63,0x60,
+0x67,0x70,0x76,0x71,0x6a,0x67,0x6a,0x6c,0x64,0x62,0x5c,0x56,0x5b,0x66,0x69,0x64,
+0x5a,0x5e,0x61,0x60,0x59,0x51,0x4f,0x51,0x62,0x59,0x55,0x57,0x5a,0x59,0x5a,0x5d,
+0x66,0x6b,0x72,0x78,0x77,0x6f,0x66,0x61,0x5a,0x4f,0x4e,0x52,0x50,0x4e,0x4f,0x4f,
+0x46,0x53,0x58,0x4e,0x4b,0x51,0x52,0x4b,0x4f,0x4d,0x4e,0x52,0x55,0x55,0x56,0x58,
+0x54,0x4e,0x4d,0x53,0x5b,0x5d,0x5a,0x57,0x4d,0x4f,0x53,0x57,0x56,0x4f,0x47,0x43,
+0x4c,0x4e,0x51,0x45,0x40,0x45,0x53,0x71,0x7b,0x74,0x66,0x61,0x66,0x65,0x5d,0x5b,
+0x4e,0x51,0x5b,0x66,0x65,0x5f,0x62,0x6c,0x69,0x6a,0x60,0x5e,0x5d,0x5d,0x62,0x5e,
+0x5a,0x5c,0x64,0x70,0x7a,0x7e,0x81,0x83,0x73,0x6c,0x65,0x63,0x63,0x61,0x5c,0x57,
+0x56,0x60,0x6c,0x74,0x79,0x78,0x71,0x69,0x65,0x68,0x6e,0x74,0x79,0x7d,0x80,0x81,
+0x82,0x82,0x84,0x85,0x87,0x87,0x88,0x88,0x87,0x89,0x8a,0x8b,0x8c,0x8d,0x8f,0x91,
+0x90,0x90,0x8f,0x8f,0x90,0x91,0x93,0x94,0x93,0x94,0x94,0x95,0x95,0x96,0x96,0x97,
+0x98,0x97,0x97,0x98,0x99,0x98,0x96,0x94,0x98,0x93,0x8d,0x8c,0x8e,0x8d,0x88,0x83,
+0x83,0x7e,0x74,0x68,0x5f,0x5f,0x67,0x6f,0x90,0x9b,0xa7,0xac,0xaa,0xa4,0xa1,0xa1,
+0x9e,0x9b,0x99,0x8f,0x71,0x5d,0x65,0x70,0x80,0x8e,0xa0,0xac,0xb6,0xbf,0xc8,0xce,
+0xd1,0xcf,0xcb,0xc3,0xba,0xb3,0xb1,0xb0,0xab,0xa5,0x9d,0x99,0x99,0x9b,0x9c,0x9b,
+0x9a,0x9d,0xa1,0xa3,0xa5,0xa9,0xae,0xb2,0xae,0xb4,0xbb,0xc0,0xc0,0xbe,0xbd,0xbd,
+0xb8,0xb6,0xb6,0xb8,0xb8,0xb7,0xb9,0xbd,0xc3,0xc2,0xca,0xcd,0xcf,0xca,0xac,0x90,
+0x5f,0x5f,0x56,0x4a,0x48,0x4e,0x52,0x4f,0x57,0x47,0x48,0x47,0x46,0x47,0x46,0x56,
+0x63,0x9c,0xdc,0x67,0x6d,0x93,0x89,0x58,0x72,0x8f,0x8e,0x89,0x91,0x52,0x9a,0xe9,
+0xc2,0x47,0x48,0xaa,0xcd,0xc1,0xbf,0xc1,0xc1,0xc5,0xc4,0xc3,0xc3,0xc0,0xc2,0xcc,
+0xd2,0xd3,0xd4,0xd6,0xd7,0xd8,0xd9,0xd9,0xe0,0xc5,0x9d,0xa1,0xa1,0xa4,0xa4,0xa3,
+0xa4,0xa3,0xa2,0xa0,0x9f,0x9e,0x9e,0x9e,0xa4,0x99,0x5e,0x42,0x61,0x95,0x75,0x40,
+0x7a,0xa6,0x7c,0x56,0x7e,0xa1,0x91,0x7d,0x8b,0x94,0x93,0x8d,0x90,0x93,0x91,0x91,
+0x90,0x84,0x94,0xc4,0xce,0xcd,0xc8,0xcd,0xc5,0xb7,0xa3,0x90,0x81,0x78,0x77,0x7a,
+0x78,0x7c,0x7f,0x80,0x81,0x80,0x7c,0x78,0x73,0x74,0x78,0x73,0x69,0x68,0x6d,0x6c,
+0x5e,0x5c,0x63,0x68,0x64,0x64,0x65,0x5e,0x70,0x73,0x6b,0x63,0x70,0x88,0x88,0x77,
+0x62,0x6c,0x6c,0x75,0x74,0x79,0x76,0x80,0x8a,0x86,0x77,0x6f,0x6d,0x66,0x60,0x5d,
+0x68,0x6a,0x67,0x63,0x65,0x69,0x66,0x5c,0x39,0x44,0x59,0x69,0x65,0x52,0x48,0x4a,
+0x54,0x6b,0x78,0x75,0x6f,0x65,0x55,0x4c,0x60,0x68,0x6b,0x64,0x58,0x4c,0x3f,0x34,
+0x3d,0x3d,0x52,0x53,0x48,0x3c,0x55,0x69,0x6a,0x6f,0x73,0x73,0x73,0x77,0x76,0x70,
+0x63,0x53,0x41,0x3b,0x3e,0x3d,0x30,0x23,0x1e,0x25,0x47,0x62,0x7c,0x79,0x78,0x6a,
+0x5c,0x3d,0x2b,0x38,0x49,0x4e,0x57,0x64,0x6a,0x73,0x77,0x71,0x68,0x65,0x67,0x69,
+0x7b,0x84,0x88,0x88,0x88,0x80,0x67,0x4c,0x37,0x31,0x2b,0x27,0x22,0x22,0x2d,0x3b,
+0x26,0x1c,0x16,0x14,0x14,0x1a,0x2f,0x46,0x67,0x5e,0x4d,0x41,0x44,0x4d,0x4e,0x48,
+0x66,0x6c,0x71,0x70,0x6a,0x5d,0x4d,0x41,0x3b,0x36,0x35,0x34,0x2a,0x23,0x2a,0x36,
+0x45,0x44,0x3b,0x3b,0x40,0x5d,0x6f,0x78,0x82,0x88,0x8a,0x87,0x8a,0x96,0x9e,0xa0,
+0xa1,0x99,0x8b,0x82,0x81,0x7b,0x64,0x49,0x4a,0x51,0x50,0x47,0x49,0x5b,0x6e,0x77,
+0x60,0x63,0x62,0x60,0x68,0x76,0x79,0x71,0x76,0x76,0x75,0x6f,0x6b,0x68,0x67,0x67,
+0x66,0x69,0x6a,0x6a,0x6f,0x73,0x6e,0x66,0x5f,0x5a,0x57,0x59,0x5b,0x5d,0x60,0x64,
+0x67,0x63,0x62,0x66,0x67,0x66,0x6a,0x71,0x73,0x76,0x74,0x6e,0x6a,0x6d,0x6e,0x6c,
+0x69,0x6e,0x70,0x6b,0x64,0x61,0x63,0x65,0x6b,0x69,0x60,0x59,0x60,0x6e,0x71,0x6b,
+0x67,0x64,0x62,0x63,0x63,0x66,0x6d,0x75,0x64,0x60,0x62,0x68,0x69,0x63,0x5e,0x5e,
+0x5a,0x5b,0x5e,0x60,0x63,0x6b,0x7c,0x8c,0x7f,0x63,0x4f,0x50,0x57,0x5b,0x55,0x49,
+0x41,0x47,0x4d,0x52,0x55,0x58,0x58,0x54,0x57,0x55,0x54,0x54,0x51,0x4d,0x4c,0x4e,
+0x4b,0x4c,0x51,0x59,0x5d,0x5a,0x54,0x51,0x4e,0x52,0x59,0x5d,0x5a,0x54,0x52,0x53,
+0x54,0x56,0x5a,0x4e,0x43,0x41,0x4b,0x68,0x76,0x70,0x64,0x60,0x66,0x67,0x62,0x61,
+0x62,0x5b,0x5c,0x67,0x6d,0x67,0x61,0x60,0x66,0x64,0x55,0x52,0x53,0x57,0x64,0x64,
+0x62,0x63,0x66,0x6a,0x6a,0x64,0x5e,0x5c,0x61,0x61,0x61,0x62,0x62,0x5d,0x55,0x4e,
+0x59,0x65,0x76,0x83,0x85,0x7d,0x6d,0x61,0x63,0x68,0x6f,0x76,0x7b,0x7f,0x82,0x85,
+0x86,0x87,0x88,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,0x8d,0x8e,0x8f,0x8f,0x91,0x93,0x95,
+0x97,0x97,0x96,0x96,0x98,0x9a,0x9c,0x9d,0x9b,0x9b,0x9c,0x9d,0x9e,0x9f,0x9f,0xa0,
+0x9f,0x9e,0x9e,0x9e,0x9f,0x9e,0x9d,0x9b,0x9e,0x9b,0x98,0x96,0x95,0x95,0x93,0x92,
+0x8a,0x8c,0x8b,0x84,0x78,0x6c,0x65,0x62,0x69,0x73,0x83,0x92,0x9d,0xa3,0xa5,0xa5,
+0xa0,0x9c,0x9b,0x89,0x69,0x5b,0x66,0x79,0x87,0x97,0xa9,0xb6,0xbe,0xc7,0xcd,0xd0,
+0xce,0xcc,0xc6,0xbe,0xb6,0xb1,0xaf,0xaf,0xa7,0xa1,0x9a,0x97,0x98,0x9b,0x9d,0x9c,
+0x9e,0xa1,0xa5,0xa7,0xaa,0xae,0xb3,0xb7,0xb7,0xbb,0xc1,0xc4,0xc5,0xc5,0xc4,0xc4,
+0xc4,0xc0,0xbd,0xbd,0xbc,0xba,0xb9,0xbb,0xc3,0xcf,0xcf,0xcf,0x99,0x57,0x4b,0x3e,
+0x5a,0x70,0x85,0x90,0x9b,0xab,0xb6,0xb9,0xc1,0xc4,0xd0,0xcf,0xd0,0xe1,0xe0,0xd1,
+0xd6,0xee,0xeb,0x70,0x70,0x99,0x7d,0x55,0x91,0x7c,0x85,0x8d,0x97,0x63,0x9f,0xe5,
+0xba,0x39,0x4d,0xba,0xd4,0xc7,0xc8,0xcb,0xc2,0xc6,0xc4,0xc2,0xc2,0xbf,0xc1,0xcb,
+0xcf,0xd1,0xd5,0xd8,0xda,0xda,0xda,0xd9,0xdf,0xc4,0x9d,0xa0,0x9f,0xa1,0xa1,0xa1,
+0xa0,0xa1,0xa1,0xa1,0x9f,0x9d,0x9b,0x99,0x96,0x93,0x70,0x62,0x80,0x95,0x83,0x75,
+0x93,0x91,0x98,0x9b,0x96,0x8d,0x99,0x8f,0x9a,0x94,0x8b,0x8d,0x96,0x95,0x90,0x93,
+0x8f,0x84,0x99,0xca,0xce,0xcc,0xc7,0xc9,0xc5,0xb4,0xa2,0x97,0x8a,0x7a,0x6f,0x6c,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x79,0x72,0x71,0x72,0x6a,0x5f,0x61,0x69,0x6a,
+0x69,0x6b,0x70,0x73,0x75,0x79,0x76,0x6d,0x70,0x70,0x6c,0x6b,0x75,0x7e,0x76,0x66,
+0x5c,0x6e,0x71,0x77,0x76,0x7e,0x75,0x75,0x78,0x7a,0x76,0x6c,0x68,0x66,0x67,0x71,
+0x74,0x72,0x6a,0x61,0x63,0x67,0x60,0x53,0x3f,0x53,0x6b,0x70,0x5d,0x48,0x47,0x51,
+0x76,0x7c,0x75,0x6c,0x6e,0x71,0x6c,0x68,0x70,0x65,0x5e,0x5b,0x51,0x44,0x46,0x52,
+0x55,0x4e,0x4e,0x3b,0x2c,0x25,0x48,0x67,0x6f,0x6d,0x65,0x61,0x6b,0x76,0x6e,0x5f,
+0x57,0x4a,0x3e,0x3c,0x41,0x42,0x39,0x31,0x28,0x33,0x5a,0x71,0x7e,0x71,0x73,0x6e,
+0x70,0x57,0x45,0x4a,0x57,0x5b,0x59,0x58,0x5c,0x5c,0x57,0x4c,0x44,0x4b,0x5c,0x6a,
+0x79,0x75,0x7f,0x94,0x99,0x83,0x64,0x51,0x48,0x42,0x3d,0x3a,0x32,0x27,0x20,0x21,
+0x21,0x20,0x1f,0x1c,0x19,0x19,0x20,0x27,0x3b,0x51,0x65,0x67,0x5d,0x54,0x50,0x4e,
+0x42,0x3d,0x34,0x2c,0x2c,0x32,0x37,0x39,0x32,0x3d,0x41,0x3e,0x44,0x4f,0x54,0x53,
+0x47,0x4d,0x48,0x55,0x5e,0x75,0x6d,0x67,0x6a,0x74,0x7d,0x7d,0x75,0x6f,0x6f,0x73,
+0x78,0x6e,0x6a,0x73,0x7e,0x7d,0x73,0x69,0x56,0x4e,0x46,0x48,0x59,0x73,0x8c,0x9b,
+0x59,0x5e,0x61,0x61,0x66,0x6e,0x72,0x71,0x76,0x72,0x6c,0x67,0x64,0x62,0x62,0x61,
+0x62,0x69,0x6f,0x70,0x70,0x72,0x74,0x75,0x6c,0x63,0x5b,0x57,0x57,0x58,0x5b,0x5f,
+0x67,0x67,0x6a,0x6c,0x6b,0x69,0x6b,0x6e,0x66,0x66,0x63,0x5e,0x60,0x68,0x6d,0x6d,
+0x76,0x75,0x71,0x6a,0x62,0x5c,0x5a,0x5a,0x6c,0x6a,0x64,0x5e,0x63,0x70,0x76,0x74,
+0x62,0x57,0x54,0x60,0x6f,0x74,0x72,0x6f,0x5e,0x69,0x76,0x79,0x70,0x66,0x65,0x69,
+0x6b,0x62,0x5c,0x5c,0x5e,0x62,0x69,0x71,0x76,0x65,0x5d,0x62,0x67,0x69,0x62,0x56,
+0x4e,0x48,0x46,0x4d,0x53,0x56,0x5a,0x5e,0x5a,0x5a,0x58,0x54,0x4f,0x4d,0x4e,0x4f,
+0x4a,0x42,0x3f,0x46,0x52,0x5a,0x5b,0x5a,0x65,0x67,0x68,0x62,0x56,0x4e,0x53,0x5c,
+0x5d,0x59,0x5b,0x53,0x4e,0x48,0x46,0x58,0x6b,0x6e,0x6a,0x65,0x64,0x5f,0x5b,0x5e,
+0x60,0x5c,0x5a,0x5f,0x61,0x5e,0x5e,0x60,0x5e,0x5e,0x54,0x58,0x5e,0x60,0x61,0x57,
+0x52,0x52,0x55,0x5a,0x5c,0x5a,0x5a,0x5b,0x65,0x66,0x66,0x65,0x64,0x65,0x65,0x63,
+0x62,0x6c,0x79,0x83,0x82,0x78,0x6a,0x60,0x64,0x69,0x71,0x77,0x7c,0x80,0x85,0x88,
+0x8b,0x8b,0x8c,0x8e,0x8e,0x8f,0x8f,0x8f,0x91,0x92,0x92,0x93,0x93,0x95,0x97,0x99,
+0x9b,0x9b,0x9b,0x9c,0x9d,0x9e,0xa0,0xa1,0xa0,0xa1,0xa2,0xa2,0xa3,0xa4,0xa5,0xa5,
+0xa7,0xa6,0xa5,0xa5,0xa6,0xa5,0xa3,0xa2,0xa1,0xa2,0xa2,0xa1,0x9e,0x9a,0x98,0x97,
+0x98,0x92,0x8c,0x8a,0x89,0x85,0x7d,0x76,0x6f,0x64,0x5c,0x64,0x7b,0x91,0x9c,0x9e,
+0xa4,0xa1,0xa4,0x8c,0x68,0x5c,0x67,0x7d,0x8c,0x9d,0xae,0xba,0xc3,0xcb,0xd0,0xd0,
+0xcb,0xc6,0xc0,0xb9,0xb5,0xb1,0xad,0xab,0xa4,0x9f,0x99,0x97,0x97,0x9a,0x9b,0x9c,
+0x9e,0xa1,0xa5,0xa7,0xaa,0xaf,0xb5,0xba,0xbd,0xbe,0xc0,0xc3,0xc8,0xcc,0xd0,0xd2,
+0xd0,0xcb,0xc7,0xc5,0xc3,0xbf,0xbb,0xba,0xb0,0xbb,0xbf,0xcb,0x82,0x37,0x6c,0xa1,
+0xc6,0xda,0xeb,0xee,0xed,0xf1,0xf6,0xf7,0xf7,0xf1,0xf3,0xee,0xdf,0xdf,0xe5,0xdf,
+0xda,0xe6,0xd8,0x74,0x61,0x97,0x77,0x63,0x91,0x83,0x92,0x8e,0x86,0x58,0xc0,0xf6,
+0xb4,0x3f,0x5f,0xbc,0xc5,0xbe,0xc3,0xc3,0xc3,0xc6,0xc3,0xc1,0xc2,0xbf,0xc0,0xc8,
+0xcf,0xd2,0xd6,0xdb,0xdd,0xdd,0xdc,0xdb,0xdb,0xc1,0x9b,0x9e,0x9d,0x9f,0x9e,0x9e,
+0x9f,0xa0,0xa2,0xa2,0xa1,0x9f,0x9c,0x9a,0x9f,0xa5,0x9d,0x98,0x9d,0x97,0x95,0xa6,
+0xa4,0x9b,0x9e,0x9f,0x9a,0x8c,0x9a,0x93,0x91,0x95,0x93,0x92,0x98,0x96,0x8f,0x8d,
+0x83,0x7f,0x9b,0xcb,0xcb,0xcc,0xc9,0xc7,0xc3,0xae,0x9d,0x9a,0x93,0x83,0x75,0x72,
+0x75,0x6f,0x71,0x7c,0x7d,0x75,0x74,0x7c,0x77,0x75,0x74,0x6c,0x62,0x63,0x6a,0x6a,
+0x6f,0x69,0x68,0x72,0x7c,0x7c,0x78,0x76,0x70,0x6f,0x74,0x7e,0x84,0x7e,0x70,0x66,
+0x64,0x6f,0x6c,0x73,0x76,0x7f,0x6f,0x67,0x71,0x69,0x65,0x61,0x6b,0x72,0x6b,0x6f,
+0x86,0x8a,0x88,0x7c,0x73,0x6f,0x67,0x5f,0x5f,0x6b,0x79,0x7d,0x78,0x76,0x81,0x8f,
+0x83,0x85,0x7f,0x79,0x76,0x6b,0x58,0x4f,0x5d,0x70,0x74,0x64,0x5a,0x5d,0x56,0x47,
+0x54,0x4b,0x47,0x39,0x38,0x36,0x4c,0x5e,0x6d,0x6a,0x58,0x52,0x66,0x74,0x65,0x4e,
+0x4d,0x47,0x41,0x3e,0x3e,0x3f,0x42,0x46,0x42,0x4e,0x6a,0x77,0x72,0x63,0x64,0x65,
+0x68,0x68,0x69,0x6d,0x74,0x79,0x77,0x71,0x56,0x59,0x5c,0x5c,0x5b,0x5f,0x67,0x6d,
+0x6e,0x76,0x83,0x8b,0x85,0x6f,0x55,0x45,0x34,0x2b,0x25,0x2c,0x37,0x39,0x32,0x2b,
+0x23,0x22,0x1e,0x1b,0x1d,0x20,0x1e,0x19,0x1b,0x27,0x3b,0x51,0x5c,0x58,0x48,0x39,
+0x38,0x39,0x3a,0x3e,0x46,0x50,0x55,0x55,0x5e,0x5f,0x5a,0x54,0x4a,0x36,0x28,0x29,
+0x56,0x74,0x77,0x78,0x65,0x6b,0x62,0x69,0x6b,0x5b,0x50,0x55,0x60,0x69,0x6e,0x71,
+0x61,0x65,0x5f,0x4c,0x3f,0x41,0x49,0x4d,0x5d,0x45,0x45,0x6d,0x96,0xa0,0x98,0x91,
+0x5f,0x62,0x67,0x69,0x69,0x6a,0x6e,0x72,0x71,0x6c,0x66,0x61,0x5e,0x5d,0x5d,0x5f,
+0x63,0x64,0x67,0x6a,0x6b,0x6d,0x72,0x77,0x78,0x6d,0x61,0x5b,0x5a,0x5a,0x5d,0x61,
+0x67,0x6b,0x6c,0x69,0x65,0x64,0x64,0x64,0x64,0x63,0x5f,0x5b,0x5f,0x67,0x6b,0x69,
+0x66,0x65,0x64,0x65,0x65,0x64,0x63,0x62,0x66,0x68,0x67,0x62,0x61,0x68,0x70,0x74,
+0x6a,0x5d,0x5b,0x6c,0x7e,0x7f,0x72,0x67,0x73,0x6c,0x64,0x62,0x67,0x6d,0x6c,0x68,
+0x5a,0x53,0x56,0x65,0x71,0x70,0x69,0x64,0x64,0x60,0x63,0x67,0x66,0x6b,0x75,0x78,
+0x5f,0x53,0x49,0x47,0x49,0x4c,0x53,0x59,0x56,0x5a,0x5c,0x58,0x5a,0x62,0x6a,0x6e,
+0x62,0x54,0x48,0x48,0x52,0x5b,0x5f,0x61,0x68,0x69,0x6d,0x71,0x6c,0x62,0x57,0x51,
+0x58,0x50,0x4e,0x4b,0x4b,0x48,0x45,0x55,0x69,0x6c,0x68,0x62,0x5f,0x58,0x52,0x55,
+0x52,0x55,0x57,0x55,0x51,0x53,0x5b,0x62,0x5c,0x64,0x64,0x6b,0x6b,0x63,0x5c,0x4d,
+0x49,0x49,0x4c,0x52,0x56,0x58,0x5b,0x5f,0x6b,0x69,0x63,0x5c,0x5d,0x66,0x6f,0x74,
+0x6d,0x72,0x79,0x7d,0x7a,0x72,0x6b,0x67,0x68,0x6e,0x75,0x7a,0x7e,0x82,0x87,0x8b,
+0x8d,0x8e,0x8f,0x91,0x92,0x93,0x93,0x94,0x95,0x95,0x97,0x97,0x98,0x9b,0x9e,0xa0,
+0x9f,0x9f,0xa0,0xa1,0xa2,0xa3,0xa4,0xa4,0xa5,0xa5,0xa6,0xa7,0xa8,0xa8,0xa9,0xa9,
+0xac,0xab,0xaa,0xa9,0xa9,0xa9,0xa7,0xa6,0xa5,0xa5,0xa6,0xa5,0xa3,0x9f,0x9c,0x99,
+0x98,0x95,0x93,0x95,0x96,0x91,0x88,0x7f,0x7c,0x77,0x6e,0x64,0x61,0x6c,0x7f,0x8f,
+0x94,0x96,0xa2,0x8d,0x6a,0x60,0x6a,0x82,0x94,0xa3,0xb2,0xba,0xc2,0xca,0xcc,0xca,
+0xc6,0xbf,0xb7,0xb3,0xb2,0xb0,0xa9,0xa3,0x9f,0x9c,0x99,0x97,0x97,0x99,0x9c,0x9e,
+0x9d,0x9f,0xa3,0xa6,0xa9,0xaf,0xb7,0xbc,0xbf,0xbf,0xc0,0xc4,0xca,0xcf,0xd0,0xd0,
+0xcf,0xcb,0xca,0xcb,0xcb,0xc6,0xc0,0xbd,0xc8,0xcb,0xc0,0xba,0x96,0x8f,0xca,0xe3,
+0xe7,0xee,0xf4,0xf2,0xef,0xf0,0xf2,0xf3,0xed,0xdf,0xe4,0xf3,0xe7,0xd6,0xdb,0xe4,
+0xda,0xe2,0xe3,0x84,0x55,0x93,0x79,0x6f,0x81,0x8d,0x91,0x80,0x6c,0x6c,0xd1,0xe9,
+0xa3,0x37,0x66,0xca,0xd1,0xc4,0xc5,0xc8,0xc3,0xc5,0xc2,0xc1,0xc3,0xc0,0xbf,0xc6,
+0xd1,0xd3,0xd7,0xda,0xdc,0xdd,0xdc,0xdb,0xd9,0xc0,0x9b,0xa0,0x9e,0xa0,0x9f,0x9f,
+0xa1,0xa1,0xa2,0xa3,0xa3,0xa1,0xa0,0x9f,0x95,0x9e,0x9c,0x96,0x94,0x98,0x97,0x9a,
+0x8f,0xa1,0x97,0x8a,0x99,0x94,0x92,0x8d,0x90,0x97,0x97,0x94,0x96,0x93,0x8d,0x8c,
+0x83,0x83,0xa3,0xcf,0xc9,0xcd,0xcd,0xc7,0xc2,0xaf,0x9f,0x9e,0x9d,0x91,0x82,0x7a,
+0x6a,0x6a,0x71,0x7d,0x7f,0x7b,0x7c,0x83,0x78,0x76,0x77,0x72,0x6a,0x6c,0x70,0x6e,
+0x78,0x70,0x67,0x6c,0x7a,0x7f,0x7b,0x78,0x72,0x73,0x7c,0x88,0x8b,0x80,0x76,0x73,
+0x75,0x74,0x6b,0x74,0x76,0x77,0x69,0x6a,0x73,0x69,0x69,0x6b,0x7d,0x88,0x77,0x75,
+0x6e,0x65,0x5e,0x62,0x6f,0x74,0x66,0x54,0x58,0x66,0x7c,0x91,0x9d,0x9c,0x94,0x8d,
+0x88,0x7d,0x68,0x57,0x50,0x4c,0x50,0x5c,0x78,0x7c,0x75,0x63,0x52,0x4a,0x46,0x41,
+0x47,0x4d,0x59,0x58,0x63,0x5a,0x58,0x54,0x65,0x6c,0x5f,0x51,0x61,0x72,0x6e,0x63,
+0x5a,0x51,0x48,0x45,0x43,0x44,0x47,0x4c,0x58,0x66,0x74,0x76,0x63,0x5b,0x53,0x4d,
+0x48,0x52,0x58,0x56,0x55,0x59,0x5a,0x56,0x5e,0x58,0x52,0x53,0x59,0x5f,0x62,0x63,
+0x6b,0x76,0x76,0x66,0x5a,0x58,0x55,0x4e,0x3d,0x2e,0x1d,0x17,0x21,0x2e,0x34,0x32,
+0x2d,0x2b,0x29,0x26,0x24,0x25,0x26,0x27,0x1a,0x21,0x31,0x43,0x4f,0x58,0x65,0x72,
+0x6f,0x6e,0x6c,0x68,0x65,0x60,0x57,0x4f,0x42,0x34,0x28,0x2a,0x24,0x13,0x20,0x48,
+0x6f,0x82,0x73,0x6f,0x60,0x6e,0x61,0x67,0x53,0x4f,0x4b,0x4b,0x49,0x45,0x43,0x43,
+0x5e,0x58,0x44,0x30,0x33,0x46,0x4a,0x3f,0x30,0x51,0x7c,0x8e,0x7a,0x5d,0x5d,0x6e,
+0x62,0x63,0x66,0x6a,0x67,0x62,0x63,0x69,0x71,0x6d,0x69,0x66,0x62,0x61,0x64,0x68,
+0x66,0x5c,0x56,0x5d,0x65,0x69,0x6b,0x6e,0x77,0x6c,0x60,0x5a,0x59,0x5a,0x5d,0x61,
+0x64,0x69,0x69,0x62,0x5e,0x61,0x65,0x65,0x6a,0x69,0x65,0x62,0x64,0x69,0x66,0x60,
+0x5d,0x5b,0x5d,0x62,0x66,0x65,0x61,0x5e,0x66,0x6b,0x6c,0x65,0x5b,0x5a,0x62,0x6a,
+0x6d,0x60,0x5b,0x67,0x76,0x7a,0x75,0x71,0x65,0x71,0x7b,0x7a,0x75,0x71,0x6a,0x63,
+0x68,0x5e,0x5a,0x62,0x69,0x65,0x5b,0x55,0x5c,0x5a,0x62,0x69,0x6a,0x6e,0x71,0x6e,
+0x6c,0x67,0x61,0x5d,0x5b,0x5b,0x5c,0x5d,0x62,0x67,0x63,0x57,0x53,0x59,0x60,0x60,
+0x52,0x56,0x5b,0x5a,0x55,0x53,0x5a,0x63,0x71,0x65,0x5f,0x6b,0x7c,0x80,0x73,0x66,
+0x5d,0x54,0x51,0x4b,0x4a,0x4b,0x4f,0x66,0x69,0x66,0x5c,0x58,0x5d,0x5b,0x53,0x52,
+0x58,0x57,0x53,0x51,0x54,0x5a,0x5b,0x58,0x60,0x6d,0x6e,0x6e,0x64,0x5a,0x5d,0x59,
+0x55,0x55,0x57,0x5b,0x5c,0x5c,0x5d,0x60,0x68,0x67,0x61,0x5c,0x5d,0x66,0x6e,0x70,
+0x74,0x77,0x7b,0x7b,0x76,0x70,0x6e,0x6e,0x6d,0x72,0x78,0x7d,0x80,0x83,0x89,0x8d,
+0x8f,0x90,0x91,0x93,0x95,0x96,0x97,0x97,0x97,0x98,0x99,0x9b,0x9c,0x9f,0xa3,0xa6,
+0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xa9,0xa9,0xaa,0xaa,0xab,0xac,0xac,0xad,0xae,0xae,
+0xae,0xac,0xab,0xaa,0xaa,0xa9,0xa8,0xa6,0xa8,0xa6,0xa4,0xa4,0xa3,0xa2,0xa0,0x9e,
+0x9a,0x9b,0x99,0x96,0x93,0x91,0x91,0x93,0x88,0x84,0x7f,0x7a,0x76,0x70,0x69,0x64,
+0x74,0x7b,0x93,0x86,0x69,0x65,0x70,0x8b,0x9e,0xaa,0xb6,0xbc,0xc2,0xc9,0xc9,0xc4,
+0xc2,0xb9,0xb0,0xad,0xaf,0xad,0xa4,0x9b,0x9a,0x99,0x98,0x97,0x98,0x9a,0x9e,0xa1,
+0x9e,0xa1,0xa4,0xa7,0xab,0xb2,0xbb,0xc1,0xc5,0xc4,0xc5,0xc8,0xcb,0xc9,0xc3,0xbd,
+0xc7,0xc6,0xc7,0xcd,0xd0,0xcc,0xc5,0xc0,0xc5,0xbc,0xc1,0xc2,0xa5,0x9f,0xc7,0xe2,
+0xe6,0xe8,0xec,0xf0,0xf3,0xf3,0xef,0xeb,0xd6,0xcc,0xcc,0xe0,0xec,0xeb,0xe8,0xdc,
+0xda,0xdd,0xe6,0x7f,0x42,0x91,0x8a,0x87,0x8d,0x87,0x61,0x52,0x5a,0xb3,0xe9,0xe1,
+0xab,0x3f,0x6d,0xca,0xcf,0xc4,0xc1,0xc2,0xc2,0xc4,0xc1,0xc0,0xc4,0xc1,0xc0,0xc5,
+0xd2,0xd4,0xd6,0xd8,0xd9,0xda,0xdb,0xdb,0xd9,0xc1,0x9d,0xa2,0xa1,0xa3,0xa2,0xa3,
+0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa2,0x9f,0x9a,0x9c,0x98,0xa1,0x9d,0x96,
+0x9c,0x9a,0x98,0x9b,0x98,0x8d,0x97,0x99,0x98,0x92,0x8c,0x8f,0x93,0x8d,0x8b,0x94,
+0x94,0x96,0xb4,0xd8,0xcc,0xcf,0xce,0xc4,0xc0,0xb5,0xac,0xab,0xaa,0x9c,0x82,0x6e,
+0x81,0x8a,0x8b,0x82,0x7b,0x7a,0x77,0x70,0x74,0x70,0x6d,0x6a,0x67,0x70,0x7b,0x7d,
+0x81,0x80,0x71,0x67,0x77,0x88,0x83,0x76,0x77,0x77,0x7c,0x83,0x81,0x78,0x74,0x76,
+0x83,0x7c,0x72,0x7c,0x75,0x6e,0x68,0x78,0x75,0x79,0x85,0x7d,0x7a,0x77,0x67,0x6f,
+0x73,0x6e,0x6a,0x6c,0x71,0x73,0x6f,0x68,0x63,0x69,0x77,0x89,0x97,0x96,0x87,0x78,
+0x79,0x7a,0x75,0x6e,0x61,0x4f,0x4b,0x56,0x4f,0x5b,0x60,0x55,0x4b,0x46,0x40,0x38,
+0x47,0x54,0x61,0x5c,0x61,0x52,0x49,0x40,0x4d,0x64,0x5e,0x48,0x4c,0x60,0x70,0x7a,
+0x71,0x60,0x4f,0x4c,0x50,0x4f,0x49,0x44,0x44,0x59,0x65,0x6a,0x5b,0x63,0x58,0x4a,
+0x3c,0x45,0x4a,0x48,0x48,0x4c,0x4d,0x49,0x42,0x45,0x52,0x69,0x7b,0x7b,0x6b,0x5a,
+0x55,0x5a,0x64,0x6c,0x67,0x5a,0x54,0x56,0x5a,0x5f,0x60,0x5b,0x57,0x54,0x4c,0x43,
+0x43,0x3c,0x36,0x31,0x2b,0x24,0x23,0x27,0x2e,0x1f,0x17,0x1f,0x29,0x2f,0x37,0x41,
+0x42,0x43,0x43,0x44,0x46,0x46,0x42,0x3c,0x2e,0x2b,0x1f,0x1a,0x1a,0x14,0x1f,0x3c,
+0x5b,0x6e,0x5f,0x63,0x5c,0x6e,0x5b,0x5c,0x46,0x42,0x39,0x31,0x2d,0x2d,0x2d,0x2c,
+0x26,0x28,0x3a,0x57,0x63,0x57,0x44,0x3b,0x55,0x6b,0x77,0x6d,0x5f,0x5e,0x61,0x61,
+0x69,0x68,0x67,0x66,0x61,0x5c,0x5f,0x65,0x67,0x69,0x6a,0x67,0x65,0x64,0x63,0x62,
+0x5f,0x56,0x53,0x5b,0x63,0x66,0x67,0x69,0x65,0x61,0x5c,0x58,0x5a,0x5d,0x5e,0x5b,
+0x66,0x67,0x67,0x65,0x64,0x64,0x62,0x5e,0x65,0x61,0x61,0x65,0x68,0x68,0x69,0x6b,
+0x64,0x64,0x64,0x68,0x6f,0x72,0x6b,0x62,0x64,0x73,0x7a,0x6e,0x5e,0x5b,0x66,0x71,
+0x75,0x6a,0x5f,0x60,0x6e,0x7a,0x78,0x6f,0x72,0x78,0x7c,0x76,0x67,0x58,0x53,0x55,
+0x52,0x55,0x58,0x5a,0x5c,0x5b,0x54,0x4b,0x5c,0x5a,0x5c,0x5f,0x5f,0x5d,0x5f,0x64,
+0x69,0x6c,0x74,0x7b,0x79,0x6f,0x68,0x68,0x6f,0x72,0x6a,0x5b,0x56,0x5e,0x62,0x5e,
+0x54,0x4b,0x45,0x48,0x4d,0x51,0x57,0x5e,0x61,0x66,0x69,0x68,0x6e,0x7a,0x80,0x7e,
+0x72,0x6d,0x65,0x5e,0x56,0x55,0x5b,0x63,0x67,0x63,0x5c,0x56,0x52,0x53,0x56,0x59,
+0x4f,0x50,0x55,0x5e,0x63,0x61,0x5c,0x59,0x5f,0x69,0x70,0x6a,0x61,0x65,0x7a,0x8f,
+0x8b,0x76,0x63,0x60,0x66,0x69,0x66,0x62,0x72,0x73,0x6e,0x65,0x65,0x6d,0x72,0x71,
+0x78,0x7a,0x79,0x73,0x6d,0x6b,0x6e,0x72,0x71,0x72,0x74,0x79,0x80,0x86,0x8b,0x8d,
+0x8f,0x94,0x97,0x97,0x97,0x99,0x9a,0x99,0x9a,0x9d,0x9f,0x9f,0xa1,0xa5,0xa9,0xa9,
+0xaa,0xab,0xad,0xad,0xac,0xad,0xae,0xaf,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,
+0xaf,0xaf,0xae,0xad,0xac,0xab,0xa9,0xa9,0xa8,0xa7,0xa6,0xa6,0xa5,0xa3,0x9f,0x9d,
+0x9d,0x9c,0x9a,0x99,0x98,0x97,0x95,0x94,0x8d,0x8c,0x8a,0x87,0x84,0x80,0x7a,0x77,
+0x72,0x6f,0x5a,0x58,0x62,0x66,0x7b,0x91,0xa4,0xb1,0xbe,0xc4,0xc9,0xcc,0xc7,0xc0,
+0xbb,0xb1,0xaa,0xab,0xac,0xa6,0x9e,0x99,0x99,0x99,0x99,0x97,0x97,0x99,0x9e,0xa3,
+0xa3,0xa6,0xa8,0xa9,0xaa,0xb0,0xb9,0xc1,0xc7,0xc5,0xc5,0xc9,0xca,0xc4,0xb9,0xb1,
+0xbc,0xc3,0xc7,0xd4,0xd5,0xc9,0xc4,0xbb,0xc0,0xbd,0xbf,0xbe,0xab,0xa0,0xbc,0xe5,
+0xdc,0xe4,0xea,0xe7,0xe1,0xdc,0xd6,0xd1,0xce,0xc5,0xd1,0xd5,0xf5,0xe5,0xe3,0xda,
+0xde,0xe2,0xe1,0xa5,0x3b,0x86,0x84,0x7f,0x59,0x4c,0x44,0x6a,0xb8,0xeb,0xef,0xe8,
+0xa7,0x32,0x6c,0xc9,0xc3,0xcd,0xbd,0xc7,0xc6,0xc1,0xbd,0xbd,0xba,0xb7,0xbd,0xc7,
+0xd4,0xd5,0xd7,0xda,0xdb,0xdc,0xdd,0xdd,0xdd,0xc7,0x9d,0xa0,0xa2,0x97,0xa2,0x9b,
+0x9a,0x9b,0x9d,0xa0,0xa1,0xa0,0x9e,0x9c,0x9f,0xa2,0xa2,0x9e,0x9c,0x9c,0x9e,0x9d,
+0xa0,0x9d,0x9a,0x99,0x9b,0x9b,0x99,0x96,0x9f,0xa3,0xab,0xb5,0xbd,0xc2,0xc3,0xc2,
+0xc0,0xcd,0xd5,0xd1,0xce,0xce,0xca,0xc4,0xc6,0xc2,0xbb,0xb0,0xa0,0x8f,0x86,0x84,
+0x7e,0x8a,0x91,0x89,0x80,0x7e,0x7f,0x7f,0x70,0x6f,0x6f,0x79,0x87,0x88,0x83,0x84,
+0x88,0x85,0x78,0x6b,0x74,0x87,0x84,0x72,0x6e,0x71,0x77,0x7b,0x77,0x6f,0x70,0x77,
+0x80,0x75,0x73,0x72,0x64,0x5d,0x68,0x77,0x6a,0x6a,0x77,0x88,0x88,0x7f,0x88,0x9b,
+0x92,0x7f,0x79,0x7e,0x7c,0x7b,0x74,0x65,0x69,0x66,0x6b,0x77,0x7d,0x77,0x6e,0x6a,
+0x5e,0x56,0x49,0x4e,0x58,0x49,0x3d,0x4b,0x74,0x7b,0x6d,0x53,0x3f,0x2e,0x2d,0x3b,
+0x49,0x4d,0x56,0x60,0x64,0x5f,0x52,0x47,0x41,0x4a,0x4f,0x4a,0x46,0x48,0x4a,0x4a,
+0x4b,0x5f,0x65,0x54,0x47,0x4d,0x53,0x51,0x42,0x48,0x57,0x5e,0x5f,0x68,0x60,0x45,
+0x30,0x37,0x3b,0x39,0x3b,0x3d,0x38,0x2f,0x34,0x3a,0x74,0x8f,0x85,0x4e,0x39,0x4e,
+0x46,0x55,0x6e,0x82,0x80,0x6f,0x62,0x5f,0x68,0x5f,0x5a,0x5f,0x63,0x5e,0x55,0x4f,
+0x50,0x48,0x42,0x42,0x3e,0x35,0x31,0x32,0x2d,0x2d,0x2c,0x27,0x21,0x1d,0x20,0x25,
+0x23,0x2a,0x2f,0x2d,0x2d,0x2d,0x2a,0x26,0x15,0x16,0x18,0x17,0x14,0x17,0x25,0x34,
+0x40,0x41,0x49,0x50,0x53,0x5e,0x6b,0x6e,0x51,0x3e,0x2f,0x39,0x31,0x3e,0x3d,0x3a,
+0x3a,0x34,0x42,0x4d,0x3f,0x3a,0x52,0x6c,0x71,0x6d,0x68,0x64,0x5d,0x57,0x58,0x5d,
+0x64,0x68,0x6c,0x6c,0x65,0x5e,0x5f,0x64,0x64,0x65,0x65,0x64,0x64,0x65,0x67,0x67,
+0x6b,0x62,0x5c,0x5f,0x65,0x6a,0x72,0x7b,0x7d,0x7c,0x73,0x60,0x51,0x50,0x58,0x61,
+0x65,0x67,0x67,0x66,0x66,0x65,0x60,0x5a,0x56,0x54,0x56,0x5c,0x63,0x67,0x68,0x68,
+0x6b,0x71,0x77,0x76,0x72,0x6b,0x63,0x5b,0x5e,0x66,0x6b,0x68,0x61,0x61,0x6a,0x73,
+0x75,0x6d,0x61,0x5a,0x5f,0x6a,0x71,0x71,0x75,0x79,0x7c,0x7a,0x71,0x69,0x67,0x68,
+0x68,0x5f,0x5c,0x62,0x61,0x56,0x52,0x56,0x4e,0x5e,0x64,0x5b,0x59,0x62,0x63,0x5c,
+0x5c,0x5b,0x5d,0x63,0x64,0x5f,0x5d,0x5f,0x5f,0x65,0x64,0x5c,0x58,0x5b,0x5d,0x5b,
+0x49,0x49,0x4b,0x4f,0x52,0x57,0x60,0x69,0x69,0x69,0x67,0x65,0x66,0x69,0x68,0x65,
+0x68,0x5d,0x54,0x53,0x59,0x60,0x65,0x69,0x68,0x61,0x59,0x55,0x56,0x57,0x55,0x52,
+0x5f,0x5a,0x57,0x5c,0x61,0x64,0x64,0x64,0x62,0x65,0x66,0x63,0x5d,0x5c,0x5f,0x64,
+0x66,0x61,0x60,0x66,0x6d,0x6f,0x6e,0x6e,0x72,0x74,0x71,0x6a,0x69,0x6e,0x6e,0x6b,
+0x6e,0x6b,0x69,0x69,0x68,0x68,0x6a,0x6e,0x72,0x74,0x79,0x7e,0x84,0x89,0x8e,0x90,
+0x91,0x95,0x97,0x98,0x98,0x9b,0x9c,0x9b,0x9e,0xa1,0xa3,0xa2,0xa4,0xa8,0xab,0xab,
+0xac,0xad,0xae,0xae,0xae,0xae,0xaf,0xb0,0xb1,0xb1,0xb1,0xb0,0xb0,0xaf,0xaf,0xaf,
+0xb0,0xb0,0xaf,0xae,0xac,0xaa,0xa9,0xa8,0xa8,0xa7,0xa6,0xa5,0xa4,0xa2,0x9f,0x9d,
+0x9d,0x9a,0x98,0x96,0x96,0x96,0x96,0x95,0x90,0x8f,0x8e,0x8d,0x8c,0x89,0x85,0x82,
+0x7f,0x76,0x58,0x53,0x62,0x6c,0x84,0x9b,0xaa,0xb5,0xc0,0xc4,0xc6,0xc8,0xc4,0xbd,
+0xb4,0xb0,0xad,0xad,0xa9,0xa2,0x9c,0x9a,0x95,0x97,0x98,0x97,0x96,0x97,0x9a,0x9d,
+0xa4,0xa6,0xa8,0xa8,0xaa,0xb0,0xb9,0xc0,0xca,0xc9,0xc8,0xc8,0xc6,0xbe,0xb4,0xad,
+0xb0,0xb6,0xbb,0xcd,0xd2,0xc9,0xc8,0xc3,0xbe,0xb8,0xb7,0xb6,0xa6,0x98,0xa9,0xc7,
+0xd7,0xda,0xd6,0xcb,0xc1,0xbf,0xc1,0xc3,0xc6,0xbf,0xc9,0xcb,0xec,0xe4,0xe5,0xdc,
+0xde,0xd3,0xe9,0xb8,0x3c,0x84,0x92,0x58,0x64,0x96,0xc6,0xde,0xe4,0xdd,0xdd,0xe9,
+0x9e,0x31,0x75,0xc9,0xb6,0xbc,0xb7,0xb4,0xb4,0xb0,0xaf,0xb2,0xb2,0xb3,0xbb,0xc6,
+0xd4,0xd5,0xd8,0xdb,0xdc,0xdd,0xdd,0xdd,0xe1,0xc8,0x9d,0x9e,0xa2,0x9c,0xa7,0xa1,
+0xa3,0xa3,0xa3,0xa2,0xa1,0x9f,0x9e,0x9e,0x9d,0xa1,0xa3,0xa2,0xa2,0xa4,0xa6,0xa6,
+0xb0,0xb0,0xb1,0xb7,0xbf,0xc7,0xcc,0xcd,0xd3,0xd3,0xd3,0xd2,0xd0,0xcc,0xc7,0xc3,
+0xc8,0xcf,0xd2,0xcf,0xcd,0xce,0xcd,0xca,0xc3,0xc6,0xc4,0xba,0xa9,0x96,0x85,0x7c,
+0x70,0x7e,0x8d,0x93,0x95,0x96,0x90,0x88,0x71,0x75,0x71,0x70,0x7a,0x85,0x8b,0x90,
+0x90,0x90,0x84,0x74,0x77,0x85,0x83,0x74,0x72,0x74,0x77,0x79,0x75,0x6f,0x6a,0x6a,
+0x6c,0x6d,0x6a,0x61,0x60,0x6f,0x78,0x71,0x69,0x72,0x82,0x88,0x7a,0x69,0x6f,0x81,
+0x83,0x75,0x6d,0x6c,0x6a,0x69,0x67,0x63,0x6e,0x65,0x57,0x4f,0x4f,0x51,0x4f,0x4c,
+0x52,0x4c,0x4c,0x4b,0x46,0x4c,0x64,0x7c,0x71,0x6c,0x58,0x3d,0x2c,0x2b,0x3c,0x52,
+0x65,0x62,0x61,0x62,0x61,0x58,0x49,0x3d,0x3f,0x3b,0x3b,0x3f,0x40,0x3c,0x3b,0x3d,
+0x56,0x65,0x6a,0x5c,0x51,0x54,0x59,0x58,0x4a,0x4b,0x4d,0x49,0x4c,0x61,0x66,0x55,
+0x2c,0x29,0x27,0x27,0x23,0x1e,0x25,0x31,0x35,0x4f,0x85,0x96,0x89,0x65,0x47,0x46,
+0x69,0x69,0x6d,0x71,0x6e,0x66,0x66,0x6b,0x6e,0x73,0x78,0x77,0x6d,0x64,0x65,0x6c,
+0x62,0x69,0x64,0x55,0x4d,0x4e,0x49,0x3f,0x3d,0x3e,0x40,0x3f,0x3b,0x34,0x2d,0x2a,
+0x20,0x1d,0x1a,0x19,0x18,0x17,0x19,0x1c,0x1c,0x18,0x14,0x11,0x10,0x16,0x27,0x37,
+0x42,0x3b,0x3e,0x4a,0x54,0x58,0x50,0x41,0x36,0x36,0x35,0x3c,0x2c,0x30,0x34,0x3f,
+0x4e,0x59,0x61,0x53,0x35,0x2d,0x44,0x5d,0x6b,0x72,0x73,0x6c,0x66,0x6a,0x75,0x7c,
+0x62,0x66,0x6c,0x6b,0x64,0x5f,0x62,0x68,0x65,0x62,0x5f,0x5d,0x5d,0x5e,0x5f,0x5f,
+0x5e,0x5e,0x62,0x69,0x6b,0x6b,0x70,0x76,0x7e,0x88,0x8c,0x80,0x6b,0x5d,0x5a,0x5b,
+0x60,0x60,0x60,0x61,0x64,0x63,0x5c,0x54,0x50,0x51,0x53,0x58,0x61,0x6a,0x6e,0x6e,
+0x6b,0x78,0x81,0x7d,0x6f,0x64,0x5f,0x5e,0x5e,0x5d,0x61,0x69,0x6b,0x6a,0x6d,0x73,
+0x75,0x6f,0x65,0x5a,0x58,0x5e,0x67,0x6d,0x67,0x64,0x5e,0x59,0x58,0x5d,0x65,0x6a,
+0x68,0x60,0x5d,0x5e,0x58,0x4b,0x46,0x4b,0x57,0x55,0x54,0x58,0x60,0x67,0x6b,0x6c,
+0x63,0x60,0x5f,0x62,0x60,0x5a,0x59,0x5b,0x57,0x5f,0x65,0x63,0x5d,0x58,0x54,0x51,
+0x4d,0x57,0x63,0x6e,0x75,0x79,0x77,0x73,0x67,0x5e,0x57,0x56,0x5a,0x5e,0x62,0x65,
+0x61,0x59,0x54,0x58,0x60,0x63,0x61,0x5f,0x58,0x5b,0x5e,0x5b,0x57,0x56,0x5c,0x62,
+0x5d,0x56,0x51,0x53,0x5a,0x61,0x65,0x69,0x65,0x62,0x5d,0x57,0x54,0x53,0x55,0x57,
+0x5b,0x5b,0x5b,0x5b,0x59,0x58,0x5d,0x63,0x63,0x67,0x6a,0x6b,0x6e,0x73,0x72,0x6d,
+0x68,0x61,0x60,0x68,0x6e,0x6e,0x6e,0x72,0x70,0x75,0x7d,0x83,0x88,0x8c,0x90,0x93,
+0x92,0x96,0x99,0x99,0x9a,0x9d,0x9f,0x9f,0xa2,0xa5,0xa7,0xa6,0xa7,0xab,0xae,0xae,
+0xae,0xaf,0xb0,0xb0,0xb0,0xb0,0xb1,0xb2,0xb3,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb0,
+0xb1,0xb0,0xb0,0xae,0xac,0xab,0xa9,0xa8,0xa9,0xa7,0xa5,0xa4,0xa3,0xa1,0x9f,0x9d,
+0x9c,0x99,0x95,0x94,0x94,0x95,0x96,0x96,0x91,0x91,0x90,0x90,0x8f,0x8d,0x8a,0x88,
+0x88,0x7b,0x58,0x53,0x65,0x75,0x8e,0xa3,0xb1,0xba,0xc1,0xc3,0xc3,0xc3,0xbf,0xb8,
+0xac,0xae,0xb0,0xad,0xa5,0x9c,0x99,0x9b,0x96,0x99,0x9b,0x9c,0x9b,0x9a,0x9c,0x9e,
+0xa6,0xa7,0xa7,0xa8,0xab,0xb1,0xb9,0xbe,0xc8,0xc8,0xc9,0xc8,0xc3,0xb8,0xaa,0xa0,
+0x9f,0xa2,0xa7,0xbf,0xc9,0xc2,0xc5,0xc5,0xc2,0xb9,0xb3,0xac,0x9e,0x97,0xaf,0xcf,
+0xd0,0xcd,0xc6,0xbf,0xbb,0xbc,0xbc,0xbb,0xc3,0xbf,0xc5,0xc4,0xe5,0xe6,0xe9,0xe0,
+0xdc,0xd7,0xe5,0xcb,0x66,0x56,0x5c,0x63,0xc0,0xcf,0xd7,0xd7,0xd9,0xda,0xdf,0xe9,
+0x81,0x2b,0x7d,0xc4,0xaf,0xb3,0xbd,0xb0,0xba,0xb7,0xb5,0xb7,0xb8,0xba,0xc2,0xcb,
+0xd4,0xd6,0xd9,0xdb,0xdd,0xdd,0xdd,0xdc,0xe6,0xcd,0xa4,0xa1,0xa5,0xa2,0xad,0xa7,
+0x9e,0x9e,0x9f,0x9e,0x9d,0x9e,0xa2,0xa5,0xa6,0xad,0xb7,0xc0,0xca,0xd5,0xdd,0xe0,
+0xda,0xd7,0xd4,0xd4,0xd6,0xd9,0xda,0xda,0xd8,0xd7,0xd6,0xd5,0xd3,0xd0,0xcc,0xc9,
+0xcc,0xce,0xcf,0xd0,0xcf,0xce,0xcd,0xcc,0xc1,0xc3,0xc0,0xb3,0xa2,0x93,0x87,0x7f,
+0x7e,0x82,0x87,0x8a,0x8e,0x8d,0x80,0x72,0x81,0x8d,0x8a,0x7d,0x7a,0x7c,0x7a,0x79,
+0x8f,0x93,0x8a,0x77,0x73,0x7e,0x80,0x77,0x75,0x78,0x7a,0x7c,0x7d,0x7b,0x73,0x6b,
+0x57,0x6f,0x80,0x73,0x62,0x67,0x6f,0x6a,0x7a,0x82,0x89,0x83,0x72,0x6b,0x79,0x8d,
+0x87,0x84,0x78,0x68,0x5d,0x58,0x60,0x6e,0x6f,0x70,0x6c,0x65,0x63,0x63,0x59,0x4c,
+0x47,0x42,0x54,0x67,0x6c,0x79,0x7d,0x6b,0x5a,0x52,0x49,0x3e,0x38,0x46,0x5f,0x6f,
+0x79,0x6e,0x5f,0x55,0x4e,0x42,0x31,0x24,0x22,0x24,0x31,0x41,0x40,0x39,0x43,0x57,
+0x6e,0x72,0x73,0x74,0x77,0x79,0x72,0x69,0x79,0x7c,0x7b,0x72,0x70,0x7d,0x7e,0x6e,
+0x55,0x40,0x2d,0x2a,0x2d,0x2d,0x2e,0x32,0x45,0x5c,0x7e,0x8d,0x84,0x75,0x58,0x4f,
+0x4a,0x49,0x53,0x69,0x7e,0x89,0x8c,0x8d,0x85,0x90,0x91,0x88,0x8a,0x99,0x9f,0x99,
+0x89,0x84,0x7b,0x6f,0x61,0x58,0x58,0x5c,0x5e,0x58,0x4e,0x43,0x39,0x2d,0x20,0x17,
+0x18,0x16,0x13,0x14,0x1b,0x26,0x2d,0x2e,0x1e,0x1b,0x17,0x14,0x12,0x15,0x1f,0x28,
+0x2c,0x1e,0x1c,0x27,0x36,0x3e,0x35,0x23,0x15,0x22,0x24,0x29,0x2d,0x3f,0x49,0x56,
+0x6b,0x70,0x5f,0x3f,0x2e,0x2e,0x34,0x37,0x53,0x6c,0x81,0x86,0x81,0x7c,0x6f,0x62,
+0x5c,0x5d,0x5d,0x5b,0x57,0x57,0x5e,0x64,0x63,0x5e,0x5a,0x58,0x58,0x58,0x58,0x5a,
+0x5c,0x62,0x6c,0x76,0x78,0x75,0x74,0x76,0x83,0x89,0x8c,0x87,0x7d,0x73,0x6a,0x64,
+0x64,0x62,0x5f,0x60,0x65,0x67,0x62,0x5b,0x54,0x59,0x5a,0x59,0x5c,0x64,0x6b,0x6e,
+0x68,0x75,0x7d,0x76,0x66,0x5d,0x5e,0x62,0x5f,0x5a,0x5e,0x6b,0x71,0x6d,0x6b,0x6f,
+0x71,0x6b,0x62,0x5c,0x5b,0x5d,0x5e,0x5d,0x63,0x61,0x5c,0x58,0x5a,0x63,0x6d,0x73,
+0x58,0x62,0x65,0x5d,0x55,0x53,0x53,0x51,0x50,0x52,0x5f,0x72,0x7a,0x72,0x68,0x65,
+0x5e,0x61,0x68,0x6b,0x66,0x5f,0x61,0x68,0x65,0x69,0x6e,0x6e,0x67,0x5f,0x58,0x55,
+0x51,0x56,0x5f,0x6d,0x7f,0x89,0x83,0x76,0x6a,0x5e,0x57,0x5c,0x62,0x66,0x6b,0x72,
+0x86,0x80,0x7a,0x74,0x6d,0x64,0x5f,0x5e,0x69,0x6e,0x70,0x69,0x5d,0x58,0x5c,0x63,
+0x5a,0x56,0x54,0x56,0x59,0x5c,0x60,0x64,0x63,0x65,0x64,0x5c,0x53,0x52,0x5a,0x63,
+0x62,0x62,0x62,0x61,0x60,0x64,0x6d,0x75,0x76,0x79,0x7a,0x7a,0x7b,0x7a,0x74,0x6c,
+0x65,0x5d,0x5e,0x6a,0x6f,0x68,0x63,0x66,0x6c,0x73,0x7d,0x84,0x88,0x8c,0x90,0x94,
+0x94,0x98,0x9b,0x9b,0x9d,0xa1,0xa3,0xa3,0xa4,0xa7,0xa9,0xa9,0xab,0xaf,0xb1,0xb1,
+0xb0,0xb1,0xb2,0xb2,0xb2,0xb2,0xb3,0xb4,0xb4,0xb4,0xb4,0xb3,0xb3,0xb3,0xb2,0xb2,
+0xb1,0xb0,0xb0,0xaf,0xad,0xab,0xaa,0xa9,0xa9,0xa7,0xa5,0xa3,0xa1,0xa0,0x9e,0x9d,
+0x9b,0x98,0x96,0x94,0x94,0x95,0x95,0x94,0x92,0x91,0x90,0x90,0x8f,0x8e,0x8b,0x89,
+0x87,0x7c,0x5c,0x59,0x6e,0x7e,0x94,0xa4,0xb6,0xbd,0xc3,0xc3,0xc1,0xbe,0xb8,0xb2,
+0xab,0xae,0xae,0xa9,0x9f,0x98,0x97,0x9a,0x99,0x9b,0x9e,0x9f,0x9e,0x9f,0xa1,0xa3,
+0xa8,0xa7,0xa7,0xa9,0xad,0xb4,0xba,0xbf,0xc1,0xc3,0xc4,0xc5,0xc1,0xb5,0xa3,0x93,
+0x97,0x97,0x9c,0xb6,0xc3,0xbe,0xc1,0xc2,0xc4,0xc0,0xba,0xa9,0x91,0x88,0xa0,0xc0,
+0xc9,0xbf,0xb6,0xb7,0xc0,0xc5,0xc1,0xb9,0xc5,0xc6,0xca,0xca,0xe8,0xf2,0xf6,0xed,
+0xeb,0xee,0xe5,0xe4,0xb4,0x5e,0x5c,0xb0,0xe1,0xe2,0xe1,0xe2,0xe8,0xeb,0xe7,0xe3,
+0x81,0x4c,0x92,0xc1,0xb8,0xb7,0xc3,0xb8,0xbb,0xb8,0xb7,0xb8,0xb9,0xbb,0xc1,0xc8,
+0xd5,0xd7,0xd9,0xdb,0xdd,0xdd,0xdc,0xdb,0xdc,0xcb,0xaf,0xac,0xb0,0xb1,0xba,0xb7,
+0xc6,0xc8,0xca,0xca,0xca,0xcd,0xd2,0xd7,0xdd,0xe0,0xe0,0xde,0xdc,0xdc,0xda,0xd7,
+0xe0,0xde,0xdb,0xda,0xda,0xdb,0xda,0xd9,0xda,0xd8,0xd4,0xd2,0xcf,0xcc,0xc9,0xc7,
+0xcc,0xcb,0xcd,0xd2,0xd3,0xce,0xc9,0xc7,0xc5,0xc1,0xbc,0xb3,0xa3,0x93,0x8c,0x8d,
+0x9a,0x99,0x98,0x9a,0x9e,0x9d,0x90,0x82,0x66,0x77,0x7f,0x7f,0x83,0x87,0x88,0x8a,
+0x91,0x96,0x8c,0x76,0x6a,0x71,0x77,0x75,0x69,0x70,0x76,0x7a,0x7e,0x81,0x7a,0x71,
+0x6f,0x69,0x67,0x65,0x62,0x6a,0x78,0x7e,0x7b,0x80,0x7f,0x76,0x6d,0x72,0x82,0x91,
+0x90,0x8c,0x77,0x63,0x5e,0x5c,0x63,0x73,0x61,0x64,0x63,0x5e,0x5b,0x59,0x54,0x4d,
+0x57,0x64,0x78,0x80,0x7c,0x7d,0x71,0x59,0x46,0x3c,0x3d,0x41,0x41,0x4b,0x55,0x51,
+0x42,0x42,0x45,0x4d,0x52,0x4a,0x36,0x25,0x24,0x27,0x31,0x3a,0x37,0x38,0x52,0x72,
+0x8e,0x8c,0x87,0x7b,0x6e,0x68,0x6d,0x75,0x78,0x7e,0x84,0x85,0x86,0x8f,0x96,0x95,
+0x9a,0x9c,0x92,0x77,0x5d,0x4b,0x40,0x37,0x3b,0x3e,0x4d,0x73,0x7c,0x7b,0x63,0x5f,
+0x78,0x77,0x79,0x81,0x85,0x83,0x7f,0x7d,0x88,0x84,0x8f,0xa4,0xa8,0x92,0x77,0x6a,
+0x56,0x3f,0x36,0x49,0x62,0x69,0x64,0x5e,0x47,0x3e,0x2f,0x24,0x21,0x23,0x23,0x22,
+0x20,0x23,0x1e,0x18,0x1f,0x2c,0x2a,0x1e,0x10,0x12,0x16,0x18,0x19,0x1e,0x26,0x2d,
+0x32,0x27,0x21,0x20,0x1f,0x22,0x21,0x19,0x18,0x1d,0x17,0x20,0x40,0x55,0x4c,0x43,
+0x53,0x60,0x50,0x2e,0x23,0x2b,0x38,0x44,0x50,0x51,0x4d,0x48,0x48,0x4d,0x49,0x42,
+0x63,0x61,0x5d,0x59,0x59,0x5c,0x60,0x61,0x57,0x54,0x54,0x57,0x59,0x5a,0x5c,0x5f,
+0x68,0x69,0x6b,0x6e,0x6f,0x71,0x75,0x7a,0x7a,0x80,0x87,0x88,0x86,0x7f,0x75,0x6c,
+0x69,0x63,0x5b,0x59,0x5f,0x64,0x62,0x5c,0x5c,0x65,0x6a,0x65,0x5b,0x57,0x5a,0x5f,
+0x68,0x71,0x75,0x6d,0x62,0x5c,0x5c,0x5e,0x5d,0x56,0x5a,0x67,0x6c,0x68,0x69,0x72,
+0x71,0x65,0x5b,0x5b,0x60,0x62,0x5b,0x53,0x58,0x61,0x6a,0x6d,0x6e,0x70,0x71,0x70,
+0x66,0x6e,0x6b,0x5a,0x4c,0x4d,0x53,0x55,0x59,0x6b,0x77,0x75,0x73,0x73,0x6a,0x5b,
+0x6a,0x71,0x79,0x76,0x68,0x5d,0x61,0x6d,0x78,0x75,0x6f,0x6a,0x65,0x62,0x62,0x62,
+0x61,0x5f,0x5d,0x63,0x76,0x8a,0x91,0x8d,0x7d,0x73,0x6f,0x73,0x73,0x6d,0x6c,0x72,
+0x7a,0x75,0x72,0x74,0x78,0x7e,0x85,0x8c,0x7a,0x74,0x6c,0x69,0x6a,0x6a,0x66,0x62,
+0x66,0x66,0x67,0x67,0x65,0x62,0x64,0x68,0x64,0x6a,0x6e,0x68,0x5d,0x56,0x58,0x5d,
+0x62,0x64,0x68,0x6d,0x73,0x78,0x7c,0x7e,0x7d,0x7c,0x7c,0x7e,0x81,0x80,0x79,0x72,
+0x6d,0x69,0x6c,0x76,0x74,0x66,0x5e,0x5f,0x6b,0x72,0x7c,0x84,0x89,0x8d,0x91,0x95,
+0x96,0x9a,0x9d,0x9e,0xa0,0xa3,0xa5,0xa5,0xa4,0xa7,0xaa,0xab,0xad,0xb1,0xb3,0xb3,
+0xb1,0xb2,0xb3,0xb4,0xb3,0xb3,0xb5,0xb6,0xb6,0xb5,0xb5,0xb5,0xb4,0xb4,0xb4,0xb4,
+0xb0,0xb0,0xb0,0xaf,0xae,0xad,0xab,0xab,0xa9,0xa7,0xa4,0xa2,0xa1,0x9f,0x9d,0x9c,
+0x9a,0x99,0x97,0x97,0x96,0x95,0x93,0x91,0x92,0x91,0x91,0x91,0x91,0x90,0x8e,0x8c,
+0x86,0x7e,0x62,0x61,0x77,0x86,0x9a,0xa8,0xb7,0xbc,0xc2,0xc2,0xbf,0xb9,0xb2,0xac,
+0xae,0xad,0xa8,0xa0,0x99,0x96,0x97,0x99,0x98,0x99,0x9b,0x9c,0x9c,0x9f,0xa4,0xa8,
+0xa9,0xa9,0xaa,0xac,0xb0,0xb6,0xbc,0xbf,0xc0,0xbf,0xbe,0xbe,0xbe,0xb7,0xa5,0x93,
+0x96,0x95,0x98,0xb1,0xbf,0xbc,0xc0,0xc0,0xb8,0xbd,0xc1,0xb8,0xa4,0x96,0x9b,0xaa,
+0xb8,0xae,0xa5,0xa7,0xb1,0xbb,0xbf,0xbf,0xbd,0xc3,0xc7,0xc7,0xe1,0xed,0xf0,0xe9,
+0xee,0xe8,0xe5,0xe8,0xda,0xac,0xb8,0xd9,0xe3,0xe6,0xe7,0xe3,0xdd,0xe0,0xe7,0xea,
+0xb1,0x97,0xb5,0xc2,0xc2,0xba,0xbf,0xbd,0xb9,0xb8,0xb9,0xbc,0xc0,0xc5,0xcb,0xd0,
+0xd7,0xd8,0xd9,0xdb,0xdb,0xdb,0xdb,0xda,0xe6,0xe1,0xd7,0xd9,0xdc,0xdf,0xe6,0xe5,
+0xe3,0xe5,0xe7,0xe5,0xe3,0xe2,0xe5,0xe8,0xe1,0xe3,0xe3,0xe2,0xe1,0xe1,0xdf,0xdc,
+0xd8,0xd9,0xd9,0xdb,0xdc,0xdc,0xda,0xd9,0xd8,0xd5,0xd1,0xce,0xcc,0xca,0xc8,0xc7,
+0xcd,0xcb,0xcd,0xd2,0xd3,0xce,0xc8,0xc5,0xbf,0xb8,0xb6,0xb4,0xa3,0x8b,0x82,0x88,
+0x94,0x96,0x99,0x9c,0x9d,0x97,0x89,0x7d,0x7f,0x82,0x7f,0x7c,0x7c,0x7a,0x7c,0x85,
+0x98,0x9c,0x8f,0x75,0x64,0x67,0x6e,0x6e,0x68,0x72,0x7a,0x7c,0x7e,0x7f,0x7b,0x74,
+0x6b,0x63,0x69,0x75,0x76,0x72,0x71,0x71,0x70,0x7c,0x82,0x7b,0x71,0x6e,0x73,0x76,
+0x7e,0x76,0x60,0x57,0x64,0x69,0x66,0x6a,0x6e,0x68,0x63,0x5e,0x57,0x52,0x55,0x5b,
+0x78,0x8c,0x8c,0x7d,0x75,0x67,0x51,0x43,0x42,0x39,0x40,0x4d,0x52,0x55,0x4d,0x3a,
+0x29,0x27,0x29,0x30,0x38,0x38,0x2f,0x25,0x2c,0x28,0x24,0x27,0x34,0x52,0x7b,0x9a,
+0x9d,0x93,0x8a,0x83,0x7a,0x6d,0x63,0x5f,0x66,0x70,0x80,0x8d,0x90,0x8c,0x90,0x9b,
+0xa5,0xa7,0xa9,0xae,0xb6,0xb3,0x9c,0x82,0x70,0x55,0x3c,0x56,0x69,0x79,0x74,0x75,
+0x70,0x6d,0x67,0x5c,0x52,0x54,0x62,0x71,0x80,0x8f,0x92,0x7c,0x5e,0x4c,0x49,0x4a,
+0x45,0x48,0x47,0x47,0x4e,0x52,0x45,0x30,0x27,0x27,0x26,0x25,0x2b,0x36,0x3f,0x42,
+0x35,0x30,0x2b,0x2b,0x30,0x31,0x2a,0x21,0x33,0x38,0x3c,0x3c,0x3b,0x3d,0x43,0x48,
+0x43,0x3c,0x38,0x30,0x24,0x1f,0x1f,0x1b,0x1c,0x16,0x1b,0x39,0x5e,0x57,0x3d,0x31,
+0x50,0x51,0x3b,0x22,0x20,0x27,0x30,0x3d,0x46,0x46,0x4b,0x53,0x56,0x50,0x45,0x3e,
+0x64,0x64,0x62,0x61,0x62,0x63,0x5f,0x5a,0x53,0x52,0x55,0x5a,0x5b,0x57,0x58,0x5c,
+0x65,0x65,0x64,0x62,0x62,0x66,0x6d,0x72,0x6f,0x7b,0x87,0x8a,0x88,0x82,0x7c,0x78,
+0x72,0x6b,0x62,0x5d,0x61,0x66,0x65,0x61,0x66,0x73,0x7f,0x7c,0x6a,0x57,0x53,0x57,
+0x65,0x69,0x6b,0x68,0x64,0x62,0x60,0x5d,0x5a,0x56,0x59,0x62,0x65,0x65,0x6d,0x7a,
+0x78,0x69,0x5b,0x5b,0x62,0x66,0x61,0x5c,0x57,0x61,0x6b,0x6d,0x6e,0x70,0x6f,0x6c,
+0x73,0x6a,0x5f,0x53,0x48,0x46,0x53,0x62,0x77,0x6e,0x62,0x5e,0x67,0x71,0x6f,0x66,
+0x78,0x79,0x79,0x72,0x63,0x5a,0x61,0x6f,0x73,0x6d,0x60,0x52,0x4c,0x4f,0x56,0x59,
+0x62,0x64,0x65,0x65,0x69,0x73,0x7e,0x84,0x87,0x7e,0x77,0x72,0x6d,0x69,0x6f,0x79,
+0x80,0x78,0x73,0x76,0x7b,0x7b,0x77,0x73,0x6a,0x66,0x62,0x62,0x67,0x6a,0x69,0x67,
+0x68,0x6b,0x6f,0x71,0x6f,0x6c,0x6e,0x73,0x6c,0x69,0x64,0x5e,0x5a,0x58,0x57,0x57,
+0x5e,0x60,0x61,0x64,0x6a,0x70,0x72,0x71,0x6f,0x6e,0x70,0x76,0x80,0x84,0x82,0x7e,
+0x74,0x73,0x78,0x7e,0x7a,0x70,0x6b,0x6e,0x71,0x76,0x7e,0x85,0x8a,0x8e,0x93,0x96,
+0x97,0x9c,0xa0,0xa1,0xa3,0xa6,0xa7,0xa6,0xa4,0xa8,0xab,0xac,0xae,0xb1,0xb3,0xb3,
+0xb2,0xb3,0xb4,0xb4,0xb4,0xb4,0xb5,0xb6,0xb7,0xb6,0xb6,0xb6,0xb5,0xb5,0xb5,0xb4,
+0xb1,0xb1,0xb0,0xb0,0xae,0xad,0xac,0xab,0xa9,0xa7,0xa4,0xa2,0xa1,0x9f,0x9c,0x9b,
+0x99,0x98,0x98,0x97,0x97,0x94,0x91,0x8f,0x8f,0x8e,0x8e,0x8f,0x90,0x90,0x8f,0x8e,
+0x89,0x82,0x67,0x67,0x7f,0x90,0xa3,0xae,0xb6,0xba,0xbe,0xbf,0xbb,0xb4,0xae,0xaa,
+0xb0,0xab,0xa2,0x99,0x95,0x97,0x99,0x99,0x99,0x9a,0x9b,0x9b,0x9c,0xa0,0xa7,0xac,
+0xab,0xad,0xaf,0xb1,0xb3,0xb7,0xbc,0xbf,0xc4,0xc1,0xbc,0xb9,0xbb,0xba,0xad,0x9f,
+0x91,0x90,0x8f,0xa3,0xb2,0xb5,0xbb,0xb9,0xb9,0xbd,0xc2,0xc5,0xc2,0xb9,0xb0,0xab,
+0xa2,0xa3,0xa6,0xab,0xb0,0xb9,0xc5,0xcf,0xc9,0xd0,0xd0,0xd0,0xde,0xe5,0xe3,0xde,
+0xdf,0xdd,0xe0,0xd9,0xd9,0xd6,0xe1,0xd2,0xd8,0xd5,0xd9,0xdd,0xde,0xe0,0xdb,0xcf,
+0xd4,0xcb,0xc6,0xc1,0xc4,0xbf,0xc3,0xc9,0xc8,0xc9,0xcb,0xce,0xd3,0xd7,0xdc,0xde,
+0xdb,0xdb,0xdb,0xda,0xda,0xda,0xda,0xda,0xdc,0xe0,0xe2,0xe2,0xe2,0xe2,0xe3,0xe2,
+0xe5,0xe6,0xe7,0xe6,0xe3,0xe1,0xe2,0xe3,0xe9,0xe9,0xe7,0xe4,0xe2,0xe1,0xde,0xd9,
+0xdf,0xe0,0xe0,0xde,0xdb,0xd7,0xd2,0xcf,0xcd,0xcb,0xc9,0xc8,0xc9,0xca,0xcb,0xcb,
+0xd1,0xd0,0xcf,0xcf,0xcf,0xce,0xca,0xc7,0xc2,0xb8,0xb1,0xaa,0x98,0x82,0x7e,0x86,
+0xa1,0xa1,0x9f,0x9a,0x92,0x8a,0x83,0x7e,0x8a,0x8a,0x87,0x86,0x88,0x83,0x84,0x8f,
+0x90,0x92,0x86,0x70,0x63,0x67,0x6f,0x70,0x70,0x78,0x7e,0x7e,0x7a,0x76,0x71,0x6e,
+0x75,0x76,0x7a,0x75,0x6c,0x6f,0x77,0x79,0x6f,0x81,0x8c,0x83,0x71,0x67,0x69,0x6e,
+0x6e,0x71,0x6e,0x67,0x66,0x65,0x66,0x69,0x64,0x58,0x4e,0x4c,0x4c,0x50,0x5e,0x6d,
+0x82,0x90,0x84,0x6f,0x66,0x51,0x36,0x30,0x2b,0x2d,0x3c,0x4d,0x52,0x4b,0x37,0x22,
+0x20,0x20,0x23,0x2d,0x3c,0x4a,0x52,0x55,0x48,0x47,0x3d,0x2d,0x2a,0x3c,0x59,0x6d,
+0x73,0x72,0x79,0x86,0x8d,0x88,0x7d,0x76,0x74,0x78,0x7c,0x7f,0x7b,0x71,0x73,0x85,
+0x87,0x89,0x93,0xa0,0xa5,0xa3,0xa6,0xad,0xa9,0x8a,0x5b,0x55,0x67,0x80,0x85,0x7a,
+0x69,0x61,0x56,0x50,0x50,0x54,0x57,0x59,0x5e,0x55,0x43,0x3a,0x4e,0x6e,0x79,0x70,
+0x74,0x7a,0x78,0x68,0x52,0x3f,0x36,0x33,0x38,0x43,0x4d,0x50,0x51,0x52,0x4e,0x48,
+0x4d,0x40,0x3f,0x4e,0x53,0x4c,0x4e,0x5b,0x69,0x71,0x78,0x79,0x74,0x6e,0x68,0x63,
+0x57,0x4c,0x41,0x37,0x2b,0x28,0x28,0x24,0x1e,0x14,0x2b,0x54,0x67,0x47,0x3b,0x48,
+0x51,0x3c,0x22,0x17,0x1c,0x1e,0x1b,0x1c,0x23,0x25,0x2c,0x32,0x30,0x2b,0x2d,0x32,
+0x56,0x5b,0x5f,0x60,0x62,0x61,0x5b,0x54,0x5b,0x5c,0x61,0x65,0x5f,0x55,0x51,0x54,
+0x5c,0x63,0x68,0x68,0x66,0x69,0x71,0x78,0x82,0x83,0x81,0x79,0x74,0x77,0x7d,0x82,
+0x79,0x75,0x6f,0x6c,0x6f,0x73,0x71,0x6c,0x6c,0x78,0x88,0x8b,0x79,0x62,0x5c,0x63,
+0x67,0x65,0x61,0x5f,0x61,0x63,0x61,0x5c,0x58,0x58,0x5e,0x64,0x65,0x63,0x69,0x73,
+0x79,0x6e,0x63,0x5f,0x5f,0x61,0x66,0x6c,0x73,0x76,0x75,0x70,0x71,0x77,0x78,0x75,
+0x69,0x61,0x5a,0x5a,0x5d,0x63,0x6c,0x75,0x69,0x57,0x4f,0x5d,0x6f,0x73,0x6e,0x6c,
+0x6c,0x65,0x60,0x5e,0x5e,0x60,0x69,0x73,0x81,0x85,0x7f,0x72,0x6a,0x70,0x78,0x7a,
+0x78,0x7e,0x87,0x8a,0x86,0x80,0x81,0x84,0x87,0x82,0x7a,0x70,0x67,0x67,0x75,0x84,
+0x84,0x7f,0x7d,0x7f,0x81,0x7d,0x75,0x70,0x6e,0x6f,0x6f,0x6b,0x65,0x61,0x61,0x62,
+0x62,0x65,0x6b,0x73,0x75,0x73,0x71,0x71,0x6e,0x65,0x59,0x53,0x54,0x58,0x5c,0x5d,
+0x5c,0x63,0x6a,0x6c,0x6f,0x75,0x79,0x7a,0x79,0x75,0x76,0x7d,0x87,0x8b,0x89,0x85,
+0x77,0x76,0x75,0x75,0x73,0x71,0x73,0x77,0x79,0x7c,0x80,0x85,0x8a,0x8f,0x93,0x96,
+0x98,0x9d,0xa2,0xa3,0xa5,0xa7,0xa7,0xa6,0xa6,0xaa,0xad,0xad,0xae,0xb1,0xb2,0xb1,
+0xb1,0xb3,0xb4,0xb4,0xb4,0xb4,0xb5,0xb6,0xb7,0xb7,0xb6,0xb6,0xb6,0xb5,0xb5,0xb5,
+0xb3,0xb3,0xb2,0xb0,0xae,0xac,0xaa,0xa9,0xa8,0xa6,0xa4,0xa3,0xa1,0x9f,0x9b,0x99,
+0x98,0x97,0x96,0x95,0x95,0x93,0x91,0x90,0x8d,0x8c,0x8c,0x8c,0x8d,0x8e,0x8d,0x8c,
+0x8a,0x83,0x68,0x6c,0x88,0x9b,0xa8,0xae,0xb6,0xb7,0xb9,0xb9,0xb6,0xb1,0xad,0xac,
+0xad,0xa8,0x9e,0x95,0x94,0x99,0x9c,0x9b,0x9c,0x9d,0x9d,0x9d,0x9f,0xa3,0xa9,0xae,
+0xae,0xb2,0xb5,0xb7,0xb6,0xb7,0xba,0xbd,0xc4,0xc5,0xc2,0xbd,0xbc,0xbb,0xb2,0xa7,
+0x94,0x93,0x8d,0x99,0xa8,0xb2,0xbc,0xb7,0xc5,0xc4,0xc4,0xc5,0xc8,0xc5,0xb9,0xac,
+0xa9,0xaa,0xaf,0xb5,0xbb,0xc1,0xcc,0xd7,0xe0,0xe7,0xe6,0xe5,0xea,0xed,0xea,0xe9,
+0xe4,0xe8,0xea,0xdf,0xe4,0xdc,0xd8,0xda,0xe2,0xde,0xe1,0xe0,0xd9,0xdd,0xe2,0xdc,
+0xd3,0xd5,0xc8,0xc8,0xc5,0xc9,0xcf,0xd1,0xd0,0xd2,0xd4,0xd6,0xd9,0xdc,0xdd,0xdd,
+0xdf,0xde,0xdc,0xdb,0xda,0xda,0xdb,0xdb,0xde,0xe3,0xe8,0xe4,0xe2,0xe2,0xdd,0xda,
+0xd6,0xd6,0xd5,0xd5,0xd5,0xd5,0xd6,0xd6,0xdc,0xdd,0xdc,0xdb,0xdd,0xdf,0xdf,0xdc,
+0xd7,0xd8,0xd9,0xd9,0xd8,0xd5,0xd3,0xd2,0xd6,0xd3,0xd0,0xcd,0xcb,0xca,0xc9,0xc8,
+0xcf,0xd2,0xd2,0xcf,0xcd,0xcd,0xc9,0xc3,0xc6,0xc1,0xb7,0xa8,0x97,0x8d,0x8f,0x95,
+0x9c,0x99,0x93,0x8a,0x81,0x7c,0x7d,0x7f,0x86,0x90,0x93,0x92,0x90,0x89,0x83,0x84,
+0x7d,0x7f,0x78,0x6a,0x66,0x6f,0x76,0x75,0x6f,0x71,0x75,0x76,0x72,0x6b,0x67,0x68,
+0x71,0x72,0x79,0x7e,0x84,0x8a,0x82,0x6e,0x75,0x80,0x85,0x7d,0x6f,0x6a,0x73,0x7d,
+0x82,0x8a,0x8e,0x7e,0x65,0x5b,0x63,0x68,0x5b,0x4b,0x3a,0x36,0x44,0x5c,0x74,0x84,
+0x7c,0x7e,0x74,0x5b,0x41,0x31,0x35,0x42,0x38,0x45,0x4e,0x50,0x4a,0x39,0x27,0x20,
+0x21,0x29,0x36,0x44,0x4d,0x51,0x52,0x51,0x4f,0x54,0x50,0x3d,0x2c,0x2c,0x3a,0x46,
+0x42,0x58,0x6f,0x73,0x66,0x5f,0x6b,0x7d,0x78,0x78,0x6c,0x64,0x6b,0x77,0x89,0xa0,
+0x98,0x88,0x81,0x8d,0x9f,0xa9,0xad,0xaf,0x96,0x8e,0x76,0x6e,0x7f,0x89,0x89,0x6b,
+0x5f,0x58,0x54,0x59,0x60,0x5d,0x4b,0x39,0x2f,0x26,0x38,0x58,0x57,0x3c,0x3e,0x5b,
+0x61,0x54,0x53,0x63,0x6e,0x6c,0x6a,0x6d,0x74,0x7d,0x84,0x82,0x7c,0x76,0x6c,0x61,
+0x59,0x57,0x5c,0x64,0x62,0x5e,0x6b,0x7f,0x92,0x97,0x9b,0x9c,0x9b,0x96,0x8b,0x7f,
+0x69,0x5b,0x4e,0x42,0x36,0x31,0x2e,0x28,0x30,0x29,0x43,0x56,0x56,0x37,0x38,0x43,
+0x23,0x1b,0x19,0x19,0x12,0x10,0x19,0x21,0x1e,0x24,0x29,0x29,0x27,0x27,0x2b,0x2f,
+0x57,0x5f,0x67,0x69,0x6b,0x6b,0x68,0x63,0x64,0x66,0x6d,0x71,0x68,0x5a,0x53,0x56,
+0x54,0x5e,0x66,0x65,0x63,0x69,0x77,0x84,0x8b,0x88,0x81,0x79,0x73,0x6f,0x69,0x64,
+0x6a,0x69,0x67,0x68,0x6c,0x6f,0x6b,0x66,0x68,0x6f,0x7f,0x88,0x7c,0x67,0x64,0x6f,
+0x71,0x69,0x5e,0x56,0x57,0x5b,0x5a,0x56,0x53,0x59,0x62,0x68,0x66,0x5f,0x5d,0x60,
+0x70,0x6d,0x69,0x61,0x58,0x57,0x64,0x73,0x79,0x79,0x74,0x6d,0x6e,0x72,0x6f,0x67,
+0x6b,0x6d,0x6a,0x65,0x69,0x6f,0x66,0x55,0x4b,0x56,0x5a,0x56,0x59,0x68,0x77,0x7b,
+0x7d,0x6e,0x61,0x60,0x65,0x67,0x68,0x6a,0x69,0x7b,0x86,0x80,0x7c,0x82,0x89,0x89,
+0x88,0x89,0x90,0x99,0x99,0x91,0x8c,0x8d,0x89,0x8e,0x8e,0x85,0x77,0x70,0x75,0x7f,
+0x8d,0x88,0x81,0x79,0x71,0x6f,0x74,0x7b,0x7f,0x7b,0x78,0x78,0x79,0x77,0x70,0x6a,
+0x65,0x67,0x6e,0x78,0x7c,0x76,0x6c,0x64,0x67,0x64,0x5f,0x5b,0x58,0x58,0x5b,0x5d,
+0x63,0x75,0x86,0x89,0x84,0x7e,0x7a,0x77,0x70,0x6e,0x70,0x7c,0x8b,0x93,0x92,0x90,
+0x8b,0x85,0x7c,0x74,0x71,0x73,0x77,0x79,0x7f,0x80,0x81,0x85,0x8a,0x8f,0x92,0x94,
+0x98,0x9e,0xa3,0xa5,0xa6,0xa8,0xa7,0xa5,0xa9,0xac,0xaf,0xae,0xae,0xb0,0xb1,0xb0,
+0xb1,0xb2,0xb3,0xb4,0xb3,0xb4,0xb5,0xb6,0xb7,0xb7,0xb7,0xb6,0xb6,0xb5,0xb5,0xb5,
+0xb6,0xb5,0xb3,0xb1,0xae,0xab,0xa9,0xa7,0xa7,0xa6,0xa5,0xa3,0xa2,0x9f,0x9b,0x98,
+0x97,0x95,0x93,0x92,0x92,0x92,0x92,0x91,0x91,0x8f,0x8e,0x8d,0x8d,0x8d,0x8b,0x8a,
+0x88,0x81,0x69,0x70,0x91,0xa2,0xa9,0xa8,0xb6,0xb5,0xb5,0xb4,0xb1,0xae,0xae,0xaf,
+0xa9,0xa5,0x9c,0x94,0x94,0x9a,0x9e,0x9d,0x9c,0x9d,0x9e,0x9e,0x9f,0xa3,0xa8,0xad,
+0xb1,0xb5,0xba,0xba,0xb8,0xb6,0xb9,0xbc,0xbe,0xc5,0xc8,0xc4,0xbf,0xbb,0xb2,0xa7,
+0xa3,0xa2,0x97,0x9d,0xac,0xba,0xc5,0xc0,0xbd,0xc2,0xc8,0xcd,0xd1,0xd2,0xca,0xc0,
+0xc8,0xba,0xae,0xad,0xb5,0xbf,0xc9,0xd1,0xd9,0xe0,0xe0,0xe4,0xe9,0xed,0xec,0xf2,
+0xf3,0xe9,0xf1,0xee,0xec,0xe5,0xdf,0xe7,0xde,0xdb,0xe0,0xdf,0xd4,0xd4,0xd7,0xce,
+0xd0,0xd6,0xce,0xd8,0xc8,0xcf,0xd4,0xcb,0xd1,0xd3,0xd6,0xd9,0xdd,0xe0,0xe0,0xde,
+0xe3,0xe1,0xde,0xdb,0xda,0xda,0xdc,0xdc,0xdd,0xe1,0xe7,0xe3,0xe3,0xe7,0xe0,0xdd,
+0xdc,0xda,0xd8,0xd7,0xd7,0xd8,0xd8,0xd8,0xd7,0xd8,0xd7,0xd7,0xda,0xde,0xde,0xdc,
+0xcf,0xd0,0xd2,0xd2,0xd2,0xd2,0xd3,0xd3,0xd0,0xce,0xcc,0xcb,0xcb,0xcb,0xca,0xca,
+0xc8,0xd1,0xd5,0xd1,0xce,0xcd,0xc6,0xbc,0xae,0xb7,0xb5,0xa5,0x98,0x95,0x94,0x90,
+0x98,0x97,0x93,0x8b,0x7d,0x71,0x6c,0x6b,0x76,0x88,0x8e,0x87,0x84,0x81,0x7c,0x79,
+0x76,0x79,0x73,0x6a,0x6b,0x74,0x79,0x76,0x74,0x73,0x76,0x7c,0x7b,0x75,0x73,0x76,
+0x7b,0x7e,0x85,0x83,0x79,0x77,0x79,0x76,0x81,0x84,0x85,0x83,0x80,0x81,0x87,0x8d,
+0xa3,0x9b,0x92,0x7e,0x63,0x5d,0x60,0x5b,0x4d,0x49,0x46,0x4a,0x5d,0x73,0x79,0x74,
+0x7e,0x62,0x54,0x4f,0x40,0x3c,0x3e,0x37,0x3b,0x49,0x47,0x39,0x2c,0x21,0x22,0x33,
+0x44,0x49,0x50,0x58,0x62,0x70,0x7f,0x8a,0x81,0x78,0x66,0x52,0x43,0x3f,0x41,0x44,
+0x4c,0x5c,0x6e,0x71,0x60,0x43,0x26,0x15,0x2f,0x43,0x4b,0x52,0x69,0x7b,0x80,0x86,
+0x87,0x8c,0x8f,0x94,0x9f,0xab,0xab,0xa2,0xa6,0x9e,0x88,0x78,0x82,0x7e,0x87,0x71,
+0x56,0x58,0x58,0x55,0x4f,0x46,0x3c,0x34,0x1f,0x1f,0x1d,0x1b,0x1d,0x27,0x35,0x3f,
+0x51,0x65,0x77,0x7c,0x7b,0x7d,0x7f,0x7d,0x78,0x78,0x71,0x62,0x57,0x52,0x4a,0x41,
+0x4e,0x63,0x71,0x6a,0x64,0x70,0x85,0x93,0x87,0x7c,0x6b,0x5c,0x57,0x55,0x4c,0x41,
+0x48,0x46,0x4a,0x4a,0x41,0x3a,0x34,0x2b,0x2c,0x32,0x4b,0x4a,0x48,0x3b,0x3b,0x29,
+0x20,0x12,0x13,0x1b,0x18,0x19,0x1a,0x14,0x1a,0x1f,0x1f,0x1b,0x1e,0x27,0x28,0x22,
+0x5b,0x57,0x58,0x61,0x69,0x6b,0x6a,0x6a,0x65,0x6b,0x7c,0x8a,0x81,0x68,0x58,0x57,
+0x5f,0x68,0x67,0x68,0x73,0x75,0x75,0x7e,0x85,0x72,0x6e,0x7b,0x87,0x90,0x88,0x71,
+0x6a,0x6c,0x6b,0x67,0x69,0x6e,0x6c,0x65,0x5c,0x62,0x72,0x74,0x77,0x78,0x6a,0x63,
+0x60,0x62,0x60,0x5a,0x56,0x58,0x5a,0x5a,0x5c,0x5c,0x5f,0x62,0x5e,0x5a,0x5e,0x67,
+0x6e,0x67,0x5e,0x5a,0x58,0x59,0x5d,0x62,0x64,0x6d,0x6f,0x6a,0x6a,0x71,0x72,0x6c,
+0x70,0x70,0x73,0x76,0x73,0x68,0x5b,0x52,0x51,0x55,0x5f,0x67,0x67,0x68,0x73,0x82,
+0x7d,0x84,0x87,0x81,0x74,0x66,0x5d,0x59,0x5b,0x5f,0x64,0x69,0x6f,0x75,0x7d,0x82,
+0x8a,0x8c,0x8b,0x85,0x7c,0x7b,0x88,0x98,0xa6,0x9f,0x96,0x8d,0x85,0x80,0x7e,0x7f,
+0x8a,0x95,0x9d,0x96,0x88,0x7d,0x7a,0x7b,0x88,0x8b,0x87,0x79,0x6d,0x6b,0x6d,0x6d,
+0x6b,0x6d,0x75,0x7d,0x7b,0x70,0x63,0x5d,0x66,0x6d,0x6d,0x67,0x6a,0x75,0x75,0x6b,
+0x65,0x6c,0x6d,0x69,0x6a,0x6f,0x6e,0x67,0x6d,0x71,0x77,0x7a,0x7d,0x86,0x94,0x9e,
+0xa3,0x97,0x89,0x7d,0x76,0x76,0x7e,0x86,0x88,0x81,0x78,0x85,0x8d,0x8c,0x96,0x9a,
+0x9c,0x9e,0xa1,0xa4,0xa5,0xa7,0xa9,0xaa,0xad,0xad,0xae,0xae,0xaf,0xb1,0xb2,0xb2,
+0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb7,0xb7,0xb8,0xb7,0xb6,0xb6,0xb5,0xb5,0xb4,0xb4,
+0xb3,0xb3,0xb2,0xb1,0xb0,0xae,0xac,0xaa,0xa9,0xa7,0xa3,0xa0,0x9e,0x9b,0x98,0x96,
+0x97,0x95,0x94,0x93,0x93,0x92,0x91,0x8f,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,0x8a,
+0x8d,0x78,0x6f,0x78,0x95,0xa9,0xaa,0xb5,0xba,0xb5,0xaf,0xad,0xac,0xab,0xaa,0xab,
+0x9f,0x9c,0x98,0x95,0x96,0x98,0x9a,0x9b,0x9c,0x9f,0xa2,0xa2,0xa1,0xa3,0xa9,0xaf,
+0xaf,0xb3,0xb7,0xba,0xba,0xba,0xbb,0xbc,0xc4,0xc8,0xcc,0xcd,0xca,0xc4,0xbe,0xbb,
+0xb4,0xb4,0xb0,0xad,0xb7,0xc7,0xce,0xcd,0xcd,0xce,0xcb,0xcd,0xd7,0xdb,0xd8,0xd7,
+0xcf,0xcc,0xc5,0xbe,0xba,0xbd,0xc5,0xcd,0xd8,0xdd,0xe3,0xe9,0xec,0xee,0xef,0xef,
+0xe9,0xe9,0xe8,0xe6,0xe3,0xe1,0xe1,0xe1,0xdf,0xdf,0xde,0xde,0xde,0xdb,0xd6,0xd2,
+0xcd,0xcd,0xcd,0xcc,0xcc,0xcd,0xcf,0xd0,0xd1,0xd6,0xda,0xdd,0xe0,0xe3,0xe2,0xe0,
+0xe2,0xe1,0xdf,0xdd,0xdc,0xdc,0xdb,0xdb,0xda,0xdb,0xdd,0xdf,0xe0,0xe0,0xdf,0xdf,
+0xdb,0xdb,0xdb,0xdb,0xdb,0xda,0xda,0xd9,0xd7,0xd3,0xcf,0xd0,0xd4,0xd7,0xd7,0xd5,
+0xd8,0xd5,0xd2,0xd3,0xd4,0xd3,0xd0,0xce,0xcc,0xcb,0xcc,0xc8,0xc2,0xc5,0xca,0xc7,
+0xd0,0xd1,0xc6,0xd3,0xd0,0xab,0x90,0x7a,0x6d,0x7e,0x98,0xab,0xa1,0xa6,0x93,0x8c,
+0x94,0x9b,0x8f,0x78,0x70,0x74,0x78,0x7a,0x79,0x70,0x72,0x83,0x91,0x90,0x87,0x82,
+0x82,0x7d,0x70,0x66,0x6c,0x7b,0x7d,0x74,0x74,0x76,0x79,0x7c,0x80,0x83,0x82,0x7f,
+0x7c,0x74,0x6f,0x75,0x80,0x84,0x7e,0x75,0x84,0x8a,0x8f,0x91,0x91,0x94,0x96,0x96,
+0x99,0x93,0x89,0x77,0x62,0x59,0x59,0x56,0x53,0x43,0x46,0x5e,0x71,0x75,0x6d,0x60,
+0x54,0x49,0x42,0x3f,0x37,0x2e,0x33,0x40,0x47,0x43,0x36,0x24,0x1b,0x26,0x41,0x57,
+0x5b,0x64,0x6a,0x6a,0x6d,0x74,0x74,0x6e,0x69,0x6d,0x6c,0x6a,0x69,0x5e,0x4e,0x47,
+0x55,0x63,0x70,0x6f,0x62,0x50,0x3f,0x34,0x25,0x31,0x3f,0x44,0x42,0x47,0x5a,0x6d,
+0x85,0x85,0x81,0x7b,0x7e,0x8d,0x9e,0xa9,0xa4,0x96,0x8d,0x86,0x81,0x85,0x80,0x6d,
+0x42,0x33,0x2e,0x2c,0x23,0x25,0x2c,0x2a,0x20,0x1f,0x1f,0x20,0x1e,0x1c,0x20,0x27,
+0x37,0x39,0x3b,0x46,0x50,0x49,0x49,0x5d,0x6c,0x79,0x85,0x83,0x76,0x68,0x62,0x62,
+0x64,0x66,0x6d,0x79,0x83,0x82,0x73,0x65,0x54,0x4b,0x41,0x3c,0x42,0x59,0x68,0x66,
+0x6b,0x6b,0x68,0x5f,0x53,0x4a,0x47,0x48,0x48,0x3b,0x31,0x36,0x42,0x42,0x32,0x21,
+0x1f,0x19,0x14,0x13,0x11,0x0f,0x10,0x14,0x19,0x1a,0x1a,0x1a,0x1a,0x19,0x16,0x14,
+0x74,0x65,0x58,0x5a,0x64,0x69,0x67,0x64,0x5d,0x63,0x74,0x83,0x80,0x6f,0x62,0x5f,
+0x70,0x6d,0x61,0x5f,0x70,0x7e,0x88,0x95,0x72,0x67,0x69,0x71,0x75,0x79,0x75,0x66,
+0x5d,0x6c,0x7c,0x7b,0x6a,0x59,0x55,0x59,0x59,0x52,0x58,0x60,0x71,0x7d,0x72,0x6b,
+0x64,0x65,0x68,0x6b,0x6c,0x69,0x64,0x60,0x5c,0x63,0x67,0x65,0x60,0x5e,0x5e,0x5d,
+0x62,0x63,0x66,0x66,0x62,0x5b,0x59,0x5a,0x64,0x67,0x6e,0x72,0x6e,0x68,0x69,0x6f,
+0x6c,0x6e,0x6e,0x67,0x5d,0x59,0x5f,0x67,0x6b,0x71,0x7d,0x88,0x86,0x7b,0x73,0x73,
+0x7d,0x7f,0x7c,0x75,0x6f,0x6d,0x6d,0x6b,0x5a,0x5e,0x65,0x6a,0x6e,0x71,0x73,0x75,
+0x78,0x7f,0x85,0x81,0x7a,0x79,0x82,0x8c,0x92,0x92,0x93,0x93,0x8e,0x85,0x7a,0x73,
+0x7f,0x8a,0x97,0x9d,0x9c,0x97,0x8d,0x85,0x81,0x86,0x89,0x86,0x7f,0x79,0x72,0x6d,
+0x6d,0x70,0x77,0x7c,0x7a,0x71,0x6b,0x6a,0x79,0x80,0x8d,0x97,0x96,0x89,0x79,0x6f,
+0x66,0x65,0x62,0x63,0x6d,0x78,0x77,0x6f,0x57,0x60,0x6d,0x78,0x7f,0x85,0x8b,0x8f,
+0x9a,0x9a,0x9a,0x97,0x93,0x92,0x9a,0xa2,0x9a,0x8e,0x80,0x88,0x8f,0x8d,0x94,0x96,
+0x9b,0x9d,0xa1,0xa3,0xa5,0xa7,0xa9,0xab,0xad,0xae,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,
+0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb8,0xb8,0xb8,0xb8,0xb7,0xb6,0xb5,0xb5,0xb5,0xb4,
+0xb3,0xb2,0xb2,0xb1,0xaf,0xad,0xab,0xaa,0xa8,0xa5,0xa2,0x9f,0x9c,0x9a,0x97,0x95,
+0x95,0x94,0x93,0x92,0x93,0x93,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,0x8a,
+0x88,0x76,0x73,0x80,0x9b,0xad,0xac,0xb4,0xba,0xb9,0xb3,0xab,0xaa,0xad,0xab,0xa6,
+0x9a,0x98,0x95,0x94,0x96,0x98,0x9a,0x9b,0x9d,0xa1,0xa5,0xa7,0xa6,0xa7,0xaa,0xae,
+0xb2,0xb5,0xbb,0xbf,0xc1,0xc2,0xc1,0xc1,0xc6,0xc9,0xcd,0xcf,0xcd,0xc9,0xc5,0xc2,
+0xbb,0xb9,0xb6,0xb6,0xbf,0xcb,0xd2,0xd2,0xd8,0xd9,0xd5,0xd4,0xdb,0xdc,0xd9,0xda,
+0xd9,0xd7,0xd3,0xce,0xcb,0xcc,0xd1,0xd5,0xd6,0xd9,0xde,0xe2,0xe4,0xe6,0xe7,0xe9,
+0xe3,0xe4,0xe3,0xe1,0xde,0xdd,0xdc,0xdd,0xdd,0xdb,0xda,0xd9,0xd7,0xd6,0xd3,0xd2,
+0xcb,0xcc,0xcc,0xcc,0xcc,0xcd,0xd0,0xd2,0xd5,0xd8,0xdc,0xdd,0xdf,0xe2,0xe1,0xdf,
+0xde,0xde,0xdd,0xdc,0xdb,0xdb,0xdb,0xdb,0xdb,0xdc,0xdd,0xde,0xde,0xde,0xdd,0xdc,
+0xdb,0xdb,0xdb,0xdb,0xdb,0xdb,0xda,0xda,0xda,0xd7,0xd5,0xd5,0xd7,0xd8,0xd8,0xd6,
+0xd9,0xd5,0xd1,0xd0,0xcf,0xcf,0xce,0xce,0xcc,0xc6,0xc6,0xc8,0xc3,0xc2,0xca,0xd1,
+0xcd,0xd3,0xd2,0xc9,0xa8,0x82,0x7a,0x7b,0x72,0x77,0x8f,0xa4,0xa8,0xb1,0xab,0xad,
+0xb3,0xa3,0x87,0x76,0x7b,0x81,0x7e,0x7a,0x78,0x74,0x7a,0x8d,0x9a,0x98,0x90,0x8b,
+0x95,0x91,0x87,0x76,0x6e,0x79,0x85,0x83,0x6a,0x6f,0x75,0x7b,0x82,0x8a,0x90,0x92,
+0x8a,0x85,0x85,0x8c,0x8e,0x84,0x74,0x69,0x7c,0x7b,0x7a,0x7f,0x8a,0x96,0x9b,0x9a,
+0x97,0x91,0x88,0x75,0x5b,0x4b,0x40,0x35,0x38,0x49,0x65,0x74,0x6c,0x60,0x58,0x50,
+0x45,0x3b,0x34,0x35,0x36,0x35,0x3a,0x42,0x3b,0x2f,0x21,0x1c,0x22,0x33,0x47,0x54,
+0x45,0x53,0x51,0x43,0x4b,0x6a,0x7c,0x78,0x6a,0x6d,0x6b,0x66,0x62,0x58,0x4f,0x4e,
+0x52,0x60,0x6b,0x6e,0x6e,0x68,0x53,0x3d,0x31,0x44,0x4a,0x44,0x52,0x76,0x8d,0x8d,
+0x8e,0x9a,0x96,0x77,0x55,0x50,0x69,0x84,0x8d,0x8b,0x88,0x7f,0x75,0x76,0x7d,0x7f,
+0x6b,0x43,0x22,0x1a,0x1f,0x24,0x27,0x26,0x23,0x27,0x2d,0x2f,0x29,0x22,0x23,0x27,
+0x2f,0x44,0x46,0x3a,0x3d,0x43,0x42,0x43,0x49,0x45,0x46,0x56,0x6d,0x7d,0x7f,0x7a,
+0x6d,0x7d,0x8a,0x82,0x65,0x4b,0x43,0x48,0x46,0x35,0x45,0x71,0x89,0x8e,0xa1,0xb8,
+0xb4,0xaa,0x8f,0x6f,0x60,0x5e,0x55,0x46,0x2a,0x2b,0x31,0x3d,0x45,0x41,0x32,0x23,
+0x1e,0x1b,0x1b,0x1e,0x1e,0x1d,0x1f,0x23,0x22,0x1f,0x1d,0x1b,0x16,0x11,0x12,0x17,
+0x75,0x68,0x5d,0x5d,0x63,0x67,0x66,0x65,0x67,0x69,0x70,0x77,0x78,0x70,0x66,0x60,
+0x57,0x57,0x55,0x5e,0x72,0x7a,0x76,0x75,0x65,0x60,0x63,0x69,0x6a,0x69,0x62,0x56,
+0x5e,0x5f,0x66,0x6d,0x69,0x5d,0x58,0x5b,0x5f,0x58,0x5e,0x62,0x6b,0x73,0x70,0x74,
+0x6b,0x66,0x67,0x6f,0x73,0x70,0x6b,0x6a,0x67,0x6b,0x65,0x57,0x54,0x5d,0x64,0x63,
+0x64,0x68,0x6d,0x6c,0x65,0x5e,0x5e,0x62,0x5f,0x60,0x66,0x6d,0x6e,0x6d,0x71,0x78,
+0x79,0x74,0x6e,0x6c,0x6d,0x6e,0x6c,0x69,0x79,0x78,0x7c,0x84,0x85,0x7b,0x6f,0x6a,
+0x70,0x76,0x7a,0x78,0x7b,0x81,0x81,0x7b,0x79,0x76,0x71,0x6b,0x68,0x6b,0x71,0x77,
+0x91,0x98,0x9b,0x96,0x95,0x9e,0xa9,0xb0,0xb1,0xa6,0x97,0x8d,0x8d,0x93,0x9b,0x9f,
+0xa0,0x98,0x8e,0x89,0x8c,0x93,0x94,0x90,0x8b,0x88,0x87,0x88,0x89,0x89,0x8b,0x8d,
+0x89,0x8c,0x91,0x91,0x8b,0x83,0x80,0x81,0x84,0x8a,0x8f,0x8b,0x7e,0x72,0x6f,0x71,
+0x6b,0x69,0x68,0x6b,0x76,0x81,0x82,0x7b,0x8a,0x88,0x85,0x82,0x81,0x82,0x85,0x86,
+0x85,0x8f,0x9b,0x9e,0x97,0x8e,0x8d,0x91,0xa0,0x91,0x7f,0x85,0x8e,0x8f,0x96,0x96,
+0x9a,0x9c,0xa0,0xa3,0xa5,0xa7,0xaa,0xac,0xae,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
+0xb5,0xb6,0xb7,0xb8,0xb8,0xb9,0xb9,0xb9,0xb9,0xb9,0xb8,0xb7,0xb6,0xb5,0xb5,0xb4,
+0xb3,0xb3,0xb2,0xb1,0xaf,0xad,0xab,0xaa,0xa8,0xa5,0xa1,0x9e,0x9c,0x99,0x96,0x94,
+0x95,0x94,0x92,0x92,0x92,0x91,0x90,0x8e,0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,0x8a,0x8a,
+0x87,0x75,0x77,0x86,0x9e,0xaf,0xaf,0xb5,0xb6,0xb8,0xb4,0xaa,0xa9,0xae,0xaa,0xa0,
+0x95,0x94,0x93,0x94,0x97,0x99,0x9a,0x9b,0x9d,0xa2,0xa8,0xab,0xab,0xab,0xad,0xaf,
+0xb3,0xb6,0xbb,0xc1,0xc6,0xc7,0xc5,0xc4,0xc6,0xc9,0xce,0xd1,0xd2,0xd1,0xd0,0xcf,
+0xc6,0xc1,0xbd,0xc2,0xc9,0xd0,0xd5,0xd9,0xd7,0xd9,0xd6,0xd5,0xda,0xdb,0xda,0xdf,
+0xe0,0xdf,0xdd,0xda,0xd8,0xd7,0xd6,0xd7,0xd4,0xd5,0xd7,0xd8,0xd9,0xda,0xdc,0xde,
+0xde,0xdf,0xdf,0xde,0xdc,0xdb,0xdb,0xdb,0xdb,0xd9,0xd6,0xd2,0xce,0xcd,0xcd,0xce,
+0xcc,0xcc,0xcd,0xce,0xcf,0xd2,0xd6,0xd9,0xd9,0xdc,0xde,0xdd,0xdf,0xe1,0xe1,0xdf,
+0xdd,0xdd,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdd,0xdd,0xde,0xde,0xdd,0xdc,0xdb,0xdb,
+0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdc,0xdb,0xdc,0xdc,0xdb,0xda,0xd9,0xd8,0xd7,0xd7,
+0xd9,0xd7,0xd5,0xd3,0xd1,0xcf,0xce,0xcd,0xcd,0xc7,0xc4,0xc6,0xc8,0xc7,0xc6,0xc6,
+0xcc,0xca,0xd3,0xbe,0x90,0x71,0x67,0x6b,0x6b,0x70,0x90,0xa0,0xa3,0x9d,0x98,0x9a,
+0x96,0x8e,0x84,0x86,0x91,0x8e,0x81,0x7b,0x78,0x77,0x7d,0x87,0x8d,0x8b,0x86,0x84,
+0x8e,0x8e,0x90,0x85,0x73,0x72,0x76,0x6d,0x77,0x7e,0x85,0x86,0x87,0x8a,0x8f,0x91,
+0xa6,0x9c,0x95,0x96,0x95,0x8f,0x8d,0x90,0xa3,0x98,0x8c,0x8a,0x93,0x9c,0x99,0x91,
+0x91,0x8c,0x83,0x6c,0x50,0x44,0x46,0x46,0x53,0x63,0x75,0x74,0x61,0x53,0x4b,0x41,
+0x3d,0x36,0x32,0x35,0x3b,0x3c,0x3a,0x38,0x2c,0x1e,0x11,0x0f,0x13,0x18,0x1f,0x26,
+0x2f,0x41,0x58,0x66,0x6a,0x69,0x66,0x62,0x67,0x5d,0x54,0x59,0x66,0x69,0x5e,0x52,
+0x53,0x54,0x4f,0x4f,0x62,0x79,0x79,0x69,0x63,0x68,0x79,0x8f,0x9c,0x9d,0x9d,0xa0,
+0xa7,0xad,0xb1,0xac,0x9e,0x8a,0x75,0x66,0x4f,0x55,0x54,0x4f,0x4e,0x56,0x6d,0x87,
+0x6f,0x58,0x3e,0x32,0x2a,0x1c,0x16,0x1f,0x1f,0x2a,0x38,0x41,0x40,0x3a,0x38,0x3a,
+0x39,0x36,0x2b,0x2c,0x41,0x52,0x53,0x51,0x49,0x4d,0x4e,0x4a,0x47,0x4c,0x59,0x65,
+0x6f,0x61,0x54,0x4d,0x49,0x4a,0x54,0x61,0x76,0x8d,0xa2,0xa4,0xa7,0xb3,0xaf,0x99,
+0x92,0x73,0x55,0x47,0x3e,0x34,0x33,0x3a,0x3c,0x44,0x50,0x58,0x56,0x4a,0x3b,0x31,
+0x37,0x3a,0x40,0x46,0x48,0x47,0x48,0x4b,0x43,0x38,0x2e,0x29,0x23,0x1d,0x1c,0x1f,
+0x6a,0x6a,0x68,0x63,0x5d,0x5e,0x67,0x6f,0x75,0x71,0x6d,0x6b,0x6e,0x6e,0x67,0x5f,
+0x61,0x58,0x50,0x53,0x63,0x6f,0x72,0x72,0x6d,0x68,0x68,0x6f,0x76,0x73,0x66,0x57,
+0x55,0x58,0x5b,0x58,0x4e,0x48,0x50,0x5c,0x64,0x63,0x6f,0x71,0x70,0x71,0x6e,0x77,
+0x73,0x67,0x60,0x63,0x67,0x67,0x6b,0x72,0x7d,0x7b,0x6e,0x5e,0x5c,0x69,0x76,0x79,
+0x75,0x76,0x77,0x75,0x6e,0x68,0x68,0x6b,0x63,0x67,0x66,0x63,0x6c,0x7b,0x80,0x7b,
+0x6c,0x73,0x79,0x78,0x78,0x81,0x8f,0x9a,0x7c,0x74,0x70,0x72,0x75,0x74,0x70,0x6e,
+0x71,0x7d,0x85,0x87,0x8d,0x96,0x96,0x8f,0x85,0x83,0x7e,0x78,0x75,0x7b,0x88,0x94,
+0x91,0x97,0x98,0x95,0x9c,0xac,0xb5,0xb5,0xb0,0xae,0xab,0xaa,0xa9,0xa7,0x9f,0x97,
+0xa5,0xa1,0x9b,0x9b,0xa1,0xa7,0xa5,0xa0,0x9c,0x9c,0xa2,0xa9,0xa8,0x9e,0x97,0x96,
+0xa1,0xa5,0xa9,0xa9,0xa3,0x9b,0x96,0x94,0x97,0x9d,0x98,0x89,0x85,0x92,0x9c,0x9d,
+0x8c,0x8e,0x8f,0x8e,0x8d,0x8d,0x8d,0x8c,0x87,0x88,0x8d,0x94,0x9b,0x9d,0x9b,0x97,
+0x91,0x97,0xa0,0xa4,0xa0,0x9d,0xa1,0xa7,0xa0,0x90,0x7c,0x81,0x8c,0x90,0x98,0x97,
+0x99,0x9c,0x9f,0xa2,0xa5,0xa7,0xab,0xad,0xad,0xae,0xaf,0xb1,0xb2,0xb3,0xb4,0xb4,
+0xb6,0xb6,0xb7,0xb8,0xb9,0xb9,0xb9,0xb9,0xba,0xba,0xb9,0xb8,0xb7,0xb6,0xb5,0xb5,
+0xb5,0xb4,0xb3,0xb1,0xaf,0xad,0xac,0xab,0xa8,0xa6,0xa2,0x9f,0x9d,0x9a,0x97,0x95,
+0x96,0x94,0x92,0x91,0x90,0x8f,0x8d,0x8c,0x8d,0x8c,0x8b,0x8a,0x8a,0x89,0x89,0x89,
+0x88,0x76,0x7a,0x89,0x9d,0xae,0xb1,0xb6,0xb0,0xb2,0xb1,0xad,0xac,0xab,0xa4,0x9b,
+0x95,0x95,0x96,0x98,0x9b,0x9c,0x9c,0x9c,0x9e,0xa3,0xa9,0xad,0xae,0xaf,0xb1,0xb3,
+0xb7,0xb8,0xbb,0xc1,0xc6,0xc9,0xc9,0xc7,0xc5,0xc9,0xce,0xd2,0xd5,0xd7,0xd9,0xda,
+0xd1,0xc7,0xc2,0xc7,0xcc,0xcf,0xd5,0xdd,0xde,0xe2,0xe0,0xdf,0xe1,0xdf,0xe0,0xe7,
+0xe0,0xde,0xdc,0xda,0xd8,0xd4,0xd0,0xcd,0xcd,0xcf,0xd0,0xd0,0xd0,0xd1,0xd2,0xd3,
+0xd8,0xd9,0xda,0xda,0xda,0xd9,0xda,0xdb,0xdb,0xda,0xd6,0xd0,0xcb,0xc8,0xc8,0xc9,
+0xce,0xcf,0xd1,0xd2,0xd4,0xd7,0xdc,0xdf,0xdc,0xde,0xdf,0xde,0xde,0xe1,0xe1,0xdf,
+0xdf,0xdf,0xdf,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xdd,0xdc,0xdb,
+0xde,0xdd,0xdd,0xdd,0xdc,0xdc,0xdd,0xdd,0xdb,0xdd,0xdd,0xdc,0xd9,0xd7,0xd7,0xd7,
+0xd5,0xd7,0xd7,0xd6,0xd3,0xd1,0xcd,0xca,0xc4,0xcc,0xcd,0xcb,0xce,0xd0,0xd1,0xd2,
+0xce,0xc3,0xcc,0xae,0x80,0x74,0x70,0x73,0x79,0x81,0xa0,0x9c,0x9a,0x93,0x9c,0xa3,
+0x90,0x89,0x7c,0x77,0x82,0x8a,0x8c,0x90,0x87,0x87,0x88,0x88,0x87,0x87,0x8a,0x8e,
+0x81,0x78,0x78,0x74,0x6c,0x77,0x84,0x7f,0x73,0x81,0x8c,0x8b,0x87,0x87,0x8a,0x8c,
+0x9f,0x95,0x90,0x92,0x92,0x92,0x9c,0xa9,0x98,0x90,0x86,0x84,0x8c,0x92,0x8e,0x86,
+0x8a,0x88,0x80,0x66,0x48,0x46,0x5b,0x6b,0x76,0x6f,0x69,0x5f,0x51,0x4b,0x47,0x3f,
+0x3e,0x3d,0x3d,0x3f,0x3f,0x38,0x2c,0x21,0x19,0x17,0x18,0x1b,0x1b,0x1b,0x26,0x33,
+0x5b,0x59,0x5b,0x5e,0x57,0x4d,0x51,0x5d,0x4f,0x4c,0x4a,0x45,0x40,0x43,0x4d,0x51,
+0x4d,0x51,0x53,0x5a,0x6e,0x83,0x84,0x79,0x6d,0x78,0x82,0x86,0x89,0x8e,0x8f,0x8c,
+0x9c,0x8f,0x7d,0x6c,0x5f,0x56,0x4c,0x45,0x3a,0x3f,0x3a,0x37,0x3a,0x3a,0x44,0x5b,
+0x65,0x56,0x3c,0x31,0x38,0x35,0x2d,0x31,0x20,0x29,0x37,0x45,0x4d,0x4c,0x47,0x43,
+0x40,0x3e,0x3e,0x44,0x4c,0x52,0x5e,0x6c,0x77,0x72,0x6b,0x66,0x64,0x64,0x64,0x64,
+0x56,0x49,0x41,0x46,0x4f,0x5e,0x79,0x93,0x9f,0xa3,0xad,0xb7,0xb7,0xa4,0x74,0x41,
+0x2f,0x34,0x2f,0x2e,0x47,0x6c,0x79,0x6e,0x6f,0x6b,0x64,0x5b,0x56,0x57,0x5d,0x62,
+0x5e,0x65,0x6f,0x75,0x77,0x75,0x74,0x75,0x75,0x6d,0x63,0x5a,0x53,0x4a,0x3e,0x33,
+0x6c,0x72,0x73,0x69,0x5c,0x5a,0x65,0x71,0x6e,0x6b,0x66,0x65,0x6b,0x70,0x6b,0x62,
+0x5b,0x56,0x57,0x5e,0x68,0x71,0x74,0x72,0x81,0x7b,0x75,0x75,0x7a,0x77,0x6c,0x63,
+0x51,0x55,0x55,0x53,0x55,0x5b,0x5f,0x5f,0x66,0x64,0x6e,0x73,0x78,0x7b,0x73,0x75,
+0x79,0x6c,0x64,0x64,0x65,0x65,0x6d,0x77,0x80,0x7e,0x78,0x71,0x6d,0x6e,0x71,0x73,
+0x78,0x79,0x7b,0x7e,0x7c,0x75,0x6f,0x6d,0x73,0x78,0x77,0x6f,0x71,0x7b,0x7e,0x7a,
+0x60,0x63,0x6d,0x82,0x99,0x9f,0x8d,0x77,0x74,0x6f,0x6c,0x6c,0x6e,0x6d,0x6c,0x6b,
+0x6f,0x75,0x76,0x71,0x73,0x7e,0x85,0x86,0x82,0x8a,0x92,0x91,0x8b,0x87,0x8a,0x8e,
+0x88,0x8f,0x96,0x9f,0xaf,0xbd,0xbd,0xb4,0xb8,0xb0,0xa5,0x9f,0xa5,0xb2,0xba,0xbc,
+0xae,0xb5,0xbc,0xc1,0xc2,0xc0,0xba,0xb4,0xc2,0xb9,0xb0,0xa9,0x9e,0x96,0x96,0x9c,
+0x93,0x98,0x9e,0xa3,0xa3,0x9f,0x98,0x92,0x92,0x98,0x97,0x94,0x9b,0xa4,0x9e,0x8e,
+0x92,0x93,0x95,0x97,0x98,0x9a,0x9e,0xa3,0x9f,0x9d,0x9b,0x9e,0xa1,0x9f,0x97,0x90,
+0x9f,0x9b,0x97,0x95,0x96,0x9a,0xa2,0xaa,0xa5,0x96,0x81,0x83,0x8c,0x8f,0x97,0x94,
+0x99,0x9b,0x9e,0xa1,0xa4,0xa7,0xab,0xad,0xad,0xae,0xb0,0xb1,0xb3,0xb4,0xb4,0xb5,
+0xb6,0xb6,0xb7,0xb8,0xb8,0xb8,0xb8,0xb8,0xb9,0xb9,0xb9,0xb9,0xb8,0xb7,0xb6,0xb5,
+0xb5,0xb4,0xb2,0xb0,0xae,0xac,0xaa,0xaa,0xa8,0xa5,0xa2,0x9e,0x9c,0x99,0x97,0x95,
+0x94,0x92,0x91,0x90,0x90,0x8f,0x8d,0x8c,0x8b,0x8b,0x8a,0x89,0x89,0x89,0x89,0x89,
+0x86,0x75,0x7f,0x8f,0x9e,0xad,0xaf,0xb1,0xae,0xac,0xad,0xb0,0xad,0xa2,0x99,0x96,
+0x99,0x9a,0x9b,0x9e,0xa1,0xa2,0xa1,0x9f,0xa1,0xa4,0xa9,0xac,0xae,0xb1,0xb4,0xb7,
+0xbd,0xbd,0xbd,0xc1,0xc6,0xca,0xcb,0xcb,0xc7,0xca,0xcf,0xd3,0xd5,0xd7,0xda,0xdb,
+0xd8,0xcb,0xc3,0xc5,0xc8,0xc8,0xcf,0xda,0xe0,0xe3,0xe1,0xdf,0xdc,0xd5,0xd3,0xdb,
+0xdb,0xd9,0xd6,0xd2,0xce,0xc9,0xc4,0xc1,0xc1,0xc3,0xc7,0xc9,0xcb,0xcc,0xce,0xcf,
+0xd1,0xd3,0xd5,0xd6,0xd6,0xd6,0xd7,0xd8,0xda,0xda,0xd8,0xd4,0xcf,0xcc,0xcc,0xcd,
+0xd0,0xd1,0xd3,0xd4,0xd6,0xd9,0xdd,0xdf,0xdd,0xdf,0xdf,0xde,0xde,0xe1,0xe2,0xe0,
+0xe1,0xe1,0xe0,0xe0,0xdf,0xdf,0xde,0xde,0xde,0xde,0xde,0xdf,0xdf,0xdf,0xde,0xde,
+0xdf,0xde,0xdd,0xdd,0xdd,0xdd,0xdd,0xde,0xda,0xdc,0xde,0xdd,0xda,0xd7,0xd7,0xd8,
+0xd1,0xd4,0xd3,0xd0,0xcf,0xce,0xcb,0xc6,0xc2,0xc5,0xc1,0xb7,0xac,0xa1,0xac,0xc8,
+0xd1,0xca,0xc9,0x96,0x65,0x71,0x8d,0xa3,0xc4,0xbe,0xbd,0x94,0x84,0x84,0x94,0x98,
+0x9c,0x9c,0x91,0x89,0x91,0x98,0x90,0x86,0x7c,0x81,0x83,0x7f,0x7b,0x7e,0x86,0x8e,
+0x9a,0x8e,0x86,0x7b,0x6f,0x70,0x76,0x74,0x70,0x80,0x8a,0x85,0x7b,0x79,0x7d,0x80,
+0x7b,0x88,0xa0,0xb3,0xb0,0x9c,0x8a,0x84,0x84,0x82,0x7f,0x7e,0x83,0x89,0x8b,0x89,
+0x8b,0x87,0x7d,0x66,0x4e,0x4f,0x63,0x6f,0x68,0x5c,0x57,0x53,0x46,0x3d,0x40,0x43,
+0x42,0x44,0x46,0x44,0x3c,0x2f,0x20,0x16,0x16,0x17,0x19,0x19,0x14,0x14,0x21,0x30,
+0x32,0x3c,0x3f,0x37,0x32,0x37,0x3c,0x3b,0x4c,0x43,0x42,0x42,0x42,0x50,0x63,0x69,
+0x60,0x5e,0x5c,0x59,0x57,0x55,0x53,0x52,0x65,0x5f,0x5d,0x62,0x6a,0x71,0x7b,0x85,
+0x77,0x70,0x62,0x50,0x3e,0x32,0x2f,0x31,0x37,0x42,0x49,0x4f,0x53,0x49,0x45,0x50,
+0x5a,0x61,0x51,0x3c,0x3a,0x3b,0x39,0x3c,0x38,0x3a,0x42,0x50,0x5d,0x61,0x59,0x4f,
+0x42,0x48,0x4f,0x54,0x5a,0x60,0x5e,0x54,0x40,0x38,0x36,0x42,0x54,0x5d,0x58,0x4f,
+0x46,0x3f,0x41,0x50,0x60,0x70,0x8a,0xa2,0xab,0xa8,0xab,0xa0,0x77,0x4a,0x32,0x2a,
+0x32,0x27,0x30,0x51,0x6e,0x76,0x76,0x78,0x70,0x6d,0x68,0x66,0x67,0x6b,0x70,0x73,
+0x75,0x7f,0x8a,0x91,0x92,0x90,0x8f,0x8d,0x8e,0x92,0x8c,0x7b,0x6c,0x63,0x54,0x44,
+0x69,0x73,0x7b,0x7a,0x72,0x6b,0x66,0x64,0x62,0x61,0x62,0x67,0x6d,0x6e,0x67,0x5e,
+0x59,0x51,0x4f,0x52,0x57,0x68,0x7a,0x7f,0x87,0x85,0x78,0x6c,0x68,0x62,0x5e,0x62,
+0x64,0x5b,0x52,0x56,0x6a,0x7c,0x78,0x6a,0x6e,0x70,0x79,0x73,0x70,0x73,0x6e,0x72,
+0x76,0x70,0x6e,0x71,0x72,0x71,0x73,0x78,0x7d,0x7d,0x7b,0x76,0x6f,0x69,0x67,0x67,
+0x6d,0x6a,0x6c,0x74,0x7c,0x7e,0x7d,0x7b,0x7b,0x80,0x87,0x88,0x7f,0x76,0x78,0x80,
+0x7a,0x79,0x75,0x6e,0x70,0x79,0x81,0x83,0x74,0x73,0x71,0x70,0x71,0x73,0x76,0x78,
+0x83,0x86,0x86,0x82,0x7f,0x82,0x86,0x88,0x8a,0x93,0x9c,0x9c,0x94,0x88,0x81,0x7e,
+0x85,0x89,0x90,0x9d,0xb1,0xc2,0xc5,0xc0,0xb1,0xb0,0xac,0xaa,0xb1,0xbd,0xc2,0xc2,
+0xbc,0xc0,0xc2,0xbc,0xb5,0xb2,0xb4,0xb5,0xb2,0xb6,0xba,0xbb,0xb3,0xa6,0x9d,0x9a,
+0xa3,0xa7,0xab,0xae,0xb0,0xaf,0xa9,0xa3,0x94,0x9c,0xa5,0xa7,0xa1,0x98,0x95,0x97,
+0x94,0x8b,0x87,0x8d,0x96,0x9c,0xa1,0xa5,0xa2,0x9c,0x98,0x9a,0xa2,0xa7,0xa7,0xa4,
+0xa0,0x9b,0x99,0x9e,0xa2,0xa0,0x9a,0x96,0x9c,0x92,0x81,0x83,0x8a,0x8e,0x96,0x95,
+0x99,0x9b,0x9e,0xa1,0xa3,0xa7,0xaa,0xad,0xac,0xad,0xaf,0xb2,0xb3,0xb4,0xb5,0xb5,
+0xb5,0xb6,0xb7,0xb7,0xb8,0xb8,0xb8,0xb7,0xb8,0xb8,0xb9,0xb9,0xb8,0xb7,0xb6,0xb5,
+0xb3,0xb2,0xb0,0xae,0xab,0xaa,0xa8,0xa8,0xa6,0xa3,0xa0,0x9d,0x9a,0x98,0x95,0x93,
+0x90,0x8f,0x8e,0x8e,0x8f,0x8f,0x8f,0x8e,0x8a,0x8a,0x89,0x89,0x88,0x88,0x88,0x88,
+0x80,0x72,0x84,0x99,0xa2,0xac,0xab,0xa9,0xae,0xaa,0xab,0xb0,0xa9,0x99,0x90,0x92,
+0x9b,0x9d,0x9f,0xa3,0xa7,0xa8,0xa8,0xa7,0xa6,0xa8,0xab,0xad,0xb0,0xb3,0xb7,0xba,
+0xc0,0xbe,0xbd,0xbe,0xc1,0xc4,0xc6,0xc8,0xc9,0xcc,0xd0,0xd2,0xd4,0xd4,0xd6,0xd6,
+0xd9,0xcc,0xc2,0xc0,0xbf,0xc0,0xc6,0xd0,0xd1,0xd4,0xd5,0xd4,0xd1,0xc7,0xc3,0xca,
+0xd0,0xcf,0xcc,0xc8,0xc3,0xbf,0xbb,0xb9,0xb7,0xba,0xbf,0xc4,0xc7,0xca,0xcd,0xcf,
+0xd0,0xd2,0xd4,0xd5,0xd5,0xd5,0xd6,0xd6,0xd6,0xd7,0xd7,0xd7,0xd6,0xd5,0xd6,0xd6,
+0xd1,0xd3,0xd5,0xd6,0xd7,0xd9,0xda,0xdc,0xdd,0xdf,0xdf,0xde,0xdf,0xe1,0xe2,0xe0,
+0xe0,0xe0,0xe0,0xdf,0xdf,0xde,0xdd,0xdc,0xdd,0xde,0xde,0xdf,0xdf,0xe0,0xe0,0xe0,
+0xdf,0xde,0xdd,0xdd,0xdc,0xdd,0xde,0xde,0xda,0xdc,0xdd,0xdc,0xda,0xd8,0xd8,0xd8,
+0xd4,0xd4,0xd0,0xcb,0xcb,0xcd,0xca,0xc5,0xbe,0xa3,0x89,0x85,0x7f,0x6d,0x7d,0xac,
+0xd0,0xd2,0xc0,0x84,0x5e,0x7d,0xaa,0xbf,0xc4,0xbe,0xb8,0x95,0x87,0x8f,0x90,0x86,
+0x87,0x90,0x88,0x78,0x77,0x7e,0x7e,0x7c,0x7e,0x8a,0x91,0x8b,0x83,0x83,0x88,0x8d,
+0x81,0x84,0x83,0x7e,0x76,0x6f,0x6e,0x74,0x76,0x86,0x8e,0x84,0x78,0x76,0x7d,0x81,
+0x9c,0x9e,0xa1,0xa1,0x9b,0x94,0x92,0x95,0x90,0x8f,0x8a,0x84,0x82,0x85,0x88,0x89,
+0x94,0x87,0x78,0x69,0x60,0x67,0x72,0x74,0x5b,0x4c,0x48,0x4a,0x44,0x3e,0x42,0x47,
+0x48,0x49,0x4a,0x45,0x39,0x2b,0x23,0x22,0x26,0x20,0x1a,0x18,0x1b,0x23,0x2a,0x2e,
+0x37,0x37,0x34,0x2f,0x31,0x3b,0x48,0x50,0x3d,0x2b,0x2f,0x46,0x5e,0x74,0x75,0x62,
+0x61,0x58,0x4d,0x49,0x4d,0x5b,0x75,0x8b,0x73,0x55,0x4b,0x5f,0x6b,0x61,0x61,0x6e,
+0x6a,0x5f,0x52,0x4a,0x47,0x47,0x49,0x4b,0x54,0x5c,0x5f,0x59,0x4d,0x3e,0x39,0x3f,
+0x5d,0x75,0x74,0x52,0x35,0x2e,0x33,0x37,0x40,0x42,0x4a,0x59,0x6b,0x75,0x6f,0x66,
+0x55,0x40,0x3a,0x49,0x56,0x56,0x44,0x2e,0x28,0x2e,0x36,0x3f,0x45,0x4a,0x4d,0x4f,
+0x3f,0x35,0x39,0x56,0x78,0x8b,0x91,0x91,0x96,0x8b,0x75,0x5a,0x4c,0x4f,0x48,0x33,
+0x43,0x5c,0x6d,0x6a,0x69,0x6f,0x6b,0x5e,0x71,0x74,0x79,0x7d,0x7b,0x74,0x6b,0x65,
+0x81,0x8b,0x96,0x9d,0xa0,0xa1,0xa0,0x9d,0x98,0x9b,0x8f,0x73,0x5f,0x5c,0x5f,0x5f,
+0x67,0x74,0x82,0x86,0x82,0x77,0x6a,0x5f,0x62,0x61,0x64,0x69,0x6c,0x69,0x61,0x5c,
+0x50,0x53,0x63,0x71,0x70,0x73,0x73,0x6b,0x78,0x79,0x6d,0x64,0x66,0x64,0x62,0x69,
+0x73,0x6f,0x69,0x63,0x62,0x66,0x6a,0x6c,0x74,0x7b,0x81,0x72,0x68,0x6c,0x6a,0x6d,
+0x6b,0x69,0x69,0x6d,0x72,0x77,0x77,0x76,0x85,0x89,0x86,0x7a,0x73,0x75,0x77,0x77,
+0x6d,0x6a,0x6c,0x76,0x81,0x87,0x88,0x89,0x7f,0x84,0x8d,0x91,0x8a,0x80,0x7e,0x83,
+0x84,0x81,0x7b,0x76,0x7c,0x87,0x8a,0x86,0x8c,0x8c,0x8a,0x89,0x8a,0x8f,0x94,0x96,
+0x8b,0x8e,0x95,0x9c,0x9b,0x92,0x89,0x85,0x8c,0x90,0x96,0x9c,0x9e,0x9d,0x9a,0x97,
+0x9f,0x9c,0x9a,0x9f,0xa9,0xb3,0xb9,0xbb,0xae,0xb0,0xac,0xa6,0xa5,0xa9,0xa7,0xa2,
+0xa4,0xa9,0xad,0xab,0xa7,0xa7,0xa8,0xa9,0xb6,0xb6,0xb3,0xb0,0xb0,0xb4,0xb7,0xb7,
+0xa4,0xa4,0xa1,0x9a,0x97,0x99,0x9a,0x98,0x8d,0x9d,0xab,0xa9,0x9c,0x96,0xa4,0xb6,
+0xa9,0x9e,0x97,0x99,0x9a,0x97,0x95,0x97,0x94,0x96,0x9c,0xa7,0xb0,0xb0,0xa6,0x9d,
+0x88,0x89,0x92,0xa2,0xad,0xa8,0x99,0x8c,0x8a,0x86,0x7c,0x81,0x88,0x8c,0x97,0x97,
+0x9a,0x9b,0x9e,0xa0,0xa3,0xa6,0xaa,0xad,0xab,0xad,0xaf,0xb1,0xb3,0xb4,0xb4,0xb4,
+0xb6,0xb6,0xb7,0xb8,0xb8,0xb8,0xb8,0xb7,0xb6,0xb7,0xb8,0xb9,0xb8,0xb8,0xb6,0xb6,
+0xb4,0xb3,0xb1,0xae,0xac,0xaa,0xa9,0xa8,0xa6,0xa3,0x9f,0x9c,0x9a,0x97,0x94,0x92,
+0x90,0x8f,0x8e,0x8e,0x8e,0x8e,0x8d,0x8c,0x89,0x89,0x88,0x88,0x88,0x88,0x88,0x88,
+0x7e,0x71,0x87,0x9d,0xa3,0xac,0xab,0xa6,0xab,0xaa,0xab,0xa9,0xa0,0x95,0x91,0x94,
+0x9a,0x9c,0xa0,0xa5,0xab,0xaf,0xb0,0xb0,0xac,0xae,0xb0,0xb2,0xb4,0xb7,0xb9,0xbb,
+0xbf,0xbf,0xbe,0xbd,0xbd,0xbe,0xc0,0xc1,0xc7,0xca,0xce,0xd1,0xd2,0xd3,0xd4,0xd5,
+0xd7,0xcd,0xc2,0xbb,0xb8,0xb9,0xbe,0xc4,0xcb,0xd0,0xd2,0xd5,0xd3,0xc7,0xc0,0xc6,
+0xc7,0xc9,0xc9,0xc7,0xc2,0xbe,0xbb,0xbb,0xbb,0xbd,0xbf,0xc2,0xc5,0xc9,0xcd,0xd0,
+0xd3,0xd4,0xd6,0xd6,0xd5,0xd4,0xd4,0xd4,0xd3,0xd2,0xd3,0xd4,0xd7,0xda,0xdb,0xdb,
+0xd7,0xd9,0xdc,0xdc,0xdc,0xdb,0xdb,0xdb,0xdd,0xdf,0xe0,0xdf,0xdf,0xe1,0xe0,0xde,
+0xdd,0xde,0xde,0xde,0xde,0xde,0xdd,0xdc,0xde,0xde,0xde,0xde,0xde,0xdf,0xe0,0xe0,
+0xdf,0xde,0xdd,0xdc,0xdc,0xdd,0xdd,0xde,0xdb,0xdb,0xdb,0xd9,0xd8,0xd6,0xd5,0xd5,
+0xd4,0xd4,0xd1,0xcc,0xcd,0xce,0xc7,0xbc,0x98,0x81,0x69,0x6c,0x76,0x71,0x87,0xb9,
+0xcd,0xd7,0xb4,0x7c,0x6e,0x98,0xc1,0xc1,0xbe,0xc1,0xc1,0xab,0x93,0x92,0x81,0x73,
+0x72,0x88,0x95,0x94,0x8f,0x87,0x7e,0x7b,0x7e,0x8d,0x96,0x8d,0x80,0x7b,0x7b,0x7b,
+0x82,0x84,0x78,0x6f,0x6f,0x64,0x5e,0x6a,0x6e,0x82,0x90,0x8b,0x82,0x84,0x8c,0x8f,
+0x95,0x9b,0xa0,0x9e,0x99,0x95,0x8f,0x8a,0x85,0x84,0x81,0x80,0x83,0x87,0x87,0x84,
+0x93,0x88,0x7f,0x78,0x73,0x76,0x77,0x70,0x57,0x46,0x3e,0x41,0x45,0x4b,0x4e,0x4b,
+0x4f,0x4d,0x4d,0x49,0x3a,0x29,0x25,0x2b,0x27,0x25,0x24,0x2d,0x43,0x57,0x59,0x51,
+0x38,0x33,0x36,0x40,0x46,0x44,0x46,0x4c,0x49,0x42,0x51,0x64,0x6a,0x72,0x72,0x60,
+0x5c,0x52,0x46,0x40,0x46,0x57,0x6a,0x77,0x69,0x5c,0x44,0x31,0x36,0x47,0x49,0x3e,
+0x45,0x48,0x4b,0x49,0x41,0x3a,0x3c,0x42,0x3f,0x42,0x46,0x42,0x3a,0x3e,0x47,0x4b,
+0x63,0x67,0x5f,0x46,0x34,0x38,0x3d,0x37,0x37,0x3f,0x4b,0x57,0x62,0x68,0x66,0x60,
+0x5a,0x47,0x44,0x47,0x3a,0x2b,0x27,0x26,0x29,0x27,0x28,0x30,0x39,0x3d,0x39,0x34,
+0x37,0x46,0x61,0x7a,0x86,0x84,0x7c,0x77,0x6d,0x63,0x5f,0x59,0x48,0x39,0x31,0x2c,
+0x39,0x47,0x5b,0x66,0x62,0x5d,0x67,0x77,0x76,0x77,0x75,0x6e,0x68,0x67,0x6c,0x72,
+0x83,0x8b,0x95,0x9c,0xa1,0xa5,0xa4,0xa0,0x9e,0x93,0x83,0x73,0x68,0x67,0x6c,0x72,
+0x74,0x7e,0x86,0x82,0x79,0x71,0x6c,0x68,0x67,0x64,0x64,0x69,0x6a,0x65,0x62,0x61,
+0x65,0x65,0x72,0x7a,0x74,0x73,0x72,0x67,0x65,0x67,0x62,0x68,0x7d,0x84,0x80,0x83,
+0x81,0x75,0x6e,0x72,0x76,0x72,0x6c,0x69,0x70,0x70,0x72,0x67,0x6c,0x7b,0x73,0x6a,
+0x62,0x5e,0x59,0x5b,0x66,0x72,0x76,0x74,0x7c,0x89,0x8b,0x7d,0x77,0x81,0x85,0x80,
+0x7a,0x7c,0x84,0x8f,0x94,0x91,0x89,0x83,0x87,0x8c,0x8d,0x89,0x8b,0x8f,0x88,0x7b,
+0x86,0x94,0x9c,0x95,0x8b,0x8a,0x8e,0x90,0x99,0x9d,0xa0,0xa1,0xa1,0xa0,0x9d,0x9a,
+0x94,0x95,0x9f,0xad,0xb0,0xa3,0x95,0x8f,0x96,0x96,0x9b,0xa5,0xb0,0xb3,0xad,0xa7,
+0xac,0xa7,0xa1,0x9c,0x95,0x8d,0x89,0x89,0x94,0x9a,0x9c,0x9b,0x9e,0xa5,0xa7,0xa3,
+0xa7,0xa7,0xa4,0xa0,0xa0,0xa4,0xa8,0xaa,0xab,0xaa,0xa5,0x9f,0xa1,0xa6,0xa6,0xa1,
+0xa2,0xa0,0x97,0x89,0x83,0x87,0x8f,0x94,0x94,0xa6,0xb0,0xa9,0xa2,0xa3,0xa2,0x9b,
+0x95,0x93,0x98,0x9e,0x9c,0x94,0x95,0x9c,0xa2,0xa1,0xa5,0xad,0xb7,0xb9,0xb5,0xaf,
+0x9b,0x97,0x9a,0xa4,0xad,0xa9,0x9c,0x91,0x83,0x83,0x7d,0x82,0x87,0x8a,0x96,0x97,
+0x9a,0x9c,0x9e,0xa0,0xa3,0xa6,0xaa,0xac,0xab,0xac,0xaf,0xb1,0xb3,0xb4,0xb4,0xb4,
+0xb7,0xb7,0xb7,0xb8,0xb8,0xb8,0xb8,0xb8,0xb5,0xb6,0xb7,0xb8,0xb8,0xb8,0xb7,0xb6,
+0xb6,0xb5,0xb2,0xb0,0xad,0xac,0xab,0xaa,0xa7,0xa4,0xa1,0x9d,0x9b,0x98,0x95,0x94,
+0x93,0x91,0x8f,0x8e,0x8d,0x8c,0x8a,0x88,0x89,0x89,0x88,0x88,0x87,0x87,0x88,0x88,
+0x80,0x71,0x87,0x9c,0xa0,0xab,0xad,0xa9,0xa6,0xaa,0xaa,0xa3,0x9a,0x96,0x97,0x99,
+0x97,0x99,0x9e,0xa6,0xad,0xb3,0xb5,0xb6,0xb1,0xb2,0xb5,0xb7,0xb8,0xb9,0xba,0xba,
+0xc1,0xc2,0xc3,0xc1,0xbe,0xbd,0xbe,0xbf,0xc2,0xc6,0xcb,0xd0,0xd3,0xd5,0xd6,0xd8,
+0xd4,0xcd,0xc2,0xba,0xb5,0xb5,0xb8,0xbc,0xca,0xce,0xd0,0xd2,0xcf,0xc0,0xb6,0xba,
+0xc6,0xca,0xcd,0xcd,0xc9,0xc5,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc5,0xc8,0xcc,0xcf,
+0xd2,0xd4,0xd5,0xd4,0xd2,0xd0,0xcf,0xce,0xd1,0xcf,0xce,0xd0,0xd4,0xd8,0xda,0xda,
+0xde,0xe0,0xe3,0xe3,0xe2,0xe0,0xde,0xde,0xdd,0xe0,0xe1,0xdf,0xdf,0xe0,0xdf,0xdd,
+0xdc,0xdd,0xde,0xdf,0xdf,0xdf,0xde,0xde,0xde,0xde,0xdd,0xdd,0xdd,0xde,0xde,0xdf,
+0xdf,0xde,0xdd,0xdc,0xdc,0xdc,0xdd,0xde,0xda,0xd9,0xd8,0xd6,0xd5,0xd3,0xd2,0xd1,
+0xce,0xd0,0xd0,0xcf,0xd0,0xcd,0xc0,0xaf,0x71,0x7f,0x7c,0x72,0x70,0x71,0x8e,0xbf,
+0xcc,0xde,0xb1,0x79,0x76,0xa4,0xd0,0xc8,0xb8,0xbc,0xba,0xaa,0x89,0x8e,0x8a,0x91,
+0x90,0x90,0x8b,0x8a,0x8d,0x88,0x7f,0x7e,0x88,0x98,0xa0,0x96,0x87,0x81,0x80,0x7e,
+0x76,0x7c,0x73,0x77,0x88,0x7a,0x62,0x66,0x6d,0x85,0x96,0x92,0x86,0x83,0x83,0x81,
+0x9b,0x9e,0x9c,0x94,0x91,0x95,0x96,0x91,0x89,0x88,0x88,0x8d,0x96,0x9a,0x94,0x8b,
+0x87,0x8b,0x92,0x8f,0x7f,0x70,0x61,0x52,0x41,0x3c,0x3b,0x3d,0x43,0x4f,0x56,0x50,
+0x53,0x4f,0x4e,0x4b,0x3b,0x25,0x1f,0x25,0x1c,0x1d,0x1e,0x24,0x33,0x3e,0x31,0x1d,
+0x1d,0x2e,0x3e,0x49,0x5e,0x73,0x77,0x6d,0x60,0x4b,0x4b,0x56,0x5c,0x69,0x6c,0x5a,
+0x51,0x4a,0x3d,0x37,0x44,0x59,0x62,0x60,0x55,0x48,0x34,0x27,0x27,0x2f,0x37,0x3a,
+0x38,0x34,0x33,0x35,0x35,0x31,0x2f,0x31,0x2f,0x2e,0x37,0x3c,0x3d,0x4a,0x53,0x4a,
+0x41,0x4e,0x5e,0x54,0x38,0x2e,0x2f,0x26,0x44,0x52,0x5e,0x5f,0x5b,0x56,0x51,0x4c,
+0x45,0x47,0x4b,0x41,0x36,0x3b,0x3b,0x28,0x28,0x28,0x2b,0x31,0x36,0x37,0x32,0x2d,
+0x43,0x54,0x67,0x6f,0x6d,0x68,0x67,0x68,0x6a,0x60,0x5c,0x53,0x3e,0x2d,0x2a,0x2a,
+0x41,0x3f,0x3a,0x37,0x3d,0x47,0x49,0x45,0x42,0x4e,0x5a,0x5e,0x5c,0x60,0x6d,0x79,
+0x7a,0x82,0x89,0x8f,0x96,0x9b,0x9a,0x95,0x8b,0x79,0x71,0x7c,0x83,0x77,0x67,0x5f,
+0x80,0x7f,0x7d,0x7b,0x79,0x74,0x6a,0x60,0x60,0x68,0x70,0x70,0x68,0x61,0x5e,0x5f,
+0x5e,0x5d,0x64,0x70,0x75,0x70,0x6c,0x6c,0x75,0x7b,0x79,0x6d,0x69,0x6f,0x6c,0x62,
+0x73,0x78,0x7b,0x79,0x78,0x79,0x78,0x75,0x75,0x72,0x6e,0x6e,0x70,0x72,0x73,0x72,
+0x67,0x64,0x64,0x6a,0x73,0x7b,0x80,0x81,0x89,0x89,0x8c,0x90,0x91,0x8c,0x89,0x87,
+0x8f,0x98,0xa2,0xa5,0x9e,0x93,0x8c,0x8b,0x94,0x9a,0xa0,0xa0,0x97,0x8c,0x87,0x88,
+0x8f,0x94,0x95,0x8d,0x84,0x84,0x8d,0x95,0xa2,0x92,0x95,0xa3,0xa5,0xa2,0x98,0x89,
+0x8c,0x8a,0x8f,0x95,0x91,0x90,0x93,0x93,0x99,0xa5,0xad,0xad,0xad,0xb2,0xb4,0xb2,
+0xac,0xa9,0xa6,0x9d,0x8c,0x7f,0x82,0x8e,0x9b,0x9e,0xa4,0xa3,0xab,0xac,0x97,0x8f,
+0x9b,0xa5,0xa8,0xa7,0xaa,0xa8,0xa2,0xa2,0xa8,0xa6,0xa5,0xa5,0xa4,0xa4,0xa8,0xab,
+0xa2,0x9c,0x90,0x80,0x76,0x78,0x82,0x8b,0x98,0x97,0xa2,0xae,0xa8,0x99,0x9e,0xb0,
+0xa5,0x94,0x90,0x98,0x99,0x98,0x9a,0x9c,0x9b,0xa1,0xab,0xb3,0xb7,0xb6,0xb0,0xaa,
+0xa3,0x9c,0x97,0x9c,0xa3,0xa2,0x98,0x8d,0x87,0x84,0x7e,0x7e,0x88,0x8e,0x91,0x98,
+0x9a,0x9b,0x9e,0xa1,0xa4,0xa8,0xaa,0xab,0xad,0xaf,0xb1,0xb2,0xb2,0xb2,0xb3,0xb4,
+0xb5,0xb6,0xb7,0xb9,0xba,0xbb,0xbb,0xbb,0xba,0xb9,0xb7,0xb7,0xb7,0xb7,0xb5,0xb4,
+0xb3,0xb2,0xb1,0xaf,0xad,0xab,0xa9,0xa8,0xa5,0xa3,0xa0,0x9e,0x9b,0x98,0x95,0x92,
+0x91,0x8f,0x8d,0x8c,0x8b,0x8a,0x88,0x86,0x87,0x88,0x89,0x88,0x89,0x8b,0x8b,0x89,
+0x78,0x7d,0x88,0x97,0xa1,0xa6,0xa9,0xac,0xaa,0xae,0xa8,0x9b,0x95,0x9a,0x9b,0x96,
+0x9a,0x9b,0x9c,0xa0,0xa7,0xb0,0xb7,0xb9,0xb6,0xb7,0xb7,0xb6,0xb9,0xbe,0xc0,0xbf,
+0xc4,0xc3,0xc2,0xc2,0xc2,0xc3,0xc3,0xc4,0xc5,0xc7,0xcb,0xcf,0xd0,0xd0,0xd0,0xd1,
+0xd1,0xce,0xc8,0xbf,0xb7,0xb4,0xb5,0xb8,0xc0,0xc3,0xca,0xd1,0xd0,0xc5,0xb9,0xb1,
+0xb4,0xbf,0xcd,0xd3,0xcf,0xc8,0xc4,0xc4,0xc9,0xc7,0xc4,0xc2,0xc2,0xc5,0xc8,0xca,
+0xcd,0xcc,0xcb,0xcd,0xce,0xce,0xcc,0xca,0xcc,0xcc,0xd0,0xd5,0xd6,0xd3,0xd5,0xd9,
+0xda,0xdf,0xe2,0xdf,0xd9,0xd5,0xd6,0xd8,0xdd,0xe2,0xe0,0xdd,0xdf,0xe0,0xde,0xe0,
+0xdb,0xda,0xda,0xdc,0xdd,0xdf,0xdf,0xde,0xdd,0xe0,0xe1,0xdf,0xdf,0xe1,0xe0,0xdc,
+0xda,0xdb,0xdc,0xdd,0xdd,0xdc,0xda,0xd9,0xd7,0xd7,0xd7,0xd7,0xd7,0xd6,0xd3,0xd1,
+0xd1,0xd4,0xce,0xce,0xcc,0xd1,0xc2,0x87,0x7b,0x76,0x76,0x80,0x9a,0xb3,0xc0,0xd0,
+0xce,0xd6,0xad,0x6e,0x7d,0xb5,0xc5,0xc4,0xbb,0xba,0xb6,0xa5,0x8f,0x88,0x8c,0x8d,
+0x8c,0x8b,0x8e,0x90,0x89,0x7e,0x7b,0x81,0x8a,0x8e,0x97,0x92,0x7d,0x75,0x80,0x8b,
+0x90,0x8b,0x77,0x73,0x6b,0x5d,0x62,0x5d,0x67,0x7c,0x8e,0x95,0x92,0x85,0x7b,0x7b,
+0x92,0x9f,0x9e,0x94,0x96,0x9a,0x90,0x85,0x8b,0x86,0x83,0x8a,0x92,0x94,0x92,0x8f,
+0x92,0x9d,0xa0,0x92,0x7b,0x68,0x5b,0x54,0x3b,0x31,0x34,0x43,0x4f,0x57,0x5b,0x58,
+0x59,0x5a,0x55,0x45,0x2e,0x1d,0x1b,0x20,0x1e,0x21,0x26,0x29,0x29,0x24,0x1a,0x12,
+0x1a,0x21,0x33,0x47,0x50,0x53,0x5f,0x6d,0x82,0x7c,0x7c,0x7a,0x6e,0x61,0x5a,0x55,
+0x57,0x4b,0x44,0x46,0x50,0x5c,0x5b,0x4d,0x46,0x40,0x36,0x2f,0x2f,0x32,0x30,0x2a,
+0x23,0x2d,0x34,0x2a,0x20,0x28,0x35,0x36,0x3d,0x45,0x4d,0x50,0x4f,0x4a,0x46,0x44,
+0x3b,0x4b,0x55,0x5d,0x49,0x4c,0x5e,0x7e,0x8e,0x89,0x86,0x7e,0x6d,0x5d,0x4d,0x3e,
+0x43,0x44,0x43,0x40,0x3a,0x33,0x2d,0x2a,0x29,0x33,0x2d,0x1f,0x1a,0x1a,0x25,0x39,
+0x46,0x42,0x4e,0x56,0x6a,0x6e,0x67,0x4e,0x55,0x5c,0x56,0x3c,0x20,0x14,0x17,0x1c,
+0x28,0x31,0x3d,0x41,0x3e,0x38,0x33,0x30,0x39,0x4b,0x59,0x59,0x56,0x5a,0x62,0x67,
+0x64,0x78,0x86,0x84,0x83,0x89,0x8a,0x84,0x75,0x71,0x71,0x70,0x69,0x63,0x66,0x6f,
+0x73,0x78,0x78,0x6e,0x61,0x5c,0x5e,0x61,0x6c,0x6b,0x67,0x61,0x5b,0x5a,0x5e,0x61,
+0x6a,0x70,0x7a,0x7f,0x78,0x6c,0x6a,0x6f,0x85,0x8b,0x89,0x7b,0x70,0x6f,0x6e,0x6a,
+0x61,0x68,0x71,0x79,0x81,0x86,0x85,0x7f,0x7b,0x7e,0x81,0x80,0x7b,0x75,0x70,0x6e,
+0x79,0x75,0x75,0x7a,0x7e,0x7e,0x7e,0x80,0x89,0x8b,0x8d,0x8c,0x87,0x82,0x84,0x8a,
+0x95,0x95,0x97,0x9b,0x9f,0x9d,0x98,0x94,0x99,0x9c,0xa0,0xa0,0x99,0x90,0x8c,0x8c,
+0x92,0x90,0x8f,0x92,0x94,0x93,0x8f,0x8b,0x90,0x9d,0xad,0xaf,0xa5,0xa3,0xac,0xb2,
+0xa6,0x9d,0x99,0x97,0x95,0x99,0x9d,0x99,0xa4,0xa9,0xab,0xa9,0xaa,0xaf,0xb1,0xae,
+0xa5,0x9d,0x98,0x9a,0x98,0x8e,0x86,0x84,0x90,0x8d,0x9a,0xa5,0xa6,0x92,0x7e,0x88,
+0x7e,0x8e,0x96,0x93,0x8f,0x8b,0x8b,0x92,0x92,0x92,0x93,0x96,0x9b,0x9f,0xa4,0xa7,
+0xac,0xa7,0xa0,0x9c,0x9a,0x97,0x91,0x8c,0x7b,0x7c,0x82,0x87,0x87,0x88,0x93,0xa0,
+0x9a,0xa0,0xa7,0xa2,0x94,0x93,0x9c,0xa0,0xa9,0xaf,0xae,0xa4,0x9f,0xa2,0xa6,0xa5,
+0x92,0x8c,0x88,0x8c,0x96,0x99,0x8d,0x7f,0x81,0x81,0x7d,0x7f,0x88,0x8e,0x92,0x99,
+0x99,0x9b,0x9d,0xa0,0xa4,0xa7,0xaa,0xab,0xab,0xad,0xae,0xaf,0xb0,0xb2,0xb4,0xb6,
+0xb6,0xb8,0xb9,0xbb,0xbb,0xbb,0xbb,0xba,0xba,0xb9,0xb8,0xb7,0xb7,0xb7,0xb6,0xb4,
+0xb3,0xb2,0xb0,0xaf,0xac,0xab,0xa9,0xa8,0xa6,0xa3,0x9f,0x9c,0x9a,0x98,0x96,0x95,
+0x92,0x90,0x8d,0x8c,0x8a,0x89,0x87,0x85,0x84,0x87,0x88,0x89,0x8a,0x8b,0x8a,0x86,
+0x73,0x7d,0x8c,0x9b,0xa4,0xa6,0xa8,0xa9,0xb1,0xae,0xa4,0x9a,0x98,0x9c,0x9d,0x99,
+0x9b,0x9a,0x9a,0x9c,0xa2,0xad,0xb7,0xbd,0xbc,0xbd,0xbc,0xbb,0xbc,0xc0,0xc1,0xc0,
+0xc6,0xc7,0xc8,0xc9,0xc9,0xc9,0xc8,0xc7,0xc4,0xc3,0xc6,0xcc,0xcf,0xcd,0xcd,0xcf,
+0xcc,0xcb,0xc8,0xc3,0xbd,0xb8,0xb7,0xb6,0xb6,0xbb,0xc5,0xd0,0xd1,0xc8,0xbb,0xb3,
+0xb9,0xb5,0xbc,0xcc,0xd1,0xca,0xc8,0xce,0xc9,0xc8,0xc8,0xc8,0xc9,0xc9,0xc8,0xc8,
+0xcb,0xcb,0xcd,0xcf,0xd1,0xd1,0xcf,0xcc,0xcd,0xcc,0xcd,0xd1,0xd1,0xcf,0xcf,0xd2,
+0xd2,0xd4,0xd5,0xd4,0xd3,0xd6,0xdd,0xe2,0xdc,0xdf,0xe1,0xe2,0xe1,0xe1,0xe0,0xe0,
+0xde,0xdd,0xdd,0xdd,0xdf,0xdf,0xdf,0xde,0xdd,0xe0,0xe0,0xde,0xde,0xe0,0xe0,0xdd,
+0xdc,0xdd,0xde,0xde,0xdd,0xdc,0xdb,0xda,0xdb,0xd9,0xd8,0xd7,0xd7,0xd7,0xd5,0xd4,
+0xd5,0xd7,0xd2,0xd3,0xd3,0xd5,0xbf,0x81,0x74,0x7f,0x9a,0xb7,0xc6,0xbf,0xbd,0xcd,
+0xc7,0xc9,0xa0,0x65,0x77,0xb5,0xc3,0xb5,0xbb,0xb8,0xb6,0xad,0x9b,0x8e,0x89,0x87,
+0x8b,0x8b,0x8a,0x86,0x7e,0x77,0x79,0x7f,0x80,0x81,0x88,0x84,0x74,0x6e,0x77,0x80,
+0x8a,0x84,0x77,0x7d,0x76,0x63,0x66,0x66,0x6c,0x7f,0x8e,0x90,0x8a,0x7d,0x78,0x7f,
+0x75,0x84,0x8e,0x8d,0x89,0x83,0x80,0x85,0x95,0x8d,0x84,0x83,0x86,0x88,0x8a,0x8c,
+0x9b,0x96,0x88,0x75,0x67,0x60,0x59,0x51,0x3d,0x32,0x35,0x47,0x53,0x59,0x5a,0x57,
+0x58,0x5b,0x56,0x42,0x2a,0x1c,0x1c,0x21,0x20,0x23,0x23,0x1e,0x17,0x14,0x16,0x18,
+0x16,0x14,0x1a,0x28,0x35,0x3d,0x44,0x4a,0x52,0x54,0x5c,0x65,0x70,0x7c,0x7b,0x6f,
+0x51,0x48,0x41,0x46,0x55,0x5b,0x51,0x46,0x3f,0x3f,0x38,0x2a,0x20,0x22,0x2a,0x31,
+0x37,0x2a,0x21,0x1c,0x17,0x1e,0x30,0x3c,0x3a,0x39,0x46,0x5b,0x62,0x5a,0x57,0x5d,
+0x79,0x76,0x75,0x7d,0x7a,0x7a,0x7c,0x87,0x8e,0x8d,0x8b,0x80,0x70,0x65,0x55,0x40,
+0x2a,0x28,0x25,0x23,0x23,0x22,0x21,0x20,0x2c,0x2c,0x26,0x25,0x29,0x28,0x22,0x20,
+0x2e,0x2f,0x3f,0x48,0x5d,0x63,0x64,0x52,0x3f,0x3a,0x2e,0x20,0x16,0x13,0x13,0x12,
+0x17,0x1c,0x23,0x28,0x2b,0x2a,0x29,0x29,0x2b,0x36,0x3e,0x43,0x49,0x53,0x59,0x59,
+0x4e,0x57,0x5b,0x58,0x5b,0x66,0x6e,0x6e,0x77,0x68,0x5e,0x62,0x6c,0x71,0x74,0x77,
+0x5b,0x67,0x6f,0x69,0x5b,0x54,0x56,0x5b,0x5a,0x61,0x66,0x64,0x5d,0x59,0x5c,0x61,
+0x60,0x68,0x74,0x7b,0x77,0x70,0x72,0x79,0x66,0x6b,0x6f,0x71,0x70,0x6d,0x68,0x63,
+0x61,0x67,0x71,0x7e,0x89,0x8b,0x80,0x74,0x71,0x7b,0x86,0x89,0x86,0x84,0x86,0x89,
+0x7b,0x78,0x7a,0x7f,0x7b,0x6e,0x65,0x65,0x7f,0x85,0x8c,0x8d,0x89,0x8a,0x94,0xa0,
+0xa5,0xa1,0x9f,0xa1,0xa7,0xab,0xab,0xa8,0x9b,0x9c,0x9e,0xa1,0x9e,0x97,0x92,0x90,
+0x93,0x84,0x7b,0x82,0x8e,0x92,0x8d,0x88,0x8c,0x94,0x98,0x9f,0xaf,0xbb,0xb7,0xaf,
+0xab,0xa5,0x9f,0x98,0x95,0xa0,0xab,0xaa,0xa9,0xac,0xad,0xab,0xab,0xad,0xa9,0xa2,
+0xb1,0xac,0xa8,0xa3,0x9a,0x90,0x8c,0x8e,0x7f,0x98,0xaf,0xae,0xb0,0xaf,0x96,0x86,
+0x90,0x9f,0xa6,0xa2,0x9d,0x96,0x92,0x96,0x9e,0x9d,0x9b,0x9a,0x9c,0x9e,0xa0,0xa1,
+0x97,0x93,0x92,0x98,0xa2,0xa9,0xaa,0xa8,0xa1,0x9e,0x93,0x86,0x82,0x89,0x92,0x96,
+0x97,0xa9,0xb6,0xaa,0x99,0x9f,0xad,0xaf,0xa5,0x9f,0x96,0x97,0xab,0xbd,0xb4,0x9e,
+0x97,0x9c,0x9a,0x8f,0x87,0x85,0x7f,0x77,0x79,0x7d,0x7d,0x7e,0x87,0x8c,0x90,0x98,
+0x99,0x9a,0x9d,0xa0,0xa3,0xa7,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb2,0xb6,0xb9,
+0xb7,0xb8,0xba,0xbb,0xbc,0xbb,0xb9,0xb8,0xba,0xb9,0xb8,0xb8,0xb8,0xb7,0xb6,0xb5,
+0xb3,0xb2,0xb1,0xaf,0xad,0xab,0xa9,0xa8,0xa7,0xa4,0x9f,0x9c,0x9a,0x99,0x97,0x97,
+0x92,0x90,0x8d,0x8b,0x8a,0x88,0x86,0x84,0x82,0x85,0x88,0x89,0x8a,0x8b,0x88,0x83,
+0x72,0x81,0x94,0xa1,0xa6,0xa6,0xa6,0xa7,0xb1,0xa7,0x9b,0x95,0x97,0x9a,0x9b,0x99,
+0x9b,0x9b,0x9c,0x9e,0xa3,0xac,0xb7,0xbf,0xc4,0xc5,0xc5,0xc3,0xc3,0xc5,0xc6,0xc4,
+0xc6,0xc8,0xcb,0xcd,0xcd,0xcc,0xc9,0xc8,0xc4,0xbf,0xc1,0xc9,0xcd,0xc9,0xc8,0xcb,
+0xca,0xc9,0xc8,0xc6,0xc2,0xbc,0xb5,0xb0,0xad,0xb1,0xba,0xc5,0xc8,0xc3,0xbb,0xb7,
+0xbd,0xb4,0xb4,0xbf,0xca,0xcc,0xcc,0xce,0xc7,0xc7,0xc9,0xcd,0xcf,0xce,0xcb,0xc8,
+0xc9,0xcb,0xce,0xd1,0xd3,0xd3,0xd1,0xcf,0xcc,0xcb,0xcd,0xd0,0xd0,0xce,0xcd,0xce,
+0xcf,0xcf,0xce,0xcd,0xcc,0xcd,0xcf,0xd2,0xde,0xdb,0xe1,0xe5,0xe3,0xe2,0xe3,0xe1,
+0xe1,0xe0,0xdf,0xdf,0xe0,0xe0,0xdf,0xde,0xdd,0xde,0xde,0xdc,0xdc,0xde,0xdf,0xde,
+0xdf,0xdf,0xde,0xdd,0xdd,0xdc,0xdb,0xdb,0xdc,0xda,0xd7,0xd6,0xd6,0xd7,0xd7,0xd6,
+0xd5,0xd6,0xd3,0xd4,0xd6,0xd5,0xb5,0x76,0x7a,0xa5,0xc6,0xce,0xcc,0xc8,0xc5,0xc5,
+0xd0,0xb9,0x8e,0x64,0x7a,0xb7,0xcc,0xc6,0xb6,0xb6,0xb5,0xae,0x9e,0x8e,0x86,0x84,
+0x85,0x87,0x86,0x7e,0x77,0x77,0x7b,0x7d,0x82,0x80,0x83,0x82,0x79,0x78,0x7f,0x83,
+0x84,0x81,0x83,0x92,0x89,0x6b,0x62,0x62,0x5d,0x76,0x8d,0x96,0x8e,0x7b,0x72,0x79,
+0x8b,0x84,0x7d,0x7e,0x80,0x79,0x7a,0x87,0x95,0x97,0x97,0x93,0x8a,0x84,0x87,0x8d,
+0x9b,0x9c,0x8d,0x6f,0x59,0x57,0x60,0x65,0x3f,0x35,0x3b,0x4f,0x5a,0x5b,0x5b,0x59,
+0x56,0x59,0x50,0x38,0x21,0x18,0x1b,0x21,0x23,0x1e,0x1a,0x1e,0x24,0x26,0x21,0x1b,
+0x1a,0x19,0x1a,0x22,0x2d,0x34,0x36,0x34,0x34,0x3d,0x3c,0x31,0x30,0x3d,0x41,0x39,
+0x3e,0x40,0x40,0x4d,0x62,0x60,0x4d,0x44,0x49,0x4f,0x4f,0x42,0x33,0x2b,0x2c,0x30,
+0x2c,0x19,0x0d,0x0f,0x16,0x26,0x39,0x41,0x27,0x2b,0x41,0x5f,0x6a,0x5d,0x4e,0x49,
+0x54,0x50,0x5b,0x6b,0x7e,0x80,0x85,0x87,0x8b,0x8f,0x90,0x87,0x7c,0x77,0x67,0x4d,
+0x41,0x3b,0x34,0x31,0x2f,0x2d,0x28,0x23,0x2a,0x28,0x2d,0x33,0x33,0x2f,0x27,0x1d,
+0x22,0x1d,0x28,0x2f,0x42,0x47,0x46,0x32,0x23,0x18,0x0d,0x0b,0x0e,0x12,0x12,0x13,
+0x11,0x12,0x15,0x19,0x1d,0x1e,0x1c,0x1a,0x1b,0x1d,0x1f,0x26,0x34,0x41,0x43,0x3e,
+0x44,0x42,0x3d,0x39,0x3d,0x48,0x53,0x59,0x51,0x56,0x5e,0x60,0x57,0x48,0x41,0x42,
+0x64,0x6b,0x71,0x6f,0x6a,0x65,0x63,0x61,0x56,0x5c,0x66,0x6d,0x70,0x6d,0x69,0x66,
+0x5b,0x5a,0x5e,0x67,0x6f,0x73,0x75,0x77,0x72,0x6d,0x6c,0x75,0x7e,0x7b,0x70,0x66,
+0x5e,0x63,0x6f,0x82,0x92,0x92,0x83,0x73,0x76,0x79,0x7a,0x75,0x6e,0x6c,0x71,0x77,
+0x7c,0x7d,0x86,0x91,0x8e,0x7f,0x75,0x75,0x81,0x86,0x8d,0x90,0x8f,0x8e,0x93,0x9b,
+0x9f,0xa3,0xa5,0xa5,0xa6,0xa9,0xab,0xad,0xa2,0xa0,0xa1,0xa4,0xa3,0x9d,0x98,0x96,
+0x83,0x7e,0x83,0x92,0x9e,0x9b,0x93,0x8e,0x7b,0x82,0x7b,0x74,0x7b,0x7f,0x7d,0x83,
+0xa8,0xaa,0xa9,0x9f,0x97,0xa1,0xad,0xad,0xaf,0xb0,0xae,0xaa,0xa9,0xa9,0xa7,0xa3,
+0xa7,0xa9,0xa9,0xa1,0x92,0x87,0x8b,0x93,0x99,0x8f,0x8b,0x88,0x8f,0x91,0x89,0x90,
+0x96,0x9f,0xa4,0xaa,0xb4,0xb4,0xac,0xa8,0x9f,0x9f,0x9e,0x9a,0x99,0x9c,0xa1,0xa3,
+0xa2,0x9c,0x96,0x91,0x8f,0x90,0x94,0x99,0x9d,0xa0,0x9f,0x9c,0x9b,0x97,0x8e,0x83,
+0x8d,0x94,0x97,0x90,0x8f,0x9d,0xa6,0x9f,0x8d,0x8e,0x8f,0x96,0xa5,0xae,0xa4,0x93,
+0x92,0x9d,0x9e,0x91,0x88,0x89,0x8a,0x85,0x76,0x7e,0x7f,0x7f,0x85,0x89,0x8d,0x95,
+0x98,0x99,0x9c,0x9f,0xa3,0xa6,0xa8,0xaa,0xab,0xac,0xae,0xb0,0xb2,0xb4,0xb7,0xb9,
+0xb5,0xb7,0xb9,0xbb,0xbb,0xba,0xb9,0xb8,0xbb,0xb9,0xb8,0xb8,0xb8,0xb7,0xb6,0xb5,
+0xb3,0xb3,0xb1,0xaf,0xad,0xab,0xaa,0xa9,0xa8,0xa5,0xa1,0x9e,0x9b,0x99,0x97,0x95,
+0x91,0x8f,0x8c,0x8a,0x89,0x88,0x86,0x85,0x84,0x86,0x87,0x88,0x89,0x8a,0x86,0x81,
+0x77,0x88,0x9a,0xa3,0xa5,0xa6,0xa7,0xa7,0xa9,0x9d,0x94,0x94,0x97,0x98,0x99,0x9b,
+0x9b,0x9d,0xa1,0xa5,0xa8,0xad,0xb4,0xbc,0xc7,0xca,0xcb,0xca,0xc9,0xcb,0xcc,0xcb,
+0xc7,0xc9,0xcc,0xcd,0xce,0xcd,0xcb,0xca,0xcb,0xc3,0xc3,0xcc,0xd0,0xcb,0xc9,0xcd,
+0xcb,0xc9,0xc8,0xc7,0xc3,0xbc,0xb3,0xac,0xae,0xae,0xb0,0xb5,0xb8,0xba,0xbb,0xbe,
+0xc0,0xc2,0xbf,0xba,0xc1,0xcf,0xd1,0xc9,0xc7,0xc7,0xc9,0xcc,0xd0,0xd2,0xd0,0xcd,
+0xcb,0xcd,0xcf,0xd1,0xd3,0xd3,0xd2,0xd1,0xce,0xce,0xcf,0xcf,0xcd,0xcc,0xcd,0xcf,
+0xce,0xd0,0xd3,0xd8,0xde,0xe3,0xe7,0xe8,0xe4,0xdd,0xe0,0xe4,0xe2,0xe3,0xe5,0xe1,
+0xe3,0xe2,0xe1,0xe0,0xe0,0xe0,0xde,0xdd,0xdc,0xdc,0xdb,0xda,0xda,0xdc,0xdd,0xdd,
+0xdf,0xde,0xdd,0xdc,0xdb,0xdc,0xdc,0xdc,0xda,0xd9,0xd7,0xd6,0xd6,0xd6,0xd6,0xd5,
+0xd3,0xd5,0xd4,0xd3,0xd5,0xd2,0xab,0x70,0x8a,0xc0,0xd6,0xc8,0xbf,0xc6,0xca,0xbe,
+0xb5,0x91,0x76,0x67,0x69,0x75,0x73,0x70,0xa7,0xb1,0xae,0x9c,0x89,0x7d,0x7a,0x7e,
+0x7a,0x80,0x80,0x79,0x77,0x7b,0x7c,0x78,0x75,0x71,0x73,0x76,0x76,0x7d,0x85,0x86,
+0x7f,0x7f,0x87,0x92,0x87,0x6a,0x5c,0x5c,0x62,0x72,0x81,0x88,0x84,0x7a,0x7c,0x8b,
+0x83,0x8a,0x8d,0x87,0x77,0x69,0x76,0x94,0x8d,0x8d,0x8d,0x8d,0x88,0x82,0x80,0x81,
+0x79,0x73,0x62,0x50,0x4f,0x5a,0x5b,0x53,0x3b,0x36,0x42,0x55,0x5b,0x59,0x5a,0x5b,
+0x59,0x56,0x47,0x2e,0x1b,0x19,0x1f,0x22,0x24,0x1c,0x19,0x24,0x31,0x34,0x2a,0x1f,
+0x18,0x1b,0x1b,0x1a,0x1c,0x22,0x27,0x29,0x30,0x3a,0x37,0x2e,0x32,0x40,0x49,0x4a,
+0x40,0x49,0x4b,0x57,0x6a,0x5e,0x45,0x41,0x48,0x4b,0x4d,0x4a,0x40,0x34,0x28,0x21,
+0x23,0x1f,0x1c,0x1b,0x24,0x34,0x36,0x28,0x1d,0x23,0x2e,0x3f,0x54,0x64,0x65,0x5f,
+0x44,0x47,0x59,0x5a,0x5a,0x45,0x45,0x47,0x61,0x66,0x70,0x77,0x7b,0x81,0x7a,0x69,
+0x62,0x5a,0x4f,0x45,0x3d,0x37,0x32,0x2e,0x2d,0x27,0x2f,0x39,0x3a,0x3f,0x44,0x3e,
+0x3d,0x2f,0x30,0x32,0x44,0x46,0x41,0x2b,0x18,0x10,0x0c,0x0e,0x0f,0x0e,0x11,0x15,
+0x13,0x14,0x17,0x1a,0x1c,0x1a,0x16,0x13,0x1c,0x1b,0x1b,0x20,0x2a,0x33,0x32,0x2b,
+0x2c,0x28,0x25,0x25,0x28,0x2e,0x38,0x41,0x4c,0x47,0x44,0x44,0x43,0x3e,0x3b,0x3a,
+0x74,0x74,0x71,0x6b,0x68,0x69,0x6b,0x6b,0x68,0x5f,0x58,0x5b,0x67,0x6d,0x6a,0x64,
+0x58,0x53,0x52,0x5b,0x69,0x75,0x7d,0x80,0x7e,0x74,0x6e,0x71,0x75,0x72,0x6a,0x64,
+0x62,0x63,0x6d,0x80,0x90,0x8f,0x7e,0x6e,0x73,0x70,0x6c,0x68,0x68,0x6e,0x77,0x7e,
+0x85,0x85,0x8a,0x90,0x8b,0x7e,0x77,0x78,0x83,0x86,0x8e,0x99,0x9e,0x9d,0x99,0x97,
+0x91,0x9a,0xa4,0xaa,0xaf,0xb3,0xb4,0xb3,0xb2,0xac,0xa5,0xa1,0x9c,0x98,0x97,0x98,
+0x9b,0x98,0x95,0x8e,0x80,0x75,0x74,0x7b,0x87,0x99,0xa6,0xae,0xac,0x97,0x85,0x86,
+0x8b,0x90,0x97,0x99,0x9c,0xa8,0xaf,0xa8,0xaf,0xad,0xa7,0xa0,0x9d,0xa1,0xa6,0xa9,
+0x94,0x97,0x99,0x99,0x94,0x91,0x95,0x9b,0x90,0x8b,0x8d,0x90,0xa0,0xac,0xab,0xb5,
+0xc4,0xc6,0xc1,0xc0,0xc5,0xc1,0xb4,0xad,0xb7,0xb9,0xb5,0xab,0xa4,0xa5,0xaa,0xae,
+0xa7,0xa2,0x9e,0x9b,0x96,0x8f,0x8d,0x8e,0x8b,0x81,0x79,0x7a,0x7e,0x80,0x81,0x82,
+0x91,0x87,0x84,0x89,0x93,0x9e,0x9c,0x8d,0x8c,0x85,0x84,0x8f,0x9d,0xa0,0x99,0x92,
+0x91,0x94,0x91,0x8c,0x90,0x95,0x8a,0x78,0x7b,0x83,0x84,0x81,0x85,0x89,0x8c,0x92,
+0x97,0x99,0x9b,0x9e,0xa2,0xa5,0xa8,0xa9,0xaa,0xad,0xb0,0xb2,0xb3,0xb4,0xb5,0xb5,
+0xb5,0xb6,0xb8,0xba,0xbc,0xbb,0xbb,0xba,0xba,0xb9,0xb8,0xb7,0xb8,0xb7,0xb6,0xb5,
+0xb4,0xb3,0xb1,0xaf,0xad,0xab,0xaa,0xa9,0xa8,0xa6,0xa4,0xa1,0x9e,0x9a,0x96,0x93,
+0x8f,0x8d,0x8b,0x89,0x88,0x88,0x87,0x86,0x88,0x88,0x87,0x86,0x88,0x88,0x85,0x7f,
+0x7e,0x8f,0x9d,0xa2,0xa3,0xa8,0xab,0xaa,0x9e,0x97,0x94,0x98,0x9a,0x99,0x9c,0xa2,
+0x9f,0xa0,0xa3,0xa7,0xa8,0xaa,0xb0,0xb8,0xc4,0xc9,0xcc,0xcc,0xcc,0xcf,0xd1,0xd0,
+0xcc,0xcd,0xcd,0xce,0xce,0xce,0xce,0xce,0xd4,0xcc,0xca,0xd1,0xd4,0xd0,0xce,0xd0,
+0xce,0xcb,0xc8,0xc7,0xc6,0xc0,0xb8,0xb1,0xb1,0xad,0xab,0xab,0xae,0xb3,0xba,0xc1,
+0xc0,0xc8,0xc9,0xc1,0xc1,0xcb,0xd1,0xcf,0xce,0xcc,0xcb,0xcb,0xce,0xd1,0xd3,0xd3,
+0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd3,0xd4,0xd2,0xd1,0xcf,0xcb,0xc9,0xcd,0xd3,0xd8,
+0xe0,0xe3,0xe7,0xec,0xed,0xea,0xe4,0xdf,0xe8,0xe5,0xe3,0xe2,0xe1,0xe2,0xe2,0xdf,
+0xe2,0xe1,0xe0,0xdf,0xdf,0xdf,0xde,0xdd,0xdd,0xdc,0xdb,0xdb,0xdb,0xdb,0xdc,0xdd,
+0xdd,0xdc,0xdb,0xda,0xda,0xdb,0xdc,0xdc,0xd8,0xd7,0xd7,0xd8,0xd8,0xd7,0xd6,0xd4,
+0xd4,0xd8,0xda,0xd5,0xd6,0xd1,0xa6,0x74,0x91,0xbe,0xcf,0xcf,0xca,0xc3,0xbf,0xad,
+0x80,0x69,0x69,0x6f,0x70,0x6d,0x6a,0x73,0x9c,0xaf,0xa9,0x89,0x71,0x67,0x69,0x71,
+0x76,0x7b,0x7b,0x75,0x75,0x7c,0x7b,0x74,0x6b,0x66,0x68,0x6b,0x6e,0x7a,0x85,0x86,
+0x7b,0x7c,0x83,0x83,0x79,0x69,0x5f,0x61,0x67,0x71,0x7d,0x87,0x88,0x7e,0x7e,0x8c,
+0xab,0x97,0x76,0x5f,0x5b,0x63,0x78,0x90,0x95,0x86,0x7b,0x7d,0x86,0x88,0x82,0x7b,
+0x82,0x8e,0x87,0x68,0x4c,0x45,0x45,0x41,0x33,0x36,0x47,0x57,0x57,0x55,0x58,0x5a,
+0x5c,0x52,0x3d,0x27,0x1c,0x1f,0x24,0x26,0x26,0x23,0x23,0x26,0x27,0x24,0x22,0x22,
+0x26,0x25,0x22,0x20,0x24,0x2e,0x38,0x3c,0x35,0x30,0x26,0x2a,0x3c,0x42,0x3c,0x3b,
+0x5a,0x60,0x57,0x55,0x5d,0x51,0x41,0x45,0x54,0x53,0x54,0x54,0x50,0x47,0x3b,0x32,
+0x26,0x29,0x2e,0x32,0x36,0x3e,0x36,0x22,0x1d,0x1e,0x20,0x2b,0x41,0x59,0x63,0x62,
+0x55,0x4f,0x5b,0x61,0x6c,0x57,0x49,0x3c,0x37,0x36,0x45,0x5d,0x72,0x85,0x92,0x92,
+0x87,0x81,0x76,0x6a,0x5f,0x57,0x54,0x53,0x3f,0x2b,0x24,0x2b,0x31,0x3f,0x4a,0x46,
+0x42,0x33,0x30,0x2b,0x36,0x38,0x3d,0x31,0x1c,0x16,0x13,0x15,0x14,0x0f,0x0e,0x11,
+0x10,0x13,0x17,0x19,0x1a,0x1a,0x1a,0x1b,0x19,0x1b,0x1c,0x1d,0x1f,0x1f,0x1d,0x1a,
+0x12,0x12,0x14,0x18,0x1c,0x20,0x2b,0x35,0x3b,0x3f,0x3d,0x2d,0x19,0x11,0x1e,0x2f,
+0x6f,0x74,0x76,0x71,0x6b,0x6c,0x72,0x77,0x71,0x6c,0x64,0x5c,0x59,0x5b,0x61,0x66,
+0x60,0x5f,0x5e,0x5e,0x61,0x6a,0x76,0x7f,0x81,0x84,0x88,0x87,0x7d,0x71,0x6a,0x69,
+0x66,0x63,0x68,0x75,0x80,0x7d,0x6f,0x62,0x62,0x5f,0x5e,0x63,0x6e,0x79,0x81,0x84,
+0x88,0x85,0x83,0x80,0x7a,0x74,0x73,0x75,0x7a,0x7c,0x86,0x94,0x9f,0x9f,0x99,0x95,
+0x8e,0x97,0xa2,0xaf,0xbc,0xc4,0xc0,0xb7,0xb4,0xaa,0x9e,0x91,0x88,0x85,0x8b,0x93,
+0x8a,0x89,0x82,0x74,0x6d,0x7a,0x98,0xb2,0xab,0x98,0x86,0x88,0x94,0x98,0x98,0x9c,
+0x90,0x8f,0x96,0xa5,0xb6,0xc3,0xbe,0xac,0x97,0x99,0x9a,0x9a,0x99,0x99,0x9a,0x9c,
+0x9b,0x9d,0x9c,0x95,0x8d,0x8e,0x99,0xa4,0xae,0xb6,0xae,0x91,0x8f,0xa3,0xa7,0xaa,
+0xab,0xb4,0xb6,0xb5,0xb8,0xba,0xba,0xbe,0xbd,0xbf,0xb9,0xac,0xa1,0x9f,0xa1,0xa1,
+0xa1,0x99,0x96,0x9b,0x9f,0x9b,0x94,0x91,0x80,0x7f,0x8b,0x9f,0xa4,0x97,0x88,0x82,
+0x7e,0x74,0x76,0x85,0x91,0x95,0x8c,0x7e,0x87,0x7c,0x7c,0x8e,0xa1,0xa3,0x99,0x92,
+0x99,0x9e,0x9e,0x99,0x94,0x8c,0x7b,0x6a,0x81,0x89,0x87,0x82,0x85,0x8a,0x8e,0x93,
+0x96,0x98,0x9a,0x9e,0xa1,0xa4,0xa7,0xa8,0xa9,0xac,0xb0,0xb2,0xb3,0xb2,0xb2,0xb2,
+0xb6,0xb7,0xb9,0xba,0xbc,0xbc,0xbc,0xbc,0xba,0xb8,0xb7,0xb7,0xb7,0xb7,0xb5,0xb4,
+0xb3,0xb2,0xb0,0xae,0xac,0xaa,0xa9,0xa8,0xa8,0xa7,0xa5,0xa3,0xa0,0x9b,0x96,0x92,
+0x8e,0x8c,0x89,0x88,0x88,0x88,0x87,0x87,0x8a,0x89,0x88,0x87,0x88,0x89,0x85,0x7f,
+0x84,0x93,0x9f,0xa1,0xa4,0xac,0xad,0xa8,0x95,0x94,0x96,0x9a,0x9b,0x9b,0x9f,0xa6,
+0xa8,0xa4,0xa3,0xa5,0xa6,0xa8,0xaf,0xb8,0xc0,0xc5,0xca,0xcb,0xcc,0xcf,0xd1,0xd1,
+0xce,0xce,0xcd,0xcc,0xcc,0xcd,0xcd,0xce,0xd3,0xcf,0xcd,0xcf,0xd0,0xcf,0xce,0xcf,
+0xd0,0xcd,0xca,0xc9,0xc9,0xc7,0xc2,0xbe,0xb1,0xac,0xa9,0xa7,0xa7,0xaa,0xb1,0xb8,
+0xb9,0xba,0xc0,0xc5,0xc2,0xbe,0xc6,0xd3,0xd4,0xd2,0xcf,0xcc,0xcd,0xcf,0xd3,0xd6,
+0xd9,0xd8,0xd6,0xd4,0xd2,0xd2,0xd4,0xd6,0xd1,0xd0,0xcd,0xcb,0xcf,0xd7,0xdc,0xde,
+0xcd,0xbf,0xad,0xa3,0xa9,0xbd,0xd5,0xe6,0xd9,0xe6,0xe6,0xde,0xdf,0xe0,0xdc,0xdd,
+0xdf,0xde,0xdd,0xde,0xdf,0xdf,0xde,0xdd,0xdf,0xdd,0xdd,0xde,0xde,0xdc,0xdc,0xde,
+0xdc,0xdb,0xda,0xd9,0xd9,0xd9,0xda,0xda,0xd8,0xd8,0xd8,0xd9,0xda,0xd9,0xd6,0xd4,
+0xd4,0xd8,0xdb,0xd3,0xd6,0xd0,0xa1,0x75,0x91,0xc4,0xd0,0xcb,0xca,0xc5,0xb4,0x89,
+0x77,0x70,0x71,0x69,0x63,0x64,0x69,0x7a,0xa7,0xb6,0xa8,0x85,0x70,0x67,0x64,0x6a,
+0x7b,0x80,0x7e,0x76,0x74,0x79,0x7b,0x78,0x7b,0x76,0x72,0x6e,0x6a,0x73,0x7e,0x7f,
+0x7c,0x7f,0x8d,0x8c,0x82,0x74,0x62,0x60,0x63,0x6c,0x7b,0x8c,0x8e,0x7c,0x72,0x79,
+0x77,0x80,0x7e,0x74,0x6e,0x72,0x84,0x9a,0x91,0x8c,0x89,0x8b,0x8c,0x89,0x84,0x81,
+0x80,0x83,0x76,0x62,0x5c,0x60,0x54,0x3f,0x34,0x3d,0x4f,0x59,0x56,0x56,0x5a,0x5a,
+0x57,0x47,0x32,0x23,0x1f,0x21,0x25,0x26,0x28,0x27,0x29,0x2e,0x2d,0x25,0x20,0x1f,
+0x1f,0x1f,0x23,0x30,0x3f,0x48,0x48,0x44,0x3a,0x32,0x27,0x2e,0x41,0x43,0x43,0x51,
+0x5f,0x5f,0x52,0x48,0x4e,0x52,0x53,0x5b,0x55,0x58,0x5c,0x5d,0x55,0x48,0x3d,0x38,
+0x32,0x2b,0x30,0x3a,0x3d,0x3d,0x3c,0x38,0x31,0x29,0x29,0x34,0x3f,0x40,0x3f,0x41,
+0x44,0x54,0x6e,0x76,0x6d,0x58,0x58,0x60,0x5d,0x4c,0x43,0x44,0x42,0x41,0x46,0x48,
+0x56,0x5d,0x68,0x70,0x73,0x71,0x6f,0x6d,0x67,0x56,0x46,0x3b,0x31,0x2f,0x35,0x3a,
+0x48,0x3e,0x3c,0x2d,0x2a,0x28,0x37,0x39,0x22,0x19,0x12,0x13,0x18,0x19,0x15,0x11,
+0x15,0x16,0x16,0x16,0x16,0x18,0x1c,0x20,0x14,0x18,0x1b,0x1a,0x16,0x12,0x11,0x11,
+0x12,0x13,0x15,0x17,0x18,0x1c,0x25,0x2e,0x3a,0x35,0x32,0x38,0x41,0x42,0x3a,0x31,
+0x73,0x7b,0x80,0x7d,0x77,0x77,0x7c,0x7f,0x74,0x79,0x7b,0x75,0x6a,0x65,0x68,0x6f,
+0x70,0x71,0x6d,0x64,0x5b,0x59,0x5f,0x66,0x77,0x84,0x8d,0x88,0x77,0x68,0x62,0x61,
+0x66,0x61,0x62,0x6c,0x75,0x75,0x6e,0x67,0x64,0x61,0x5f,0x63,0x69,0x6b,0x68,0x64,
+0x63,0x65,0x66,0x65,0x68,0x6f,0x74,0x76,0x7a,0x7c,0x81,0x88,0x8a,0x88,0x85,0x84,
+0x93,0x9a,0xa1,0xa5,0xab,0xaf,0xa9,0xa0,0x99,0x95,0x8d,0x82,0x79,0x79,0x84,0x91,
+0x8f,0x95,0x94,0x8c,0x8b,0x98,0xaa,0xb4,0xa7,0x9a,0x91,0x8e,0x8d,0x94,0x9c,0x9d,
+0x95,0x8d,0x90,0x9d,0xa6,0xa8,0x9c,0x89,0x85,0x88,0x8f,0x96,0x99,0x98,0x94,0x91,
+0x9d,0x9e,0x9b,0x91,0x87,0x85,0x8b,0x92,0x99,0x9d,0xab,0xb1,0xb0,0xa2,0x92,0x9b,
+0x9e,0xad,0xb5,0xb3,0xb0,0xac,0xac,0xb2,0xb0,0xb4,0xb3,0xad,0xac,0xaf,0xb0,0xad,
+0xb1,0xa7,0xa0,0x9e,0x98,0x8a,0x7e,0x7a,0x73,0x73,0x7f,0x92,0x99,0x90,0x87,0x85,
+0x80,0x7a,0x80,0x90,0x9b,0x9e,0x94,0x84,0x6f,0x7d,0x8f,0x96,0x8f,0x84,0x83,0x87,
+0x8e,0x9b,0xa3,0x9c,0x8c,0x7f,0x79,0x78,0x83,0x8a,0x86,0x7f,0x84,0x8b,0x8f,0x94,
+0x96,0x97,0x9a,0x9d,0xa0,0xa4,0xa6,0xa8,0xaa,0xac,0xaf,0xb1,0xb2,0xb2,0xb3,0xb3,
+0xb7,0xb7,0xb7,0xb8,0xb9,0xba,0xbb,0xbb,0xb9,0xb8,0xb6,0xb6,0xb6,0xb6,0xb5,0xb3,
+0xb1,0xb0,0xae,0xac,0xaa,0xa8,0xa7,0xa6,0xa8,0xa6,0xa4,0xa2,0xa0,0x9c,0x99,0x96,
+0x8f,0x8c,0x89,0x87,0x87,0x87,0x87,0x86,0x89,0x89,0x88,0x89,0x8b,0x8c,0x87,0x80,
+0x8b,0x99,0xa2,0xa3,0xa7,0xae,0xa8,0x9b,0x93,0x95,0x98,0x9b,0x9d,0xa0,0xa4,0xa9,
+0xb1,0xab,0xa9,0xac,0xad,0xae,0xb4,0xbc,0xc0,0xc6,0xcb,0xcc,0xcc,0xcf,0xd0,0xd1,
+0xcf,0xce,0xcd,0xcc,0xcc,0xcc,0xcc,0xcd,0xce,0xd0,0xcf,0xcc,0xcc,0xcf,0xd0,0xce,
+0xd1,0xcf,0xcd,0xcc,0xcc,0xcc,0xc9,0xc7,0xb9,0xb4,0xad,0xa7,0xa3,0xa2,0xa6,0xac,
+0xb2,0xaf,0xb3,0xbd,0xbc,0xb4,0xb9,0xc6,0xd0,0xd0,0xd0,0xce,0xcc,0xcd,0xd1,0xd5,
+0xd9,0xd9,0xd8,0xd5,0xd3,0xd2,0xd3,0xd4,0xd0,0xd0,0xd0,0xd3,0xd9,0xd8,0xcc,0xbe,
+0x95,0x94,0x92,0x90,0x90,0x91,0x94,0x95,0xb1,0xd8,0xe2,0xd9,0xde,0xdd,0xd7,0xde,
+0xdc,0xdb,0xdb,0xdd,0xdf,0xe0,0xe0,0xdf,0xdf,0xdd,0xdd,0xdf,0xde,0xdb,0xda,0xdc,
+0xdc,0xdc,0xdb,0xda,0xd9,0xd8,0xd8,0xd7,0xd8,0xd8,0xd7,0xd7,0xd8,0xd8,0xd7,0xd5,
+0xd3,0xd5,0xd8,0xcf,0xd4,0xce,0x99,0x6f,0x96,0xd0,0xd2,0xc2,0xc2,0xc7,0xb4,0x77,
+0x69,0x6d,0x71,0x69,0x67,0x64,0x66,0x7f,0xba,0xb3,0x94,0x7b,0x77,0x6d,0x61,0x66,
+0x78,0x80,0x83,0x7d,0x76,0x75,0x79,0x7c,0x7f,0x7b,0x75,0x6a,0x5f,0x65,0x72,0x76,
+0x7b,0x7b,0x90,0x95,0x8c,0x79,0x5f,0x5f,0x6f,0x6d,0x70,0x7a,0x7c,0x70,0x70,0x81,
+0x9d,0x92,0x7f,0x75,0x79,0x7b,0x7e,0x85,0x84,0x89,0x8f,0x92,0x8c,0x82,0x7b,0x7a,
+0x78,0x82,0x7b,0x63,0x58,0x5b,0x54,0x43,0x39,0x44,0x54,0x58,0x55,0x59,0x5c,0x55,
+0x4d,0x3c,0x2d,0x27,0x25,0x23,0x23,0x27,0x2b,0x2a,0x2e,0x37,0x37,0x30,0x29,0x28,
+0x34,0x35,0x40,0x52,0x5c,0x58,0x4d,0x47,0x4c,0x4c,0x42,0x41,0x46,0x3d,0x3d,0x54,
+0x4e,0x50,0x4d,0x4a,0x52,0x5e,0x62,0x5e,0x59,0x5a,0x5e,0x5f,0x58,0x4b,0x43,0x41,
+0x44,0x39,0x37,0x3b,0x3b,0x3f,0x45,0x47,0x52,0x47,0x3f,0x40,0x43,0x43,0x46,0x4c,
+0x40,0x3a,0x3e,0x5a,0x6b,0x6e,0x5e,0x54,0x4b,0x3e,0x36,0x32,0x2c,0x2c,0x30,0x2e,
+0x31,0x3c,0x4f,0x63,0x73,0x7b,0x7d,0x7c,0x7e,0x7d,0x75,0x67,0x55,0x42,0x3f,0x49,
+0x4c,0x45,0x49,0x3e,0x39,0x33,0x3f,0x40,0x35,0x2b,0x1e,0x18,0x1b,0x20,0x1f,0x1a,
+0x1c,0x1a,0x17,0x16,0x16,0x18,0x1a,0x1a,0x1d,0x1d,0x1e,0x1d,0x1b,0x18,0x17,0x18,
+0x13,0x14,0x13,0x11,0x12,0x15,0x19,0x1b,0x21,0x22,0x22,0x1f,0x1a,0x17,0x15,0x14,
+0x80,0x7d,0x76,0x6e,0x6a,0x6d,0x71,0x73,0x71,0x6d,0x6b,0x70,0x76,0x76,0x6e,0x65,
+0x62,0x64,0x64,0x61,0x5f,0x61,0x65,0x68,0x65,0x6e,0x73,0x6f,0x6b,0x6e,0x74,0x78,
+0x7d,0x74,0x6e,0x70,0x72,0x6d,0x66,0x62,0x67,0x68,0x6f,0x7b,0x88,0x90,0x90,0x8c,
+0x6e,0x74,0x77,0x76,0x79,0x81,0x83,0x7f,0x7f,0x82,0x88,0x8b,0x8a,0x8b,0x91,0x98,
+0xa0,0xa9,0xac,0xa2,0x96,0x90,0x8c,0x87,0x7c,0x7f,0x82,0x7f,0x79,0x7a,0x87,0x95,
+0x9b,0x9b,0x91,0x83,0x82,0x89,0x8a,0x84,0x85,0x88,0x96,0xa0,0xa3,0xac,0xac,0x9c,
+0x8f,0x8b,0x93,0x9e,0xa1,0x9f,0x9a,0x91,0x8e,0x8a,0x88,0x8d,0x95,0x9a,0x9c,0x9c,
+0x93,0x91,0x91,0x97,0x9e,0x9a,0x8a,0x79,0x82,0x96,0xaa,0xad,0xb8,0xbb,0xa4,0x95,
+0x90,0xa2,0xaf,0xb4,0xb5,0xaf,0xa7,0xa8,0xa4,0xa7,0xa6,0xa4,0xa7,0xab,0xa7,0x9f,
+0x9f,0xa2,0xa8,0xab,0x9f,0x8d,0x82,0x82,0x7b,0x7d,0x84,0x8d,0x8f,0x87,0x7e,0x7a,
+0x84,0x7e,0x81,0x8b,0x95,0x9a,0x8e,0x7a,0x71,0x80,0x8d,0x8f,0x8b,0x89,0x86,0x83,
+0x8b,0x90,0x91,0x8a,0x7d,0x72,0x71,0x74,0x81,0x87,0x82,0x7b,0x81,0x8a,0x8f,0x94,
+0x96,0x97,0x99,0x9d,0xa0,0xa3,0xa6,0xa7,0xac,0xad,0xb0,0xb1,0xb2,0xb3,0xb5,0xb7,
+0xb6,0xb6,0xb5,0xb5,0xb6,0xb6,0xb8,0xb8,0xb8,0xb7,0xb6,0xb6,0xb6,0xb5,0xb4,0xb3,
+0xaf,0xae,0xad,0xab,0xa9,0xa7,0xa5,0xa4,0xa8,0xa5,0xa3,0xa0,0x9f,0x9d,0x9b,0x99,
+0x90,0x8d,0x8a,0x87,0x86,0x86,0x86,0x85,0x86,0x88,0x89,0x8b,0x8e,0x8f,0x88,0x80,
+0x91,0x9e,0xa6,0xa6,0xa9,0xad,0xa0,0x8d,0x98,0x9b,0x9c,0x9e,0xa2,0xa7,0xab,0xad,
+0xb6,0xb1,0xb1,0xb7,0xb9,0xb8,0xb9,0xbf,0xc3,0xc9,0xce,0xcf,0xce,0xcf,0xd0,0xd1,
+0xd2,0xd2,0xd1,0xd1,0xd0,0xcf,0xcf,0xcf,0xce,0xd4,0xd4,0xce,0xce,0xd4,0xd6,0xd3,
+0xd3,0xd1,0xcf,0xce,0xcd,0xcc,0xca,0xc9,0xc9,0xc1,0xb5,0xab,0xa2,0x9e,0xa2,0xa8,
+0xb2,0xb2,0xb3,0xb4,0xb5,0xb5,0xb5,0xb6,0xc7,0xca,0xce,0xce,0xcc,0xcd,0xd0,0xd4,
+0xd6,0xd7,0xd7,0xd5,0xd2,0xd0,0xd0,0xd1,0xd4,0xd4,0xd6,0xdb,0xdc,0xcb,0xa7,0x87,
+0x8b,0x8d,0x8f,0x8f,0x8e,0x8d,0x8d,0x8d,0x8d,0xc7,0xdc,0xd4,0xdc,0xdb,0xd5,0xe2,
+0xda,0xda,0xda,0xdc,0xdf,0xe1,0xe1,0xe1,0xde,0xdb,0xdc,0xde,0xdd,0xd9,0xd7,0xd9,
+0xde,0xdd,0xdc,0xdb,0xd9,0xd7,0xd6,0xd5,0xd8,0xd6,0xd4,0xd4,0xd5,0xd6,0xd6,0xd6,
+0xd5,0xd4,0xd6,0xcd,0xd6,0xd0,0x96,0x6b,0x9c,0xc9,0xcb,0xca,0xcd,0xc6,0xb6,0x86,
+0x6f,0x68,0x62,0x5f,0x66,0x66,0x73,0xa1,0xbf,0xa2,0x75,0x66,0x73,0x6b,0x5a,0x5d,
+0x6a,0x78,0x83,0x81,0x75,0x6f,0x72,0x79,0x74,0x73,0x71,0x65,0x5b,0x64,0x76,0x7d,
+0x75,0x6b,0x7c,0x85,0x80,0x70,0x5d,0x68,0x6b,0x6a,0x6f,0x7b,0x7d,0x71,0x73,0x86,
+0x93,0x86,0x75,0x70,0x76,0x7c,0x88,0x9a,0x93,0x88,0x81,0x86,0x8d,0x8b,0x7f,0x74,
+0x6f,0x72,0x66,0x53,0x54,0x5d,0x4f,0x34,0x3a,0x46,0x52,0x52,0x50,0x58,0x59,0x4d,
+0x49,0x3a,0x2f,0x2f,0x2e,0x27,0x26,0x2b,0x2f,0x32,0x37,0x35,0x2a,0x22,0x2c,0x3c,
+0x4d,0x4b,0x4e,0x52,0x49,0x39,0x31,0x32,0x34,0x3c,0x39,0x3f,0x49,0x3b,0x2c,0x35,
+0x46,0x4e,0x56,0x59,0x5e,0x65,0x5b,0x45,0x4a,0x41,0x39,0x38,0x3b,0x3b,0x3c,0x3e,
+0x3c,0x3c,0x3c,0x3a,0x40,0x55,0x63,0x5f,0x59,0x5e,0x5b,0x53,0x4f,0x51,0x4b,0x42,
+0x44,0x4c,0x52,0x61,0x55,0x50,0x47,0x4f,0x4f,0x50,0x55,0x58,0x5b,0x66,0x6c,0x67,
+0x66,0x5f,0x56,0x52,0x55,0x5a,0x5d,0x5f,0x63,0x6a,0x6c,0x72,0x75,0x66,0x57,0x5a,
+0x61,0x5c,0x67,0x6b,0x75,0x71,0x75,0x6c,0x52,0x4a,0x38,0x23,0x1a,0x1d,0x1f,0x1e,
+0x19,0x16,0x15,0x17,0x1b,0x1c,0x19,0x15,0x1d,0x19,0x16,0x16,0x17,0x17,0x15,0x14,
+0x0f,0x12,0x12,0x11,0x14,0x18,0x17,0x12,0x17,0x1a,0x1c,0x1c,0x1b,0x1a,0x19,0x18,
+0x7a,0x78,0x70,0x66,0x68,0x71,0x77,0x76,0x70,0x67,0x61,0x64,0x68,0x68,0x65,0x63,
+0x69,0x68,0x66,0x62,0x60,0x62,0x67,0x6b,0x76,0x7a,0x77,0x6e,0x6c,0x77,0x84,0x8b,
+0x83,0x77,0x78,0x8b,0x97,0x88,0x6b,0x56,0x68,0x76,0x85,0x8c,0x8b,0x89,0x8c,0x90,
+0x94,0x8d,0x84,0x7f,0x81,0x83,0x82,0x7e,0x83,0x84,0x86,0x88,0x8e,0x94,0x96,0x95,
+0x91,0x95,0x98,0x98,0x94,0x91,0x92,0x94,0x90,0x8f,0x8a,0x81,0x7e,0x86,0x96,0xa2,
+0xb2,0xa5,0x91,0x82,0x83,0x8c,0x8f,0x8b,0x88,0x82,0x7f,0x85,0x8d,0x92,0x92,0x91,
+0x91,0x8f,0x91,0x9b,0xa6,0xa9,0xa4,0x9f,0xa8,0xa0,0x90,0x81,0x7d,0x8a,0xa0,0xb0,
+0xac,0xac,0xa8,0xa0,0x9a,0x97,0x98,0x98,0x9d,0x9a,0x9e,0xab,0xb7,0xb7,0xac,0xa1,
+0xa2,0xa4,0xab,0xb2,0xad,0xa3,0xa5,0xaf,0xa9,0xa8,0xa7,0xa5,0xa1,0x9c,0x98,0x97,
+0x8f,0x8d,0x8b,0x88,0x85,0x83,0x83,0x84,0x74,0x7d,0x88,0x8f,0x8f,0x8c,0x87,0x83,
+0x78,0x7d,0x87,0x92,0x96,0x8d,0x7e,0x74,0x7d,0x88,0x93,0x96,0x94,0x8f,0x87,0x7e,
+0x82,0x95,0x8e,0x81,0x75,0x83,0x82,0x84,0x80,0x80,0x7f,0x7f,0x85,0x8e,0x91,0x90,
+0x92,0x97,0x9c,0xa0,0xa1,0xa3,0xa5,0xa7,0xab,0xae,0xb1,0xb4,0xb5,0xb6,0xb7,0xb7,
+0xb6,0xb8,0xba,0xbc,0xbd,0xbd,0xbc,0xbb,0xbb,0xb9,0xb6,0xb4,0xb1,0xb0,0xaf,0xaf,
+0xab,0xa9,0xa6,0xa5,0xa5,0xa6,0xa6,0xa6,0xa2,0xa1,0xa0,0x9e,0x9d,0x9c,0x9c,0x9b,
+0x98,0x93,0x8c,0x87,0x86,0x87,0x87,0x87,0x8b,0x88,0x88,0x8c,0x8d,0x89,0x83,0x7f,
+0x8f,0x9f,0xa5,0xa8,0xae,0xa5,0x92,0x8d,0x98,0x9a,0x9e,0xa1,0xa5,0xa8,0xac,0xaf,
+0xb8,0xb9,0xb9,0xb8,0xb7,0xb9,0xbd,0xc1,0xc6,0xca,0xcf,0xd2,0xd3,0xd3,0xd2,0xd2,
+0xd3,0xd3,0xd4,0xd4,0xd3,0xd2,0xd1,0xd0,0xd1,0xd2,0xd3,0xd4,0xd3,0xd2,0xd3,0xd3,
+0xcf,0xd0,0xd0,0xcd,0xcc,0xcb,0xc7,0xc3,0xc0,0xc1,0xbb,0xaf,0xa6,0xa4,0xa1,0x9d,
+0xa6,0xa9,0xae,0xb0,0xb1,0xb3,0xb8,0xbc,0xc9,0xce,0xd4,0xd4,0xd1,0xce,0xd0,0xd3,
+0xd0,0xd0,0xd2,0xd2,0xcf,0xcb,0xce,0xd5,0xd4,0xe3,0xe0,0xde,0xc7,0x9b,0x8a,0x8c,
+0x8b,0x87,0x82,0x8a,0x84,0x86,0x7e,0x84,0x84,0xab,0xe1,0xd8,0xda,0xdb,0xdb,0xd8,
+0xda,0xdb,0xd0,0xb7,0xae,0xba,0xe6,0xdd,0xd9,0xdc,0xdb,0xd5,0xd2,0xd6,0xdb,0xdd,
+0xdc,0xdc,0xdb,0xda,0xd8,0xd6,0xd6,0xd6,0xd8,0xd7,0xd7,0xd8,0xd6,0xd2,0xd3,0xd7,
+0xd1,0xd2,0xd4,0xcd,0xd1,0xcd,0x9c,0x6b,0x9c,0xc9,0xc5,0xc6,0xcb,0xbd,0xb9,0xa9,
+0x8a,0x82,0x65,0x5a,0x7a,0x99,0xa9,0xbb,0xb2,0x7e,0x68,0x81,0x81,0x6f,0x69,0x5b,
+0x69,0x73,0x7e,0x7f,0x74,0x6a,0x6b,0x72,0x75,0x6b,0x6c,0x67,0x70,0x68,0x6f,0x70,
+0x66,0x69,0x74,0x80,0x7b,0x6b,0x62,0x65,0x6c,0x69,0x6f,0x79,0x7c,0x77,0x79,0x82,
+0x8c,0x7f,0x70,0x6e,0x79,0x8a,0x99,0x9f,0x8d,0x8a,0x89,0x8c,0x8d,0x8b,0x87,0x86,
+0x84,0x78,0x66,0x5d,0x64,0x64,0x4b,0x2c,0x39,0x41,0x48,0x4a,0x4f,0x54,0x52,0x4b,
+0x4a,0x4e,0x49,0x37,0x2a,0x2b,0x2e,0x2d,0x33,0x3b,0x3a,0x2d,0x22,0x24,0x2c,0x31,
+0x37,0x37,0x3b,0x3d,0x31,0x25,0x28,0x34,0x2b,0x30,0x3c,0x45,0x42,0x37,0x31,0x33,
+0x3e,0x53,0x58,0x59,0x57,0x53,0x4e,0x3b,0x2d,0x3a,0x5b,0x79,0x82,0x7f,0x77,0x6d,
+0x68,0x62,0x56,0x4a,0x47,0x52,0x61,0x6b,0x6c,0x68,0x5e,0x51,0x48,0x45,0x45,0x44,
+0x52,0x50,0x53,0x57,0x54,0x4a,0x3f,0x3a,0x42,0x41,0x48,0x56,0x60,0x62,0x65,0x69,
+0x65,0x62,0x5e,0x60,0x6f,0x7f,0x80,0x78,0x70,0x69,0x6a,0x62,0x6e,0x6e,0x79,0x7a,
+0x7d,0x82,0x8c,0x94,0x99,0x9c,0x9f,0xa3,0x9b,0x99,0x90,0x80,0x73,0x69,0x60,0x58,
+0x54,0x54,0x51,0x47,0x36,0x26,0x1c,0x1a,0x1e,0x18,0x15,0x19,0x1d,0x1c,0x1a,0x1a,
+0x15,0x15,0x14,0x11,0x12,0x14,0x16,0x16,0x1b,0x1d,0x21,0x23,0x20,0x1b,0x1c,0x1f,
+0x85,0x7c,0x6e,0x66,0x70,0x84,0x91,0x92,0x91,0x7e,0x6d,0x6d,0x76,0x78,0x72,0x6b,
+0x5a,0x5f,0x64,0x67,0x68,0x6a,0x6d,0x6f,0x80,0x89,0x8e,0x88,0x82,0x82,0x83,0x81,
+0x82,0x7b,0x7a,0x7d,0x77,0x69,0x60,0x60,0x7a,0x78,0x7a,0x85,0x94,0x9e,0x9f,0x9c,
+0x8d,0x8a,0x81,0x7a,0x82,0x90,0x95,0x8f,0x88,0x89,0x88,0x86,0x89,0x90,0x96,0x99,
+0x97,0x9a,0x9e,0x9f,0x9e,0x9a,0x98,0x97,0x9b,0x97,0x90,0x87,0x82,0x89,0x9d,0xae,
+0xb4,0x9a,0x84,0x84,0x8f,0x94,0x95,0x96,0x8d,0x85,0x7f,0x80,0x84,0x88,0x8a,0x8c,
+0x92,0x8c,0x87,0x88,0x8f,0x97,0x9d,0xa0,0x9c,0x9b,0x96,0x90,0x8d,0x8e,0x8c,0x88,
+0x92,0x94,0x96,0x99,0x9a,0x9a,0x97,0x93,0x95,0x98,0x9c,0x9d,0x9b,0x9d,0xa4,0xac,
+0x9d,0xa2,0xa5,0xa2,0x99,0x94,0x98,0x9e,0xa4,0xa1,0x9e,0x99,0x92,0x8e,0x92,0x9a,
+0x98,0x98,0x96,0x90,0x8b,0x85,0x7a,0x70,0x67,0x6f,0x77,0x79,0x7a,0x7c,0x7b,0x79,
+0x6d,0x79,0x8f,0xa1,0x9d,0x8b,0x80,0x80,0x97,0x9b,0xa1,0xa6,0xa7,0x9d,0x86,0x72,
+0x80,0x8c,0x87,0x86,0x7f,0x83,0x7e,0x84,0x8d,0x90,0x8e,0x86,0x81,0x85,0x8e,0x94,
+0x95,0x99,0x9e,0xa1,0xa3,0xa4,0xa7,0xa9,0xae,0xb1,0xb4,0xb6,0xb6,0xb7,0xb8,0xb9,
+0xb9,0xb9,0xb8,0xb7,0xb6,0xb5,0xb3,0xb3,0xb5,0xb4,0xb2,0xb0,0xae,0xac,0xab,0xab,
+0xa8,0xa6,0xa4,0xa2,0xa0,0x9f,0x9e,0x9d,0x9e,0x9d,0x9b,0x99,0x98,0x97,0x98,0x98,
+0x98,0x94,0x8e,0x89,0x86,0x86,0x87,0x87,0x8c,0x89,0x89,0x8b,0x8c,0x89,0x86,0x85,
+0x97,0x9f,0xa5,0xa9,0xa8,0x97,0x8f,0x9a,0x9a,0x9d,0xa1,0xa4,0xa7,0xaa,0xad,0xaf,
+0xb5,0xb8,0xbb,0xbc,0xbc,0xbd,0xc1,0xc5,0xc8,0xca,0xcd,0xce,0xce,0xce,0xce,0xcf,
+0xcf,0xd0,0xd1,0xd2,0xd2,0xd2,0xd2,0xd2,0xd0,0xd1,0xd2,0xd1,0xd0,0xcf,0xd0,0xd0,
+0xd0,0xd2,0xd3,0xd0,0xce,0xce,0xcc,0xca,0xce,0xc1,0xab,0x99,0x93,0x97,0x9e,0xa1,
+0x9a,0xa0,0xa8,0xaf,0xb5,0xbc,0xc4,0xc9,0xcf,0xd4,0xd8,0xd8,0xd4,0xd0,0xcf,0xcf,
+0xd0,0xcf,0xd0,0xd1,0xcf,0xce,0xd1,0xd6,0xd8,0xe3,0xe7,0xce,0xa7,0x8e,0x8c,0x97,
+0x96,0xac,0xba,0xc3,0xc0,0xbe,0x96,0x79,0x77,0xa3,0xda,0xd5,0xd8,0xdb,0xdb,0xda,
+0xe1,0xd1,0xab,0x89,0x81,0x86,0xb0,0xd6,0xda,0xda,0xda,0xdc,0xde,0xdf,0xdb,0xd7,
+0xd9,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd9,0xd6,0xd5,0xd6,0xd4,0xd0,0xd1,0xd4,
+0xd2,0xd0,0xd3,0xce,0xd3,0xd3,0xa5,0x70,0xa5,0xd3,0xcb,0xc0,0xc4,0xc4,0xcb,0xc1,
+0xc1,0xac,0x74,0x57,0x7f,0xb1,0xc1,0xc2,0xa2,0x6f,0x6c,0x97,0x8e,0x6a,0x67,0x68,
+0x6f,0x71,0x74,0x77,0x78,0x79,0x78,0x78,0x6f,0x6b,0x6e,0x70,0x73,0x68,0x64,0x60,
+0x6c,0x72,0x7f,0x85,0x7a,0x67,0x62,0x69,0x61,0x67,0x73,0x7c,0x7b,0x72,0x6e,0x71,
+0x76,0x73,0x70,0x71,0x76,0x80,0x89,0x90,0x87,0x86,0x89,0x90,0x93,0x90,0x8b,0x88,
+0x6d,0x6e,0x70,0x70,0x68,0x56,0x3f,0x2f,0x32,0x3e,0x46,0x46,0x4a,0x53,0x54,0x4f,
+0x53,0x52,0x49,0x3c,0x32,0x32,0x33,0x33,0x33,0x39,0x37,0x2a,0x20,0x20,0x26,0x29,
+0x1e,0x24,0x29,0x28,0x25,0x27,0x2d,0x31,0x32,0x36,0x3e,0x45,0x3f,0x32,0x2b,0x2c,
+0x3f,0x4d,0x4d,0x4e,0x54,0x57,0x4e,0x34,0x3e,0x49,0x63,0x78,0x7d,0x7d,0x80,0x81,
+0x81,0x88,0x8d,0x8e,0x8b,0x88,0x83,0x7f,0x84,0x80,0x77,0x6a,0x5b,0x4d,0x3e,0x33,
+0x25,0x1d,0x23,0x39,0x46,0x3f,0x31,0x2b,0x35,0x4b,0x64,0x72,0x76,0x6e,0x56,0x3f,
+0x2e,0x43,0x58,0x5b,0x51,0x4c,0x56,0x63,0x5f,0x5b,0x67,0x76,0x98,0xa3,0xab,0xa4,
+0x98,0x93,0x90,0x94,0x9f,0xa9,0xaf,0xb2,0xac,0xab,0xab,0xae,0xb2,0xb3,0xad,0xa5,
+0xae,0xa8,0x9f,0x97,0x92,0x8c,0x85,0x7f,0x6e,0x61,0x50,0x40,0x31,0x24,0x19,0x13,
+0x14,0x13,0x15,0x18,0x1b,0x1a,0x17,0x14,0x1c,0x1f,0x21,0x20,0x1d,0x1b,0x1b,0x1b,
+0x84,0x74,0x60,0x5a,0x6a,0x83,0x92,0x95,0x80,0x73,0x69,0x6d,0x78,0x7a,0x72,0x68,
+0x72,0x6a,0x5f,0x58,0x59,0x64,0x74,0x7f,0x82,0x8b,0x91,0x8e,0x88,0x82,0x7c,0x75,
+0x7e,0x80,0x84,0x84,0x7a,0x6f,0x71,0x7c,0x81,0x87,0x8f,0x93,0x93,0x90,0x8c,0x8a,
+0x94,0x97,0x94,0x8f,0x96,0xa0,0x9a,0x8a,0x87,0x8d,0x92,0x95,0x98,0x9b,0x9d,0x9c,
+0xa2,0xa3,0xa0,0x9a,0x93,0x91,0x96,0x9c,0x97,0x93,0x86,0x78,0x79,0x89,0x98,0x9d,
+0x88,0x83,0x85,0x8f,0x93,0x8f,0x8b,0x8c,0x81,0x7d,0x7b,0x7d,0x82,0x87,0x8c,0x91,
+0x92,0x8d,0x87,0x85,0x88,0x91,0x9b,0xa2,0xaa,0xa4,0x98,0x8e,0x90,0x96,0x93,0x89,
+0x8d,0x93,0x9b,0x9d,0x99,0x93,0x8e,0x8d,0x97,0x96,0x95,0x97,0x9c,0xa2,0xa7,0xa8,
+0xaf,0xba,0xbf,0xb6,0xa7,0x9f,0x9b,0x99,0xab,0xa6,0xa1,0x9a,0x8f,0x88,0x8f,0x9c,
+0x8f,0x8f,0x8e,0x8c,0x8f,0x91,0x88,0x7d,0x78,0x7f,0x82,0x7f,0x80,0x84,0x82,0x7c,
+0x74,0x7e,0x8f,0x95,0x86,0x75,0x7c,0x90,0x9b,0x98,0x98,0x9d,0xa4,0xa3,0x95,0x86,
+0x83,0x80,0x79,0x86,0x88,0x85,0x75,0x78,0x83,0x7f,0x7b,0x7a,0x81,0x8b,0x91,0x92,
+0x96,0x9a,0x9f,0xa2,0xa3,0xa5,0xa8,0xaa,0xad,0xaf,0xb1,0xb3,0xb4,0xb4,0xb5,0xb6,
+0xb5,0xb5,0xb4,0xb4,0xb4,0xb5,0xb7,0xb7,0xb8,0xb7,0xb7,0xb5,0xb4,0xb2,0xb1,0xb0,
+0xac,0xaa,0xa7,0xa4,0xa1,0x9e,0x9a,0x98,0x99,0x98,0x95,0x94,0x93,0x94,0x95,0x97,
+0x99,0x96,0x92,0x8d,0x89,0x87,0x87,0x88,0x8c,0x8a,0x8a,0x8b,0x8a,0x88,0x8a,0x8d,
+0x9a,0xa4,0xa9,0xa6,0x9c,0x8f,0x91,0xa0,0x9e,0xa1,0xa5,0xa9,0xab,0xad,0xaf,0xb1,
+0xb5,0xba,0xc0,0xc1,0xc0,0xc0,0xc3,0xc7,0xca,0xcb,0xcb,0xcb,0xcb,0xcc,0xcf,0xd1,
+0xd0,0xd1,0xd1,0xd1,0xd2,0xd2,0xd2,0xd3,0xd2,0xd3,0xd3,0xd1,0xd0,0xcf,0xd0,0xd1,
+0xd1,0xd4,0xd5,0xd3,0xd1,0xd1,0xcf,0xcd,0xc5,0xba,0xad,0xa6,0xa2,0x9b,0x93,0x8e,
+0x9c,0xa2,0xac,0xb5,0xbe,0xc7,0xd0,0xd6,0xd5,0xd8,0xdb,0xdc,0xd9,0xd5,0xd2,0xd0,
+0xd2,0xd0,0xcf,0xd0,0xd1,0xd2,0xd5,0xd9,0xdd,0xdf,0xe3,0xb2,0x88,0x86,0x89,0x9f,
+0xc9,0xd8,0xda,0xd4,0xd2,0xd5,0xa3,0x7e,0x6e,0xa1,0xd5,0xd4,0xd7,0xdb,0xdc,0xdc,
+0xd9,0xba,0x8e,0x81,0x82,0x79,0x8a,0xd4,0xd6,0xd3,0xd2,0xd6,0xda,0xdb,0xdb,0xdb,
+0xda,0xd8,0xd7,0xd7,0xd9,0xda,0xd9,0xd8,0xd9,0xd6,0xd3,0xd2,0xd2,0xd0,0xcf,0xd1,
+0xd2,0xcc,0xd1,0xce,0xd3,0xd8,0xac,0x72,0x9f,0xcd,0xcc,0xc2,0xc3,0xc0,0xc8,0xc6,
+0xc8,0xad,0x71,0x58,0x89,0xbc,0xc3,0xb9,0x9d,0x6d,0x76,0xa7,0x96,0x6e,0x70,0x74,
+0x74,0x6d,0x67,0x6b,0x7b,0x89,0x86,0x7c,0x77,0x78,0x78,0x7c,0x76,0x73,0x6b,0x6a,
+0x6e,0x6f,0x77,0x82,0x80,0x73,0x67,0x63,0x63,0x6e,0x7c,0x80,0x7a,0x6f,0x68,0x66,
+0x6f,0x75,0x79,0x78,0x73,0x73,0x78,0x7e,0x85,0x83,0x84,0x89,0x8a,0x84,0x7c,0x77,
+0x6b,0x6c,0x75,0x7c,0x6e,0x4d,0x30,0x24,0x35,0x43,0x4a,0x47,0x4b,0x59,0x5f,0x5b,
+0x5b,0x58,0x51,0x45,0x35,0x29,0x28,0x2d,0x37,0x3b,0x38,0x2d,0x24,0x22,0x23,0x23,
+0x21,0x2a,0x28,0x1d,0x1a,0x23,0x26,0x20,0x2e,0x32,0x3a,0x40,0x3c,0x31,0x2a,0x2a,
+0x32,0x3c,0x3a,0x42,0x56,0x64,0x5e,0x41,0x36,0x3c,0x4e,0x60,0x66,0x71,0x84,0x91,
+0x81,0x79,0x69,0x58,0x52,0x5a,0x67,0x70,0x77,0x7a,0x7c,0x7b,0x75,0x6a,0x59,0x4b,
+0x43,0x36,0x33,0x3c,0x3c,0x30,0x2b,0x31,0x46,0x54,0x5e,0x59,0x4c,0x3d,0x2c,0x1d,
+0x38,0x4b,0x65,0x75,0x74,0x6e,0x74,0x7f,0x7e,0x81,0x8c,0x93,0x9f,0x9c,0x9a,0x92,
+0x98,0x90,0x84,0x7d,0x7c,0x7e,0x7e,0x7e,0x85,0x85,0x85,0x83,0x7f,0x80,0x89,0x93,
+0x96,0xa3,0xac,0xab,0xa5,0xa2,0xa0,0x9f,0xa0,0x97,0x8b,0x7f,0x70,0x55,0x31,0x14,
+0x15,0x14,0x16,0x18,0x17,0x15,0x1a,0x23,0x1f,0x25,0x29,0x28,0x29,0x2a,0x25,0x1e,
+0x7f,0x7d,0x7d,0x84,0x91,0x96,0x8d,0x80,0x7b,0x79,0x78,0x79,0x7a,0x7a,0x79,0x78,
+0x76,0x72,0x6e,0x6e,0x72,0x76,0x78,0x77,0x83,0x84,0x84,0x83,0x85,0x88,0x86,0x82,
+0x80,0x7e,0x81,0x85,0x82,0x7d,0x7d,0x82,0x81,0x93,0xa5,0xa7,0x9b,0x91,0x92,0x97,
+0x9f,0xa2,0xa5,0xa9,0xae,0xab,0x9b,0x89,0x86,0x8b,0x90,0x94,0x97,0x99,0x96,0x91,
+0x97,0x9b,0x9a,0x93,0x89,0x88,0x92,0x9c,0xac,0xa9,0x96,0x80,0x82,0x92,0x8e,0x7a,
+0x7f,0x89,0x8d,0x88,0x88,0x91,0x98,0x98,0x88,0x86,0x85,0x84,0x81,0x7d,0x7d,0x7f,
+0x89,0x89,0x87,0x85,0x85,0x87,0x88,0x88,0x93,0x97,0x99,0x9b,0xa1,0xa5,0x97,0x85,
+0x7c,0x7d,0x82,0x8a,0x91,0x95,0x97,0x98,0x8f,0x8d,0x90,0x99,0xa6,0xaa,0xa1,0x95,
+0x91,0x9c,0xa6,0xa6,0xa0,0x9e,0xa2,0xa7,0xa9,0xa0,0x9b,0x99,0x92,0x88,0x88,0x91,
+0x93,0x90,0x8e,0x8f,0x90,0x8b,0x82,0x7c,0x84,0x88,0x89,0x87,0x8b,0x90,0x88,0x7b,
+0x74,0x86,0x9b,0x9f,0x8e,0x7d,0x82,0x91,0x91,0x92,0x94,0x99,0xa0,0xa4,0xa3,0xa0,
+0x87,0x7e,0x73,0x87,0x93,0x94,0x7f,0x7b,0x82,0x7c,0x78,0x7c,0x87,0x8f,0x8f,0x8a,
+0x96,0x99,0x9d,0xa0,0xa1,0xa3,0xa7,0xaa,0xaa,0xac,0xaf,0xb1,0xb2,0xb3,0xb5,0xb6,
+0xb5,0xb6,0xb8,0xba,0xbc,0xbf,0xc1,0xc2,0xc1,0xc1,0xc1,0xc1,0xc0,0xbe,0xbc,0xbb,
+0xb7,0xb5,0xb2,0xaf,0xac,0xa7,0xa2,0x9f,0x99,0x97,0x94,0x92,0x92,0x93,0x96,0x97,
+0x98,0x99,0x98,0x94,0x8f,0x8a,0x89,0x88,0x8a,0x8b,0x8c,0x8c,0x8a,0x88,0x8d,0x93,
+0x99,0xa9,0xab,0x9c,0x92,0x94,0x99,0x9b,0xa1,0xa5,0xaa,0xae,0xb0,0xb2,0xb3,0xb4,
+0xb9,0xbe,0xc4,0xc5,0xc2,0xc1,0xc4,0xc7,0xcb,0xcb,0xcc,0xcc,0xcd,0xd0,0xd4,0xd6,
+0xd5,0xd4,0xd4,0xd2,0xd1,0xd1,0xd0,0xd0,0xd1,0xd2,0xd2,0xd1,0xd0,0xd0,0xd1,0xd2,
+0xd3,0xd4,0xd3,0xd2,0xd2,0xd1,0xcc,0xc6,0xc2,0xb6,0xad,0xac,0xac,0xa8,0xa4,0xa5,
+0xb1,0xb5,0xbc,0xc3,0xc9,0xcf,0xd5,0xd9,0xd6,0xd7,0xd9,0xdb,0xdc,0xdb,0xd9,0xd7,
+0xd6,0xd3,0xd0,0xd1,0xd4,0xd7,0xd9,0xdb,0xdf,0xda,0xcc,0x95,0x81,0x89,0x85,0xa9,
+0xde,0xdf,0xda,0xd6,0xd8,0xd3,0x96,0x77,0x70,0xaa,0xd6,0xd5,0xd6,0xda,0xdb,0xdd,
+0xd6,0xa0,0x77,0x82,0x86,0x7a,0x7e,0xce,0xdb,0xda,0xdb,0xda,0xd6,0xd2,0xd5,0xdb,
+0xdf,0xdc,0xd8,0xd8,0xda,0xdb,0xd9,0xd6,0xd8,0xd4,0xd1,0xd0,0xd1,0xd1,0xd0,0xd0,
+0xd3,0xca,0xcf,0xcc,0xd0,0xd5,0xa8,0x6d,0x8a,0xbd,0xce,0xce,0xcc,0xbe,0xbd,0xc0,
+0xbd,0x9e,0x6e,0x6a,0x9c,0xbe,0xbd,0xba,0x98,0x69,0x6a,0x8f,0x81,0x6a,0x70,0x68,
+0x68,0x72,0x73,0x68,0x60,0x66,0x6e,0x71,0x80,0x88,0x86,0x89,0x77,0x75,0x6a,0x6b,
+0x69,0x6b,0x73,0x7e,0x81,0x77,0x67,0x5d,0x66,0x71,0x7a,0x79,0x76,0x73,0x6f,0x6b,
+0x6f,0x75,0x79,0x75,0x6e,0x6c,0x72,0x79,0x87,0x82,0x7f,0x80,0x7f,0x78,0x6f,0x69,
+0x6c,0x70,0x78,0x7c,0x6e,0x52,0x3e,0x38,0x42,0x4c,0x4e,0x48,0x4f,0x61,0x69,0x64,
+0x55,0x58,0x5c,0x59,0x46,0x31,0x2f,0x3a,0x3a,0x3c,0x3a,0x32,0x2b,0x26,0x22,0x1e,
+0x1e,0x27,0x26,0x1b,0x1b,0x26,0x2d,0x29,0x3f,0x40,0x43,0x42,0x38,0x28,0x1e,0x1b,
+0x21,0x2c,0x2a,0x35,0x50,0x6a,0x71,0x5d,0x46,0x3e,0x42,0x4b,0x50,0x5b,0x6f,0x7c,
+0x88,0x85,0x78,0x62,0x4a,0x3b,0x33,0x31,0x46,0x63,0x80,0x85,0x77,0x6a,0x69,0x6e,
+0x68,0x63,0x61,0x61,0x54,0x3f,0x32,0x31,0x26,0x2b,0x36,0x3d,0x36,0x2b,0x2e,0x3a,
+0x45,0x46,0x4c,0x57,0x62,0x66,0x61,0x5a,0x65,0x6b,0x74,0x76,0x76,0x72,0x73,0x73,
+0x66,0x5b,0x46,0x2d,0x1e,0x22,0x31,0x3d,0x3f,0x4d,0x5f,0x66,0x5d,0x4e,0x47,0x49,
+0x52,0x52,0x53,0x5e,0x76,0x8b,0x8e,0x85,0x82,0x7e,0x7f,0x88,0x90,0x82,0x58,0x31,
+0x1c,0x16,0x15,0x1a,0x1c,0x18,0x18,0x1b,0x1e,0x24,0x27,0x29,0x2f,0x31,0x26,0x15,
+0xa7,0xa1,0x9b,0x99,0x9e,0xa2,0xa0,0x9b,0x95,0x92,0x8b,0x81,0x7a,0x7b,0x83,0x8a,
+0x82,0x7c,0x77,0x7a,0x81,0x85,0x83,0x7e,0x72,0x6f,0x6e,0x74,0x81,0x8d,0x90,0x8e,
+0x94,0x8b,0x83,0x83,0x83,0x81,0x7f,0x7f,0x91,0x93,0x96,0x95,0x93,0x95,0x9b,0xa1,
+0x9d,0x9b,0xa2,0xb2,0xba,0xb3,0xa6,0x9d,0x97,0x93,0x8d,0x8c,0x91,0x96,0x95,0x90,
+0x96,0x98,0x9b,0x9b,0x96,0x8f,0x89,0x85,0x8b,0x8b,0x87,0x84,0x8d,0x97,0x91,0x81,
+0x73,0x82,0x8f,0x95,0x9c,0xa0,0x96,0x86,0x78,0x7b,0x80,0x85,0x87,0x89,0x8e,0x93,
+0x9b,0x9b,0x98,0x93,0x91,0x8f,0x8a,0x84,0x8f,0x95,0x9a,0xa0,0xad,0xbd,0xc1,0xbc,
+0x9b,0x8b,0x7e,0x7e,0x86,0x8b,0x8c,0x8b,0x98,0xa1,0xa8,0xa8,0xa5,0xa2,0xa0,0x9e,
+0xa3,0x9f,0x9b,0x96,0x8c,0x86,0x90,0x9f,0xa6,0x9d,0x9a,0xa1,0xa5,0xa3,0xa2,0xa4,
+0x9a,0x94,0x94,0x97,0x90,0x7f,0x75,0x76,0x87,0x87,0x84,0x85,0x8d,0x93,0x89,0x7a,
+0x73,0x80,0x87,0x7e,0x75,0x7b,0x8b,0x96,0x8a,0x8e,0x97,0x9f,0xa1,0x9b,0x92,0x8b,
+0x98,0x95,0x89,0x90,0x90,0x91,0x80,0x7d,0x7b,0x7c,0x7e,0x81,0x83,0x87,0x8d,0x91,
+0x95,0x98,0x9c,0x9e,0xa0,0xa3,0xa7,0xab,0xad,0xaf,0xb2,0xb5,0xb7,0xb9,0xbb,0xbd,
+0xc0,0xc1,0xc3,0xc5,0xc6,0xc6,0xc6,0xc5,0xc6,0xc7,0xc7,0xc7,0xc6,0xc5,0xc4,0xc3,
+0xc1,0xc0,0xbd,0xbb,0xb8,0xb3,0xae,0xab,0xa1,0x9e,0x9a,0x96,0x94,0x94,0x95,0x97,
+0x97,0x9a,0x9c,0x9a,0x94,0x8e,0x89,0x88,0x89,0x8b,0x8d,0x8d,0x8b,0x8a,0x90,0x97,
+0xa2,0xa4,0xa0,0x93,0x8f,0x98,0xa0,0x9e,0xa5,0xa9,0xae,0xb2,0xb4,0xb6,0xb7,0xb8,
+0xbd,0xc1,0xc5,0xc6,0xc4,0xc3,0xc6,0xc9,0xcb,0xcd,0xce,0xcf,0xd0,0xd2,0xd4,0xd6,
+0xd4,0xd3,0xd2,0xd1,0xd0,0xce,0xcd,0xcc,0xcd,0xce,0xcf,0xcf,0xce,0xce,0xd0,0xd1,
+0xd4,0xd2,0xd0,0xd0,0xd2,0xd0,0xc6,0xbc,0xbc,0xb6,0xb5,0xba,0xbf,0xc0,0xc5,0xcb,
+0xc6,0xc8,0xca,0xcd,0xcf,0xd2,0xd5,0xd7,0xd6,0xd5,0xd5,0xd7,0xd9,0xdc,0xdc,0xdc,
+0xd9,0xd6,0xd3,0xd2,0xd4,0xd8,0xd9,0xd9,0xdc,0xda,0xb3,0x81,0x85,0x88,0x88,0xc0,
+0xd8,0xd7,0xd5,0xd3,0xda,0xd4,0x90,0x75,0x74,0xb3,0xd4,0xd3,0xd2,0xd6,0xd8,0xdb,
+0xd8,0x95,0x76,0x85,0x7c,0x78,0x83,0xc1,0xce,0xd0,0xd5,0xd9,0xd8,0xd6,0xd7,0xda,
+0xdf,0xdb,0xd8,0xd7,0xd9,0xda,0xd8,0xd6,0xd5,0xd3,0xd1,0xcf,0xd1,0xd2,0xd2,0xd0,
+0xd6,0xcc,0xcf,0xcb,0xce,0xcb,0x9c,0x67,0x85,0xbd,0xd0,0xc7,0xc8,0xc7,0xc5,0xc3,
+0xc3,0x9f,0x6c,0x6c,0x9e,0xbd,0xbc,0xbd,0x99,0x64,0x56,0x74,0x75,0x6d,0x71,0x62,
+0x69,0x6d,0x6b,0x65,0x67,0x70,0x74,0x70,0x68,0x7d,0x87,0x8d,0x7a,0x76,0x69,0x68,
+0x63,0x6d,0x78,0x7b,0x72,0x67,0x61,0x61,0x61,0x69,0x6d,0x6d,0x6f,0x73,0x72,0x6d,
+0x6d,0x72,0x76,0x78,0x79,0x7c,0x82,0x88,0x86,0x81,0x7f,0x82,0x83,0x7d,0x75,0x6f,
+0x6c,0x76,0x79,0x6a,0x51,0x40,0x3e,0x41,0x4e,0x52,0x4e,0x48,0x51,0x64,0x6a,0x63,
+0x56,0x56,0x5e,0x64,0x57,0x3e,0x32,0x36,0x39,0x3b,0x3a,0x35,0x2e,0x26,0x1e,0x19,
+0x1a,0x20,0x22,0x1d,0x1b,0x22,0x2d,0x35,0x44,0x45,0x45,0x42,0x39,0x2d,0x24,0x21,
+0x24,0x2d,0x27,0x2a,0x3e,0x5d,0x76,0x73,0x57,0x42,0x38,0x3d,0x42,0x4a,0x54,0x59,
+0x66,0x6d,0x72,0x70,0x6e,0x74,0x80,0x89,0x73,0x5d,0x45,0x43,0x58,0x70,0x77,0x73,
+0x76,0x70,0x67,0x61,0x60,0x5c,0x4f,0x42,0x3b,0x31,0x2e,0x31,0x2e,0x27,0x2a,0x34,
+0x3a,0x43,0x46,0x43,0x48,0x55,0x5d,0x5b,0x5a,0x57,0x53,0x53,0x50,0x4f,0x49,0x46,
+0x35,0x48,0x5d,0x69,0x6b,0x6b,0x6a,0x69,0x6d,0x61,0x53,0x4c,0x4d,0x51,0x57,0x5c,
+0x5d,0x5c,0x52,0x41,0x36,0x38,0x40,0x45,0x48,0x41,0x42,0x54,0x72,0x89,0x8b,0x83,
+0x5c,0x42,0x29,0x20,0x22,0x22,0x1e,0x1b,0x27,0x28,0x27,0x29,0x32,0x37,0x2b,0x19,
+0x9a,0xa1,0xab,0xb2,0xb2,0xa9,0x9b,0x91,0x91,0x8d,0x84,0x7c,0x7c,0x81,0x85,0x86,
+0x7e,0x80,0x85,0x8c,0x8e,0x84,0x72,0x62,0x6b,0x6b,0x70,0x7d,0x8f,0x9b,0x9e,0x9c,
+0x9a,0x95,0x91,0x92,0x92,0x90,0x8e,0x8e,0x87,0x81,0x7a,0x76,0x76,0x7b,0x81,0x85,
+0x9c,0x9a,0xa8,0xbe,0xc4,0xb4,0xa2,0x9c,0x97,0x94,0x90,0x94,0x9d,0xa3,0x9f,0x97,
+0x84,0x83,0x88,0x97,0xa9,0xb0,0xaa,0xa1,0x9b,0x92,0x91,0x97,0x91,0x81,0x78,0x7c,
+0x7b,0x7d,0x81,0x85,0x87,0x88,0x8d,0x92,0x87,0x87,0x88,0x89,0x88,0x88,0x8e,0x94,
+0x98,0x95,0x8d,0x84,0x83,0x87,0x88,0x85,0x94,0x9c,0xa3,0xa4,0xa1,0x9c,0x95,0x90,
+0x92,0x89,0x7e,0x75,0x6e,0x6f,0x7e,0x8d,0x94,0x99,0x97,0x89,0x7d,0x7d,0x84,0x8a,
+0x8b,0x86,0x85,0x86,0x7f,0x78,0x7f,0x8d,0x84,0x7f,0x7f,0x89,0x97,0xa0,0xa3,0xa4,
+0x9d,0x95,0x90,0x8e,0x84,0x79,0x7a,0x84,0x93,0x8c,0x86,0x86,0x8d,0x8f,0x86,0x7a,
+0x6f,0x84,0x93,0x92,0x8f,0x91,0x8e,0x86,0x89,0x8a,0x90,0x9a,0x9e,0x95,0x86,0x7a,
+0x7f,0x89,0x81,0x7c,0x6e,0x70,0x6c,0x75,0x7e,0x7a,0x79,0x7c,0x81,0x87,0x8e,0x94,
+0x96,0x99,0x9c,0x9f,0xa1,0xa5,0xaa,0xae,0xb0,0xb2,0xb5,0xb8,0xba,0xbd,0xc0,0xc2,
+0xc4,0xc6,0xc8,0xca,0xcb,0xcb,0xca,0xc9,0xca,0xca,0xca,0xca,0xc9,0xc8,0xc7,0xc7,
+0xc6,0xc4,0xc3,0xc1,0xbe,0xbb,0xb7,0xb4,0xae,0xaa,0xa5,0x9f,0x9b,0x99,0x98,0x99,
+0x9a,0x9c,0x9d,0x9d,0x98,0x92,0x8d,0x89,0x8b,0x8c,0x8e,0x8e,0x8c,0x8c,0x93,0x9c,
+0xad,0x98,0x8f,0x93,0x94,0x99,0xa4,0xab,0xac,0xaf,0xb3,0xb6,0xb8,0xba,0xbb,0xbd,
+0xbe,0xc1,0xc5,0xc7,0xc7,0xc8,0xc9,0xcb,0xcc,0xcd,0xcf,0xcf,0xce,0xce,0xce,0xcf,
+0xcd,0xce,0xcf,0xcf,0xcf,0xce,0xcd,0xcd,0xcd,0xcf,0xd1,0xd1,0xd1,0xd2,0xd2,0xd3,
+0xd4,0xd2,0xce,0xce,0xd2,0xd1,0xc8,0xbe,0xbc,0xc4,0xd1,0xdc,0xdf,0xdb,0xd7,0xd6,
+0xd1,0xd1,0xd0,0xd0,0xd1,0xd3,0xd5,0xd6,0xd7,0xd6,0xd4,0xd4,0xd6,0xd8,0xda,0xdb,
+0xda,0xd9,0xd5,0xd3,0xd4,0xd7,0xd8,0xd6,0xd8,0xdd,0xa1,0x7d,0x86,0x80,0x9b,0xd9,
+0xd7,0xd9,0xd7,0xca,0xcf,0xce,0x8a,0x75,0x74,0xb8,0xd0,0xd1,0xcf,0xd5,0xd5,0xd8,
+0xdb,0x9e,0x7f,0x7b,0x6d,0x81,0xab,0xd3,0xd1,0xd1,0xd1,0xd2,0xd6,0xdb,0xdd,0xdb,
+0xda,0xd7,0xd5,0xd4,0xd5,0xd7,0xd6,0xd5,0xd2,0xd3,0xd2,0xd0,0xd1,0xd3,0xd3,0xd0,
+0xd6,0xcf,0xcf,0xcc,0xcf,0xc1,0x8d,0x65,0x8d,0xbf,0xc0,0x9f,0xa8,0xc6,0xcb,0xc1,
+0xc1,0x9b,0x65,0x64,0x9d,0xc1,0xbb,0xb2,0x94,0x63,0x50,0x70,0x7d,0x75,0x75,0x6b,
+0x6e,0x67,0x62,0x68,0x79,0x88,0x84,0x78,0x72,0x84,0x8e,0x8b,0x7a,0x74,0x6b,0x67,
+0x60,0x65,0x69,0x68,0x64,0x63,0x62,0x61,0x62,0x67,0x6a,0x6b,0x6c,0x6d,0x68,0x61,
+0x5d,0x60,0x67,0x6f,0x77,0x7c,0x7e,0x7e,0x7f,0x7c,0x7c,0x82,0x85,0x81,0x77,0x71,
+0x73,0x76,0x6c,0x57,0x48,0x47,0x47,0x42,0x52,0x51,0x4d,0x4b,0x55,0x63,0x65,0x5d,
+0x57,0x4f,0x51,0x60,0x63,0x52,0x3f,0x38,0x40,0x40,0x3d,0x38,0x2f,0x25,0x1d,0x17,
+0x20,0x23,0x24,0x21,0x1a,0x1a,0x27,0x35,0x39,0x3a,0x3a,0x39,0x38,0x37,0x38,0x39,
+0x37,0x3c,0x32,0x2d,0x36,0x50,0x74,0x81,0x63,0x47,0x37,0x3a,0x3e,0x41,0x43,0x43,
+0x44,0x4e,0x56,0x56,0x52,0x4e,0x4d,0x4d,0x67,0x65,0x65,0x6f,0x81,0x90,0x93,0x8f,
+0x92,0x8d,0x7d,0x6b,0x65,0x6b,0x6b,0x64,0x51,0x40,0x2c,0x27,0x35,0x45,0x4b,0x48,
+0x5f,0x6c,0x67,0x4c,0x38,0x3a,0x42,0x43,0x45,0x46,0x43,0x47,0x43,0x48,0x45,0x46,
+0x5d,0x56,0x4a,0x40,0x46,0x5c,0x74,0x80,0x8f,0x91,0x94,0x98,0x9f,0xa6,0xa8,0xa6,
+0x89,0x8c,0x95,0xa1,0xa5,0x95,0x76,0x5d,0x3a,0x2e,0x24,0x27,0x39,0x58,0x79,0x90,
+0x99,0x89,0x70,0x58,0x45,0x39,0x32,0x2e,0x2c,0x2a,0x26,0x28,0x33,0x3c,0x39,0x2f,
+0xa3,0xa7,0xac,0xae,0xac,0xa7,0xa1,0x9e,0x91,0x8e,0x88,0x84,0x86,0x89,0x87,0x83,
+0x90,0x8d,0x89,0x85,0x82,0x7d,0x79,0x75,0x6e,0x70,0x76,0x81,0x8d,0x95,0x9a,0x9c,
+0x9a,0x95,0x93,0x95,0x98,0x98,0x97,0x97,0x97,0x99,0x9a,0x97,0x95,0x96,0x9d,0xa3,
+0x9f,0xa3,0xb2,0xc3,0xc2,0xac,0x94,0x88,0x89,0x8b,0x90,0x99,0xa4,0xa8,0xa0,0x96,
+0x9d,0x98,0x96,0x99,0x9f,0xa1,0x9b,0x94,0x8e,0x83,0x7e,0x82,0x7e,0x73,0x70,0x76,
+0x73,0x7d,0x88,0x89,0x82,0x7c,0x7f,0x86,0x79,0x7a,0x7d,0x82,0x86,0x89,0x91,0x98,
+0x95,0x94,0x8c,0x7f,0x7b,0x80,0x86,0x87,0x88,0x8a,0x8d,0x8e,0x8c,0x8c,0x96,0xa0,
+0xa7,0xa5,0x9d,0x8b,0x72,0x66,0x74,0x89,0x94,0x91,0x87,0x7c,0x79,0x7e,0x80,0x7c,
+0x84,0x88,0x8d,0x8e,0x86,0x79,0x72,0x72,0x78,0x7b,0x7e,0x82,0x88,0x91,0x96,0x96,
+0x99,0x96,0x8e,0x82,0x79,0x78,0x7e,0x85,0x89,0x83,0x80,0x83,0x85,0x7f,0x77,0x72,
+0x7c,0x87,0x8b,0x85,0x80,0x80,0x7f,0x7b,0x86,0x86,0x8b,0x91,0x92,0x8d,0x87,0x85,
+0x7b,0x86,0x81,0x80,0x77,0x7e,0x84,0x96,0x90,0x86,0x7f,0x82,0x88,0x8c,0x8d,0x8e,
+0x96,0x98,0x9c,0x9f,0xa1,0xa6,0xac,0xb0,0xb1,0xb3,0xb6,0xb8,0xba,0xbd,0xc0,0xc3,
+0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xcd,0xcd,0xcd,0xcc,0xcb,0xca,0xca,0xc9,0xc9,0xc9,
+0xc7,0xc6,0xc4,0xc2,0xc1,0xbe,0xbb,0xb9,0xb8,0xb5,0xb0,0xaa,0xa6,0xa4,0xa3,0xa3,
+0xa2,0xa1,0xa0,0x9f,0x9d,0x99,0x94,0x90,0x90,0x8f,0x8f,0x8e,0x8c,0x8f,0x98,0xa1,
+0xa8,0x90,0x8c,0x99,0x9c,0x9e,0xaa,0xb2,0xb4,0xb6,0xb8,0xba,0xbb,0xbd,0xbe,0xc0,
+0xc0,0xc3,0xc7,0xca,0xcc,0xcc,0xca,0xc8,0xca,0xcb,0xcb,0xcb,0xc9,0xc9,0xc9,0xca,
+0xcd,0xcf,0xd1,0xd3,0xd4,0xd4,0xd3,0xd2,0xd1,0xd3,0xd6,0xd7,0xd6,0xd6,0xd5,0xd6,
+0xd3,0xd2,0xd0,0xd0,0xd3,0xd6,0xd4,0xcf,0xd5,0xdc,0xe1,0xe2,0xe2,0xe2,0xe0,0xde,
+0xd9,0xd7,0xd4,0xd2,0xd3,0xd4,0xd6,0xd8,0xda,0xd9,0xd8,0xd7,0xd7,0xd8,0xda,0xdb,
+0xdb,0xdc,0xd9,0xd6,0xd6,0xd8,0xd8,0xd6,0xd4,0xdb,0x93,0x82,0x84,0x79,0xb5,0xdd,
+0xd0,0xd4,0xdc,0xd6,0xd5,0xc3,0x75,0x6a,0x76,0xbe,0xcf,0xd3,0xd1,0xd7,0xd4,0xd5,
+0xdb,0xb6,0x91,0x79,0x7c,0xa2,0xd4,0xd7,0xcc,0xd8,0xdf,0xda,0xd6,0xd9,0xda,0xd7,
+0xd9,0xd7,0xd5,0xd3,0xd2,0xd3,0xd4,0xd4,0xd0,0xd3,0xd4,0xd1,0xd0,0xd1,0xd1,0xcf,
+0xcf,0xcf,0xcc,0xcb,0xd1,0xb8,0x81,0x68,0x87,0xa2,0x94,0x76,0x90,0xbf,0xc6,0xbe,
+0xb8,0x91,0x64,0x70,0xab,0xc6,0xb9,0xb2,0x80,0x6c,0x5e,0x70,0x7b,0x74,0x73,0x6c,
+0x67,0x6c,0x70,0x6e,0x68,0x66,0x6b,0x71,0x90,0x98,0x99,0x85,0x78,0x6b,0x64,0x59,
+0x5f,0x5d,0x5a,0x5b,0x64,0x6a,0x66,0x5d,0x64,0x68,0x6d,0x6e,0x6c,0x68,0x61,0x5c,
+0x6c,0x6e,0x75,0x7f,0x89,0x8d,0x88,0x83,0x7b,0x75,0x72,0x76,0x7c,0x7b,0x77,0x73,
+0x73,0x6e,0x63,0x5e,0x68,0x73,0x6d,0x5d,0x4d,0x4c,0x4c,0x51,0x5a,0x5f,0x5d,0x57,
+0x4c,0x42,0x45,0x58,0x67,0x66,0x5d,0x59,0x4d,0x4a,0x44,0x3b,0x2f,0x24,0x1c,0x19,
+0x18,0x1e,0x22,0x21,0x1f,0x24,0x33,0x42,0x43,0x3f,0x39,0x33,0x32,0x37,0x3e,0x43,
+0x4b,0x4e,0x44,0x40,0x40,0x4c,0x69,0x79,0x77,0x5b,0x47,0x45,0x41,0x3c,0x3b,0x3b,
+0x45,0x44,0x41,0x3f,0x43,0x4b,0x51,0x53,0x54,0x55,0x59,0x63,0x73,0x80,0x82,0x7e,
+0x82,0x8a,0x8d,0x85,0x7c,0x77,0x72,0x6d,0x62,0x54,0x46,0x47,0x55,0x60,0x60,0x59,
+0x71,0x75,0x6c,0x55,0x46,0x4a,0x52,0x55,0x69,0x6c,0x67,0x6c,0x64,0x6c,0x69,0x6e,
+0x5e,0x6b,0x78,0x81,0x89,0x92,0x94,0x91,0x92,0xa0,0xa7,0xa1,0x97,0x91,0x8b,0x82,
+0x84,0x7f,0x7b,0x7a,0x77,0x76,0x7f,0x8a,0x7a,0x6c,0x5d,0x53,0x4c,0x4e,0x5e,0x71,
+0x83,0x93,0x9f,0x9c,0x8b,0x72,0x55,0x3f,0x25,0x24,0x23,0x24,0x28,0x2d,0x2f,0x30,
+0xac,0xac,0xae,0xaf,0xac,0xa8,0xa5,0xa5,0xaa,0xa5,0x9a,0x8c,0x83,0x82,0x83,0x81,
+0x80,0x89,0x95,0x9b,0x9a,0x96,0x93,0x91,0x9b,0x9c,0x9f,0xa2,0xa6,0xac,0xb6,0xbe,
+0xb5,0xa5,0x93,0x8d,0x91,0x97,0x99,0x99,0x9e,0x9d,0x99,0x95,0x92,0x93,0x96,0x99,
+0xa0,0xa5,0xae,0xb4,0xb1,0xa3,0x92,0x87,0x95,0x96,0x98,0x9d,0xa4,0xa8,0xa4,0x9e,
+0x8c,0x94,0x9d,0x9e,0x99,0x93,0x91,0x92,0x93,0x8a,0x7a,0x71,0x77,0x82,0x81,0x78,
+0x7b,0x82,0x7e,0x70,0x6e,0x77,0x7a,0x73,0x71,0x72,0x76,0x7a,0x7b,0x7a,0x7b,0x7e,
+0x8d,0x8f,0x89,0x7a,0x6e,0x6d,0x6f,0x6e,0x6b,0x74,0x84,0x90,0x8c,0x82,0x80,0x86,
+0x90,0x87,0x7d,0x77,0x6e,0x68,0x6c,0x76,0x83,0x86,0x86,0x84,0x87,0x8a,0x83,0x79,
+0x73,0x7e,0x88,0x8a,0x89,0x87,0x82,0x7c,0x76,0x81,0x86,0x7f,0x79,0x7a,0x7b,0x79,
+0x79,0x86,0x8b,0x83,0x81,0x87,0x87,0x80,0x73,0x72,0x79,0x82,0x83,0x79,0x72,0x72,
+0x7a,0x83,0x89,0x87,0x7f,0x77,0x72,0x70,0x72,0x7a,0x83,0x85,0x7c,0x72,0x73,0x79,
+0x88,0x85,0x75,0x74,0x6c,0x6f,0x6d,0x7b,0x76,0x78,0x7d,0x83,0x84,0x86,0x8d,0x96,
+0x95,0x97,0x9b,0x9e,0xa1,0xa6,0xac,0xb1,0xb4,0xb6,0xb8,0xba,0xbc,0xbe,0xc1,0xc4,
+0xc5,0xc5,0xc5,0xc6,0xc7,0xc9,0xca,0xcb,0xcc,0xcb,0xca,0xc9,0xc8,0xc8,0xc8,0xc8,
+0xc8,0xc7,0xc5,0xc3,0xc2,0xc0,0xbe,0xbc,0xbd,0xbb,0xb7,0xb3,0xb0,0xaf,0xaf,0xb0,
+0xa9,0xa7,0xa4,0xa2,0xa0,0x9e,0x9b,0x98,0x94,0x92,0x8f,0x8d,0x8c,0x90,0x9b,0xa5,
+0x9a,0x8e,0x94,0x9f,0xa0,0xa7,0xb0,0xaf,0xba,0xbb,0xbc,0xbd,0xbd,0xbe,0xc0,0xc1,
+0xc4,0xc6,0xc9,0xce,0xd0,0xcd,0xc8,0xc4,0xc7,0xc7,0xc7,0xc7,0xc6,0xc7,0xc9,0xcb,
+0xd2,0xd4,0xd7,0xda,0xdb,0xda,0xd8,0xd7,0xd1,0xd4,0xd7,0xd8,0xd7,0xd6,0xd4,0xd4,
+0xd2,0xd4,0xd3,0xd2,0xd4,0xda,0xde,0xe0,0xd9,0xdf,0xe2,0xe0,0xe0,0xe3,0xe1,0xdc,
+0xe1,0xde,0xd9,0xd5,0xd5,0xd6,0xd7,0xd8,0xdc,0xdd,0xdd,0xdc,0xdb,0xdb,0xdc,0xdd,
+0xdd,0xdf,0xdd,0xd9,0xd8,0xdb,0xdb,0xd8,0xd3,0xd5,0x88,0x87,0x82,0x79,0xc7,0xd0,
+0xd7,0xce,0xd7,0xdd,0xda,0xb9,0x6d,0x79,0x7b,0xc5,0xd3,0xd8,0xd6,0xdb,0xd5,0xd4,
+0xcd,0xd0,0xc1,0xb1,0xc7,0xd8,0xdb,0xa5,0x81,0xaa,0xd1,0xda,0xd5,0xd6,0xd9,0xd8,
+0xdb,0xda,0xd8,0xd4,0xd1,0xd0,0xd1,0xd2,0xce,0xd3,0xd5,0xd2,0xcf,0xd0,0xcf,0xcd,
+0xc9,0xcc,0xc9,0xc9,0xd2,0xb3,0x79,0x6b,0x73,0x79,0x6c,0x67,0x94,0xc1,0xc5,0xc5,
+0xb4,0x86,0x60,0x79,0xaf,0xb8,0xad,0xb8,0x78,0x85,0x7d,0x77,0x79,0x7a,0x79,0x6f,
+0x6e,0x65,0x60,0x66,0x6d,0x6f,0x6b,0x67,0x76,0x7f,0x89,0x7b,0x7d,0x72,0x6b,0x5a,
+0x5d,0x62,0x65,0x64,0x66,0x69,0x65,0x5e,0x5d,0x61,0x68,0x6d,0x6b,0x67,0x65,0x66,
+0x67,0x69,0x6f,0x7a,0x84,0x88,0x83,0x7d,0x7b,0x71,0x69,0x6c,0x74,0x7b,0x7f,0x80,
+0x71,0x6f,0x6b,0x6b,0x72,0x76,0x6b,0x5c,0x43,0x43,0x49,0x53,0x5a,0x5a,0x55,0x52,
+0x48,0x41,0x40,0x4a,0x51,0x51,0x52,0x55,0x57,0x51,0x47,0x3a,0x2c,0x20,0x1a,0x19,
+0x17,0x1f,0x24,0x21,0x21,0x2a,0x39,0x44,0x47,0x41,0x38,0x31,0x34,0x3f,0x4d,0x56,
+0x58,0x5a,0x53,0x52,0x4c,0x48,0x57,0x60,0x68,0x50,0x41,0x40,0x3b,0x38,0x3d,0x43,
+0x51,0x44,0x34,0x2c,0x32,0x3f,0x49,0x4c,0x58,0x5b,0x58,0x4d,0x42,0x43,0x4d,0x55,
+0x55,0x57,0x5f,0x6c,0x78,0x7c,0x7a,0x76,0x6e,0x5c,0x52,0x56,0x5a,0x57,0x5e,0x6b,
+0x80,0x7d,0x73,0x65,0x5d,0x62,0x6e,0x78,0x6e,0x66,0x59,0x67,0x71,0x85,0x7f,0x7d,
+0x89,0x9b,0xa9,0xa9,0xa5,0xa8,0xad,0xaf,0x9a,0x9c,0x95,0x8a,0x8f,0xa1,0xaa,0xa7,
+0x9f,0x95,0x91,0x94,0x92,0x87,0x81,0x83,0x7f,0x73,0x6e,0x70,0x6b,0x5d,0x59,0x5f,
+0x5f,0x6e,0x82,0x96,0xa6,0xa3,0x82,0x5f,0x2d,0x2e,0x2f,0x2e,0x27,0x20,0x20,0x24,
+0xb0,0xa7,0xa3,0xa4,0xa0,0x99,0x9b,0xa5,0x9f,0x9d,0x9c,0x9e,0x9f,0x9b,0x91,0x89,
+0x92,0x90,0x91,0x94,0x94,0x8b,0x81,0x7a,0x87,0x90,0x92,0x89,0x85,0x8e,0x9b,0xa0,
+0x9c,0x85,0x79,0x84,0x94,0x99,0x97,0x97,0x92,0x95,0x98,0x99,0x9a,0x9a,0x9d,0x9f,
+0xa5,0xa6,0xac,0xb1,0xaa,0x99,0x8c,0x88,0x8d,0x93,0x9c,0xa4,0xab,0xae,0xae,0xac,
+0xa3,0x9e,0x9d,0xa2,0xa8,0xaa,0xaa,0xab,0xa3,0x96,0x86,0x81,0x8b,0x96,0x94,0x8a,
+0x7f,0x75,0x72,0x7b,0x7f,0x79,0x74,0x75,0x7e,0x7a,0x76,0x73,0x6f,0x6d,0x72,0x79,
+0x8b,0x90,0x8d,0x7f,0x70,0x6a,0x6a,0x6a,0x6c,0x78,0x89,0x92,0x90,0x8b,0x8c,0x91,
+0x8c,0x8f,0x8b,0x7f,0x72,0x6d,0x70,0x73,0x84,0x8d,0x94,0x92,0x8f,0x8c,0x82,0x78,
+0x6e,0x72,0x79,0x7b,0x7b,0x81,0x80,0x76,0x6f,0x73,0x6f,0x72,0x72,0x71,0x79,0x78,
+0x76,0x7e,0x7b,0x7a,0x84,0x85,0x82,0x89,0x81,0x8b,0x93,0x90,0x83,0x75,0x6c,0x69,
+0x79,0x78,0x76,0x77,0x79,0x7a,0x77,0x73,0x6e,0x70,0x77,0x7c,0x77,0x6e,0x71,0x7b,
+0x77,0x79,0x7a,0x78,0x77,0x76,0x72,0x6d,0x75,0x76,0x7b,0x82,0x86,0x87,0x8c,0x92,
+0x93,0x96,0x9b,0x9f,0xa4,0xa9,0xae,0xb1,0xb4,0xb5,0xb7,0xb9,0xbb,0xbe,0xc1,0xc3,
+0xc2,0xc4,0xc6,0xc6,0xc6,0xc6,0xc9,0xcb,0xcc,0xcc,0xcc,0xcb,0xcb,0xca,0xc9,0xc9,
+0xc7,0xc7,0xc7,0xc6,0xc4,0xc2,0xc0,0xbf,0xbc,0xb9,0xb6,0xb3,0xb3,0xb3,0xb3,0xb2,
+0xad,0xab,0xa9,0xa8,0xa7,0xa5,0xa3,0xa1,0x9c,0x99,0x93,0x90,0x95,0x9d,0x9f,0x9c,
+0x8d,0x8e,0x93,0x9b,0xa2,0xa7,0xaf,0xb7,0xbf,0xc2,0xc4,0xc3,0xc3,0xc5,0xc6,0xc5,
+0xc7,0xca,0xcd,0xcd,0xc9,0xc6,0xc5,0xc5,0xc3,0xc3,0xc4,0xc6,0xc8,0xca,0xcc,0xcd,
+0xd2,0xd0,0xd0,0xd3,0xd7,0xd9,0xd8,0xd5,0xd7,0xd4,0xd2,0xd2,0xd3,0xd1,0xcd,0xc9,
+0xd1,0xd1,0xcf,0xcc,0xca,0xcd,0xd5,0xdc,0xdb,0xdc,0xde,0xdf,0xdf,0xdd,0xdb,0xd9,
+0xdc,0xd9,0xd8,0xda,0xd8,0xd3,0xd1,0xd2,0xd8,0xda,0xdd,0xdf,0xdf,0xdd,0xda,0xd8,
+0xd8,0xda,0xdd,0xe0,0xe0,0xde,0xdb,0xd8,0xd3,0xce,0xa1,0x77,0x77,0x80,0xa1,0xd9,
+0xdb,0xde,0xc9,0xcb,0xbd,0x94,0x7e,0x79,0x85,0xca,0xdf,0xda,0xd4,0xd2,0xd9,0xcf,
+0xd0,0xd1,0xca,0xce,0xd6,0xe2,0xcc,0x84,0x83,0x85,0xc8,0xde,0xcb,0xd6,0xd4,0xcb,
+0xc1,0xb0,0xaa,0xb3,0xde,0xcc,0xd1,0xd0,0xcc,0xd0,0xd5,0xd7,0xd5,0xd2,0xcd,0xca,
+0xcd,0xc6,0xd1,0xbf,0xa2,0x7c,0x77,0x6d,0x69,0x6e,0x70,0x68,0x96,0xbc,0xc6,0xc3,
+0xbc,0x90,0x60,0x90,0xb2,0xbc,0xbc,0xa8,0x72,0x85,0xa8,0xa0,0x86,0x71,0x75,0x68,
+0x67,0x6d,0x65,0x5c,0x60,0x5e,0x5b,0x61,0x72,0x6e,0x72,0x7b,0x7c,0x71,0x64,0x5d,
+0x5e,0x5c,0x5d,0x63,0x6a,0x6c,0x67,0x61,0x5d,0x68,0x73,0x73,0x69,0x5e,0x58,0x56,
+0x62,0x6b,0x72,0x80,0x85,0x7f,0x80,0x7a,0x7a,0x69,0x68,0x74,0x7a,0x7a,0x7a,0x79,
+0x71,0x77,0x78,0x7e,0x71,0x77,0x6c,0x62,0x4d,0x5f,0x6a,0x62,0x57,0x53,0x51,0x4d,
+0x4c,0x44,0x3e,0x3f,0x3c,0x37,0x37,0x3b,0x4b,0x4b,0x41,0x2f,0x22,0x20,0x1c,0x16,
+0x11,0x18,0x1d,0x1f,0x22,0x2d,0x39,0x42,0x45,0x3c,0x31,0x2b,0x31,0x3d,0x46,0x49,
+0x4e,0x4d,0x4e,0x4b,0x45,0x40,0x43,0x4a,0x4a,0x4b,0x42,0x36,0x32,0x33,0x3d,0x4c,
+0x51,0x55,0x50,0x4e,0x56,0x59,0x50,0x47,0x45,0x4f,0x5d,0x69,0x72,0x7a,0x82,0x87,
+0x76,0x68,0x5f,0x50,0x42,0x54,0x6e,0x70,0x67,0x60,0x55,0x4e,0x51,0x59,0x5d,0x5c,
+0x5a,0x68,0x75,0x79,0x7a,0x82,0x8f,0x99,0x96,0x8e,0x7e,0x74,0x7a,0x8f,0xa2,0xab,
+0xa9,0x97,0x83,0x7b,0x7c,0x80,0x86,0x8b,0x96,0x8b,0x85,0x86,0x81,0x71,0x64,0x61,
+0x7a,0x78,0x77,0x78,0x73,0x6f,0x72,0x7a,0x75,0x7e,0x85,0x80,0x72,0x67,0x65,0x68,
+0x6b,0x67,0x64,0x6f,0x8d,0xa5,0x9d,0x85,0x61,0x35,0x1f,0x26,0x35,0x4d,0x5d,0x58,
+0xa9,0xa8,0xaa,0xab,0xa5,0x9c,0x9b,0xa0,0x9e,0x9e,0x9c,0x96,0x8f,0x89,0x85,0x84,
+0x84,0x87,0x8a,0x88,0x82,0x7d,0x81,0x89,0x89,0x8a,0x88,0x81,0x80,0x83,0x83,0x81,
+0x81,0x89,0x99,0xad,0xba,0xbc,0xb5,0xaf,0xa9,0xa1,0x97,0x92,0x95,0x9d,0xa4,0xa8,
+0xa7,0xad,0xb0,0xaa,0xa0,0x99,0x98,0x99,0xa5,0x92,0x8a,0x98,0xa6,0xa4,0xa0,0xa1,
+0xa4,0xa6,0xac,0xb4,0xb8,0xb4,0xa9,0xa0,0x9d,0x90,0x7f,0x77,0x7d,0x84,0x82,0x7b,
+0x73,0x6e,0x6e,0x74,0x74,0x6e,0x6d,0x73,0x84,0x7c,0x76,0x77,0x7a,0x7b,0x7b,0x7d,
+0x7f,0x83,0x81,0x78,0x72,0x75,0x7c,0x7e,0x84,0x88,0x8a,0x88,0x86,0x8a,0x93,0x9a,
+0xa4,0xa3,0xa1,0x9c,0x8d,0x7b,0x72,0x72,0x7c,0x87,0x8b,0x84,0x7a,0x78,0x79,0x79,
+0x7d,0x74,0x71,0x73,0x73,0x76,0x76,0x70,0x76,0x74,0x68,0x64,0x61,0x62,0x6f,0x73,
+0x81,0x82,0x78,0x72,0x78,0x79,0x77,0x7e,0x7c,0x7d,0x80,0x80,0x7c,0x75,0x6c,0x66,
+0x75,0x79,0x7a,0x79,0x7c,0x82,0x83,0x81,0x7d,0x79,0x72,0x6c,0x6a,0x6d,0x72,0x76,
+0x82,0x82,0x80,0x7b,0x77,0x75,0x74,0x74,0x70,0x73,0x78,0x7e,0x83,0x88,0x8e,0x94,
+0x95,0x98,0x9c,0xa0,0xa4,0xa8,0xac,0xaf,0xb2,0xb4,0xb6,0xb9,0xba,0xbd,0xbf,0xc1,
+0xc2,0xc3,0xc5,0xc6,0xc6,0xc7,0xc9,0xcb,0xcb,0xcb,0xcb,0xcb,0xca,0xc9,0xc8,0xc8,
+0xc8,0xc8,0xc7,0xc6,0xc4,0xc2,0xc1,0xc0,0xbe,0xbc,0xb9,0xb7,0xb6,0xb6,0xb5,0xb4,
+0xb0,0xae,0xac,0xaa,0xa9,0xa8,0xa6,0xa4,0xa3,0x9f,0x98,0x95,0x97,0x9a,0x96,0x8f,
+0x8f,0x90,0x96,0x9e,0xa5,0xab,0xb3,0xbb,0xc4,0xc8,0xcb,0xca,0xc9,0xc9,0xc8,0xc6,
+0xcb,0xca,0xca,0xcb,0xcb,0xcb,0xc9,0xc7,0xc8,0xc9,0xcb,0xcc,0xcd,0xcd,0xcd,0xcc,
+0xcf,0xcf,0xd0,0xd3,0xd6,0xd8,0xd8,0xd7,0xd5,0xd2,0xce,0xcd,0xce,0xcf,0xcf,0xcf,
+0xcc,0xcc,0xcb,0xc9,0xc7,0xc8,0xcc,0xcf,0xcf,0xd0,0xd2,0xd3,0xd5,0xd5,0xd5,0xd5,
+0xd7,0xd5,0xd5,0xd7,0xd6,0xd2,0xd1,0xd3,0xd4,0xd6,0xda,0xdc,0xdd,0xdb,0xd9,0xd7,
+0xd6,0xd8,0xdb,0xde,0xdf,0xdf,0xdd,0xdc,0xdc,0xd3,0xa8,0x7f,0x75,0x75,0x89,0xb0,
+0xc0,0xc2,0xac,0x9b,0x8e,0x7b,0x78,0x80,0x8a,0xca,0xda,0xd7,0xd7,0xd4,0xd9,0xd1,
+0xcd,0xcc,0xcb,0xd3,0xd7,0xdd,0xc6,0x80,0x84,0x82,0xba,0xd0,0xc7,0xce,0xb6,0x93,
+0x82,0x80,0x83,0x97,0xd1,0xcc,0xd2,0xd0,0xdf,0xd5,0xcd,0xcf,0xd0,0xcd,0xcb,0xcc,
+0xc8,0xca,0xcd,0xa6,0x7e,0x64,0x6e,0x6c,0x71,0x6a,0x6a,0x6f,0xa2,0xc4,0xc9,0xc7,
+0xbc,0x8f,0x65,0x97,0xbf,0xbe,0xb9,0xa2,0x67,0x89,0xaf,0xa9,0x90,0x68,0x65,0x6f,
+0x6d,0x6f,0x67,0x5c,0x5a,0x5e,0x67,0x71,0x6d,0x6a,0x6c,0x75,0x76,0x6d,0x62,0x5c,
+0x5b,0x5b,0x5c,0x5f,0x64,0x66,0x62,0x5c,0x5c,0x64,0x6c,0x6e,0x65,0x59,0x55,0x57,
+0x5d,0x66,0x6a,0x74,0x76,0x74,0x7b,0x7a,0x73,0x70,0x76,0x7f,0x82,0x82,0x7f,0x78,
+0x7c,0x72,0x6e,0x6c,0x70,0x71,0x68,0x54,0x51,0x65,0x6b,0x59,0x4d,0x52,0x53,0x4b,
+0x54,0x4b,0x43,0x40,0x3c,0x37,0x37,0x3c,0x4a,0x48,0x3c,0x2a,0x1f,0x1e,0x1c,0x16,
+0x15,0x18,0x1b,0x1d,0x24,0x30,0x39,0x3d,0x46,0x39,0x29,0x21,0x22,0x29,0x32,0x37,
+0x38,0x3d,0x40,0x3e,0x38,0x36,0x36,0x37,0x48,0x53,0x4e,0x3a,0x29,0x26,0x35,0x48,
+0x70,0x81,0x7e,0x66,0x58,0x58,0x5b,0x5f,0x4f,0x5d,0x66,0x66,0x68,0x67,0x58,0x44,
+0x35,0x3a,0x32,0x2b,0x3e,0x5c,0x68,0x64,0x64,0x6e,0x7d,0x87,0x86,0x7b,0x6d,0x65,
+0x54,0x4a,0x49,0x5b,0x73,0x80,0x82,0x81,0x8d,0x91,0x9b,0xa7,0xaa,0xa3,0x99,0x92,
+0x82,0x8c,0x90,0x8f,0x9a,0xaa,0xa8,0x9a,0x88,0x72,0x62,0x68,0x72,0x70,0x65,0x5e,
+0x50,0x4d,0x4a,0x48,0x48,0x4d,0x57,0x61,0x62,0x62,0x63,0x66,0x6b,0x70,0x75,0x78,
+0x7f,0x83,0x87,0x89,0x8c,0x93,0x9a,0xa0,0x94,0x74,0x5b,0x55,0x5b,0x69,0x6b,0x5c,
+0xa5,0xa9,0xac,0xaa,0xa7,0xa6,0xa8,0xac,0xa5,0xa5,0xa4,0xa0,0x9b,0x94,0x8f,0x8d,
+0x97,0x91,0x8b,0x86,0x83,0x81,0x83,0x87,0x8a,0x8b,0x8b,0x8b,0x8b,0x88,0x86,0x83,
+0x89,0x89,0x89,0x8e,0x9b,0xa9,0xaa,0xa5,0x90,0x99,0xa3,0xa6,0xa1,0x9d,0x9b,0x9d,
+0xac,0xbc,0xc8,0xc6,0xbf,0xba,0xb3,0xab,0x96,0x87,0x81,0x8b,0x94,0x95,0x99,0xa1,
+0xa8,0xa9,0xa7,0xa6,0xa8,0xa9,0xa1,0x97,0x7e,0x7f,0x81,0x85,0x88,0x83,0x76,0x69,
+0x6c,0x6d,0x71,0x73,0x6c,0x64,0x68,0x73,0x82,0x7b,0x75,0x76,0x79,0x7b,0x7b,0x7c,
+0x89,0x8e,0x8f,0x8b,0x89,0x8b,0x8a,0x87,0x97,0x93,0x87,0x79,0x75,0x7d,0x87,0x8c,
+0x8b,0x86,0x87,0x8d,0x89,0x7c,0x76,0x7a,0x6d,0x6e,0x6d,0x6d,0x73,0x7e,0x83,0x83,
+0x61,0x58,0x5f,0x72,0x78,0x74,0x6e,0x69,0x67,0x69,0x61,0x61,0x60,0x60,0x6c,0x6e,
+0x78,0x7a,0x78,0x7a,0x81,0x80,0x7a,0x7a,0x85,0x8b,0x8f,0x8b,0x80,0x78,0x76,0x77,
+0x73,0x7a,0x7e,0x7e,0x7f,0x83,0x83,0x80,0x78,0x79,0x76,0x74,0x7e,0x8c,0x90,0x8a,
+0x79,0x7c,0x7e,0x7c,0x78,0x73,0x72,0x72,0x6e,0x72,0x76,0x7a,0x80,0x8a,0x91,0x95,
+0x97,0x9a,0x9d,0xa1,0xa4,0xa7,0xab,0xad,0xaf,0xb2,0xb5,0xb8,0xba,0xbb,0xbd,0xbe,
+0xc1,0xc2,0xc4,0xc5,0xc6,0xc8,0xca,0xcb,0xca,0xca,0xca,0xca,0xc9,0xc9,0xc8,0xc7,
+0xc9,0xc8,0xc6,0xc5,0xc3,0xc2,0xc2,0xc1,0xbf,0xbd,0xbb,0xb9,0xb8,0xb7,0xb6,0xb5,
+0xb1,0xb0,0xad,0xac,0xab,0xa9,0xa7,0xa5,0xa6,0xa2,0x9d,0x99,0x99,0x97,0x8e,0x84,
+0x91,0x94,0x9b,0xa3,0xaa,0xb0,0xb9,0xc0,0xc6,0xcb,0xcf,0xcf,0xce,0xce,0xcc,0xc9,
+0xcb,0xc8,0xc5,0xc7,0xcd,0xd0,0xcf,0xcc,0xca,0xcc,0xcd,0xcf,0xcf,0xce,0xcc,0xcb,
+0xcd,0xce,0xd0,0xd3,0xd6,0xd8,0xd9,0xda,0xda,0xd7,0xd3,0xd0,0xd0,0xd2,0xd5,0xd7,
+0xd2,0xd2,0xd2,0xd0,0xcf,0xcd,0xcc,0xcc,0xcb,0xcc,0xcc,0xce,0xd1,0xd4,0xd7,0xd9,
+0xd0,0xce,0xcf,0xd1,0xd2,0xd1,0xd2,0xd4,0xd4,0xd5,0xd7,0xd9,0xd9,0xd7,0xd5,0xd3,
+0xd3,0xd5,0xd8,0xdb,0xdd,0xde,0xdf,0xdf,0xd3,0xde,0xc1,0x8d,0x7a,0x81,0x7b,0x6c,
+0x79,0x7f,0x7f,0x74,0x7a,0x79,0x70,0x76,0x92,0xcd,0xd6,0xd5,0xdd,0xd7,0xd8,0xd6,
+0xda,0xbf,0xbc,0xd6,0xe0,0xdb,0xbb,0x7c,0x80,0x6f,0xa9,0xd5,0xba,0x8e,0x77,0x80,
+0x7c,0x7a,0x74,0x87,0xca,0xd0,0xd2,0xce,0xcc,0xce,0xd2,0xd5,0xd5,0xd3,0xce,0xca,
+0xc2,0xc4,0xb6,0x84,0x65,0x61,0x6c,0x62,0x6c,0x66,0x73,0x83,0xae,0xc0,0xc2,0xc4,
+0xc2,0x94,0x6d,0x98,0xc7,0xbd,0xb7,0x9b,0x5d,0x91,0xb7,0xab,0x96,0x6b,0x63,0x74,
+0x71,0x70,0x6e,0x64,0x59,0x5d,0x6b,0x72,0x69,0x68,0x6c,0x75,0x77,0x6e,0x64,0x5f,
+0x5e,0x60,0x60,0x60,0x62,0x65,0x62,0x5c,0x59,0x5d,0x67,0x6d,0x66,0x58,0x55,0x5a,
+0x5f,0x66,0x65,0x69,0x69,0x69,0x77,0x7a,0x75,0x77,0x7d,0x7f,0x7c,0x7e,0x7b,0x6f,
+0x6f,0x67,0x6d,0x65,0x6c,0x63,0x65,0x56,0x5c,0x5c,0x5e,0x5b,0x51,0x48,0x4c,0x56,
+0x62,0x57,0x4c,0x45,0x3e,0x39,0x3a,0x3f,0x4d,0x46,0x37,0x26,0x1e,0x1e,0x1c,0x18,
+0x17,0x17,0x19,0x1f,0x2c,0x3a,0x41,0x42,0x3e,0x34,0x2c,0x2e,0x35,0x3d,0x46,0x4e,
+0x57,0x5b,0x5d,0x59,0x55,0x50,0x4b,0x46,0x4f,0x64,0x69,0x52,0x34,0x24,0x2f,0x46,
+0x72,0x8b,0x8c,0x72,0x62,0x67,0x73,0x7d,0x76,0x6d,0x5a,0x45,0x3a,0x38,0x32,0x29,
+0x48,0x58,0x56,0x59,0x76,0x84,0x7d,0x7d,0x80,0x85,0x7d,0x69,0x63,0x6f,0x7d,0x81,
+0x60,0x53,0x4d,0x56,0x62,0x6c,0x7d,0x8d,0x7f,0x78,0x71,0x75,0x82,0x8b,0x88,0x80,
+0x76,0x78,0x7e,0x8a,0x95,0x94,0x88,0x7d,0x6f,0x7c,0x87,0x7d,0x56,0x29,0x12,0x10,
+0x31,0x3a,0x4c,0x66,0x7e,0x86,0x7c,0x6d,0x6f,0x6c,0x6a,0x6d,0x75,0x7b,0x7d,0x7c,
+0x7c,0x7e,0x8a,0x98,0x99,0x92,0x92,0x99,0x8f,0x87,0x78,0x6a,0x68,0x6d,0x6b,0x61,
+0xaf,0xaf,0xa9,0x9f,0x9c,0xa2,0xa9,0xab,0xaa,0xa2,0x9a,0x99,0x9b,0x9b,0x94,0x8d,
+0x8c,0x86,0x83,0x84,0x87,0x88,0x89,0x8b,0x8c,0x90,0x95,0x95,0x8e,0x86,0x87,0x8d,
+0x95,0x8f,0x88,0x87,0x8e,0x97,0x98,0x94,0x97,0x9c,0xa1,0x9f,0x99,0x92,0x90,0x90,
+0x95,0x9a,0x9d,0x9d,0x9e,0xa0,0x9d,0x97,0x91,0x95,0x96,0x92,0x8f,0x92,0x96,0x97,
+0xa6,0xad,0xb1,0xb0,0xb1,0xae,0xa0,0x8e,0x84,0x86,0x8a,0x90,0x94,0x95,0x91,0x8d,
+0x82,0x80,0x7a,0x6f,0x5e,0x56,0x61,0x73,0x76,0x73,0x6e,0x6a,0x68,0x69,0x6e,0x73,
+0x74,0x7c,0x84,0x89,0x90,0x97,0x98,0x94,0x81,0x80,0x78,0x71,0x74,0x81,0x8a,0x8b,
+0x89,0x83,0x81,0x84,0x83,0x7c,0x76,0x75,0x72,0x6d,0x69,0x6a,0x76,0x83,0x87,0x85,
+0x7a,0x6a,0x6a,0x75,0x71,0x65,0x64,0x69,0x71,0x75,0x6f,0x6d,0x66,0x5d,0x61,0x5e,
+0x64,0x67,0x6e,0x7a,0x84,0x83,0x7c,0x78,0x82,0x89,0x8f,0x8b,0x81,0x79,0x78,0x7a,
+0x77,0x79,0x7f,0x86,0x85,0x7d,0x76,0x73,0x6b,0x6f,0x70,0x71,0x78,0x81,0x81,0x7b,
+0x85,0x82,0x81,0x82,0x7f,0x7a,0x78,0x79,0x8d,0x8e,0x8c,0x87,0x87,0x8c,0x8f,0x8e,
+0x97,0x9a,0x9d,0xa1,0xa4,0xa7,0xaa,0xad,0xae,0xb1,0xb5,0xb8,0xb9,0xba,0xbc,0xbd,
+0xc0,0xc1,0xc3,0xc5,0xc6,0xc8,0xc9,0xca,0xc9,0xc9,0xc9,0xc9,0xc9,0xc8,0xc8,0xc7,
+0xc9,0xc8,0xc6,0xc4,0xc3,0xc2,0xc2,0xc2,0xbe,0xbd,0xbb,0xb9,0xb8,0xb7,0xb5,0xb3,
+0xb1,0xaf,0xad,0xab,0xaa,0xa9,0xa6,0xa5,0xa4,0xa2,0x9f,0x9b,0x97,0x91,0x8a,0x84,
+0x94,0x99,0xa0,0xa8,0xad,0xb4,0xbc,0xc3,0xc3,0xc8,0xcd,0xce,0xce,0xcf,0xcf,0xcd,
+0xc9,0xc6,0xc3,0xc6,0xcd,0xd3,0xd4,0xd4,0xcc,0xcd,0xce,0xcf,0xce,0xce,0xcd,0xcc,
+0xcc,0xce,0xd1,0xd3,0xd5,0xd7,0xda,0xdb,0xdd,0xdc,0xd9,0xd6,0xd3,0xd2,0xd4,0xd5,
+0xd2,0xd0,0xcf,0xcf,0xce,0xcc,0xc9,0xc6,0xc3,0xc2,0xc0,0xc0,0xc3,0xc6,0xca,0xcd,
+0xc8,0xc9,0xca,0xcd,0xd0,0xd2,0xd4,0xd6,0xd7,0xd7,0xd7,0xd7,0xd5,0xd3,0xd0,0xcf,
+0xd1,0xd2,0xd4,0xd7,0xd9,0xdc,0xdd,0xde,0xd8,0xd5,0xcc,0xb2,0x88,0x6b,0x6f,0x80,
+0x7a,0x73,0x78,0x73,0x89,0x89,0x71,0x6f,0x9b,0xd1,0xd6,0xd8,0xe2,0xd8,0xd7,0xd7,
+0xb9,0x89,0x81,0xa2,0xad,0xa5,0x95,0x7a,0x78,0x7f,0xa0,0x9d,0x7e,0x75,0x79,0x81,
+0x86,0x82,0x77,0x8e,0xd0,0xd5,0xd0,0xcb,0xcb,0xd9,0xde,0xd2,0xc8,0xcb,0xcf,0xcd,
+0xc9,0xc6,0xa9,0x77,0x62,0x6c,0x73,0x66,0x68,0x78,0x9f,0xae,0xc1,0xc0,0xc2,0xc9,
+0xc9,0x9f,0x73,0x8d,0xc2,0xbb,0xb7,0x96,0x5f,0x95,0xbc,0xab,0x98,0x7d,0x77,0x76,
+0x6e,0x6d,0x72,0x6b,0x5a,0x59,0x61,0x5f,0x66,0x68,0x6f,0x78,0x79,0x70,0x66,0x60,
+0x59,0x5c,0x5c,0x5a,0x5b,0x5e,0x5c,0x57,0x57,0x59,0x65,0x6f,0x6a,0x5b,0x58,0x5f,
+0x66,0x6c,0x67,0x68,0x67,0x69,0x77,0x79,0x78,0x73,0x73,0x73,0x73,0x78,0x76,0x6b,
+0x61,0x61,0x6c,0x6a,0x67,0x5d,0x5e,0x57,0x61,0x5a,0x5a,0x5e,0x56,0x4b,0x52,0x64,
+0x6e,0x63,0x56,0x4a,0x41,0x3d,0x40,0x46,0x52,0x46,0x35,0x26,0x20,0x1f,0x1e,0x1c,
+0x1b,0x1d,0x22,0x2a,0x38,0x44,0x49,0x47,0x49,0x3d,0x34,0x35,0x3b,0x42,0x4c,0x57,
+0x5f,0x5d,0x5f,0x66,0x69,0x63,0x5c,0x58,0x55,0x6b,0x79,0x70,0x51,0x34,0x34,0x4a,
+0x73,0x85,0x87,0x79,0x73,0x76,0x79,0x7d,0x70,0x57,0x3c,0x2f,0x2a,0x2e,0x3e,0x52,
+0x6b,0x6e,0x6e,0x73,0x75,0x6a,0x6a,0x7c,0x8a,0x90,0x91,0x8b,0x86,0x89,0x8f,0x92,
+0x98,0x84,0x6e,0x62,0x5e,0x5c,0x5d,0x61,0x7d,0x81,0x7e,0x76,0x77,0x78,0x6a,0x55,
+0x54,0x59,0x60,0x61,0x56,0x4c,0x52,0x60,0x71,0x54,0x34,0x23,0x1f,0x23,0x2b,0x33,
+0x39,0x56,0x73,0x7d,0x79,0x74,0x71,0x70,0x66,0x66,0x66,0x68,0x6d,0x73,0x79,0x7d,
+0x7c,0x74,0x75,0x83,0x8b,0x84,0x7c,0x7a,0x7e,0x89,0x88,0x7c,0x75,0x75,0x79,0x80,
+0x9b,0x9c,0x98,0x92,0x96,0xa1,0xa7,0xa6,0x9f,0x94,0x88,0x82,0x84,0x87,0x85,0x82,
+0x82,0x85,0x8a,0x8a,0x85,0x83,0x89,0x91,0x90,0x90,0x90,0x8b,0x80,0x77,0x77,0x7b,
+0x77,0x7c,0x84,0x89,0x88,0x87,0x8d,0x95,0xa8,0xa4,0xa5,0xad,0xb3,0xa8,0x8e,0x78,
+0x65,0x6b,0x78,0x85,0x86,0x7a,0x6c,0x65,0x77,0x80,0x88,0x8d,0x96,0xa1,0xa7,0xa6,
+0xa1,0xa6,0xa7,0xa3,0xa2,0xa2,0x98,0x8a,0x7f,0x7d,0x7c,0x7e,0x83,0x89,0x8e,0x92,
+0x92,0x92,0x90,0x84,0x6f,0x5e,0x5d,0x64,0x6e,0x6a,0x63,0x5d,0x5c,0x60,0x66,0x69,
+0x7a,0x7e,0x7f,0x7c,0x7c,0x7f,0x7d,0x77,0x73,0x75,0x75,0x75,0x7c,0x86,0x89,0x87,
+0x81,0x83,0x84,0x85,0x8a,0x90,0x8e,0x88,0x87,0x86,0x80,0x75,0x6d,0x70,0x78,0x7f,
+0x7b,0x70,0x75,0x7e,0x73,0x66,0x6b,0x78,0x7f,0x82,0x7a,0x75,0x6b,0x61,0x65,0x63,
+0x5f,0x5b,0x5f,0x69,0x70,0x72,0x70,0x6d,0x75,0x73,0x74,0x7b,0x82,0x81,0x79,0x70,
+0x6d,0x67,0x6d,0x7b,0x7b,0x6d,0x64,0x66,0x81,0x80,0x7d,0x7a,0x78,0x7b,0x84,0x8d,
+0x99,0x8c,0x82,0x81,0x80,0x7b,0x78,0x7a,0x89,0x89,0x88,0x86,0x88,0x8d,0x90,0x90,
+0x96,0x98,0x9c,0xa0,0xa3,0xa7,0xab,0xad,0xaf,0xb1,0xb5,0xb8,0xb9,0xba,0xbb,0xbc,
+0xbf,0xc0,0xc1,0xc4,0xc6,0xc8,0xc8,0xc8,0xc8,0xc8,0xc9,0xc9,0xc9,0xc8,0xc8,0xc8,
+0xc8,0xc7,0xc5,0xc3,0xc2,0xc2,0xc2,0xc2,0xbe,0xbc,0xba,0xb9,0xb7,0xb6,0xb3,0xb2,
+0xb0,0xaf,0xac,0xab,0xaa,0xa8,0xa6,0xa4,0xa1,0xa1,0xa0,0x9a,0x91,0x8a,0x88,0x8a,
+0x96,0x9d,0xa5,0xab,0xb0,0xb6,0xbe,0xc3,0xc4,0xc8,0xcb,0xcb,0xcc,0xcf,0xd0,0xcf,
+0xcb,0xcb,0xca,0xcb,0xce,0xd2,0xd6,0xd8,0xd4,0xd3,0xd1,0xd0,0xce,0xce,0xce,0xce,
+0xcb,0xcd,0xcf,0xd0,0xd2,0xd4,0xd6,0xd8,0xd8,0xd8,0xd9,0xd8,0xd5,0xd2,0xd0,0xcf,
+0xd1,0xcf,0xcc,0xcb,0xcc,0xcb,0xc9,0xc6,0xc3,0xc0,0xbd,0xbb,0xbc,0xbe,0xc2,0xc4,
+0xc7,0xc9,0xcc,0xcf,0xd3,0xd7,0xd9,0xda,0xd9,0xd8,0xd7,0xd6,0xd4,0xd1,0xcf,0xce,
+0xd0,0xd1,0xd2,0xd3,0xd5,0xd7,0xd9,0xda,0xdb,0xd2,0xd9,0xde,0xbf,0x91,0x75,0x6c,
+0x75,0x6b,0x80,0x8d,0xab,0x98,0x76,0x72,0xa4,0xd3,0xd8,0xda,0xe0,0xd5,0xd3,0xd0,
+0xa0,0x7d,0x72,0x77,0x73,0x71,0x75,0x78,0x7e,0x74,0x7b,0x7f,0x7b,0x7b,0x7b,0x7d,
+0x70,0x7a,0x80,0xa2,0xd6,0xd4,0xcd,0xce,0xd9,0xd1,0xbd,0xa1,0x90,0x94,0xa6,0xb6,
+0xc5,0xc8,0xae,0x85,0x70,0x75,0x73,0x69,0x63,0x87,0xbe,0xc6,0xc6,0xbf,0xc2,0xc6,
+0xca,0xa7,0x75,0x83,0xb9,0xba,0xb7,0x92,0x65,0x88,0xb5,0xaf,0x97,0x80,0x80,0x75,
+0x6f,0x6b,0x6e,0x69,0x5b,0x5a,0x5f,0x59,0x6b,0x6c,0x6f,0x72,0x70,0x69,0x62,0x5e,
+0x5e,0x5f,0x60,0x61,0x62,0x64,0x62,0x5f,0x5d,0x5c,0x64,0x6c,0x66,0x59,0x58,0x60,
+0x68,0x6d,0x68,0x6a,0x6c,0x6f,0x79,0x77,0x70,0x65,0x66,0x71,0x78,0x7a,0x74,0x6a,
+0x65,0x63,0x64,0x6e,0x63,0x5f,0x55,0x50,0x60,0x67,0x63,0x54,0x4c,0x56,0x63,0x6a,
+0x74,0x6a,0x5b,0x4d,0x44,0x41,0x46,0x4c,0x54,0x46,0x34,0x29,0x23,0x20,0x1e,0x1d,
+0x22,0x28,0x31,0x3b,0x45,0x4c,0x4c,0x48,0x55,0x45,0x35,0x2f,0x31,0x3a,0x49,0x56,
+0x62,0x5b,0x61,0x75,0x7e,0x74,0x6a,0x68,0x5b,0x66,0x76,0x7f,0x6e,0x4b,0x43,0x56,
+0x76,0x83,0x8a,0x87,0x80,0x77,0x77,0x81,0x68,0x49,0x2b,0x23,0x2a,0x3a,0x52,0x68,
+0x76,0x69,0x6a,0x6b,0x5b,0x58,0x70,0x87,0x8f,0x85,0x89,0x98,0x9c,0x95,0x9b,0xac,
+0x95,0x92,0x8a,0x7e,0x76,0x6f,0x63,0x57,0x42,0x51,0x64,0x72,0x7c,0x84,0x8b,0x8e,
+0x8e,0x84,0x73,0x6b,0x78,0x87,0x7d,0x66,0x2c,0x2b,0x2c,0x2e,0x32,0x3d,0x54,0x69,
+0x73,0x74,0x72,0x6e,0x6e,0x6c,0x60,0x53,0x5a,0x56,0x4e,0x49,0x46,0x47,0x49,0x4b,
+0x4e,0x4a,0x48,0x4a,0x4f,0x56,0x5e,0x63,0x71,0x78,0x78,0x71,0x6c,0x68,0x6c,0x78,
+0x85,0x8c,0x91,0x95,0x9b,0xa0,0x9f,0x9a,0x9b,0x9e,0xa2,0xa1,0x9e,0x9a,0x99,0x99,
+0x91,0x8f,0x8d,0x8d,0x8a,0x88,0x88,0x8b,0x91,0x8d,0x88,0x85,0x84,0x83,0x80,0x7d,
+0x82,0x85,0x8d,0x95,0x98,0x97,0x9d,0xa5,0x90,0x89,0x86,0x8d,0x99,0x9c,0x92,0x87,
+0x89,0x84,0x83,0x84,0x80,0x7a,0x7d,0x85,0x92,0x92,0x97,0x9d,0x9c,0x99,0x9e,0xa9,
+0xa2,0x9f,0x97,0x8c,0x8a,0x8e,0x90,0x8e,0x89,0x84,0x7f,0x80,0x82,0x84,0x87,0x8a,
+0x95,0x91,0x8b,0x82,0x77,0x6d,0x6b,0x6e,0x6d,0x68,0x60,0x5d,0x62,0x68,0x68,0x65,
+0x6c,0x75,0x7a,0x79,0x76,0x73,0x6d,0x67,0x74,0x74,0x74,0x76,0x77,0x78,0x78,0x78,
+0x8c,0x8c,0x84,0x77,0x76,0x80,0x82,0x7d,0x88,0x84,0x7b,0x6f,0x69,0x6e,0x7a,0x85,
+0x89,0x86,0x8c,0x8d,0x7a,0x68,0x66,0x6a,0x6d,0x75,0x73,0x74,0x6d,0x64,0x67,0x64,
+0x66,0x5f,0x63,0x6c,0x6c,0x6b,0x6b,0x67,0x6c,0x6c,0x6f,0x75,0x7a,0x79,0x74,0x6f,
+0x76,0x6e,0x72,0x80,0x82,0x78,0x76,0x7e,0x7b,0x7c,0x7b,0x77,0x72,0x76,0x85,0x94,
+0x8c,0x81,0x7e,0x86,0x89,0x7f,0x74,0x70,0x71,0x71,0x74,0x7c,0x84,0x8b,0x90,0x95,
+0x94,0x97,0x9b,0x9f,0xa2,0xa6,0xaa,0xad,0xaf,0xb2,0xb5,0xb7,0xb8,0xba,0xbb,0xbc,
+0xbe,0xbe,0xc0,0xc2,0xc5,0xc7,0xc6,0xc6,0xc7,0xc7,0xc7,0xc8,0xc8,0xc7,0xc7,0xc7,
+0xc6,0xc5,0xc4,0xc3,0xc2,0xc1,0xc1,0xc1,0xbf,0xbd,0xba,0xb8,0xb7,0xb5,0xb4,0xb2,
+0xb1,0xb0,0xae,0xac,0xab,0xa9,0xa7,0xa6,0xa2,0xa3,0xa1,0x98,0x8b,0x83,0x87,0x8f,
+0x96,0x9f,0xa8,0xad,0xb1,0xb8,0xbf,0xc3,0xc8,0xcc,0xcd,0xcd,0xcd,0xcf,0xd0,0xd0,
+0xd1,0xd3,0xd4,0xd2,0xd0,0xd0,0xd4,0xd7,0xd9,0xd7,0xd3,0xd0,0xcd,0xcc,0xcc,0xcc,
+0xcb,0xcb,0xcb,0xcc,0xcd,0xcf,0xd0,0xd1,0xd4,0xd6,0xd8,0xda,0xda,0xd8,0xd5,0xd2,
+0xd1,0xce,0xcb,0xca,0xcb,0xcc,0xcc,0xcb,0xcd,0xca,0xc7,0xc5,0xc4,0xc5,0xc8,0xc9,
+0xcc,0xd0,0xd3,0xd5,0xd8,0xdb,0xdd,0xdc,0xd7,0xd6,0xd5,0xd3,0xd2,0xd1,0xd1,0xd1,
+0xd0,0xd0,0xd0,0xd1,0xd2,0xd3,0xd4,0xd5,0xd2,0xcd,0xc8,0xc5,0xcc,0xd7,0xcc,0xb3,
+0xb4,0xae,0xc3,0xca,0xd0,0x95,0x6d,0x69,0xb1,0xd5,0xd7,0xd8,0xd9,0xd2,0xd1,0xc2,
+0x82,0x7c,0x77,0x70,0x7b,0x85,0x74,0x66,0x68,0x76,0x7b,0x74,0x73,0x7b,0x7c,0x78,
+0x8a,0x9b,0xa8,0xc1,0xd6,0xcf,0xcd,0xce,0xb5,0x9c,0x85,0x7c,0x74,0x6e,0x76,0x88,
+0xc5,0xd5,0xcb,0xbe,0xb5,0xb2,0x90,0x73,0x64,0x87,0xbe,0xc1,0xbf,0xbe,0xc2,0xbd,
+0xc3,0xa7,0x71,0x81,0xb5,0xbd,0xb7,0x96,0x6b,0x6e,0x98,0xa9,0x95,0x72,0x72,0x6f,
+0x78,0x72,0x6c,0x65,0x5f,0x63,0x6a,0x69,0x75,0x72,0x6e,0x69,0x64,0x62,0x61,0x62,
+0x6b,0x67,0x68,0x6f,0x72,0x70,0x6d,0x6e,0x67,0x64,0x65,0x65,0x5e,0x55,0x57,0x5f,
+0x63,0x6a,0x65,0x68,0x6c,0x70,0x78,0x73,0x67,0x61,0x69,0x78,0x7d,0x78,0x6b,0x5e,
+0x60,0x62,0x64,0x71,0x5b,0x58,0x53,0x5a,0x64,0x62,0x5a,0x4b,0x41,0x48,0x5d,0x6f,
+0x75,0x6d,0x5f,0x50,0x46,0x44,0x4a,0x4f,0x4f,0x41,0x32,0x2a,0x25,0x1f,0x1c,0x1c,
+0x21,0x2d,0x3d,0x4a,0x53,0x56,0x52,0x4c,0x46,0x40,0x38,0x34,0x36,0x3d,0x46,0x4b,
+0x42,0x41,0x51,0x6b,0x79,0x74,0x6e,0x70,0x6c,0x6b,0x74,0x84,0x7f,0x62,0x56,0x64,
+0x77,0x84,0x8d,0x88,0x77,0x64,0x66,0x79,0x71,0x5c,0x40,0x33,0x3f,0x55,0x5b,0x54,
+0x4f,0x49,0x53,0x59,0x53,0x63,0x7c,0x80,0x83,0x8a,0x91,0x93,0x95,0x99,0x9c,0x9d,
+0x98,0xa1,0x9f,0x90,0x80,0x73,0x61,0x50,0x40,0x2d,0x24,0x2b,0x2d,0x28,0x2e,0x3e,
+0x31,0x36,0x36,0x2f,0x2a,0x28,0x24,0x1e,0x25,0x29,0x33,0x40,0x48,0x4a,0x48,0x48,
+0x50,0x54,0x57,0x55,0x53,0x53,0x53,0x53,0x46,0x44,0x46,0x4e,0x57,0x5a,0x54,0x4e,
+0x44,0x4c,0x52,0x52,0x53,0x54,0x52,0x4d,0x44,0x3e,0x3e,0x45,0x4e,0x56,0x5c,0x5e,
+0x96,0x9c,0xa1,0xa0,0x9a,0x91,0x8a,0x85,0x87,0x92,0xa0,0xa7,0xa4,0x9e,0x99,0x97,
+0x92,0x8a,0x87,0x8d,0x95,0x96,0x90,0x8a,0x8e,0x8f,0x8f,0x8e,0x91,0x95,0x93,0x8c,
+0x88,0x8f,0x99,0xa1,0xa6,0xa4,0x9b,0x91,0x78,0x7f,0x8b,0x97,0x9f,0xa4,0xa5,0xa5,
+0x9e,0x99,0x96,0x97,0x9a,0x98,0x93,0x8f,0x7e,0x7e,0x84,0x8b,0x8d,0x8f,0x98,0xa4,
+0x9f,0x9e,0x9b,0x95,0x8f,0x8c,0x8b,0x8b,0x8b,0x7f,0x74,0x71,0x73,0x76,0x7a,0x7d,
+0x75,0x68,0x5a,0x55,0x59,0x5e,0x62,0x63,0x68,0x6d,0x70,0x6e,0x6c,0x6c,0x6b,0x68,
+0x74,0x7c,0x7f,0x76,0x6a,0x61,0x5a,0x55,0x6a,0x68,0x6b,0x71,0x71,0x6e,0x71,0x77,
+0x7a,0x7c,0x7b,0x77,0x79,0x82,0x8a,0x8c,0x81,0x7c,0x76,0x72,0x73,0x7c,0x89,0x94,
+0x92,0x8c,0x89,0x82,0x78,0x79,0x81,0x83,0x7f,0x89,0x8a,0x8d,0x87,0x7d,0x80,0x7c,
+0x71,0x67,0x6b,0x72,0x6d,0x69,0x6b,0x67,0x6a,0x6f,0x72,0x6e,0x66,0x62,0x65,0x6a,
+0x6e,0x6f,0x74,0x78,0x76,0x72,0x75,0x7d,0x7e,0x81,0x7f,0x76,0x70,0x73,0x7b,0x80,
+0x7b,0x75,0x7c,0x8e,0x93,0x85,0x76,0x72,0x7a,0x75,0x78,0x84,0x8a,0x89,0x8b,0x91,
+0x94,0x96,0x9a,0x9e,0xa1,0xa5,0xa9,0xac,0xb0,0xb2,0xb4,0xb6,0xb7,0xb8,0xbb,0xbc,
+0xbd,0xbd,0xbf,0xc1,0xc4,0xc5,0xc4,0xc3,0xc5,0xc5,0xc5,0xc6,0xc6,0xc6,0xc5,0xc5,
+0xc4,0xc4,0xc4,0xc3,0xc2,0xc1,0xc0,0xbf,0xc0,0xbd,0xb9,0xb7,0xb5,0xb4,0xb3,0xb2,
+0xb2,0xb0,0xae,0xac,0xab,0xaa,0xa8,0xa6,0xa5,0xa3,0xa0,0x97,0x8a,0x83,0x88,0x92,
+0x95,0xa0,0xaa,0xae,0xb2,0xba,0xc1,0xc5,0xc9,0xcd,0xd0,0xd0,0xd1,0xd2,0xd3,0xd1,
+0xd4,0xd6,0xd7,0xd5,0xd2,0xd0,0xd2,0xd4,0xd8,0xd7,0xd4,0xd2,0xd0,0xcf,0xce,0xce,
+0xcd,0xcb,0xc9,0xca,0xcb,0xcc,0xcc,0xcb,0xd0,0xcf,0xd0,0xd2,0xd4,0xd6,0xd4,0xd3,
+0xcc,0xca,0xc7,0xc6,0xc6,0xc7,0xc8,0xc9,0xcd,0xcb,0xca,0xc8,0xc9,0xca,0xcc,0xcd,
+0xd2,0xd6,0xd9,0xd9,0xda,0xdc,0xdb,0xd8,0xd6,0xd5,0xd3,0xd1,0xcf,0xcf,0xcf,0xcf,
+0xd0,0xd0,0xd0,0xd0,0xd1,0xd1,0xd2,0xd2,0xd6,0xd5,0xda,0xdf,0xd6,0xc8,0xca,0xd7,
+0xcf,0xc9,0xce,0xcb,0xc7,0x88,0x7b,0x82,0xc3,0xd9,0xd7,0xd5,0xd3,0xd2,0xd3,0xb5,
+0x77,0x7a,0x7c,0x8a,0xbd,0xcc,0x98,0x75,0x77,0x72,0x71,0x7f,0x81,0x76,0x8e,0xba,
+0xbf,0xca,0xcb,0xd0,0xd1,0xce,0xc6,0xb1,0x84,0x7a,0x77,0x7d,0x7e,0x76,0x70,0x71,
+0xaa,0xc5,0xc7,0xca,0xce,0xcb,0x94,0x66,0x6e,0x8a,0xbd,0xc2,0xc1,0xc2,0xc6,0xbf,
+0xbe,0xa2,0x67,0x82,0xb4,0xbf,0xb9,0xa6,0x78,0x63,0x73,0x8e,0x97,0x75,0x6b,0x6d,
+0x79,0x78,0x6f,0x65,0x65,0x67,0x69,0x6d,0x73,0x72,0x6d,0x66,0x62,0x62,0x65,0x68,
+0x69,0x60,0x60,0x6d,0x72,0x6b,0x67,0x6b,0x6c,0x6c,0x6b,0x68,0x60,0x5a,0x5a,0x5e,
+0x61,0x6a,0x65,0x65,0x66,0x6a,0x74,0x71,0x69,0x6c,0x76,0x7a,0x74,0x6e,0x66,0x5b,
+0x59,0x5e,0x6c,0x73,0x60,0x53,0x57,0x62,0x61,0x50,0x48,0x49,0x3d,0x32,0x48,0x6d,
+0x76,0x6f,0x62,0x53,0x49,0x48,0x4d,0x52,0x48,0x3b,0x30,0x2c,0x26,0x1e,0x1a,0x1c,
+0x23,0x32,0x47,0x58,0x61,0x60,0x55,0x4b,0x39,0x3c,0x3a,0x34,0x33,0x35,0x33,0x2e,
+0x29,0x34,0x44,0x55,0x5f,0x66,0x6d,0x72,0x67,0x66,0x6c,0x7b,0x81,0x73,0x69,0x70,
+0x7f,0x81,0x7b,0x72,0x66,0x54,0x49,0x4b,0x50,0x51,0x4f,0x4f,0x5a,0x61,0x51,0x38,
+0x24,0x2c,0x3b,0x4b,0x59,0x67,0x6d,0x6a,0x74,0x82,0x81,0x6a,0x5d,0x67,0x73,0x75,
+0x82,0x7d,0x79,0x7b,0x82,0x7f,0x68,0x50,0x3e,0x35,0x35,0x3f,0x3e,0x2e,0x21,0x1f,
+0x25,0x1f,0x20,0x29,0x2a,0x22,0x1e,0x22,0x2e,0x31,0x3a,0x4a,0x5a,0x64,0x66,0x67,
+0x56,0x47,0x3a,0x3b,0x46,0x50,0x54,0x54,0x49,0x4b,0x4e,0x51,0x51,0x4a,0x3d,0x33,
+0x25,0x32,0x42,0x51,0x5f,0x67,0x66,0x61,0x67,0x5b,0x55,0x50,0x4b,0x4f,0x4c,0x3c,
+0x9b,0xa0,0xa3,0xa0,0x95,0x8b,0x89,0x8c,0xa0,0xa2,0xa6,0xaa,0xab,0xaa,0xa6,0xa3,
+0x9f,0x9f,0xa2,0xa4,0xa2,0x9a,0x92,0x8f,0x8a,0x95,0x9a,0x94,0x8e,0x8f,0x8c,0x87,
+0x88,0x99,0xa5,0xa1,0x9d,0x9f,0x9e,0x98,0x93,0x8b,0x82,0x80,0x89,0x98,0xa7,0xb1,
+0xb3,0xa6,0x96,0x95,0xa5,0xb2,0xaa,0x98,0x8a,0x88,0x85,0x89,0x9c,0xae,0xad,0xa1,
+0x94,0x8c,0x82,0x77,0x6f,0x6d,0x75,0x7e,0x76,0x73,0x76,0x7f,0x84,0x7d,0x71,0x6a,
+0x75,0x79,0x86,0x9a,0xa5,0x99,0x7c,0x64,0x60,0x74,0x83,0x7f,0x70,0x67,0x68,0x6b,
+0x79,0x7c,0x78,0x6b,0x64,0x69,0x75,0x7c,0x72,0x6f,0x71,0x75,0x70,0x67,0x69,0x72,
+0x73,0x7b,0x88,0x90,0x8f,0x87,0x81,0x7f,0x89,0x90,0x92,0x8a,0x7d,0x7b,0x89,0x9a,
+0x8d,0x88,0x84,0x7b,0x74,0x75,0x71,0x65,0x69,0x70,0x6f,0x72,0x72,0x74,0x83,0x88,
+0x7e,0x6c,0x66,0x64,0x5a,0x5a,0x64,0x66,0x76,0x73,0x6e,0x68,0x64,0x63,0x65,0x67,
+0x79,0x86,0x8d,0x87,0x7d,0x7b,0x7e,0x7f,0x7c,0x81,0x79,0x6a,0x67,0x74,0x7b,0x78,
+0x76,0x6d,0x70,0x7e,0x81,0x76,0x6f,0x72,0x6f,0x6a,0x70,0x81,0x8b,0x89,0x8c,0x95,
+0x94,0x96,0x9a,0x9d,0xa1,0xa4,0xa8,0xaa,0xb0,0xb2,0xb3,0xb4,0xb6,0xb7,0xba,0xbc,
+0xbd,0xbd,0xbe,0xc1,0xc4,0xc5,0xc3,0xc1,0xc3,0xc3,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
+0xc3,0xc3,0xc3,0xc3,0xc2,0xc1,0xbf,0xbe,0xbf,0xbc,0xb8,0xb5,0xb3,0xb3,0xb2,0xb1,
+0xb1,0xaf,0xad,0xac,0xab,0xa9,0xa7,0xa5,0xa6,0xa3,0x9e,0x97,0x8c,0x86,0x8b,0x94,
+0x94,0xa0,0xab,0xaf,0xb3,0xbb,0xc3,0xc7,0xc6,0xcb,0xd0,0xd3,0xd4,0xd6,0xd6,0xd4,
+0xd1,0xd3,0xd4,0xd4,0xd2,0xd1,0xd1,0xd2,0xd7,0xd7,0xd7,0xd7,0xd6,0xd6,0xd5,0xd5,
+0xd1,0xcd,0xca,0xca,0xcc,0xcd,0xcb,0xc9,0xc7,0xc4,0xc1,0xc1,0xc5,0xc9,0xca,0xc9,
+0xd1,0xd0,0xcf,0xce,0xcd,0xce,0xcf,0xd0,0xce,0xce,0xce,0xce,0xd0,0xd1,0xd3,0xd4,
+0xd5,0xda,0xdc,0xda,0xda,0xdb,0xd8,0xd3,0xd7,0xd5,0xd2,0xcf,0xcd,0xcc,0xcb,0xcc,
+0xd0,0xd0,0xd0,0xd1,0xd1,0xd1,0xd1,0xd1,0xd0,0xd3,0xd0,0xd0,0xd4,0xd4,0xcf,0xce,
+0xcb,0xcb,0xcf,0xce,0xcd,0x8b,0x84,0x86,0xd1,0xdd,0xd6,0xd3,0xcf,0xd5,0xd6,0xaf,
+0x81,0x79,0x75,0x8c,0xc8,0xca,0x86,0x69,0x6a,0x7d,0x7c,0x84,0xa6,0xc3,0xcd,0xca,
+0xc5,0xcb,0xc6,0xc9,0xcb,0xd1,0xbb,0x88,0x74,0x7e,0x7e,0x74,0x71,0x77,0x75,0x6b,
+0xa8,0xcd,0xce,0xc7,0xc2,0xc5,0x99,0x74,0x6c,0x85,0xba,0xc2,0xbe,0xbb,0xc0,0xbc,
+0xbe,0x9d,0x5d,0x82,0xb3,0xbf,0xbd,0xb8,0x89,0x6a,0x5c,0x73,0x9e,0x8c,0x74,0x72,
+0x6e,0x76,0x70,0x67,0x67,0x61,0x5a,0x5d,0x68,0x6a,0x6a,0x66,0x64,0x65,0x67,0x69,
+0x69,0x5c,0x5d,0x6d,0x73,0x69,0x64,0x69,0x6b,0x6f,0x73,0x70,0x6a,0x64,0x60,0x5f,
+0x64,0x6e,0x68,0x63,0x60,0x63,0x70,0x6f,0x6e,0x79,0x81,0x76,0x68,0x6a,0x6f,0x6a,
+0x63,0x5d,0x6d,0x71,0x70,0x58,0x57,0x53,0x51,0x4b,0x48,0x45,0x38,0x31,0x45,0x62,
+0x78,0x72,0x66,0x57,0x4c,0x4b,0x50,0x55,0x42,0x37,0x2f,0x2d,0x28,0x1e,0x1a,0x1c,
+0x30,0x3e,0x52,0x62,0x69,0x62,0x50,0x40,0x38,0x3b,0x36,0x2c,0x2b,0x34,0x38,0x34,
+0x3a,0x46,0x48,0x3b,0x32,0x36,0x3e,0x41,0x49,0x51,0x5b,0x6b,0x7a,0x7a,0x74,0x76,
+0x78,0x6b,0x58,0x57,0x66,0x63,0x49,0x32,0x31,0x32,0x33,0x34,0x34,0x2f,0x26,0x1e,
+0x0e,0x18,0x21,0x36,0x4f,0x4f,0x4b,0x5a,0x68,0x66,0x6a,0x66,0x4d,0x34,0x3e,0x5a,
+0x64,0x6c,0x7a,0x82,0x7e,0x6e,0x5e,0x55,0x60,0x70,0x72,0x5b,0x41,0x35,0x35,0x35,
+0x2f,0x31,0x2b,0x1f,0x1e,0x26,0x28,0x23,0x2b,0x30,0x3b,0x46,0x4f,0x55,0x58,0x5a,
+0x5e,0x58,0x53,0x51,0x4c,0x4b,0x53,0x5e,0x6a,0x6b,0x69,0x5f,0x52,0x49,0x48,0x4b,
+0x4d,0x4b,0x48,0x43,0x41,0x49,0x59,0x66,0x58,0x58,0x62,0x63,0x60,0x73,0x7c,0x6a,
+0xa2,0x9f,0x9c,0x9b,0x9c,0x9e,0x9f,0xa0,0xa0,0xa0,0xa2,0xa4,0xa6,0xa6,0xa5,0xa3,
+0xa7,0xa9,0xac,0xa9,0x99,0x86,0x7e,0x81,0x8c,0x97,0x9a,0x90,0x87,0x85,0x80,0x78,
+0x90,0x99,0xa1,0xa0,0x9c,0x97,0x91,0x8b,0x8b,0x90,0x94,0x92,0x8f,0x8e,0x8f,0x90,
+0x94,0x8e,0x8a,0x8e,0x96,0x99,0x94,0x8d,0x85,0x85,0x8b,0x97,0xa0,0xa1,0xa0,0xa0,
+0x8c,0x83,0x82,0x87,0x81,0x73,0x72,0x7b,0x82,0x79,0x7c,0x88,0x8f,0x91,0x8b,0x81,
+0x70,0x72,0x85,0xa2,0xad,0x9b,0x7e,0x6d,0x70,0x8d,0xa5,0x9f,0x85,0x70,0x6b,0x6d,
+0x7d,0x86,0x78,0x67,0x5f,0x69,0x7d,0x7e,0x82,0x80,0x79,0x6d,0x62,0x5f,0x66,0x6d,
+0x6d,0x77,0x8b,0x91,0x84,0x80,0x82,0x7c,0x93,0x93,0x88,0x78,0x75,0x7f,0x88,0x88,
+0x80,0x83,0x81,0x79,0x6f,0x6a,0x68,0x67,0x6f,0x6e,0x6a,0x66,0x6c,0x77,0x7e,0x7d,
+0x76,0x7d,0x87,0x8d,0x88,0x80,0x82,0x8a,0x7c,0x6f,0x64,0x61,0x5e,0x5b,0x60,0x6a,
+0x76,0x7f,0x87,0x86,0x7c,0x71,0x70,0x74,0x70,0x74,0x74,0x70,0x6f,0x73,0x74,0x70,
+0x69,0x70,0x76,0x78,0x7b,0x7c,0x72,0x67,0x62,0x65,0x72,0x83,0x8a,0x88,0x8b,0x92,
+0x94,0x96,0x9a,0x9f,0xa5,0xa9,0xab,0xab,0xae,0xb0,0xb2,0xb3,0xb4,0xb6,0xb9,0xbb,
+0xbb,0xbd,0xbe,0xbf,0xbf,0xbf,0xc1,0xc2,0xc1,0xc1,0xc2,0xc2,0xc3,0xc3,0xc4,0xc4,
+0xc2,0xc2,0xc2,0xc2,0xc1,0xc1,0xc0,0xc0,0xbc,0xba,0xb8,0xb7,0xb6,0xb5,0xb3,0xb1,
+0xaf,0xae,0xad,0xac,0xab,0xaa,0xa8,0xa6,0xa4,0xa4,0xa0,0x98,0x8e,0x89,0x8c,0x92,
+0x96,0xa1,0xaf,0xb6,0xb8,0xbc,0xc3,0xcb,0xc9,0xcc,0xd1,0xd4,0xd6,0xd6,0xd7,0xd7,
+0xd9,0xd5,0xd1,0xd2,0xd5,0xd6,0xd3,0xd0,0xd2,0xd4,0xd5,0xd4,0xd4,0xd5,0xd5,0xd3,
+0xd0,0xcc,0xc7,0xc4,0xc4,0xc4,0xc5,0xc4,0xc5,0xc5,0xc5,0xc2,0xc1,0xc3,0xca,0xcf,
+0xd0,0xcf,0xd0,0xd1,0xd3,0xd2,0xd0,0xce,0xd1,0xd6,0xda,0xd9,0xd5,0xd4,0xd8,0xdd,
+0xdb,0xda,0xd8,0xd7,0xd7,0xd6,0xd4,0xd3,0xd3,0xd1,0xce,0xcc,0xcc,0xcd,0xcf,0xd0,
+0xce,0xd3,0xd4,0xd4,0xd7,0xd4,0xd0,0xd3,0xd7,0xd5,0xd2,0xd0,0xd1,0xd2,0xd4,0xd4,
+0xd3,0xd0,0xcf,0xd1,0xce,0x91,0x7c,0x87,0xd0,0xe1,0xd0,0xcd,0xc9,0xcf,0xd4,0x9f,
+0x7d,0x7b,0x7f,0x91,0xd6,0xc2,0x82,0x65,0x77,0x79,0xa2,0xc3,0xd2,0xd9,0xc6,0xc5,
+0xce,0xcd,0xc6,0xc1,0xd3,0xc8,0x92,0x76,0x79,0x7c,0x77,0x71,0x7d,0x78,0x69,0x65,
+0xa3,0xcd,0xc8,0xc6,0xc6,0xca,0xa3,0x77,0x73,0x88,0xc8,0xca,0xc2,0xc0,0xc2,0xb9,
+0xbc,0x82,0x60,0x88,0xbe,0xb9,0xbe,0xb6,0x97,0x62,0x56,0x91,0xa4,0x82,0x75,0x6e,
+0x71,0x6e,0x6b,0x5e,0x69,0x5d,0x58,0x50,0x5c,0x6b,0x6e,0x64,0x63,0x67,0x67,0x67,
+0x61,0x5a,0x57,0x69,0x65,0x6b,0x61,0x5c,0x5a,0x5d,0x68,0x62,0x6a,0x65,0x6f,0x6f,
+0x75,0x6b,0x64,0x66,0x6a,0x6f,0x77,0x80,0x84,0x7e,0x6f,0x6d,0x68,0x63,0x6c,0x6f,
+0x68,0x5d,0x71,0x62,0x67,0x55,0x59,0x55,0x51,0x51,0x53,0x4d,0x39,0x2b,0x3c,0x5a,
+0x78,0x6d,0x65,0x56,0x46,0x4b,0x56,0x53,0x3f,0x37,0x31,0x2c,0x21,0x16,0x18,0x22,
+0x42,0x5e,0x71,0x71,0x6b,0x5f,0x4e,0x43,0x34,0x30,0x29,0x25,0x26,0x29,0x2a,0x28,
+0x35,0x44,0x46,0x39,0x39,0x47,0x4c,0x43,0x37,0x2f,0x30,0x40,0x57,0x6d,0x71,0x67,
+0x64,0x59,0x5b,0x6f,0x86,0x87,0x5f,0x2d,0x29,0x20,0x1d,0x23,0x25,0x20,0x1c,0x1d,
+0x14,0x13,0x1c,0x2f,0x3d,0x40,0x41,0x44,0x43,0x42,0x4c,0x65,0x7d,0x85,0x7c,0x70,
+0x62,0x5c,0x59,0x5b,0x58,0x56,0x61,0x70,0x75,0x75,0x69,0x5b,0x59,0x55,0x4a,0x43,
+0x3e,0x31,0x23,0x1e,0x20,0x23,0x22,0x21,0x27,0x28,0x31,0x3f,0x48,0x4a,0x4c,0x51,
+0x52,0x55,0x5a,0x5b,0x58,0x51,0x4b,0x48,0x3a,0x3f,0x42,0x3f,0x3c,0x42,0x4e,0x58,
+0x68,0x65,0x5f,0x56,0x4a,0x3c,0x34,0x32,0x3a,0x4b,0x53,0x47,0x3d,0x3f,0x44,0x43,
+0x94,0x8f,0x8b,0x8b,0x92,0x99,0x9f,0xa1,0x9b,0x9d,0xa0,0xa2,0xa5,0xa7,0xaa,0xac,
+0xaf,0xa7,0x9f,0x98,0x8f,0x8b,0x92,0x9d,0xac,0xaa,0x9f,0x8f,0x86,0x8b,0x94,0x98,
+0x9c,0xa3,0xa7,0xa3,0x9b,0x96,0x92,0x8f,0x91,0x92,0x95,0x99,0x9c,0x9e,0xa1,0xa6,
+0xa4,0xa1,0x9d,0x9a,0x97,0x91,0x8a,0x84,0x89,0x8b,0x8a,0x8a,0x93,0x9d,0x9b,0x92,
+0x89,0x90,0x91,0x8d,0x8e,0x96,0x98,0x94,0x86,0x7d,0x7b,0x7f,0x83,0x89,0x89,0x81,
+0x73,0x74,0x80,0x92,0x9a,0x93,0x86,0x7e,0x7d,0x83,0x89,0x89,0x82,0x7a,0x75,0x75,
+0x69,0x6d,0x66,0x69,0x6d,0x72,0x79,0x74,0x78,0x70,0x63,0x56,0x51,0x57,0x63,0x6c,
+0x84,0x81,0x83,0x83,0x7c,0x79,0x7f,0x82,0x8e,0x8f,0x89,0x7e,0x7d,0x85,0x89,0x86,
+0x87,0x87,0x7f,0x72,0x68,0x67,0x6e,0x73,0x6d,0x6d,0x71,0x74,0x6e,0x64,0x61,0x66,
+0x6a,0x67,0x65,0x66,0x67,0x67,0x6a,0x6e,0x6e,0x63,0x5b,0x5a,0x5e,0x66,0x71,0x7c,
+0x6f,0x75,0x7e,0x83,0x80,0x79,0x72,0x6f,0x76,0x70,0x6c,0x71,0x7e,0x86,0x80,0x76,
+0x79,0x78,0x79,0x7b,0x7d,0x7a,0x6f,0x64,0x62,0x67,0x74,0x83,0x8a,0x8a,0x8d,0x92,
+0x93,0x95,0x99,0x9e,0xa3,0xa7,0xa9,0xa9,0xac,0xad,0xaf,0xb1,0xb2,0xb4,0xb6,0xb8,
+0xba,0xbb,0xbd,0xbe,0xbe,0xbf,0xc0,0xc2,0xc1,0xc1,0xc2,0xc2,0xc3,0xc3,0xc4,0xc4,
+0xc3,0xc3,0xc2,0xc1,0xc0,0xbe,0xbd,0xbd,0xbb,0xb9,0xb8,0xb7,0xb7,0xb6,0xb4,0xb3,
+0xb0,0xaf,0xad,0xad,0xac,0xab,0xa9,0xa7,0xa7,0xa7,0xa3,0x9c,0x92,0x8d,0x90,0x96,
+0x9b,0xa5,0xb1,0xb8,0xbb,0xbd,0xc3,0xc9,0xcd,0xd0,0xd3,0xd6,0xd7,0xd7,0xd7,0xd7,
+0xd6,0xd5,0xd4,0xd3,0xd4,0xd4,0xd3,0xd3,0xd3,0xd5,0xd5,0xd3,0xd2,0xd3,0xd2,0xcf,
+0xce,0xcb,0xc7,0xc5,0xc6,0xc7,0xc8,0xc8,0xc9,0xca,0xca,0xc9,0xc8,0xca,0xcf,0xd3,
+0xdd,0xdc,0xda,0xd9,0xd9,0xd7,0xd4,0xd1,0xd5,0xd7,0xd9,0xd9,0xd9,0xd9,0xdb,0xdc,
+0xda,0xd9,0xd7,0xd6,0xd5,0xd3,0xd1,0xcf,0xcf,0xce,0xcd,0xcd,0xce,0xd0,0xd2,0xd3,
+0xd5,0xd7,0xd4,0xd4,0xdd,0xe0,0xdd,0xdd,0xdd,0xdb,0xd8,0xd6,0xd6,0xd6,0xd5,0xd5,
+0xd4,0xd5,0xd0,0xd7,0xd0,0x90,0x80,0x88,0xd0,0xdf,0xd4,0xd3,0xcf,0xd1,0xca,0x8d,
+0x7b,0x7d,0x7f,0x9f,0xdc,0xca,0x8d,0x74,0x76,0x8c,0xc6,0xd5,0xd5,0xd4,0xcc,0xcd,
+0xcf,0xcb,0xcc,0xca,0xcf,0xac,0x84,0x72,0x79,0x7c,0x8e,0xac,0xc7,0xb2,0x81,0x6b,
+0x9b,0xcd,0xc7,0xc8,0xc9,0xcc,0xae,0x7b,0x6d,0x85,0xc8,0xcd,0xc3,0xc0,0xc2,0xbd,
+0xb2,0x73,0x61,0x85,0xb8,0xbb,0xb6,0xb7,0xa2,0x78,0x6c,0x97,0x9f,0x7e,0x73,0x6e,
+0x66,0x68,0x6b,0x65,0x70,0x62,0x56,0x49,0x47,0x57,0x63,0x68,0x6a,0x63,0x5a,0x58,
+0x5b,0x64,0x64,0x5f,0x5b,0x6a,0x66,0x54,0x52,0x56,0x5d,0x5a,0x5b,0x59,0x5f,0x61,
+0x6a,0x69,0x6b,0x71,0x76,0x78,0x79,0x7a,0x71,0x73,0x6d,0x6f,0x6f,0x6a,0x6f,0x6c,
+0x58,0x57,0x76,0x70,0x72,0x5b,0x58,0x51,0x4d,0x54,0x60,0x5f,0x48,0x33,0x3b,0x53,
+0x74,0x6d,0x64,0x54,0x47,0x4f,0x56,0x4d,0x3b,0x32,0x30,0x2e,0x1e,0x10,0x23,0x43,
+0x5c,0x71,0x78,0x6f,0x6a,0x5f,0x4a,0x38,0x32,0x2b,0x24,0x24,0x2e,0x3b,0x43,0x46,
+0x42,0x46,0x46,0x43,0x47,0x4e,0x4f,0x49,0x3c,0x38,0x38,0x3e,0x4d,0x63,0x66,0x57,
+0x4c,0x40,0x3d,0x48,0x57,0x5e,0x51,0x39,0x29,0x24,0x22,0x23,0x23,0x1e,0x19,0x17,
+0x12,0x13,0x1b,0x25,0x29,0x2a,0x31,0x3a,0x4a,0x4a,0x51,0x60,0x6f,0x76,0x77,0x75,
+0x73,0x6a,0x65,0x6c,0x79,0x7f,0x7a,0x73,0x6d,0x78,0x7c,0x7b,0x79,0x69,0x4c,0x38,
+0x2e,0x2c,0x30,0x34,0x2f,0x24,0x26,0x31,0x3b,0x3e,0x41,0x44,0x4a,0x4f,0x4b,0x44,
+0x44,0x48,0x52,0x5c,0x5e,0x5a,0x59,0x5b,0x66,0x60,0x5a,0x57,0x57,0x57,0x56,0x56,
+0x55,0x50,0x48,0x42,0x45,0x4c,0x50,0x50,0x40,0x4e,0x5a,0x58,0x51,0x4a,0x41,0x38,
+0x8a,0x86,0x83,0x86,0x8f,0x98,0x9c,0x9d,0x9a,0xa0,0xa7,0xab,0xab,0xa9,0xa7,0xa6,
+0x9f,0x9d,0x9d,0xa0,0x9e,0x99,0x98,0x9b,0x96,0x93,0x8d,0x85,0x7e,0x7c,0x80,0x85,
+0x83,0x8a,0x90,0x90,0x90,0x95,0x9d,0xa2,0x96,0x95,0x96,0x9b,0x9c,0x98,0x91,0x8d,
+0x91,0x95,0x98,0x96,0x90,0x8a,0x86,0x86,0x88,0x88,0x89,0x8c,0x91,0x91,0x89,0x80,
+0x86,0x90,0x90,0x88,0x8d,0x9a,0x9a,0x8f,0x88,0x7f,0x77,0x73,0x74,0x7f,0x84,0x7d,
+0x71,0x74,0x78,0x7e,0x83,0x87,0x88,0x88,0x71,0x6b,0x6d,0x78,0x7d,0x76,0x6d,0x6b,
+0x65,0x61,0x59,0x67,0x75,0x79,0x7e,0x77,0x6d,0x6e,0x6c,0x63,0x5c,0x5f,0x6d,0x7a,
+0x8a,0x83,0x78,0x74,0x75,0x76,0x7e,0x8b,0x8a,0x8e,0x8d,0x89,0x8a,0x8f,0x8e,0x87,
+0x7d,0x88,0x90,0x8d,0x81,0x78,0x73,0x71,0x83,0x85,0x8b,0x8e,0x87,0x79,0x6c,0x66,
+0x5f,0x60,0x5e,0x5c,0x5c,0x5e,0x5e,0x5d,0x56,0x52,0x53,0x5f,0x6f,0x76,0x71,0x68,
+0x64,0x60,0x5d,0x5e,0x63,0x67,0x68,0x66,0x6a,0x65,0x63,0x69,0x71,0x74,0x74,0x74,
+0x79,0x72,0x6e,0x6f,0x72,0x70,0x6a,0x65,0x69,0x70,0x7c,0x85,0x8a,0x8d,0x8f,0x90,
+0x93,0x96,0x99,0x9d,0xa1,0xa5,0xa7,0xa8,0xaa,0xac,0xae,0xb0,0xb1,0xb3,0xb5,0xb7,
+0xb8,0xba,0xbb,0xbd,0xbd,0xbe,0xc0,0xc2,0xc1,0xc1,0xc1,0xc2,0xc2,0xc3,0xc3,0xc3,
+0xc3,0xc3,0xc2,0xc0,0xbe,0xbc,0xbb,0xba,0xb9,0xb8,0xb6,0xb6,0xb6,0xb5,0xb4,0xb3,
+0xb1,0xaf,0xae,0xad,0xad,0xac,0xaa,0xa8,0xa8,0xa6,0xa3,0x9d,0x93,0x8d,0x91,0x98,
+0xa0,0xa7,0xb2,0xb9,0xbc,0xbf,0xc2,0xc5,0xcb,0xce,0xd3,0xd6,0xd8,0xd9,0xda,0xdb,
+0xdb,0xdc,0xdc,0xda,0xd7,0xd6,0xd7,0xd8,0xd8,0xd9,0xd9,0xd6,0xd5,0xd5,0xd3,0xd1,
+0xd0,0xcd,0xca,0xc8,0xc9,0xca,0xcb,0xcb,0xcc,0xcd,0xcf,0xcf,0xcf,0xd0,0xd3,0xd6,
+0xd5,0xd5,0xd4,0xd5,0xd7,0xd8,0xd8,0xd7,0xda,0xd9,0xd9,0xdb,0xdd,0xdd,0xdb,0xd8,
+0xdb,0xda,0xd9,0xd7,0xd6,0xd3,0xcf,0xcd,0xcb,0xcc,0xcd,0xce,0xd0,0xd3,0xd5,0xd6,
+0xcd,0xd9,0xdd,0xdb,0xdc,0xdc,0xd9,0xda,0xda,0xd8,0xd6,0xd5,0xd4,0xd4,0xd2,0xd1,
+0xd6,0xda,0xd0,0xda,0xcb,0x8b,0x83,0x8a,0xce,0xd7,0xd3,0xd3,0xd2,0xd6,0xc2,0x7e,
+0x7d,0x81,0x7d,0xaf,0xdc,0xc8,0x8c,0x74,0x74,0x96,0xdb,0xd9,0xd1,0xcc,0xd0,0xcf,
+0xcc,0xc7,0xcf,0xd4,0xc2,0x8a,0x75,0x71,0x7e,0x9c,0xb7,0xc3,0xcd,0xbf,0x84,0x60,
+0x94,0xd0,0xc9,0xcb,0xca,0xca,0xb8,0x7c,0x6a,0x84,0xc7,0xd1,0xc3,0xbf,0xc0,0xbf,
+0xaa,0x67,0x65,0x86,0xb7,0xbf,0xb3,0xba,0xb0,0x96,0x8e,0xa4,0x9e,0x7f,0x74,0x71,
+0x68,0x68,0x66,0x5e,0x66,0x5f,0x58,0x52,0x4e,0x5d,0x6f,0x7e,0x81,0x70,0x5e,0x5b,
+0x5d,0x61,0x6b,0x69,0x69,0x68,0x66,0x56,0x4e,0x54,0x56,0x58,0x52,0x55,0x57,0x5d,
+0x54,0x55,0x56,0x59,0x60,0x6a,0x71,0x73,0x66,0x6f,0x6c,0x6d,0x6c,0x68,0x69,0x5f,
+0x65,0x5e,0x71,0x62,0x5b,0x46,0x49,0x4b,0x4c,0x4f,0x53,0x4c,0x34,0x24,0x33,0x50,
+0x6c,0x6b,0x62,0x50,0x49,0x54,0x54,0x42,0x3b,0x36,0x33,0x2f,0x24,0x22,0x3a,0x59,
+0x6f,0x74,0x69,0x57,0x52,0x50,0x44,0x37,0x23,0x1f,0x20,0x2a,0x3b,0x4c,0x55,0x58,
+0x53,0x4b,0x47,0x4c,0x54,0x58,0x5b,0x5e,0x54,0x57,0x59,0x57,0x5e,0x6e,0x6e,0x5b,
+0x49,0x3d,0x37,0x35,0x32,0x34,0x3a,0x3b,0x33,0x36,0x38,0x37,0x35,0x33,0x2e,0x29,
+0x29,0x1b,0x15,0x21,0x35,0x3f,0x3f,0x3d,0x37,0x39,0x43,0x57,0x6a,0x76,0x7a,0x7b,
+0x76,0x83,0x8a,0x7d,0x68,0x5c,0x5b,0x5c,0x75,0x84,0x86,0x77,0x66,0x59,0x54,0x58,
+0x59,0x4a,0x3b,0x33,0x30,0x33,0x3f,0x4c,0x56,0x58,0x54,0x49,0x42,0x47,0x54,0x60,
+0x53,0x4b,0x46,0x47,0x45,0x3e,0x38,0x36,0x42,0x51,0x6b,0x81,0x86,0x7c,0x71,0x6d,
+0x69,0x6b,0x6c,0x6e,0x73,0x75,0x6a,0x5c,0x66,0x59,0x4a,0x45,0x49,0x4e,0x4d,0x4a,
+0x8c,0x8c,0x8d,0x92,0x96,0x99,0x98,0x95,0x98,0x9b,0xa0,0xa4,0xa4,0xa3,0xa0,0x9e,
+0x97,0x8f,0x89,0x8a,0x8d,0x91,0x95,0x99,0x94,0x95,0x98,0x98,0x8e,0x7d,0x72,0x6f,
+0x7c,0x8f,0xa6,0xb2,0xad,0x9f,0x90,0x87,0x92,0x94,0x95,0x97,0x9d,0xa0,0x98,0x8c,
+0x74,0x7c,0x85,0x89,0x86,0x84,0x85,0x87,0x89,0x7b,0x76,0x7e,0x80,0x7b,0x82,0x92,
+0x96,0x8f,0x89,0x8a,0x8c,0x8b,0x88,0x86,0x7a,0x7c,0x82,0x88,0x8f,0x98,0x93,0x81,
+0x76,0x79,0x78,0x74,0x74,0x79,0x7c,0x7b,0x7a,0x6c,0x65,0x69,0x69,0x64,0x6b,0x7b,
+0x72,0x6c,0x5e,0x64,0x6f,0x78,0x85,0x85,0x8c,0x85,0x7e,0x7c,0x7d,0x7e,0x7c,0x79,
+0x6e,0x7b,0x7e,0x7f,0x83,0x7d,0x77,0x7d,0x89,0x8c,0x8c,0x8b,0x8d,0x90,0x8b,0x82,
+0x80,0x89,0x8d,0x86,0x7b,0x77,0x7a,0x7e,0x91,0x94,0x92,0x90,0x98,0x9d,0x8b,0x71,
+0x75,0x7b,0x7a,0x6d,0x61,0x5c,0x5b,0x59,0x5e,0x5f,0x62,0x6a,0x75,0x78,0x6e,0x60,
+0x55,0x5a,0x63,0x6d,0x77,0x7d,0x7c,0x78,0x65,0x62,0x64,0x68,0x6a,0x69,0x6f,0x77,
+0x77,0x70,0x6a,0x68,0x66,0x62,0x64,0x6a,0x6c,0x74,0x7d,0x83,0x88,0x8e,0x92,0x92,
+0x94,0x96,0x9a,0x9d,0xa0,0xa3,0xa5,0xa7,0xaa,0xac,0xaf,0xb1,0xb2,0xb3,0xb5,0xb7,
+0xb7,0xb9,0xbb,0xbc,0xbd,0xbe,0xc0,0xc2,0xc0,0xc0,0xc1,0xc1,0xc1,0xc1,0xc2,0xc2,
+0xc2,0xc2,0xc1,0xc0,0xbe,0xbc,0xba,0xb9,0xb8,0xb7,0xb5,0xb4,0xb4,0xb4,0xb2,0xb1,
+0xb0,0xaf,0xae,0xad,0xad,0xac,0xaa,0xa8,0xa8,0xa5,0xa3,0x9e,0x94,0x8e,0x92,0x9a,
+0xa2,0xa8,0xb1,0xb9,0xbd,0xbf,0xc0,0xc1,0xc4,0xc8,0xce,0xd3,0xd7,0xda,0xdd,0xdf,
+0xe0,0xe0,0xe0,0xdd,0xdb,0xd9,0xd9,0xda,0xda,0xdc,0xdb,0xd8,0xd7,0xd7,0xd6,0xd4,
+0xd4,0xd2,0xcf,0xcd,0xcc,0xcc,0xcc,0xcc,0xcc,0xce,0xd0,0xd1,0xd1,0xd2,0xd4,0xd6,
+0xd2,0xd2,0xd3,0xd6,0xd9,0xdc,0xdf,0xe0,0xdd,0xdb,0xdb,0xdc,0xde,0xdc,0xd9,0xd5,
+0xdb,0xda,0xd9,0xd8,0xd6,0xd3,0xce,0xcb,0xca,0xcc,0xcf,0xd1,0xd2,0xd3,0xd4,0xd5,
+0xd3,0xdd,0xdf,0xdb,0xdc,0xdc,0xda,0xdc,0xdd,0xdc,0xdb,0xdb,0xdc,0xdb,0xda,0xd8,
+0xd8,0xde,0xd1,0xda,0xc0,0x81,0x82,0x8e,0xd3,0xd3,0xd0,0xce,0xcf,0xd6,0xb8,0x77,
+0x80,0x81,0x7b,0xbb,0xd9,0xc5,0x87,0x6f,0x77,0x8f,0xd4,0xcf,0xcd,0xc9,0xd2,0xcc,
+0xc6,0xc8,0xcc,0xd5,0xaa,0x77,0x6f,0x7b,0x99,0xbd,0xcf,0xc1,0xbb,0xbc,0x8c,0x70,
+0x90,0xd2,0xcd,0xcc,0xc9,0xc6,0xc0,0x7d,0x6e,0x83,0xc1,0xd1,0xc2,0xc0,0xbe,0xc0,
+0xa9,0x67,0x65,0x8c,0xbb,0xbe,0xb8,0xb9,0xb3,0xa9,0xa7,0xac,0x9e,0x81,0x71,0x6d,
+0x6b,0x6d,0x65,0x5a,0x5a,0x58,0x58,0x5c,0x5e,0x61,0x5f,0x60,0x61,0x5b,0x58,0x5d,
+0x60,0x5b,0x66,0x65,0x6f,0x6c,0x6e,0x5f,0x50,0x56,0x55,0x5d,0x53,0x5a,0x5a,0x63,
+0x6e,0x6b,0x61,0x54,0x51,0x56,0x5b,0x5a,0x67,0x70,0x6a,0x65,0x64,0x66,0x6b,0x60,
+0x53,0x4e,0x65,0x60,0x5b,0x49,0x48,0x49,0x42,0x48,0x51,0x4d,0x37,0x26,0x32,0x4a,
+0x63,0x67,0x5f,0x4e,0x4d,0x58,0x51,0x39,0x2c,0x34,0x32,0x27,0x26,0x3a,0x54,0x62,
+0x64,0x69,0x63,0x5b,0x53,0x44,0x31,0x28,0x23,0x20,0x21,0x2a,0x38,0x46,0x51,0x57,
+0x55,0x4b,0x43,0x45,0x4a,0x50,0x5c,0x67,0x71,0x6c,0x63,0x55,0x4f,0x57,0x59,0x4e,
+0x4a,0x41,0x40,0x3d,0x31,0x2d,0x37,0x42,0x47,0x52,0x5a,0x59,0x57,0x58,0x52,0x4a,
+0x3c,0x36,0x31,0x32,0x33,0x34,0x36,0x39,0x38,0x2d,0x29,0x38,0x51,0x65,0x6e,0x70,
+0x7e,0x6e,0x54,0x3c,0x36,0x45,0x5c,0x6d,0x75,0x7b,0x7d,0x7f,0x82,0x75,0x5c,0x4c,
+0x3c,0x40,0x40,0x39,0x38,0x43,0x53,0x5d,0x4f,0x47,0x44,0x4b,0x4f,0x51,0x55,0x5d,
+0x61,0x58,0x4e,0x4c,0x55,0x5e,0x5d,0x56,0x48,0x4a,0x50,0x59,0x5e,0x63,0x71,0x80,
+0x86,0x7e,0x73,0x69,0x60,0x54,0x45,0x39,0x2a,0x20,0x25,0x43,0x65,0x76,0x76,0x71,
+0x91,0x94,0x98,0x9b,0x9c,0x9b,0x99,0x98,0x96,0x94,0x93,0x95,0x9b,0xa1,0xa5,0xa6,
+0xa1,0x97,0x8b,0x87,0x8c,0x94,0x9d,0xa3,0x99,0x96,0x96,0x97,0x90,0x84,0x7f,0x81,
+0x88,0x91,0x9d,0xa4,0xa2,0x9e,0x9c,0x9d,0x99,0xa0,0x9e,0x98,0x9f,0xac,0xa8,0x97,
+0x75,0x7b,0x82,0x85,0x85,0x82,0x81,0x81,0x75,0x75,0x83,0x93,0x93,0x8a,0x90,0xa2,
+0xa3,0x90,0x83,0x85,0x86,0x82,0x82,0x88,0x8c,0x87,0x84,0x85,0x8c,0x9a,0x99,0x89,
+0x83,0x83,0x7d,0x73,0x70,0x73,0x73,0x6e,0x77,0x6a,0x66,0x69,0x61,0x55,0x5d,0x72,
+0x74,0x7a,0x72,0x6f,0x70,0x78,0x86,0x86,0x85,0x85,0x81,0x74,0x66,0x5d,0x5f,0x63,
+0x6d,0x7f,0x7f,0x75,0x74,0x74,0x77,0x81,0x8d,0x8d,0x8b,0x87,0x86,0x86,0x7f,0x77,
+0x82,0x87,0x88,0x7d,0x73,0x73,0x7e,0x87,0x80,0x7f,0x7a,0x7c,0x8b,0x96,0x87,0x6e,
+0x7e,0x81,0x7c,0x6e,0x64,0x65,0x69,0x6b,0x6e,0x6f,0x6b,0x65,0x63,0x66,0x6a,0x6c,
+0x76,0x7c,0x7f,0x7a,0x73,0x6e,0x6a,0x66,0x64,0x60,0x62,0x6b,0x71,0x71,0x71,0x74,
+0x7e,0x7c,0x7a,0x74,0x67,0x5d,0x61,0x6c,0x6d,0x75,0x7c,0x81,0x86,0x8d,0x93,0x95,
+0x95,0x97,0x9b,0x9d,0x9f,0xa2,0xa4,0xa7,0xa9,0xac,0xae,0xb1,0xb2,0xb3,0xb5,0xb6,
+0xb6,0xb8,0xba,0xbb,0xbc,0xbd,0xbf,0xc1,0xbf,0xbf,0xbf,0xc0,0xc0,0xc0,0xc0,0xc0,
+0xc0,0xc0,0xc0,0xc0,0xbe,0xbc,0xba,0xb9,0xba,0xb8,0xb6,0xb5,0xb4,0xb3,0xb1,0xb0,
+0xaf,0xae,0xad,0xad,0xac,0xac,0xaa,0xa8,0xaa,0xa6,0xa4,0xa0,0x98,0x91,0x95,0x9e,
+0xa3,0xa9,0xb1,0xb8,0xbd,0xc0,0xc1,0xc2,0xc2,0xc6,0xca,0xcf,0xd2,0xd5,0xd8,0xda,
+0xdb,0xda,0xd8,0xd8,0xd9,0xd9,0xd8,0xd8,0xd9,0xda,0xda,0xd7,0xd7,0xd8,0xd8,0xd6,
+0xd7,0xd6,0xd4,0xd2,0xd0,0xcf,0xcf,0xcf,0xce,0xcf,0xd0,0xd0,0xd1,0xd1,0xd2,0xd3,
+0xd6,0xd6,0xd6,0xd5,0xd4,0xd4,0xd5,0xd6,0xd9,0xdb,0xdd,0xdd,0xdc,0xda,0xd9,0xd8,
+0xd9,0xd8,0xd7,0xd7,0xd5,0xd2,0xce,0xca,0xcd,0xcf,0xd1,0xd2,0xd2,0xd1,0xd1,0xd2,
+0xda,0xd8,0xce,0xca,0xd2,0xd8,0xd9,0xdd,0xdd,0xdc,0xdc,0xdc,0xdc,0xdb,0xd9,0xd7,
+0xd6,0xdd,0xd5,0xdc,0xb5,0x7a,0x7d,0x91,0xd9,0xd4,0xd2,0xcc,0xd2,0xd4,0xa9,0x74,
+0x7c,0x79,0x7c,0xc5,0xda,0xca,0x8b,0x74,0x7c,0x86,0xca,0xd0,0xd1,0xc9,0xd1,0xcc,
+0xc5,0xcd,0xc8,0xc9,0x8e,0x73,0x72,0x8d,0xc6,0xc8,0xc9,0xc6,0xc5,0xc3,0x85,0x71,
+0x88,0xcc,0xcf,0xcb,0xc8,0xc7,0xcb,0x89,0x71,0x7d,0xb5,0xce,0xc2,0xc4,0xbe,0xc1,
+0xa9,0x6d,0x61,0x94,0xbf,0xb8,0xbe,0xb4,0xb0,0xae,0xb1,0xae,0x9d,0x7f,0x66,0x61,
+0x64,0x6f,0x6f,0x68,0x5e,0x58,0x53,0x58,0x66,0x6c,0x69,0x63,0x64,0x64,0x62,0x63,
+0x6c,0x6c,0x6d,0x5e,0x72,0x87,0x8d,0x71,0x53,0x57,0x54,0x5e,0x55,0x5c,0x5b,0x65,
+0x66,0x69,0x67,0x60,0x5f,0x62,0x63,0x5f,0x68,0x6e,0x64,0x5c,0x60,0x6e,0x7e,0x7a,
+0x78,0x66,0x68,0x5b,0x4f,0x41,0x40,0x44,0x3d,0x42,0x49,0x47,0x37,0x2b,0x37,0x4c,
+0x5f,0x66,0x5f,0x52,0x54,0x5a,0x4c,0x36,0x36,0x39,0x31,0x26,0x2d,0x48,0x5f,0x68,
+0x6f,0x6b,0x63,0x5a,0x4b,0x33,0x26,0x2b,0x3b,0x31,0x27,0x23,0x25,0x2e,0x3d,0x4b,
+0x53,0x51,0x4c,0x45,0x41,0x46,0x53,0x5d,0x5e,0x4c,0x3c,0x31,0x2f,0x3e,0x51,0x59,
+0x55,0x4a,0x47,0x45,0x39,0x33,0x3c,0x46,0x5f,0x6d,0x79,0x7a,0x7b,0x7d,0x79,0x70,
+0x73,0x6c,0x62,0x53,0x42,0x32,0x28,0x25,0x2a,0x20,0x1c,0x27,0x39,0x45,0x47,0x45,
+0x2d,0x26,0x2d,0x4b,0x6a,0x78,0x78,0x75,0x6d,0x6f,0x65,0x56,0x4d,0x47,0x46,0x4c,
+0x45,0x42,0x42,0x48,0x4f,0x50,0x4c,0x47,0x47,0x55,0x6a,0x7a,0x7b,0x6f,0x5e,0x52,
+0x58,0x5d,0x59,0x4d,0x4a,0x4f,0x4a,0x3c,0x3a,0x34,0x34,0x3b,0x41,0x3d,0x37,0x34,
+0x31,0x30,0x34,0x39,0x37,0x2e,0x2b,0x2f,0x2c,0x2e,0x41,0x61,0x74,0x6a,0x56,0x49,
+0x97,0x97,0x97,0x9a,0x9d,0xa1,0xa3,0xa5,0x9e,0x9f,0xa1,0xa6,0xab,0xae,0xaf,0xaf,
+0xb0,0xae,0xaa,0xa8,0xa5,0xa2,0x9d,0x9a,0x92,0x8c,0x86,0x83,0x7e,0x78,0x79,0x7d,
+0x78,0x7d,0x84,0x88,0x87,0x83,0x82,0x84,0xa3,0xaf,0xb3,0xab,0xac,0xb0,0xa2,0x8a,
+0x78,0x7b,0x80,0x84,0x86,0x86,0x84,0x83,0x85,0x82,0x79,0x6d,0x6c,0x7f,0x9e,0xb5,
+0xa3,0x95,0x83,0x79,0x7a,0x7f,0x83,0x84,0x75,0x6c,0x69,0x70,0x82,0x9c,0xac,0xa9,
+0x88,0x85,0x7e,0x75,0x74,0x78,0x78,0x75,0x67,0x61,0x65,0x70,0x6a,0x56,0x52,0x5c,
+0x6e,0x7f,0x82,0x83,0x80,0x7f,0x84,0x7d,0x81,0x89,0x8d,0x83,0x71,0x66,0x68,0x6f,
+0x72,0x78,0x71,0x63,0x5f,0x69,0x7a,0x8b,0x95,0x94,0x90,0x8b,0x86,0x82,0x7a,0x73,
+0x65,0x72,0x7b,0x78,0x6e,0x68,0x69,0x6c,0x74,0x6d,0x6e,0x79,0x7f,0x7a,0x71,0x6d,
+0x71,0x71,0x71,0x71,0x73,0x76,0x75,0x71,0x78,0x75,0x74,0x78,0x7d,0x7b,0x73,0x6b,
+0x63,0x69,0x69,0x60,0x5a,0x5e,0x67,0x6c,0x5f,0x65,0x6e,0x72,0x70,0x6b,0x6a,0x6d,
+0x78,0x7c,0x7e,0x78,0x6b,0x61,0x63,0x6a,0x78,0x7c,0x82,0x86,0x89,0x8b,0x8e,0x91,
+0x94,0x97,0x9b,0x9d,0x9e,0xa0,0xa4,0xa7,0xa7,0xaa,0xad,0xaf,0xb0,0xb1,0xb3,0xb4,
+0xb6,0xb7,0xb9,0xba,0xbb,0xbc,0xbe,0xbf,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,0xbe,
+0xbe,0xbe,0xbf,0xbf,0xbe,0xbc,0xba,0xb9,0xbb,0xba,0xb8,0xb6,0xb5,0xb4,0xb2,0xb0,
+0xaf,0xae,0xad,0xad,0xad,0xac,0xaa,0xa8,0xa9,0xa5,0xa3,0xa1,0x98,0x91,0x95,0xa0,
+0xa5,0xab,0xb2,0xb9,0xbe,0xc0,0xc2,0xc4,0xc6,0xc8,0xca,0xcc,0xcc,0xcd,0xce,0xcf,
+0xd3,0xd2,0xd2,0xd4,0xd7,0xda,0xda,0xda,0xd9,0xdb,0xdb,0xd9,0xd9,0xdc,0xdd,0xdb,
+0xd7,0xd8,0xd7,0xd6,0xd4,0xd3,0xd3,0xd4,0xd1,0xd0,0xcf,0xcf,0xce,0xcf,0xd0,0xd0,
+0xd4,0xd4,0xd4,0xd2,0xcf,0xcd,0xcd,0xcd,0xd3,0xd7,0xda,0xdb,0xd9,0xd8,0xd9,0xdb,
+0xd9,0xd8,0xd7,0xd7,0xd6,0xd4,0xd1,0xcf,0xce,0xd1,0xd3,0xd3,0xd1,0xcf,0xcf,0xd0,
+0xcf,0xcf,0xcc,0xcd,0xd0,0xcd,0xce,0xd8,0xda,0xd9,0xd7,0xd6,0xd5,0xd4,0xd1,0xcf,
+0xd3,0xd8,0xdb,0xdc,0xa8,0x77,0x78,0x99,0xd2,0xcf,0xd2,0xcd,0xda,0xd4,0x9c,0x7b,
+0x7a,0x72,0x89,0xcb,0xd8,0xcb,0x8a,0x77,0x7c,0x82,0xc8,0xda,0xd3,0xc8,0xcc,0xca,
+0xca,0xd1,0xc9,0xb2,0x7a,0x73,0x7a,0xa5,0xd2,0xcc,0xc6,0xc3,0xc4,0xc9,0x80,0x67,
+0x7c,0xbd,0xcf,0xcb,0xc9,0xcb,0xd3,0x97,0x6c,0x73,0xa7,0xc8,0xc1,0xc7,0xbf,0xc4,
+0xa9,0x71,0x66,0x9f,0xc5,0xb7,0xc3,0xb4,0xb3,0xb2,0xb6,0xaf,0x9f,0x7f,0x5e,0x5d,
+0x64,0x74,0x76,0x73,0x64,0x5d,0x55,0x5a,0x5d,0x69,0x6d,0x6a,0x6c,0x6b,0x66,0x65,
+0x66,0x63,0x65,0x66,0x77,0x86,0x83,0x6b,0x58,0x56,0x54,0x5b,0x59,0x5b,0x5c,0x64,
+0x68,0x69,0x67,0x61,0x5b,0x59,0x56,0x53,0x68,0x6c,0x60,0x5b,0x61,0x72,0x87,0x87,
+0x5c,0x56,0x69,0x71,0x6b,0x58,0x44,0x3d,0x3c,0x39,0x38,0x33,0x2a,0x28,0x38,0x4d,
+0x60,0x66,0x61,0x5a,0x5c,0x56,0x44,0x35,0x3a,0x26,0x18,0x25,0x44,0x5f,0x6b,0x6e,
+0x71,0x62,0x4b,0x3a,0x2c,0x1f,0x26,0x3b,0x42,0x3a,0x30,0x29,0x21,0x20,0x29,0x34,
+0x47,0x4f,0x50,0x47,0x3e,0x3c,0x3e,0x3e,0x2d,0x1f,0x1b,0x23,0x31,0x49,0x64,0x73,
+0x5f,0x50,0x48,0x46,0x40,0x43,0x51,0x5b,0x62,0x70,0x7d,0x83,0x88,0x8e,0x8e,0x88,
+0x81,0x77,0x6d,0x68,0x65,0x5d,0x4f,0x44,0x2c,0x27,0x23,0x23,0x23,0x1f,0x1b,0x19,
+0x1a,0x1c,0x2c,0x42,0x4c,0x45,0x3e,0x3e,0x35,0x2e,0x26,0x2e,0x45,0x50,0x4c,0x47,
+0x40,0x35,0x37,0x48,0x54,0x55,0x57,0x5f,0x61,0x71,0x7c,0x7a,0x75,0x6a,0x51,0x37,
+0x36,0x4e,0x5c,0x53,0x48,0x45,0x3e,0x33,0x29,0x26,0x24,0x25,0x26,0x24,0x20,0x1b,
+0x16,0x27,0x3e,0x48,0x3c,0x27,0x1b,0x1a,0x1e,0x20,0x2a,0x39,0x3c,0x35,0x34,0x39,
+0x98,0x92,0x8d,0x90,0x99,0xa2,0xa6,0xa6,0xa4,0xa8,0xad,0xae,0xac,0xaa,0xaa,0xab,
+0xb3,0xb1,0xac,0xa4,0x9b,0x94,0x8f,0x8c,0x99,0x96,0x93,0x8d,0x84,0x7a,0x73,0x70,
+0x6f,0x6b,0x69,0x6c,0x73,0x7e,0x8d,0x99,0x9b,0xa7,0xb2,0xb4,0xb2,0xaa,0x97,0x84,
+0x74,0x76,0x79,0x7d,0x80,0x82,0x81,0x81,0x8b,0x88,0x7d,0x71,0x75,0x8c,0xa3,0xaf,
+0x9b,0x94,0x87,0x7c,0x7c,0x82,0x81,0x7b,0x76,0x75,0x7e,0x8a,0x90,0x93,0x90,0x86,
+0x8a,0x87,0x81,0x7a,0x76,0x75,0x75,0x75,0x72,0x69,0x68,0x6e,0x6a,0x60,0x65,0x73,
+0x76,0x7c,0x7c,0x84,0x87,0x81,0x80,0x77,0x81,0x76,0x70,0x76,0x83,0x86,0x7b,0x6d,
+0x68,0x66,0x6e,0x76,0x74,0x70,0x73,0x78,0x8d,0x8f,0x8f,0x8c,0x87,0x80,0x77,0x71,
+0x7c,0x82,0x85,0x7d,0x73,0x72,0x77,0x7c,0x73,0x6c,0x6e,0x78,0x76,0x69,0x64,0x6a,
+0x71,0x71,0x76,0x7c,0x7d,0x75,0x6a,0x63,0x64,0x62,0x6a,0x7a,0x82,0x77,0x63,0x54,
+0x64,0x70,0x79,0x77,0x73,0x70,0x6a,0x64,0x66,0x72,0x79,0x74,0x69,0x65,0x69,0x6f,
+0x70,0x71,0x70,0x6a,0x67,0x68,0x6a,0x6c,0x74,0x77,0x7f,0x88,0x8b,0x89,0x8a,0x8e,
+0x93,0x96,0x9a,0x9c,0x9d,0x9f,0xa3,0xa6,0xa6,0xa8,0xab,0xae,0xaf,0xb0,0xb1,0xb2,
+0xb4,0xb6,0xb7,0xb8,0xb8,0xb9,0xbb,0xbc,0xbd,0xbd,0xbd,0xbd,0xbc,0xbc,0xbc,0xbc,
+0xbc,0xbd,0xbe,0xbe,0xbd,0xbb,0xb9,0xb7,0xb9,0xb8,0xb6,0xb5,0xb4,0xb3,0xb2,0xb0,
+0xaf,0xae,0xad,0xad,0xad,0xad,0xab,0xa9,0xa8,0xa3,0xa1,0xa0,0x98,0x90,0x95,0xa1,
+0xa7,0xac,0xb4,0xb9,0xbc,0xbe,0xc2,0xc4,0xc5,0xc7,0xc9,0xca,0xca,0xca,0xca,0xcb,
+0xd0,0xd1,0xd3,0xd5,0xd6,0xd8,0xdb,0xdd,0xdb,0xdd,0xdd,0xdb,0xdc,0xdf,0xe0,0xdf,
+0xda,0xdb,0xdb,0xd9,0xd6,0xd4,0xd4,0xd5,0xd4,0xd2,0xce,0xcc,0xcb,0xcb,0xcd,0xce,
+0xd1,0xd3,0xd5,0xd6,0xd6,0xd5,0xd6,0xd7,0xcf,0xd1,0xd4,0xd4,0xd2,0xd1,0xd3,0xd5,
+0xd6,0xd5,0xd5,0xd5,0xd5,0xd5,0xd3,0xd2,0xce,0xd1,0xd3,0xd3,0xd0,0xce,0xcf,0xd0,
+0xcd,0xc5,0xc2,0xce,0xda,0xd5,0xd2,0xdb,0xe0,0xde,0xdb,0xda,0xd9,0xd7,0xd5,0xd4,
+0xd4,0xd2,0xdb,0xd1,0x94,0x71,0x76,0xa8,0xcd,0xcd,0xd1,0xc9,0xdb,0xcd,0x8d,0x81,
+0x7a,0x70,0x9c,0xd0,0xd3,0xc7,0x85,0x77,0x7b,0x81,0xc2,0xdb,0xce,0xca,0xca,0xc7,
+0xcd,0xcc,0xcd,0x98,0x74,0x72,0x84,0xbf,0xc6,0xc9,0xc8,0xc2,0xc0,0xce,0x89,0x76,
+0x72,0xad,0xd0,0xc9,0xc7,0xc9,0xce,0x98,0x65,0x6a,0x9d,0xc6,0xbf,0xc7,0xbc,0xc3,
+0xa3,0x6b,0x72,0xa8,0xc7,0xbb,0xbf,0xb8,0xba,0xb5,0xb8,0xb0,0xa1,0x7f,0x5e,0x66,
+0x6a,0x79,0x78,0x77,0x69,0x66,0x5d,0x63,0x6c,0x6c,0x65,0x5f,0x5f,0x61,0x69,0x77,
+0x76,0x6f,0x73,0x87,0x8a,0x88,0x7d,0x73,0x5b,0x54,0x55,0x57,0x5f,0x5c,0x61,0x65,
+0x61,0x5f,0x5d,0x5d,0x5d,0x5e,0x62,0x68,0x69,0x6e,0x66,0x65,0x69,0x72,0x7f,0x7d,
+0x68,0x5e,0x69,0x71,0x69,0x5c,0x4c,0x4a,0x41,0x3c,0x39,0x38,0x35,0x35,0x40,0x4e,
+0x63,0x65,0x61,0x60,0x5f,0x4c,0x37,0x33,0x31,0x27,0x2a,0x46,0x67,0x76,0x71,0x69,
+0x4d,0x44,0x33,0x27,0x25,0x25,0x2c,0x39,0x3a,0x37,0x37,0x38,0x33,0x2c,0x2c,0x31,
+0x36,0x3d,0x43,0x43,0x40,0x39,0x2f,0x26,0x20,0x18,0x19,0x24,0x33,0x4a,0x5c,0x60,
+0x58,0x4c,0x47,0x46,0x46,0x51,0x63,0x6e,0x74,0x7c,0x83,0x88,0x8d,0x92,0x93,0x91,
+0x95,0x96,0x91,0x84,0x73,0x66,0x5f,0x5c,0x55,0x48,0x39,0x2d,0x24,0x1e,0x1a,0x1a,
+0x1e,0x1a,0x1d,0x29,0x34,0x3a,0x3c,0x3d,0x3a,0x3e,0x3c,0x39,0x3a,0x39,0x3a,0x41,
+0x46,0x5c,0x70,0x70,0x62,0x5b,0x64,0x71,0x7f,0x6f,0x61,0x63,0x6b,0x65,0x4b,0x31,
+0x3c,0x4b,0x57,0x54,0x4b,0x42,0x3a,0x34,0x29,0x2f,0x31,0x2b,0x26,0x26,0x24,0x20,
+0x2f,0x45,0x54,0x4c,0x3b,0x34,0x37,0x3b,0x22,0x1d,0x1e,0x29,0x32,0x38,0x41,0x4a,
+0x93,0x8a,0x82,0x86,0x92,0x9c,0x9d,0x9a,0x9e,0x9f,0x9d,0x95,0x8e,0x91,0x9c,0xa7,
+0xa1,0xa4,0xa5,0x9f,0x96,0x8d,0x87,0x83,0x7e,0x84,0x8a,0x8e,0x8e,0x8b,0x86,0x81,
+0x7e,0x7c,0x7e,0x83,0x84,0x82,0x81,0x82,0x95,0x96,0x9a,0x9b,0x95,0x87,0x7a,0x74,
+0x78,0x78,0x78,0x77,0x76,0x75,0x74,0x73,0x6f,0x65,0x5e,0x64,0x73,0x81,0x8f,0x98,
+0x83,0x7f,0x7c,0x7d,0x7e,0x7b,0x73,0x6c,0x6d,0x6c,0x78,0x84,0x88,0x8a,0x8d,0x8a,
+0x92,0x8f,0x89,0x80,0x75,0x6a,0x65,0x64,0x66,0x65,0x6c,0x73,0x6e,0x64,0x6c,0x7d,
+0x85,0x78,0x69,0x74,0x7e,0x7b,0x7c,0x77,0x71,0x6f,0x6c,0x6b,0x6e,0x75,0x7d,0x83,
+0x7e,0x69,0x6e,0x80,0x7e,0x73,0x73,0x75,0x77,0x7d,0x82,0x83,0x7f,0x78,0x6f,0x69,
+0x7c,0x7f,0x7d,0x73,0x69,0x69,0x71,0x78,0x6c,0x68,0x65,0x65,0x64,0x60,0x5c,0x5a,
+0x66,0x69,0x72,0x7a,0x78,0x70,0x6f,0x73,0x73,0x78,0x81,0x84,0x7a,0x6d,0x6d,0x78,
+0x72,0x7b,0x81,0x81,0x81,0x80,0x78,0x6d,0x6b,0x6c,0x67,0x60,0x5f,0x66,0x6b,0x6a,
+0x76,0x70,0x66,0x5e,0x62,0x6d,0x72,0x6f,0x5f,0x63,0x70,0x82,0x8a,0x88,0x8b,0x92,
+0x91,0x95,0x99,0x9b,0x9b,0x9e,0xa2,0xa6,0xa6,0xa8,0xac,0xae,0xaf,0xb0,0xb1,0xb2,
+0xb3,0xb5,0xb6,0xb7,0xb7,0xb7,0xb9,0xba,0xbc,0xbc,0xbc,0xbc,0xbc,0xbb,0xbb,0xbb,
+0xbc,0xbc,0xbd,0xbd,0xbc,0xb9,0xb7,0xb5,0xb6,0xb5,0xb3,0xb3,0xb2,0xb2,0xb0,0xaf,
+0xb0,0xaf,0xae,0xae,0xae,0xad,0xac,0xaa,0xab,0xa5,0xa4,0xa3,0x9c,0x93,0x98,0xa4,
+0xa7,0xad,0xb3,0xb7,0xb9,0xbb,0xbf,0xc3,0xc0,0xc3,0xc6,0xc8,0xca,0xcb,0xcd,0xcf,
+0xce,0xd2,0xd6,0xd5,0xd3,0xd3,0xd8,0xdc,0xda,0xdc,0xdc,0xda,0xdb,0xde,0xdf,0xdf,
+0xde,0xdf,0xde,0xdb,0xd7,0xd4,0xd3,0xd3,0xd5,0xd2,0xcd,0xc9,0xc8,0xc8,0xca,0xcb,
+0xc7,0xcb,0xcf,0xd2,0xd3,0xd4,0xd6,0xd8,0xce,0xce,0xce,0xcd,0xcc,0xcb,0xcb,0xcb,
+0xcf,0xcf,0xce,0xce,0xd0,0xd0,0xd0,0xcf,0xcc,0xcf,0xd2,0xd2,0xd0,0xce,0xd0,0xd2,
+0xd1,0xab,0x91,0xaa,0xd5,0xe3,0xdc,0xd9,0xdb,0xda,0xd8,0xd7,0xd6,0xd6,0xd5,0xd4,
+0xd8,0xce,0xd7,0xc3,0x81,0x6b,0x76,0xb6,0xd4,0xd3,0xd3,0xc5,0xd6,0xc0,0x7a,0x7c,
+0x78,0x6e,0xab,0xd5,0xd3,0xc8,0x87,0x7f,0x7f,0x81,0xba,0xd5,0xc8,0xd0,0xcd,0xc5,
+0xce,0xc4,0xd0,0x87,0x76,0x6f,0x8b,0xd2,0xd2,0xc2,0xc1,0xcb,0xc4,0xbd,0x70,0x6c,
+0x6f,0xa6,0xd2,0xc8,0xc3,0xc3,0xc3,0x91,0x60,0x66,0x9a,0xc6,0xbd,0xc3,0xb7,0xbf,
+0x9b,0x5f,0x79,0xa9,0xc3,0xbc,0xb7,0xb9,0xbb,0xb3,0xb6,0xae,0x9f,0x7e,0x5f,0x70,
+0x69,0x79,0x7a,0x7f,0x73,0x71,0x62,0x64,0x5f,0x5e,0x5e,0x60,0x5e,0x53,0x53,0x62,
+0x71,0x76,0x73,0x76,0x6b,0x77,0x70,0x67,0x5a,0x4f,0x53,0x54,0x63,0x5e,0x66,0x68,
+0x6a,0x66,0x64,0x65,0x61,0x5b,0x5c,0x61,0x69,0x70,0x6e,0x72,0x75,0x75,0x7a,0x74,
+0x62,0x5a,0x69,0x78,0x75,0x6f,0x64,0x67,0x5a,0x48,0x35,0x2c,0x2c,0x37,0x4d,0x61,
+0x63,0x63,0x60,0x62,0x5f,0x44,0x2c,0x2f,0x58,0x73,0x8e,0x95,0x8b,0x79,0x63,0x52,
+0x44,0x3c,0x28,0x1a,0x23,0x34,0x3f,0x44,0x39,0x36,0x38,0x40,0x42,0x40,0x42,0x48,
+0x3a,0x3b,0x42,0x4e,0x54,0x4c,0x3c,0x30,0x29,0x21,0x1b,0x1c,0x29,0x45,0x56,0x55,
+0x61,0x59,0x53,0x4b,0x41,0x44,0x4e,0x53,0x59,0x58,0x57,0x55,0x54,0x54,0x53,0x52,
+0x4e,0x49,0x47,0x4d,0x5a,0x64,0x62,0x5c,0x47,0x46,0x4b,0x57,0x5f,0x56,0x43,0x33,
+0x20,0x23,0x22,0x1c,0x1b,0x20,0x28,0x2c,0x35,0x35,0x2d,0x27,0x26,0x23,0x23,0x2b,
+0x40,0x54,0x59,0x4f,0x58,0x6e,0x6a,0x51,0x3f,0x3f,0x51,0x66,0x59,0x39,0x33,0x46,
+0x48,0x41,0x40,0x45,0x49,0x45,0x40,0x3f,0x39,0x39,0x33,0x2e,0x32,0x3a,0x35,0x28,
+0x3f,0x56,0x5a,0x40,0x2d,0x36,0x47,0x4e,0x45,0x31,0x20,0x24,0x30,0x37,0x34,0x30,
+0x68,0x68,0x68,0x68,0x6a,0x6c,0x6e,0x6f,0x70,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x72,
+0x6d,0x6e,0x6f,0x71,0x72,0x74,0x75,0x76,0x76,0x76,0x75,0x74,0x74,0x73,0x72,0x72,
+0x6f,0x72,0x75,0x74,0x70,0x6e,0x6e,0x70,0x71,0x73,0x77,0x7d,0x80,0x7d,0x75,0x6e,
+0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x72,0x72,0x72,0x71,0x71,0x72,0x73,0x73,
+0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x78,0x78,0x79,0x7a,0x79,0x77,0x75,0x73,
+0x75,0x75,0x73,0x6e,0x66,0x61,0x60,0x61,0x68,0x66,0x64,0x63,0x65,0x68,0x6c,0x6e,
+0x6d,0x78,0x84,0x8a,0x88,0x86,0x88,0x8b,0x7c,0x7e,0x81,0x84,0x86,0x88,0x88,0x89,
+0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x88,0x84,0x85,0x85,0x84,0x82,0x7e,0x7b,0x79,
+0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x7f,0x7b,0x76,0x75,0x78,0x7a,0x7a,0x79,
+0x7e,0x7d,0x7b,0x7a,0x7b,0x7c,0x7d,0x7f,0x7d,0x7f,0x82,0x84,0x83,0x81,0x7d,0x7a,
+0x81,0x81,0x7f,0x7d,0x7b,0x79,0x77,0x76,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7d,0x81,0x84,0x84,0x7f,0x7a,0x77,0x77,0x78,0x79,0x7c,0x7f,0x82,0x84,
+0x85,0x84,0x83,0x82,0x83,0x85,0x88,0x89,0x87,0x87,0x86,0x85,0x83,0x82,0x81,0x81,
+0x80,0x80,0x80,0x80,0x81,0x82,0x83,0x83,0x82,0x84,0x86,0x88,0x88,0x86,0x84,0x82,
+0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x85,0x87,0x87,0x83,0x7e,0x7c,0x7c,0x7e,
+0x7e,0x82,0x86,0x87,0x85,0x83,0x83,0x85,0x86,0x84,0x80,0x7e,0x7d,0x7f,0x81,0x83,
+0x87,0x84,0x81,0x7e,0x7c,0x7b,0x7c,0x7d,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
+0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x79,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,
+0x68,0x68,0x68,0x68,0x6a,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x72,0x72,
+0x6d,0x6e,0x6f,0x71,0x72,0x74,0x75,0x76,0x77,0x77,0x76,0x75,0x74,0x73,0x73,0x72,
+0x71,0x73,0x76,0x75,0x71,0x6f,0x70,0x71,0x70,0x72,0x77,0x7c,0x80,0x7d,0x76,0x70,
+0x72,0x71,0x6f,0x6e,0x6d,0x6e,0x70,0x70,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x73,0x73,0x74,0x74,0x73,0x72,0x70,0x6f,0x77,0x78,0x79,0x79,0x78,0x76,0x74,0x73,
+0x6e,0x70,0x6f,0x6c,0x68,0x65,0x66,0x69,0x6c,0x6a,0x68,0x65,0x64,0x63,0x64,0x64,
+0x6c,0x76,0x81,0x87,0x86,0x85,0x86,0x88,0x7b,0x7c,0x7f,0x82,0x84,0x86,0x87,0x87,
+0x88,0x88,0x88,0x88,0x88,0x88,0x87,0x87,0x84,0x85,0x85,0x84,0x82,0x7f,0x7b,0x79,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x7e,0x7a,0x76,0x75,0x78,0x7b,0x7c,0x7b,
+0x7f,0x7e,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,0x7d,0x7f,0x82,0x84,0x83,0x80,0x7d,0x7a,
+0x80,0x7f,0x7e,0x7d,0x7b,0x79,0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7d,0x81,0x84,0x83,0x7e,0x79,0x76,0x78,0x7a,0x7d,0x80,0x82,0x83,0x83,
+0x82,0x81,0x7f,0x7e,0x7f,0x80,0x83,0x84,0x85,0x85,0x84,0x83,0x83,0x82,0x81,0x81,
+0x81,0x81,0x80,0x81,0x81,0x82,0x82,0x82,0x82,0x84,0x86,0x88,0x88,0x86,0x84,0x82,
+0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x85,0x87,0x86,0x83,0x7e,0x7b,0x7c,0x7e,
+0x7d,0x81,0x85,0x86,0x84,0x82,0x82,0x84,0x84,0x82,0x7f,0x7c,0x7c,0x7d,0x80,0x81,
+0x85,0x83,0x80,0x7d,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,
+0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,
+0x7a,0x79,0x78,0x78,0x77,0x78,0x79,0x79,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x77,0x77,
+0x68,0x68,0x68,0x68,0x6a,0x6c,0x6e,0x6f,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x73,
+0x6d,0x6e,0x6f,0x71,0x73,0x74,0x75,0x76,0x79,0x79,0x78,0x77,0x75,0x74,0x73,0x73,
+0x72,0x75,0x78,0x77,0x73,0x71,0x72,0x73,0x71,0x72,0x75,0x7b,0x7f,0x7e,0x78,0x73,
+0x74,0x71,0x6e,0x6c,0x6d,0x71,0x75,0x79,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,
+0x7b,0x7b,0x7b,0x7a,0x79,0x77,0x75,0x73,0x77,0x77,0x78,0x78,0x77,0x76,0x75,0x74,
+0x6a,0x6d,0x6e,0x6d,0x6b,0x6b,0x6f,0x73,0x73,0x72,0x6f,0x6b,0x67,0x63,0x60,0x5e,
+0x6d,0x75,0x7f,0x84,0x85,0x84,0x85,0x86,0x7a,0x7c,0x7e,0x81,0x84,0x85,0x86,0x86,
+0x8a,0x8a,0x89,0x89,0x88,0x87,0x87,0x87,0x84,0x85,0x85,0x85,0x83,0x80,0x7c,0x7a,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x7c,0x78,0x75,0x76,0x7a,0x7d,0x7e,0x7d,
+0x80,0x7f,0x7e,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x82,0x83,0x82,0x80,0x7c,0x7a,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x80,0x82,0x81,0x7c,0x78,0x76,0x79,0x7e,0x83,0x85,0x85,0x83,0x82,
+0x7f,0x7e,0x7c,0x7a,0x7a,0x7b,0x7d,0x7e,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x86,0x86,0x86,0x82,0x7c,0x7a,0x7b,0x7d,
+0x7c,0x80,0x84,0x85,0x82,0x80,0x80,0x82,0x81,0x7f,0x7c,0x7a,0x79,0x7b,0x7e,0x80,
+0x83,0x81,0x7f,0x7d,0x7c,0x7c,0x7e,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,
+0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x78,0x78,0x77,0x76,0x76,0x77,0x78,0x78,0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x77,
+0x68,0x68,0x68,0x68,0x6a,0x6c,0x6e,0x6f,0x6e,0x6e,0x70,0x71,0x72,0x72,0x73,0x72,
+0x6e,0x6e,0x70,0x71,0x73,0x75,0x76,0x76,0x7a,0x7a,0x79,0x78,0x76,0x75,0x74,0x74,
+0x75,0x78,0x7a,0x79,0x76,0x74,0x74,0x76,0x72,0x72,0x74,0x79,0x7d,0x7e,0x7b,0x77,
+0x75,0x71,0x6d,0x6b,0x6d,0x73,0x7a,0x7f,0x8a,0x8a,0x8a,0x8a,0x89,0x88,0x86,0x86,
+0x82,0x82,0x81,0x80,0x7e,0x7b,0x79,0x78,0x77,0x77,0x77,0x77,0x76,0x76,0x75,0x75,
+0x71,0x73,0x74,0x72,0x70,0x71,0x75,0x79,0x7c,0x7a,0x78,0x75,0x71,0x6c,0x68,0x66,
+0x73,0x78,0x7f,0x85,0x87,0x87,0x86,0x86,0x7b,0x7d,0x80,0x83,0x85,0x87,0x87,0x88,
+0x8a,0x8a,0x8a,0x89,0x88,0x87,0x87,0x86,0x84,0x85,0x86,0x85,0x84,0x80,0x7d,0x7b,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7a,0x77,0x75,0x77,0x7b,0x7f,0x7f,0x7e,
+0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7f,0x80,0x81,0x82,0x81,0x7f,0x7c,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7d,0x7f,0x81,0x80,0x7b,0x77,0x77,0x7b,0x81,0x87,0x89,0x87,0x84,0x81,
+0x80,0x7e,0x7c,0x7a,0x79,0x79,0x7a,0x7b,0x7f,0x80,0x80,0x81,0x81,0x82,0x82,0x82,
+0x81,0x82,0x83,0x83,0x83,0x83,0x82,0x82,0x83,0x84,0x86,0x86,0x86,0x86,0x84,0x83,
+0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x86,0x86,0x85,0x80,0x7b,0x78,0x7a,0x7d,
+0x7b,0x7f,0x83,0x83,0x81,0x7e,0x7f,0x80,0x7f,0x7d,0x7a,0x78,0x77,0x79,0x7c,0x7e,
+0x80,0x7f,0x7d,0x7c,0x7c,0x7d,0x7f,0x80,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,
+0x77,0x76,0x76,0x75,0x75,0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,
+0x68,0x68,0x68,0x68,0x6a,0x6c,0x6e,0x6f,0x6e,0x6f,0x71,0x72,0x73,0x72,0x72,0x71,
+0x6e,0x6f,0x70,0x72,0x73,0x75,0x76,0x77,0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x75,
+0x78,0x7b,0x7d,0x7c,0x79,0x76,0x77,0x78,0x74,0x73,0x74,0x77,0x7b,0x7d,0x7c,0x79,
+0x75,0x72,0x6e,0x6c,0x6e,0x74,0x7c,0x81,0x88,0x88,0x88,0x88,0x87,0x85,0x83,0x81,
+0x83,0x83,0x83,0x82,0x80,0x7e,0x7c,0x7b,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,
+0x7e,0x7e,0x7d,0x79,0x75,0x74,0x77,0x7b,0x83,0x82,0x80,0x7e,0x7c,0x7a,0x79,0x79,
+0x7c,0x7e,0x83,0x88,0x8b,0x8b,0x88,0x86,0x7d,0x7f,0x81,0x84,0x87,0x88,0x89,0x89,
+0x89,0x89,0x89,0x88,0x87,0x87,0x86,0x86,0x85,0x85,0x86,0x86,0x84,0x81,0x7e,0x7d,
+0x7d,0x7c,0x7b,0x7a,0x79,0x7a,0x7b,0x7c,0x79,0x77,0x76,0x78,0x7d,0x80,0x80,0x7f,
+0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x80,0x80,0x81,0x81,0x80,0x7e,0x7b,0x7a,
+0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7d,0x7f,0x7f,0x7b,0x77,0x78,0x7c,0x82,0x88,0x8a,0x88,0x84,0x82,
+0x83,0x81,0x7e,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,0x7f,0x7f,0x80,0x81,0x82,0x82,0x83,
+0x81,0x82,0x84,0x85,0x86,0x85,0x85,0x84,0x84,0x85,0x85,0x86,0x86,0x85,0x85,0x84,
+0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x86,0x86,0x84,0x7e,0x79,0x77,0x79,0x7c,
+0x7b,0x7f,0x83,0x83,0x80,0x7d,0x7d,0x7f,0x7d,0x7b,0x79,0x77,0x77,0x79,0x7c,0x7e,
+0x7f,0x7e,0x7c,0x7b,0x7b,0x7c,0x7e,0x80,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x77,0x77,0x76,0x76,0x76,0x77,0x79,0x79,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x78,
+0x68,0x68,0x68,0x68,0x6a,0x6c,0x6e,0x6f,0x70,0x71,0x73,0x74,0x73,0x72,0x70,0x6e,
+0x6e,0x6f,0x70,0x72,0x74,0x75,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x7a,0x7d,0x80,0x7f,0x7b,0x79,0x79,0x7b,0x78,0x75,0x74,0x76,0x7a,0x7c,0x7c,0x7a,
+0x75,0x73,0x70,0x6e,0x70,0x74,0x7a,0x7d,0x82,0x83,0x83,0x83,0x81,0x7e,0x7b,0x7a,
+0x7e,0x7f,0x7f,0x80,0x7f,0x7e,0x7d,0x7d,0x79,0x79,0x78,0x77,0x77,0x78,0x79,0x79,
+0x86,0x85,0x82,0x7c,0x77,0x75,0x77,0x7b,0x89,0x87,0x83,0x80,0x80,0x82,0x85,0x87,
+0x84,0x83,0x85,0x89,0x8c,0x8c,0x88,0x83,0x7c,0x7e,0x80,0x83,0x85,0x87,0x88,0x88,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x86,0x86,0x86,0x85,0x82,0x80,0x7e,
+0x7d,0x7c,0x7a,0x79,0x79,0x7a,0x7c,0x7d,0x7a,0x78,0x77,0x7a,0x7e,0x81,0x80,0x7e,
+0x7e,0x7f,0x7f,0x80,0x80,0x80,0x7f,0x7e,0x80,0x81,0x81,0x80,0x7f,0x7d,0x7b,0x7a,
+0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7c,0x7a,0x7c,0x7e,0x7e,0x7b,0x78,0x7a,0x7d,0x81,0x85,0x87,0x86,0x84,0x82,
+0x84,0x82,0x80,0x7d,0x7c,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x81,0x82,0x82,0x82,
+0x81,0x82,0x85,0x88,0x89,0x89,0x88,0x88,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x86,0x86,0x83,0x7d,0x77,0x75,0x78,0x7b,
+0x7c,0x7f,0x83,0x83,0x80,0x7d,0x7d,0x7e,0x7e,0x7c,0x79,0x77,0x78,0x7a,0x7d,0x7f,
+0x7f,0x7e,0x7c,0x7a,0x7a,0x7b,0x7d,0x7f,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x79,0x78,0x78,0x78,0x78,0x7a,0x7b,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x68,0x68,0x68,0x68,0x6a,0x6c,0x6e,0x6f,0x72,0x73,0x75,0x75,0x74,0x71,0x6e,0x6c,
+0x6f,0x6f,0x71,0x72,0x74,0x75,0x77,0x77,0x74,0x74,0x75,0x76,0x77,0x78,0x78,0x79,
+0x7c,0x7f,0x82,0x81,0x7d,0x7b,0x7b,0x7d,0x7b,0x78,0x74,0x75,0x78,0x7b,0x7c,0x7b,
+0x74,0x74,0x72,0x72,0x72,0x74,0x76,0x77,0x7d,0x7e,0x7f,0x7e,0x7c,0x79,0x75,0x73,
+0x77,0x78,0x7a,0x7c,0x7d,0x7d,0x7d,0x7d,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7b,0x7c,
+0x84,0x84,0x80,0x7b,0x75,0x74,0x77,0x7b,0x8c,0x88,0x80,0x7b,0x7a,0x7e,0x84,0x89,
+0x88,0x85,0x84,0x87,0x8b,0x8a,0x84,0x7e,0x77,0x79,0x7c,0x7e,0x81,0x82,0x83,0x83,
+0x83,0x83,0x84,0x85,0x85,0x86,0x87,0x87,0x85,0x86,0x87,0x87,0x86,0x83,0x80,0x7f,
+0x7d,0x7c,0x7a,0x78,0x78,0x7a,0x7c,0x7e,0x7b,0x79,0x78,0x7b,0x7f,0x81,0x7f,0x7d,
+0x7c,0x7d,0x7f,0x81,0x82,0x81,0x81,0x80,0x81,0x81,0x80,0x80,0x7e,0x7c,0x7a,0x79,
+0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7a,0x79,0x7b,0x7e,0x7f,0x7c,0x79,0x7c,0x7d,0x7f,0x80,0x82,0x83,0x84,0x84,
+0x82,0x81,0x7f,0x7d,0x7c,0x7d,0x7f,0x80,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x82,
+0x80,0x82,0x86,0x8a,0x8c,0x8d,0x8c,0x8c,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x86,0x86,0x82,0x7c,0x76,0x74,0x77,0x7a,
+0x7c,0x80,0x84,0x84,0x80,0x7d,0x7d,0x7e,0x7f,0x7d,0x7a,0x79,0x79,0x7c,0x7f,0x81,
+0x80,0x7e,0x7c,0x7a,0x79,0x7a,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7e,0x7f,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x68,0x68,0x68,0x68,0x6a,0x6c,0x6e,0x6f,0x74,0x75,0x76,0x76,0x74,0x70,0x6d,0x6a,
+0x6f,0x6f,0x71,0x72,0x74,0x76,0x77,0x77,0x72,0x72,0x74,0x75,0x76,0x78,0x79,0x7a,
+0x7d,0x80,0x83,0x82,0x7e,0x7c,0x7c,0x7e,0x7d,0x79,0x75,0x74,0x77,0x7a,0x7b,0x7b,
+0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x7a,0x7b,0x7c,0x7c,0x7a,0x76,0x72,0x6f,
+0x72,0x73,0x76,0x79,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7c,0x7d,
+0x7f,0x7f,0x7c,0x77,0x73,0x73,0x77,0x7c,0x8e,0x87,0x7d,0x75,0x73,0x77,0x7f,0x84,
+0x89,0x85,0x82,0x84,0x88,0x87,0x80,0x79,0x73,0x75,0x77,0x7a,0x7d,0x7e,0x7f,0x7f,
+0x81,0x81,0x82,0x83,0x85,0x86,0x87,0x87,0x85,0x86,0x87,0x87,0x86,0x84,0x81,0x7f,
+0x7d,0x7c,0x79,0x78,0x78,0x7a,0x7d,0x7f,0x7c,0x7a,0x79,0x7c,0x7f,0x81,0x7f,0x7c,
+0x7b,0x7c,0x7f,0x81,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x7f,0x7e,0x7c,0x7a,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x79,0x78,0x7a,0x7d,0x7f,0x7d,0x7a,0x7d,0x7d,0x7d,0x7d,0x7f,0x81,0x83,0x85,
+0x80,0x7f,0x7d,0x7b,0x7b,0x7c,0x7e,0x7f,0x83,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x80,0x82,0x87,0x8b,0x8e,0x8f,0x8f,0x8e,0x86,0x85,0x85,0x84,0x84,0x85,0x85,0x86,
+0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x87,0x85,0x82,0x7b,0x75,0x73,0x76,0x7a,
+0x7d,0x81,0x84,0x84,0x81,0x7e,0x7d,0x7e,0x7f,0x7e,0x7b,0x7a,0x7a,0x7d,0x80,0x82,
+0x80,0x7e,0x7c,0x7a,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7c,0x7b,0x7c,0x7c,0x7e,0x80,0x81,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x6c,0x6b,0x69,0x68,0x69,0x6c,0x6f,0x71,0x7a,0x77,0x73,0x70,0x6d,0x6d,0x6e,0x6f,
+0x6e,0x6e,0x6f,0x71,0x72,0x73,0x74,0x75,0x75,0x74,0x74,0x74,0x76,0x79,0x7c,0x7e,
+0x82,0x85,0x87,0x86,0x83,0x83,0x85,0x87,0x83,0x80,0x7c,0x79,0x79,0x7c,0x80,0x83,
+0x7a,0x79,0x77,0x75,0x75,0x75,0x76,0x77,0x7a,0x7c,0x7c,0x78,0x72,0x6d,0x6c,0x6d,
+0x72,0x74,0x77,0x79,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x78,
+0x80,0x80,0x80,0x81,0x83,0x86,0x8a,0x8b,0x8d,0x89,0x83,0x7f,0x7e,0x81,0x85,0x88,
+0x89,0x87,0x87,0x89,0x8a,0x87,0x81,0x7c,0x72,0x79,0x80,0x82,0x80,0x82,0x88,0x8f,
+0x83,0x87,0x8c,0x8c,0x89,0x85,0x84,0x84,0x88,0x85,0x82,0x82,0x83,0x81,0x7d,0x79,
+0x7e,0x7e,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,0x7d,0x7d,0x7e,0x80,0x82,0x84,0x86,0x87,
+0x7d,0x7e,0x81,0x83,0x86,0x88,0x8a,0x8b,0x84,0x82,0x7f,0x7c,0x7b,0x7b,0x7d,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,
+0x7e,0x7d,0x7d,0x7c,0x7d,0x7e,0x7f,0x80,0x82,0x82,0x83,0x83,0x84,0x85,0x85,0x85,
+0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x85,0x84,0x84,0x84,0x84,0x85,0x87,0x87,0x87,0x84,0x80,0x7c,0x79,0x79,0x79,0x7a,
+0x7c,0x7e,0x82,0x84,0x84,0x81,0x7e,0x7b,0x7f,0x7e,0x7d,0x7c,0x7c,0x7e,0x80,0x82,
+0x80,0x7e,0x7b,0x79,0x79,0x7a,0x7c,0x7e,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x76,
+0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,
+0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7b,0x79,0x76,0x74,
+0x6a,0x69,0x68,0x68,0x69,0x6c,0x70,0x72,0x79,0x76,0x72,0x6f,0x6d,0x6c,0x6d,0x6e,
+0x6b,0x6c,0x6d,0x6e,0x6f,0x71,0x72,0x72,0x75,0x75,0x74,0x74,0x75,0x77,0x7a,0x7c,
+0x80,0x82,0x84,0x83,0x7f,0x7e,0x80,0x82,0x82,0x7f,0x7b,0x78,0x78,0x7a,0x7d,0x80,
+0x76,0x76,0x76,0x77,0x79,0x7c,0x7e,0x80,0x80,0x81,0x81,0x7d,0x76,0x72,0x71,0x72,
+0x72,0x74,0x76,0x79,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x78,
+0x82,0x82,0x83,0x85,0x87,0x88,0x89,0x8a,0x8b,0x88,0x82,0x7e,0x7d,0x7f,0x83,0x85,
+0x86,0x85,0x85,0x86,0x87,0x85,0x7f,0x79,0x75,0x82,0x92,0x9b,0x9d,0x9d,0xa0,0xa3,
+0x9b,0x9e,0xa0,0x9e,0x98,0x92,0x8f,0x8f,0x90,0x8e,0x8d,0x8e,0x8e,0x8b,0x85,0x80,
+0x7e,0x7d,0x7d,0x7d,0x7e,0x80,0x82,0x83,0x7d,0x7c,0x7c,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7f,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x85,0x83,0x80,0x7d,0x7b,0x7b,0x7c,0x7d,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7e,0x7d,0x7d,0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x81,0x82,0x83,0x83,0x84,0x84,0x85,
+0x84,0x84,0x84,0x85,0x86,0x87,0x87,0x88,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x80,0x7c,0x79,0x78,0x78,0x79,0x7a,
+0x7c,0x7d,0x7f,0x80,0x7f,0x7e,0x7c,0x7b,0x7d,0x7c,0x7b,0x7a,0x7a,0x7c,0x7e,0x80,
+0x7e,0x7c,0x79,0x78,0x77,0x78,0x7a,0x7c,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x78,0x77,
+0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7b,0x7a,0x79,0x77,0x75,0x73,
+0x69,0x68,0x68,0x68,0x6a,0x6d,0x71,0x73,0x76,0x74,0x71,0x6e,0x6c,0x6b,0x6c,0x6c,
+0x69,0x6a,0x6b,0x6c,0x6d,0x6f,0x6f,0x70,0x76,0x75,0x74,0x73,0x74,0x76,0x78,0x7a,
+0x7f,0x81,0x82,0x7f,0x7b,0x79,0x7a,0x7c,0x7f,0x7d,0x7a,0x77,0x76,0x77,0x79,0x7a,
+0x72,0x73,0x75,0x78,0x7d,0x81,0x85,0x87,0x85,0x86,0x85,0x81,0x7b,0x77,0x77,0x78,
+0x73,0x74,0x76,0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x78,0x77,0x76,0x77,0x77,0x78,
+0x81,0x83,0x86,0x88,0x89,0x88,0x86,0x85,0x88,0x85,0x81,0x7d,0x7c,0x7d,0x80,0x82,
+0x84,0x83,0x83,0x84,0x85,0x83,0x7d,0x77,0x76,0x88,0xa0,0xb1,0xb7,0xb6,0xb6,0xb7,
+0xb5,0xb6,0xb5,0xb0,0xa7,0x9f,0x9b,0x9a,0x98,0x98,0x99,0x9b,0x9b,0x96,0x8d,0x86,
+0x7c,0x7d,0x7e,0x80,0x82,0x86,0x88,0x8a,0x87,0x86,0x84,0x82,0x81,0x81,0x81,0x81,
+0x8d,0x8c,0x8c,0x8a,0x87,0x84,0x81,0x7f,0x86,0x84,0x81,0x7e,0x7c,0x7b,0x7b,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7d,0x7f,0x7f,0x80,0x81,0x81,0x82,0x82,0x83,0x83,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x82,0x83,0x84,0x84,0x83,0x81,0x7e,0x7c,0x7c,0x7a,0x78,0x76,0x76,0x77,0x78,0x7a,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x79,0x78,0x77,0x78,0x7a,0x7c,0x7e,
+0x7c,0x7b,0x79,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7e,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x77,0x77,0x77,0x77,0x76,0x74,0x73,0x72,
+0x67,0x67,0x68,0x69,0x6c,0x6f,0x72,0x74,0x74,0x72,0x70,0x6d,0x6b,0x6a,0x6a,0x6b,
+0x6a,0x6a,0x6b,0x6d,0x6e,0x6f,0x70,0x71,0x76,0x75,0x73,0x72,0x73,0x74,0x76,0x78,
+0x80,0x81,0x82,0x7f,0x7a,0x77,0x77,0x79,0x7c,0x7b,0x78,0x76,0x74,0x74,0x75,0x75,
+0x71,0x72,0x75,0x78,0x7b,0x7f,0x82,0x83,0x84,0x85,0x84,0x80,0x7b,0x78,0x78,0x7a,
+0x74,0x74,0x75,0x76,0x77,0x78,0x78,0x78,0x79,0x79,0x77,0x76,0x76,0x76,0x77,0x78,
+0x7e,0x80,0x83,0x85,0x85,0x83,0x7f,0x7d,0x84,0x82,0x7e,0x7c,0x7a,0x7b,0x7d,0x7e,
+0x85,0x83,0x83,0x85,0x86,0x83,0x7d,0x78,0x75,0x85,0x9a,0xaa,0xb0,0xb3,0xb6,0xb9,
+0xbb,0xbb,0xb9,0xb2,0xa9,0xa2,0x9e,0x9e,0x99,0x9a,0x9d,0xa0,0x9f,0x98,0x8d,0x84,
+0x7b,0x7c,0x7e,0x81,0x85,0x8a,0x8e,0x90,0x98,0x97,0x95,0x94,0x94,0x95,0x96,0x97,
+0xa0,0xa0,0x9f,0x9e,0x9b,0x97,0x94,0x91,0x86,0x84,0x81,0x7e,0x7c,0x7b,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,0x80,0x80,0x81,0x82,0x82,0x83,0x83,
+0x85,0x85,0x84,0x84,0x83,0x83,0x82,0x82,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x81,0x82,0x84,0x84,0x82,0x7e,0x7a,0x78,0x78,0x77,0x76,0x76,0x76,0x78,0x79,0x7a,
+0x7b,0x7a,0x78,0x77,0x76,0x76,0x77,0x78,0x77,0x76,0x75,0x74,0x75,0x77,0x7a,0x7b,
+0x7d,0x7c,0x7b,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,
+0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,0x76,0x74,0x74,0x74,0x74,0x73,0x73,0x72,0x71,
+0x68,0x69,0x6a,0x6b,0x6e,0x71,0x73,0x74,0x72,0x71,0x6f,0x6d,0x6b,0x6a,0x6a,0x6a,
+0x6c,0x6d,0x6e,0x6f,0x70,0x72,0x73,0x73,0x76,0x75,0x73,0x72,0x73,0x74,0x76,0x78,
+0x82,0x84,0x84,0x80,0x7b,0x77,0x77,0x79,0x79,0x79,0x77,0x76,0x74,0x73,0x73,0x72,
+0x74,0x74,0x75,0x76,0x76,0x77,0x77,0x77,0x7c,0x7d,0x7d,0x7a,0x75,0x74,0x76,0x79,
+0x75,0x75,0x75,0x75,0x75,0x76,0x77,0x77,0x79,0x78,0x77,0x76,0x76,0x76,0x77,0x77,
+0x79,0x7a,0x7d,0x7e,0x7e,0x7b,0x78,0x76,0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7c,0x7d,
+0x86,0x85,0x85,0x86,0x87,0x84,0x7e,0x79,0x71,0x7b,0x86,0x8e,0x93,0x9a,0xa4,0xad,
+0xb0,0xb0,0xad,0xa7,0x9f,0x99,0x98,0x99,0x95,0x96,0x98,0x9a,0x98,0x91,0x85,0x7c,
+0x7a,0x7b,0x7d,0x81,0x86,0x8b,0x90,0x92,0x9b,0x9b,0x9a,0x9a,0x9d,0xa0,0xa4,0xa6,
+0xa4,0xa5,0xa6,0xa6,0xa5,0xa2,0x9f,0x9d,0x83,0x82,0x80,0x7e,0x7c,0x7a,0x7a,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,
+0x7d,0x7c,0x7c,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x80,0x80,0x81,0x82,0x82,0x83,0x83,
+0x85,0x85,0x84,0x83,0x83,0x82,0x81,0x81,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x82,0x82,0x83,0x82,0x80,0x7e,0x7b,0x79,0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7c,
+0x7c,0x7b,0x79,0x78,0x77,0x77,0x77,0x78,0x75,0x74,0x73,0x73,0x74,0x76,0x79,0x7b,
+0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7b,0x7c,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,
+0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,
+0x6a,0x6b,0x6c,0x6e,0x70,0x72,0x74,0x75,0x71,0x70,0x6f,0x6e,0x6c,0x6b,0x6a,0x6a,
+0x6d,0x6d,0x6e,0x70,0x71,0x72,0x73,0x74,0x76,0x75,0x74,0x73,0x74,0x76,0x78,0x7a,
+0x83,0x84,0x84,0x81,0x7b,0x78,0x78,0x79,0x77,0x77,0x77,0x77,0x76,0x75,0x73,0x72,
+0x76,0x76,0x75,0x75,0x73,0x71,0x6f,0x6e,0x73,0x74,0x74,0x72,0x6f,0x6f,0x73,0x77,
+0x75,0x75,0x74,0x73,0x74,0x74,0x75,0x76,0x79,0x78,0x77,0x76,0x75,0x76,0x76,0x77,
+0x76,0x76,0x76,0x76,0x75,0x74,0x74,0x73,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,
+0x85,0x84,0x84,0x85,0x86,0x84,0x7e,0x78,0x71,0x75,0x79,0x7b,0x7e,0x88,0x97,0xa4,
+0xa7,0xa7,0xa3,0x9d,0x95,0x91,0x91,0x93,0x91,0x90,0x90,0x90,0x8e,0x87,0x7d,0x75,
+0x79,0x7a,0x7c,0x80,0x84,0x89,0x8e,0x90,0x91,0x90,0x90,0x91,0x94,0x99,0x9e,0xa1,
+0x98,0x9a,0x9c,0x9e,0x9d,0x9a,0x97,0x95,0x7f,0x7f,0x7e,0x7c,0x7b,0x7a,0x79,0x79,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7e,0x7e,0x80,0x81,0x81,0x82,0x82,0x83,0x83,0x84,
+0x85,0x85,0x84,0x84,0x83,0x83,0x82,0x82,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x84,0x82,0x81,0x7f,0x7e,0x7f,0x80,0x81,0x82,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,
+0x7d,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,0x78,0x74,0x74,0x73,0x73,0x74,0x77,0x79,0x7b,
+0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x75,0x75,0x74,0x74,0x74,0x75,0x76,0x77,
+0x6d,0x6e,0x6f,0x71,0x72,0x73,0x74,0x74,0x70,0x70,0x6f,0x6f,0x6d,0x6c,0x6b,0x6a,
+0x6b,0x6b,0x6c,0x6e,0x6f,0x70,0x71,0x72,0x75,0x75,0x74,0x74,0x75,0x77,0x7a,0x7c,
+0x80,0x82,0x82,0x7f,0x7a,0x76,0x77,0x78,0x76,0x77,0x78,0x79,0x78,0x77,0x75,0x74,
+0x76,0x76,0x76,0x75,0x73,0x71,0x6e,0x6d,0x6b,0x6d,0x6d,0x6c,0x6b,0x6c,0x72,0x76,
+0x76,0x75,0x74,0x72,0x72,0x73,0x74,0x75,0x79,0x78,0x77,0x76,0x75,0x76,0x76,0x77,
+0x77,0x75,0x72,0x70,0x70,0x71,0x74,0x75,0x75,0x76,0x78,0x7a,0x7c,0x7d,0x7e,0x7e,
+0x81,0x80,0x80,0x81,0x82,0x80,0x7a,0x74,0x74,0x78,0x7d,0x7f,0x82,0x8c,0x9b,0xa8,
+0xad,0xab,0xa6,0x9d,0x94,0x8f,0x8f,0x90,0x92,0x90,0x8c,0x8a,0x88,0x82,0x7a,0x74,
+0x78,0x79,0x7a,0x7d,0x81,0x86,0x89,0x8c,0x8a,0x89,0x87,0x87,0x89,0x8d,0x91,0x94,
+0x90,0x92,0x93,0x94,0x91,0x8d,0x89,0x85,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,0x7e,0x81,0x81,0x82,0x83,0x83,0x84,0x84,0x85,
+0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x86,0x83,0x7f,0x7c,0x7d,0x81,0x86,0x8a,0x8b,0x8a,0x89,0x88,0x87,0x85,0x83,0x82,
+0x7e,0x81,0x84,0x86,0x85,0x81,0x7c,0x78,0x75,0x74,0x73,0x73,0x75,0x78,0x7b,0x7d,
+0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7b,
+0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x75,0x76,0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x77,0x78,0x7a,0x7b,
+0x6f,0x70,0x71,0x73,0x74,0x74,0x74,0x74,0x70,0x70,0x70,0x6f,0x6e,0x6d,0x6b,0x6a,
+0x68,0x69,0x6a,0x6b,0x6c,0x6e,0x6f,0x6f,0x75,0x74,0x74,0x74,0x76,0x79,0x7c,0x7e,
+0x7d,0x7f,0x7f,0x7c,0x77,0x74,0x75,0x76,0x75,0x76,0x78,0x7a,0x7a,0x78,0x76,0x75,
+0x74,0x75,0x76,0x76,0x75,0x74,0x71,0x70,0x68,0x69,0x6a,0x6a,0x69,0x6c,0x72,0x77,
+0x76,0x75,0x73,0x72,0x71,0x72,0x73,0x74,0x78,0x78,0x76,0x75,0x75,0x75,0x76,0x77,
+0x79,0x76,0x71,0x6e,0x6e,0x71,0x75,0x79,0x73,0x74,0x77,0x7a,0x7d,0x7e,0x7f,0x7f,
+0x7e,0x7c,0x7c,0x7d,0x7f,0x7c,0x76,0x71,0x77,0x7f,0x87,0x8c,0x90,0x98,0xa5,0xb0,
+0xb7,0xb4,0xad,0xa2,0x97,0x90,0x8f,0x91,0x95,0x91,0x8c,0x89,0x86,0x81,0x7b,0x75,
+0x77,0x78,0x79,0x7c,0x7f,0x83,0x86,0x88,0x8d,0x8b,0x87,0x85,0x85,0x87,0x8b,0x8d,
+0x92,0x92,0x93,0x92,0x8e,0x88,0x81,0x7d,0x79,0x79,0x7a,0x7a,0x7a,0x79,0x79,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,0x7e,0x82,0x82,0x83,0x83,0x84,0x85,0x85,0x85,
+0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x87,0x83,0x7d,0x7a,0x7c,0x82,0x8a,0x90,0x91,0x90,0x8f,0x8d,0x8b,0x88,0x86,0x84,
+0x7f,0x83,0x88,0x8c,0x8a,0x85,0x7d,0x78,0x76,0x75,0x74,0x74,0x76,0x79,0x7c,0x7e,
+0x78,0x78,0x79,0x79,0x78,0x78,0x77,0x76,0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x7b,
+0x74,0x75,0x76,0x77,0x78,0x7a,0x7a,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7d,0x7e,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6d,
+0x6a,0x6b,0x6b,0x67,0x63,0x62,0x64,0x67,0x70,0x6f,0x6f,0x6e,0x6d,0x6e,0x6e,0x6e,
+0x72,0x76,0x79,0x7a,0x77,0x75,0x75,0x77,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,
+0x72,0x74,0x76,0x78,0x78,0x77,0x74,0x73,0x73,0x72,0x71,0x6f,0x6e,0x6e,0x6e,0x6f,
+0x74,0x71,0x6c,0x69,0x67,0x69,0x6c,0x6f,0x73,0x73,0x75,0x76,0x76,0x76,0x75,0x75,
+0x75,0x70,0x6b,0x6a,0x6c,0x6f,0x70,0x6f,0x71,0x73,0x76,0x75,0x74,0x75,0x78,0x7c,
+0x75,0x77,0x79,0x7a,0x7a,0x78,0x76,0x74,0x7a,0x81,0x8c,0x98,0xa1,0xa8,0xac,0xae,
+0xb3,0xb4,0xb1,0xa7,0x9b,0x94,0x96,0x9b,0x99,0x8f,0x83,0x7a,0x77,0x78,0x78,0x78,
+0x74,0x75,0x78,0x7b,0x7f,0x83,0x86,0x88,0x8d,0x8b,0x89,0x88,0x8a,0x90,0x95,0x99,
+0x95,0x94,0x91,0x8c,0x86,0x7f,0x7a,0x77,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x82,0x80,0x7f,0x81,0x85,0x86,0x85,0x82,
+0x7c,0x81,0x85,0x87,0x86,0x84,0x85,0x87,0x86,0x84,0x82,0x80,0x81,0x83,0x86,0x88,
+0x87,0x84,0x7f,0x7c,0x7c,0x80,0x85,0x88,0x89,0x89,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,
+0x87,0x80,0x7b,0x7f,0x87,0x8a,0x83,0x7b,0x73,0x71,0x70,0x71,0x75,0x7b,0x82,0x86,
+0x7e,0x7c,0x78,0x75,0x74,0x75,0x76,0x78,0x7d,0x7c,0x7b,0x79,0x78,0x76,0x75,0x74,
+0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x74,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,
+0x7a,0x79,0x77,0x77,0x77,0x78,0x7a,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,
+0x6f,0x70,0x6f,0x6c,0x68,0x67,0x69,0x6c,0x71,0x70,0x6e,0x6c,0x6a,0x68,0x67,0x67,
+0x6e,0x70,0x72,0x71,0x6e,0x6e,0x70,0x73,0x74,0x75,0x76,0x77,0x76,0x74,0x72,0x71,
+0x73,0x75,0x77,0x78,0x78,0x76,0x74,0x72,0x73,0x72,0x72,0x71,0x72,0x73,0x74,0x75,
+0x73,0x72,0x6f,0x6d,0x6d,0x6e,0x70,0x72,0x74,0x74,0x75,0x76,0x76,0x75,0x74,0x73,
+0x71,0x6d,0x68,0x68,0x6b,0x6e,0x6f,0x6f,0x6d,0x70,0x72,0x72,0x71,0x71,0x74,0x77,
+0x72,0x74,0x77,0x79,0x79,0x78,0x76,0x75,0x75,0x80,0x8e,0x99,0xa1,0xa8,0xaf,0xb6,
+0xb3,0xb3,0xae,0xa3,0x97,0x90,0x93,0x97,0x95,0x8e,0x84,0x7e,0x7c,0x7b,0x7a,0x78,
+0x76,0x76,0x77,0x7a,0x7e,0x84,0x8a,0x8d,0x91,0x8e,0x8a,0x89,0x8b,0x90,0x96,0x98,
+0x95,0x92,0x8e,0x88,0x82,0x7d,0x7a,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x80,0x7e,0x7e,0x81,0x85,0x87,0x86,0x83,
+0x83,0x85,0x86,0x84,0x80,0x7e,0x7f,0x81,0x82,0x80,0x7d,0x7b,0x7b,0x7d,0x7f,0x81,
+0x84,0x82,0x7d,0x7b,0x7b,0x7f,0x84,0x87,0x89,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,
+0x87,0x81,0x7c,0x7f,0x86,0x88,0x82,0x7a,0x76,0x74,0x71,0x70,0x71,0x74,0x79,0x7c,
+0x7e,0x7c,0x79,0x76,0x75,0x76,0x77,0x78,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,
+0x79,0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,
+0x79,0x78,0x77,0x77,0x77,0x78,0x7a,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,
+0x73,0x75,0x75,0x72,0x6e,0x6c,0x6e,0x70,0x72,0x71,0x6e,0x6b,0x68,0x65,0x62,0x61,
+0x6a,0x6a,0x69,0x66,0x63,0x65,0x6b,0x6f,0x70,0x73,0x76,0x78,0x76,0x72,0x6d,0x6a,
+0x74,0x75,0x76,0x77,0x76,0x74,0x72,0x70,0x73,0x72,0x72,0x72,0x73,0x74,0x76,0x77,
+0x70,0x71,0x72,0x73,0x73,0x74,0x74,0x74,0x75,0x76,0x76,0x76,0x76,0x74,0x73,0x72,
+0x6c,0x68,0x64,0x65,0x69,0x6d,0x6f,0x6f,0x69,0x6b,0x6e,0x6d,0x6b,0x6b,0x6d,0x70,
+0x6e,0x70,0x73,0x75,0x77,0x77,0x77,0x76,0x72,0x80,0x8f,0x96,0x96,0x99,0xa3,0xad,
+0xb4,0xb2,0xab,0x9e,0x91,0x8c,0x8f,0x95,0x92,0x8e,0x88,0x86,0x85,0x82,0x7e,0x7a,
+0x78,0x77,0x76,0x77,0x7d,0x85,0x8e,0x94,0x97,0x92,0x8c,0x8a,0x8d,0x92,0x95,0x97,
+0x93,0x8f,0x89,0x82,0x7c,0x7a,0x7a,0x7a,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,
+0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7a,0x7d,0x7c,0x7c,0x80,0x85,0x88,0x86,0x84,
+0x88,0x88,0x85,0x7f,0x79,0x76,0x78,0x7b,0x7d,0x7b,0x77,0x74,0x73,0x74,0x77,0x78,
+0x80,0x7e,0x7b,0x79,0x7a,0x7e,0x82,0x85,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,
+0x86,0x81,0x7d,0x7f,0x84,0x85,0x7f,0x79,0x79,0x76,0x73,0x6f,0x6e,0x6f,0x70,0x72,
+0x7e,0x7d,0x7a,0x78,0x77,0x77,0x78,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x79,0x79,
+0x79,0x78,0x77,0x77,0x77,0x78,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,
+0x74,0x76,0x77,0x74,0x70,0x6e,0x6f,0x71,0x70,0x6f,0x6e,0x6c,0x6a,0x67,0x64,0x63,
+0x68,0x67,0x64,0x5f,0x5d,0x60,0x68,0x6f,0x70,0x73,0x78,0x7a,0x79,0x73,0x6c,0x67,
+0x70,0x71,0x72,0x72,0x71,0x6f,0x6d,0x6c,0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,
+0x6b,0x6d,0x70,0x73,0x75,0x75,0x75,0x74,0x76,0x77,0x77,0x76,0x75,0x74,0x72,0x71,
+0x69,0x65,0x61,0x62,0x66,0x6b,0x6d,0x6d,0x65,0x68,0x6a,0x6a,0x67,0x65,0x67,0x69,
+0x69,0x6b,0x6e,0x71,0x73,0x74,0x75,0x75,0x71,0x7f,0x8d,0x8f,0x89,0x88,0x92,0x9e,
+0xb5,0xb2,0xa9,0x9a,0x8d,0x89,0x8e,0x95,0x92,0x91,0x90,0x90,0x8f,0x8b,0x84,0x7e,
+0x7a,0x78,0x75,0x75,0x7c,0x87,0x93,0x9a,0x9d,0x95,0x8c,0x8a,0x8e,0x93,0x95,0x94,
+0x90,0x8b,0x83,0x7c,0x78,0x77,0x79,0x7b,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x75,
+0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x7a,0x79,0x7b,0x7f,0x84,0x87,0x85,0x82,
+0x85,0x84,0x80,0x79,0x74,0x73,0x77,0x7b,0x7d,0x7a,0x76,0x72,0x70,0x70,0x72,0x73,
+0x7b,0x7a,0x78,0x77,0x78,0x7b,0x7f,0x81,0x83,0x84,0x86,0x87,0x89,0x8b,0x8d,0x8d,
+0x84,0x81,0x7e,0x7f,0x81,0x81,0x7c,0x77,0x78,0x76,0x74,0x71,0x70,0x70,0x71,0x71,
+0x7e,0x7d,0x7b,0x7a,0x79,0x79,0x7a,0x7a,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x78,0x77,
+0x78,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x73,0x75,0x76,0x74,0x70,0x6d,0x6e,0x70,0x6d,0x6e,0x6e,0x6e,0x6e,0x6c,0x6a,0x69,
+0x68,0x67,0x63,0x5f,0x5d,0x61,0x69,0x71,0x72,0x75,0x7a,0x7c,0x7b,0x75,0x6e,0x69,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6b,0x69,0x69,0x72,0x70,0x6c,0x68,0x64,0x61,0x60,0x5f,
+0x66,0x68,0x6c,0x70,0x72,0x73,0x73,0x72,0x76,0x77,0x77,0x76,0x75,0x74,0x72,0x71,
+0x69,0x65,0x61,0x61,0x65,0x69,0x6b,0x6b,0x63,0x66,0x69,0x68,0x65,0x62,0x62,0x64,
+0x66,0x68,0x6a,0x6c,0x6e,0x6f,0x70,0x70,0x6c,0x7a,0x88,0x8e,0x8d,0x91,0x9c,0xa7,
+0xb5,0xb1,0xa6,0x96,0x89,0x87,0x90,0x99,0x96,0x96,0x96,0x98,0x97,0x91,0x88,0x81,
+0x7b,0x78,0x74,0x75,0x7c,0x88,0x95,0x9d,0xa1,0x96,0x8a,0x88,0x8d,0x93,0x94,0x91,
+0x8b,0x86,0x7f,0x79,0x75,0x76,0x78,0x7a,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x75,
+0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x78,0x78,0x78,0x7a,0x7e,0x82,0x83,0x81,0x7d,
+0x7b,0x7b,0x79,0x75,0x72,0x74,0x7a,0x7f,0x7f,0x7c,0x78,0x74,0x71,0x71,0x72,0x73,
+0x77,0x76,0x75,0x75,0x76,0x78,0x7a,0x7b,0x7e,0x7f,0x80,0x82,0x84,0x86,0x88,0x89,
+0x80,0x7e,0x7d,0x7d,0x7d,0x7c,0x79,0x76,0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x79,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x77,0x77,0x78,0x78,0x79,0x79,0x79,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7a,0x79,0x77,0x76,
+0x76,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x77,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,
+0x71,0x74,0x76,0x74,0x70,0x6d,0x6d,0x6e,0x6d,0x6e,0x6f,0x70,0x6f,0x6d,0x6b,0x69,
+0x68,0x67,0x65,0x61,0x60,0x63,0x6b,0x71,0x73,0x76,0x79,0x7b,0x79,0x75,0x70,0x6d,
+0x69,0x69,0x69,0x6a,0x6a,0x6a,0x69,0x69,0x72,0x70,0x6b,0x66,0x61,0x5e,0x5b,0x5a,
+0x66,0x67,0x69,0x6c,0x6e,0x71,0x72,0x73,0x75,0x76,0x76,0x76,0x76,0x74,0x73,0x72,
+0x6d,0x68,0x63,0x62,0x65,0x68,0x69,0x68,0x64,0x68,0x6b,0x6a,0x66,0x62,0x61,0x62,
+0x65,0x65,0x66,0x67,0x68,0x69,0x69,0x6a,0x66,0x6f,0x7e,0x8c,0x99,0xa6,0xb3,0xbb,
+0xb0,0xaa,0x9e,0x8e,0x83,0x84,0x90,0x9b,0x9a,0x99,0x99,0x99,0x97,0x91,0x87,0x7f,
+0x79,0x77,0x75,0x76,0x7d,0x88,0x94,0x9b,0xa2,0x95,0x87,0x85,0x8c,0x93,0x92,0x8e,
+0x85,0x82,0x7d,0x78,0x76,0x76,0x77,0x78,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x74,
+0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,0x78,0x78,0x79,0x7c,0x7f,0x7f,0x7a,0x76,
+0x71,0x73,0x74,0x74,0x73,0x76,0x7c,0x81,0x82,0x7f,0x7a,0x76,0x74,0x74,0x75,0x76,
+0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x77,0x77,0x79,0x7b,0x7d,0x7f,0x80,0x81,
+0x7a,0x7a,0x7b,0x7b,0x79,0x78,0x76,0x75,0x6f,0x71,0x74,0x77,0x7a,0x7c,0x7e,0x7e,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x7a,0x79,0x78,0x76,0x75,
+0x75,0x76,0x77,0x78,0x79,0x78,0x78,0x77,0x79,0x79,0x78,0x78,0x78,0x78,0x77,0x77,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x72,0x75,0x77,0x76,0x71,0x6e,0x6e,0x6f,0x71,0x71,0x71,0x6f,0x6c,0x68,0x63,0x60,
+0x65,0x66,0x66,0x64,0x62,0x65,0x6a,0x6f,0x72,0x73,0x74,0x75,0x74,0x72,0x70,0x6f,
+0x6a,0x6a,0x6b,0x6b,0x6c,0x6d,0x6e,0x6e,0x73,0x71,0x6e,0x6a,0x67,0x64,0x63,0x62,
+0x6a,0x69,0x69,0x69,0x6c,0x70,0x74,0x76,0x74,0x74,0x75,0x76,0x76,0x75,0x74,0x73,
+0x72,0x6d,0x67,0x64,0x65,0x67,0x67,0x66,0x67,0x6b,0x6e,0x6c,0x68,0x64,0x62,0x62,
+0x65,0x64,0x64,0x63,0x63,0x62,0x63,0x63,0x63,0x65,0x6e,0x81,0x97,0xa8,0xb0,0xb2,
+0xa7,0xa1,0x94,0x85,0x7b,0x7f,0x8d,0x9a,0x9b,0x99,0x96,0x94,0x91,0x8a,0x81,0x79,
+0x77,0x76,0x76,0x79,0x7f,0x89,0x92,0x98,0xa1,0x92,0x83,0x81,0x8a,0x92,0x91,0x8c,
+0x7f,0x7e,0x7c,0x7a,0x78,0x77,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x73,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x7a,0x79,0x79,0x7b,0x7c,0x7a,0x74,0x6f,
+0x6c,0x70,0x74,0x75,0x75,0x76,0x79,0x7d,0x82,0x7f,0x7b,0x77,0x75,0x75,0x76,0x77,
+0x72,0x72,0x73,0x73,0x72,0x71,0x70,0x70,0x70,0x71,0x72,0x74,0x75,0x77,0x78,0x78,
+0x74,0x77,0x79,0x78,0x76,0x74,0x74,0x75,0x6e,0x70,0x74,0x78,0x7a,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x77,0x78,0x78,0x79,0x78,0x77,0x76,0x75,
+0x75,0x76,0x77,0x78,0x79,0x78,0x77,0x76,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x73,0x77,0x79,0x78,0x74,0x70,0x70,0x71,0x74,0x74,0x72,0x6e,0x68,0x61,0x5b,0x57,
+0x62,0x64,0x66,0x65,0x64,0x65,0x69,0x6d,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,
+0x6c,0x6c,0x6d,0x6e,0x6f,0x70,0x72,0x73,0x73,0x72,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,
+0x6e,0x6c,0x6a,0x69,0x6c,0x71,0x76,0x7a,0x73,0x73,0x75,0x76,0x76,0x76,0x75,0x75,
+0x75,0x70,0x69,0x66,0x66,0x66,0x66,0x64,0x69,0x6d,0x70,0x6f,0x6a,0x65,0x63,0x63,
+0x65,0x64,0x62,0x61,0x5f,0x5f,0x5e,0x5e,0x64,0x60,0x62,0x72,0x89,0x98,0x9a,0x95,
+0xa0,0x9a,0x8d,0x7e,0x75,0x7a,0x8b,0x99,0x9b,0x97,0x93,0x8f,0x8b,0x84,0x7b,0x74,
+0x75,0x75,0x77,0x7a,0x80,0x89,0x90,0x95,0xa0,0x90,0x81,0x7f,0x89,0x91,0x90,0x8a,
+0x7c,0x7c,0x7c,0x7c,0x7a,0x78,0x76,0x74,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x73,0x73,0x74,0x74,0x75,0x76,0x76,0x76,0x7a,0x79,0x79,0x7a,0x7b,0x77,0x70,0x6a,
+0x6c,0x71,0x76,0x77,0x76,0x75,0x76,0x78,0x81,0x7e,0x7a,0x76,0x74,0x75,0x76,0x78,
+0x71,0x72,0x72,0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,
+0x71,0x74,0x77,0x77,0x74,0x72,0x73,0x75,0x6e,0x70,0x74,0x77,0x79,0x79,0x78,0x77,
+0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x76,0x76,0x77,0x77,0x77,0x76,0x75,0x75,
+0x74,0x75,0x77,0x79,0x79,0x78,0x77,0x76,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x76,0x77,0x77,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,
+0x7b,0x7a,0x78,0x72,0x6d,0x6b,0x6d,0x71,0x71,0x73,0x72,0x6e,0x67,0x63,0x62,0x63,
+0x64,0x65,0x66,0x68,0x68,0x68,0x67,0x67,0x6c,0x70,0x74,0x75,0x73,0x72,0x74,0x76,
+0x6c,0x6c,0x6b,0x6c,0x6c,0x6e,0x70,0x71,0x71,0x70,0x6e,0x6d,0x6d,0x70,0x73,0x75,
+0x6f,0x6d,0x6d,0x6f,0x74,0x77,0x76,0x74,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x6f,0x6e,0x6c,0x6a,0x68,0x66,0x64,0x63,0x6f,0x6d,0x6a,0x67,0x65,0x64,0x64,0x64,
+0x65,0x66,0x66,0x66,0x64,0x62,0x5f,0x5d,0x5d,0x5d,0x5f,0x62,0x66,0x6a,0x6e,0x70,
+0x76,0x75,0x75,0x76,0x78,0x7a,0x7d,0x7f,0x7a,0x7b,0x7d,0x7f,0x7f,0x7d,0x7b,0x7a,
+0x76,0x76,0x77,0x79,0x7c,0x7f,0x81,0x82,0x90,0x8e,0x8b,0x8a,0x8b,0x8a,0x86,0x82,
+0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x74,0x74,0x74,0x73,0x72,0x72,0x72,0x71,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x73,0x73,0x72,0x73,0x73,0x75,0x77,0x78,0x78,0x78,0x7a,0x7a,0x7a,0x78,0x76,0x75,
+0x70,0x6f,0x70,0x71,0x74,0x78,0x7c,0x7e,0x7f,0x7e,0x7c,0x7a,0x79,0x7a,0x7c,0x7d,
+0x78,0x76,0x72,0x6e,0x6c,0x6c,0x6c,0x6d,0x6d,0x6e,0x6f,0x71,0x72,0x72,0x72,0x71,
+0x6f,0x71,0x72,0x74,0x75,0x74,0x73,0x72,0x71,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,
+0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,
+0x76,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x79,
+0x7a,0x79,0x77,0x72,0x6c,0x69,0x6b,0x6e,0x70,0x72,0x71,0x6d,0x67,0x63,0x63,0x64,
+0x63,0x64,0x65,0x66,0x67,0x67,0x66,0x66,0x6d,0x71,0x75,0x76,0x74,0x73,0x74,0x76,
+0x74,0x73,0x71,0x6f,0x6d,0x6d,0x6d,0x6d,0x6f,0x6e,0x6c,0x6b,0x6c,0x6e,0x71,0x72,
+0x6f,0x6d,0x6d,0x70,0x74,0x77,0x77,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,
+0x6f,0x6e,0x6d,0x6c,0x6a,0x68,0x67,0x67,0x6f,0x6d,0x6a,0x68,0x66,0x65,0x64,0x65,
+0x67,0x68,0x68,0x68,0x67,0x65,0x62,0x61,0x62,0x63,0x63,0x64,0x66,0x69,0x6b,0x6c,
+0x69,0x68,0x68,0x69,0x6b,0x6d,0x6f,0x71,0x6d,0x6f,0x72,0x75,0x76,0x77,0x76,0x76,
+0x73,0x74,0x75,0x76,0x78,0x7a,0x7b,0x7c,0x8b,0x88,0x84,0x83,0x85,0x86,0x84,0x82,
+0x7a,0x7a,0x79,0x79,0x78,0x77,0x76,0x76,0x74,0x73,0x73,0x73,0x72,0x72,0x71,0x71,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x72,0x72,0x71,0x71,0x72,0x74,0x75,0x76,0x77,0x77,0x79,0x7a,0x7a,0x79,0x78,0x77,
+0x73,0x72,0x72,0x73,0x75,0x79,0x7c,0x7e,0x81,0x80,0x7d,0x7b,0x7a,0x7a,0x7c,0x7d,
+0x77,0x74,0x71,0x6e,0x6c,0x6c,0x6d,0x6e,0x68,0x69,0x6b,0x6c,0x6d,0x6d,0x6d,0x6c,
+0x70,0x71,0x72,0x74,0x74,0x74,0x73,0x72,0x72,0x73,0x75,0x77,0x79,0x7b,0x7d,0x7e,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,
+0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,
+0x76,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x78,0x78,0x76,0x70,0x6a,0x67,0x69,0x6b,0x6f,0x70,0x70,0x6d,0x67,0x64,0x64,0x65,
+0x64,0x65,0x66,0x67,0x67,0x67,0x66,0x65,0x6e,0x72,0x76,0x77,0x75,0x73,0x74,0x75,
+0x7b,0x79,0x75,0x71,0x6e,0x6b,0x69,0x69,0x6c,0x6b,0x69,0x69,0x69,0x6b,0x6e,0x6f,
+0x6f,0x6d,0x6d,0x70,0x75,0x78,0x77,0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x6f,0x6f,0x6e,0x6d,0x6d,0x6c,0x6c,0x6b,0x6e,0x6c,0x6a,0x68,0x66,0x66,0x65,0x65,
+0x68,0x69,0x69,0x69,0x68,0x67,0x65,0x65,0x68,0x67,0x67,0x66,0x67,0x68,0x69,0x6a,
+0x65,0x65,0x65,0x66,0x67,0x69,0x6b,0x6c,0x63,0x65,0x68,0x6b,0x6e,0x70,0x72,0x72,
+0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x74,0x83,0x7e,0x7a,0x79,0x7c,0x80,0x81,0x81,
+0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,0x73,0x73,0x72,0x72,0x72,0x72,0x71,0x71,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x70,0x70,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x78,0x79,0x7a,0x7a,0x7a,0x7a,
+0x76,0x75,0x74,0x74,0x76,0x78,0x7b,0x7d,0x83,0x81,0x7e,0x7b,0x79,0x79,0x79,0x7a,
+0x74,0x72,0x70,0x6e,0x6d,0x6e,0x6f,0x70,0x6c,0x6d,0x6f,0x70,0x71,0x71,0x70,0x70,
+0x70,0x71,0x72,0x73,0x73,0x73,0x72,0x72,0x73,0x74,0x75,0x77,0x79,0x7b,0x7c,0x7d,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,
+0x75,0x76,0x77,0x78,0x7a,0x7b,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x79,0x78,0x77,0x77,
+0x76,0x76,0x75,0x70,0x6a,0x66,0x67,0x69,0x6d,0x6f,0x70,0x6d,0x68,0x66,0x66,0x68,
+0x68,0x68,0x69,0x6a,0x6a,0x6a,0x69,0x68,0x6e,0x73,0x78,0x79,0x76,0x73,0x73,0x74,
+0x78,0x76,0x73,0x6f,0x6c,0x6a,0x68,0x68,0x68,0x68,0x67,0x67,0x67,0x69,0x6b,0x6c,
+0x6f,0x6d,0x6d,0x70,0x75,0x78,0x78,0x76,0x75,0x75,0x75,0x74,0x74,0x73,0x73,0x72,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6c,0x6c,0x6a,0x69,0x68,0x67,0x66,0x66,
+0x67,0x68,0x67,0x67,0x67,0x66,0x65,0x65,0x68,0x67,0x67,0x67,0x68,0x69,0x6b,0x6b,
+0x70,0x70,0x71,0x71,0x72,0x73,0x74,0x75,0x67,0x67,0x68,0x6a,0x6c,0x6f,0x71,0x72,
+0x74,0x74,0x73,0x73,0x72,0x70,0x6f,0x6e,0x79,0x74,0x6f,0x6f,0x74,0x7a,0x7e,0x7f,
+0x7a,0x7a,0x79,0x78,0x76,0x75,0x74,0x74,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x75,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x6f,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x76,0x78,0x7a,0x7b,0x7c,0x7d,
+0x77,0x76,0x75,0x74,0x74,0x76,0x78,0x7a,0x81,0x7f,0x7b,0x78,0x75,0x74,0x75,0x75,
+0x72,0x71,0x70,0x6f,0x6f,0x70,0x71,0x72,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,
+0x71,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x71,0x72,0x73,0x75,0x77,0x78,0x7a,0x7a,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x79,0x79,0x78,0x77,0x76,0x76,0x77,0x77,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x74,0x75,0x76,0x78,0x7a,0x7c,0x7d,0x7e,0x7d,0x7d,0x7c,0x7a,0x79,0x77,0x76,0x76,
+0x74,0x75,0x74,0x70,0x6a,0x67,0x68,0x6a,0x6c,0x6f,0x70,0x6e,0x6a,0x68,0x6a,0x6c,
+0x6d,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x6f,0x73,0x78,0x79,0x76,0x73,0x71,0x72,
+0x6e,0x6d,0x6c,0x6a,0x69,0x69,0x69,0x69,0x66,0x66,0x66,0x66,0x67,0x68,0x69,0x6a,
+0x6d,0x6c,0x6c,0x6f,0x74,0x78,0x78,0x76,0x75,0x75,0x74,0x74,0x73,0x72,0x71,0x71,
+0x6c,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x6f,0x6b,0x6b,0x6a,0x6a,0x69,0x68,0x67,0x67,
+0x66,0x66,0x65,0x64,0x63,0x62,0x62,0x62,0x64,0x64,0x64,0x66,0x68,0x6a,0x6c,0x6e,
+0x75,0x75,0x76,0x77,0x77,0x77,0x77,0x77,0x70,0x70,0x6e,0x6e,0x6e,0x70,0x72,0x73,
+0x76,0x76,0x76,0x75,0x72,0x6f,0x6c,0x6b,0x70,0x6c,0x69,0x6b,0x71,0x78,0x7c,0x7d,
+0x7a,0x79,0x78,0x77,0x76,0x74,0x73,0x73,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x74,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6f,0x6f,0x6e,0x6d,0x6e,0x6f,0x70,0x70,0x72,0x72,0x74,0x76,0x78,0x7a,0x7c,0x7d,
+0x77,0x76,0x74,0x73,0x73,0x74,0x76,0x77,0x7e,0x7b,0x78,0x74,0x71,0x70,0x70,0x71,
+0x71,0x71,0x71,0x71,0x71,0x72,0x73,0x74,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x72,0x6f,0x70,0x71,0x72,0x74,0x75,0x76,0x77,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x76,0x76,0x77,0x78,0x78,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,
+0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,
+0x74,0x75,0x76,0x78,0x7a,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,0x78,0x76,0x75,0x74,
+0x73,0x74,0x75,0x72,0x6d,0x6a,0x6b,0x6c,0x6c,0x6f,0x71,0x70,0x6d,0x6c,0x6d,0x70,
+0x6f,0x70,0x70,0x71,0x70,0x6f,0x6e,0x6d,0x6e,0x73,0x78,0x79,0x76,0x71,0x6f,0x6f,
+0x69,0x69,0x68,0x67,0x68,0x69,0x6a,0x6a,0x66,0x66,0x66,0x67,0x67,0x68,0x69,0x69,
+0x6c,0x6a,0x6a,0x6e,0x73,0x77,0x77,0x75,0x75,0x75,0x74,0x73,0x72,0x71,0x70,0x70,
+0x6a,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,0x69,0x6a,0x6a,0x6b,0x6a,0x69,0x68,0x67,
+0x67,0x66,0x64,0x62,0x61,0x60,0x60,0x60,0x63,0x63,0x63,0x64,0x65,0x68,0x6a,0x6b,
+0x6a,0x6b,0x6c,0x6c,0x6c,0x6c,0x6b,0x6a,0x70,0x6f,0x6c,0x6b,0x6c,0x6e,0x71,0x73,
+0x77,0x77,0x77,0x76,0x73,0x6f,0x6b,0x68,0x69,0x67,0x67,0x6b,0x72,0x78,0x7b,0x7b,
+0x7a,0x79,0x78,0x76,0x75,0x73,0x72,0x71,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x72,0x73,0x76,0x78,0x7b,0x7c,
+0x79,0x77,0x75,0x74,0x74,0x76,0x78,0x79,0x7c,0x7a,0x77,0x73,0x71,0x70,0x70,0x71,
+0x72,0x72,0x73,0x73,0x74,0x75,0x75,0x75,0x73,0x74,0x75,0x75,0x75,0x75,0x74,0x73,
+0x73,0x72,0x71,0x70,0x70,0x70,0x71,0x71,0x70,0x70,0x71,0x73,0x74,0x75,0x76,0x77,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x78,0x77,0x77,0x78,0x7a,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
+0x74,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x7f,0x7d,0x7c,0x7b,0x79,0x77,0x76,0x74,0x74,
+0x72,0x74,0x76,0x74,0x70,0x6d,0x6e,0x70,0x6d,0x6f,0x72,0x71,0x6f,0x6e,0x71,0x73,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x6e,0x6c,0x6b,0x6d,0x72,0x78,0x78,0x75,0x70,0x6d,0x6c,
+0x6d,0x6c,0x6a,0x69,0x68,0x68,0x69,0x69,0x66,0x66,0x67,0x68,0x69,0x69,0x69,0x69,
+0x6a,0x68,0x68,0x6c,0x72,0x76,0x76,0x74,0x75,0x75,0x74,0x73,0x71,0x70,0x70,0x6f,
+0x67,0x67,0x67,0x68,0x68,0x68,0x69,0x69,0x68,0x69,0x6a,0x6b,0x6b,0x6a,0x69,0x68,
+0x6c,0x6a,0x67,0x64,0x62,0x61,0x61,0x61,0x67,0x66,0x65,0x63,0x62,0x61,0x61,0x62,
+0x5d,0x5e,0x5f,0x60,0x5f,0x5e,0x5d,0x5c,0x62,0x60,0x5f,0x5f,0x62,0x67,0x6d,0x70,
+0x75,0x75,0x75,0x74,0x71,0x6c,0x68,0x65,0x65,0x65,0x68,0x6f,0x76,0x7b,0x7a,0x79,
+0x7a,0x79,0x78,0x76,0x74,0x72,0x71,0x70,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x6f,0x6e,0x6e,0x6d,0x6e,0x6f,0x6f,0x70,0x70,0x70,0x71,0x73,0x76,0x79,0x7b,
+0x7d,0x7b,0x7a,0x79,0x79,0x7b,0x7d,0x7e,0x7e,0x7c,0x79,0x76,0x74,0x74,0x74,0x75,
+0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x72,0x72,0x73,0x74,0x74,0x73,0x72,0x71,
+0x74,0x73,0x71,0x70,0x6f,0x70,0x70,0x71,0x74,0x74,0x75,0x76,0x78,0x79,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7b,0x79,0x78,0x78,0x7a,0x7c,0x7e,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,0x7e,0x7e,0x7f,
+0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x73,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x7f,0x7d,0x7c,0x7b,0x79,0x77,0x75,0x74,0x73,
+0x71,0x74,0x76,0x75,0x72,0x70,0x71,0x73,0x6d,0x70,0x72,0x72,0x70,0x70,0x73,0x76,
+0x6c,0x6c,0x6d,0x6d,0x6c,0x6b,0x6a,0x69,0x6c,0x72,0x77,0x78,0x74,0x6f,0x6c,0x6b,
+0x73,0x71,0x6f,0x6c,0x6a,0x68,0x68,0x67,0x67,0x67,0x68,0x69,0x6a,0x6a,0x6a,0x6a,
+0x69,0x67,0x67,0x6b,0x71,0x75,0x75,0x74,0x75,0x74,0x74,0x72,0x71,0x70,0x6f,0x6f,
+0x65,0x65,0x65,0x66,0x66,0x66,0x66,0x66,0x68,0x69,0x6a,0x6b,0x6c,0x6b,0x69,0x68,
+0x70,0x6e,0x6a,0x67,0x64,0x63,0x62,0x62,0x6d,0x6b,0x67,0x63,0x5f,0x5c,0x5a,0x59,
+0x58,0x59,0x5a,0x5b,0x5b,0x59,0x57,0x56,0x52,0x51,0x51,0x53,0x59,0x61,0x69,0x6e,
+0x72,0x72,0x73,0x71,0x6e,0x69,0x65,0x62,0x63,0x65,0x6a,0x72,0x7a,0x7d,0x7a,0x77,
+0x7a,0x79,0x78,0x76,0x74,0x72,0x71,0x70,0x6e,0x6e,0x6e,0x6f,0x70,0x70,0x70,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x71,0x70,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,0x70,0x72,0x75,0x77,0x79,
+0x80,0x7f,0x7e,0x7d,0x7e,0x80,0x82,0x83,0x81,0x7f,0x7c,0x79,0x78,0x78,0x78,0x79,
+0x76,0x76,0x77,0x77,0x78,0x77,0x77,0x76,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x77,
+0x74,0x73,0x71,0x6f,0x6f,0x6f,0x70,0x71,0x78,0x78,0x79,0x7a,0x7c,0x7d,0x7d,0x7e,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7e,0x7d,0x7a,0x79,0x79,0x7b,0x7e,0x80,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,0x7f,0x7f,0x80,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,
+0x73,0x74,0x75,0x77,0x79,0x7b,0x7c,0x7d,0x7c,0x7b,0x7a,0x78,0x76,0x74,0x73,0x72,
+0x74,0x74,0x74,0x74,0x72,0x70,0x6e,0x6d,0x6b,0x6c,0x6e,0x6f,0x70,0x70,0x70,0x70,
+0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x68,0x71,0x72,0x73,0x73,0x71,0x6d,0x69,0x66,
+0x70,0x6e,0x6b,0x68,0x66,0x65,0x66,0x66,0x6a,0x69,0x68,0x68,0x69,0x6c,0x6f,0x70,
+0x69,0x6b,0x6d,0x70,0x72,0x73,0x74,0x74,0x73,0x71,0x70,0x71,0x74,0x74,0x71,0x6e,
+0x61,0x61,0x61,0x62,0x64,0x67,0x6a,0x6c,0x67,0x6a,0x6b,0x67,0x62,0x63,0x6b,0x72,
+0x68,0x6a,0x6c,0x69,0x65,0x62,0x63,0x65,0x66,0x66,0x66,0x66,0x64,0x62,0x60,0x5e,
+0x59,0x5a,0x5d,0x5e,0x5e,0x5d,0x5a,0x59,0x52,0x4f,0x4c,0x4b,0x4f,0x58,0x62,0x68,
+0x74,0x76,0x77,0x72,0x68,0x5e,0x58,0x55,0x5f,0x60,0x64,0x6c,0x75,0x7c,0x7d,0x7c,
+0x78,0x77,0x75,0x73,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,
+0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x72,0x75,0x77,0x78,
+0x7d,0x7f,0x80,0x7f,0x7d,0x7d,0x81,0x84,0x88,0x83,0x7c,0x79,0x7a,0x7b,0x7a,0x79,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x78,0x7e,0x82,0x81,0x7b,0x74,0x6f,
+0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7c,
+0x7f,0x7e,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7e,0x7e,0x7d,0x7c,0x7c,0x7d,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x79,0x78,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,
+0x73,0x73,0x75,0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x79,0x78,0x76,0x74,0x73,0x72,
+0x72,0x72,0x72,0x71,0x6f,0x6d,0x6b,0x69,0x6a,0x6b,0x6d,0x6e,0x6f,0x6f,0x6f,0x6e,
+0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6c,0x72,0x73,0x75,0x75,0x73,0x6f,0x6b,0x68,
+0x6d,0x6c,0x6a,0x68,0x67,0x66,0x67,0x67,0x69,0x68,0x67,0x66,0x67,0x69,0x6b,0x6d,
+0x6a,0x6b,0x6e,0x70,0x72,0x73,0x74,0x74,0x73,0x71,0x70,0x72,0x74,0x74,0x71,0x6e,
+0x67,0x66,0x64,0x63,0x63,0x64,0x65,0x66,0x68,0x6a,0x6a,0x67,0x62,0x63,0x6a,0x70,
+0x6e,0x70,0x70,0x6d,0x67,0x63,0x63,0x64,0x65,0x64,0x62,0x60,0x5f,0x5e,0x5d,0x5d,
+0x5f,0x60,0x61,0x62,0x60,0x5d,0x5a,0x58,0x54,0x51,0x4e,0x4e,0x52,0x5a,0x64,0x6a,
+0x71,0x74,0x74,0x70,0x67,0x5e,0x58,0x56,0x5d,0x5e,0x62,0x6a,0x73,0x78,0x79,0x78,
+0x78,0x77,0x75,0x73,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x72,0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x72,0x74,0x76,0x77,
+0x79,0x7b,0x7d,0x7d,0x7c,0x7c,0x80,0x84,0x87,0x81,0x7b,0x78,0x79,0x7a,0x79,0x78,
+0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x83,0x89,0x90,0x95,0x94,0x8e,0x85,0x7f,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x78,0x78,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,
+0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7b,0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x79,0x78,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,
+0x73,0x73,0x75,0x76,0x78,0x79,0x7b,0x7b,0x7b,0x7a,0x79,0x77,0x75,0x74,0x73,0x72,
+0x70,0x70,0x70,0x6f,0x6d,0x6a,0x68,0x66,0x69,0x6a,0x6b,0x6d,0x6d,0x6d,0x6d,0x6c,
+0x6c,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x70,0x73,0x74,0x76,0x76,0x74,0x71,0x6d,0x6a,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6a,0x68,0x66,0x65,0x65,0x67,0x68,0x6a,
+0x6b,0x6d,0x6f,0x71,0x73,0x74,0x74,0x74,0x74,0x72,0x71,0x73,0x75,0x75,0x72,0x6e,
+0x6b,0x6a,0x67,0x64,0x62,0x61,0x60,0x60,0x6a,0x6b,0x6a,0x66,0x63,0x64,0x68,0x6d,
+0x70,0x72,0x73,0x70,0x6a,0x65,0x63,0x64,0x64,0x62,0x5e,0x5a,0x59,0x5a,0x5c,0x5e,
+0x69,0x69,0x68,0x66,0x63,0x5e,0x5a,0x57,0x58,0x55,0x53,0x53,0x57,0x5e,0x67,0x6c,
+0x6f,0x72,0x73,0x6f,0x67,0x5f,0x5b,0x59,0x5b,0x5c,0x60,0x68,0x71,0x76,0x76,0x74,
+0x77,0x76,0x74,0x72,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,
+0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x73,0x75,0x77,
+0x75,0x78,0x7b,0x7b,0x7a,0x7c,0x81,0x85,0x85,0x80,0x7a,0x77,0x78,0x79,0x78,0x77,
+0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x8a,0x91,0x9a,0xa0,0x9f,0x98,0x8e,0x87,
+0x72,0x72,0x72,0x73,0x74,0x74,0x75,0x75,0x7a,0x7a,0x7b,0x7c,0x7e,0x7f,0x80,0x81,
+0x7d,0x7d,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7b,0x7b,
+0x73,0x73,0x74,0x76,0x77,0x78,0x7a,0x7a,0x79,0x79,0x78,0x76,0x75,0x74,0x73,0x72,
+0x71,0x71,0x71,0x70,0x6e,0x6b,0x69,0x67,0x69,0x6a,0x6b,0x6c,0x6d,0x6c,0x6c,0x6b,
+0x6c,0x6c,0x6c,0x6d,0x6e,0x6f,0x6f,0x70,0x70,0x72,0x74,0x74,0x73,0x70,0x6c,0x6a,
+0x6b,0x6c,0x6c,0x6d,0x6f,0x70,0x71,0x72,0x6d,0x6c,0x69,0x67,0x67,0x68,0x69,0x6a,
+0x6d,0x6f,0x70,0x72,0x73,0x74,0x74,0x74,0x75,0x73,0x72,0x73,0x75,0x75,0x72,0x6e,
+0x69,0x68,0x67,0x65,0x64,0x62,0x62,0x61,0x6b,0x6b,0x69,0x66,0x64,0x65,0x67,0x69,
+0x6a,0x6d,0x6f,0x6e,0x6a,0x67,0x66,0x67,0x67,0x63,0x5d,0x59,0x58,0x5a,0x5e,0x61,
+0x70,0x6f,0x6d,0x6a,0x65,0x60,0x5b,0x58,0x5b,0x5a,0x58,0x59,0x5c,0x63,0x6a,0x6f,
+0x70,0x73,0x74,0x70,0x6a,0x63,0x60,0x60,0x5d,0x5f,0x63,0x6b,0x72,0x77,0x76,0x73,
+0x76,0x75,0x74,0x72,0x71,0x70,0x70,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x72,
+0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x6f,0x6f,0x70,0x71,0x73,0x74,0x75,
+0x75,0x77,0x7a,0x7b,0x7b,0x7d,0x82,0x86,0x85,0x80,0x7a,0x77,0x78,0x79,0x79,0x78,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7f,0x86,0x90,0x97,0x96,0x8f,0x84,0x7d,
+0x71,0x72,0x72,0x73,0x75,0x76,0x76,0x77,0x7a,0x7a,0x7b,0x7c,0x7d,0x7f,0x81,0x82,
+0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7a,0x79,0x7d,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x78,0x78,0x77,0x76,0x74,0x73,0x72,0x72,
+0x74,0x74,0x74,0x73,0x71,0x6f,0x6d,0x6c,0x6a,0x6b,0x6c,0x6d,0x6d,0x6d,0x6c,0x6b,
+0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x71,0x72,0x71,0x6e,0x6b,0x69,
+0x6f,0x70,0x71,0x73,0x74,0x76,0x76,0x77,0x72,0x70,0x6d,0x6b,0x6b,0x6b,0x6c,0x6d,
+0x70,0x71,0x72,0x73,0x74,0x74,0x74,0x74,0x76,0x73,0x72,0x73,0x75,0x74,0x71,0x6d,
+0x63,0x64,0x65,0x66,0x67,0x67,0x67,0x67,0x6c,0x6a,0x67,0x65,0x66,0x67,0x67,0x67,
+0x5f,0x64,0x69,0x6b,0x69,0x68,0x69,0x6b,0x6b,0x67,0x61,0x5d,0x5c,0x5f,0x63,0x66,
+0x72,0x71,0x6e,0x6b,0x66,0x62,0x5e,0x5c,0x5f,0x5e,0x5d,0x5e,0x62,0x68,0x6d,0x71,
+0x73,0x76,0x77,0x74,0x6d,0x68,0x66,0x66,0x62,0x64,0x68,0x6f,0x77,0x7a,0x78,0x75,
+0x76,0x75,0x73,0x71,0x70,0x70,0x71,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x72,
+0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x73,0x74,
+0x76,0x79,0x7c,0x7c,0x7c,0x7d,0x82,0x86,0x84,0x7e,0x78,0x76,0x77,0x79,0x79,0x77,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x74,0x7a,0x83,0x8a,0x89,0x83,0x79,0x73,
+0x71,0x72,0x72,0x73,0x75,0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x7a,0x7c,0x7f,0x81,
+0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7d,0x7d,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,
+0x72,0x73,0x74,0x74,0x76,0x76,0x77,0x78,0x77,0x77,0x76,0x75,0x74,0x73,0x72,0x72,
+0x74,0x74,0x75,0x75,0x74,0x73,0x71,0x70,0x6d,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6d,
+0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6d,0x70,0x72,0x71,0x6f,0x6c,0x6a,
+0x71,0x72,0x74,0x75,0x76,0x77,0x76,0x76,0x73,0x72,0x6f,0x6d,0x6d,0x6d,0x6f,0x70,
+0x72,0x72,0x74,0x75,0x75,0x75,0x74,0x74,0x75,0x73,0x71,0x72,0x74,0x73,0x6f,0x6c,
+0x61,0x62,0x65,0x67,0x6a,0x6b,0x6c,0x6c,0x6b,0x68,0x64,0x64,0x67,0x69,0x68,0x65,
+0x5b,0x60,0x67,0x6a,0x6a,0x69,0x6a,0x6b,0x6c,0x69,0x65,0x63,0x62,0x63,0x66,0x68,
+0x6d,0x6c,0x6a,0x68,0x66,0x64,0x62,0x61,0x61,0x61,0x61,0x63,0x66,0x6b,0x70,0x72,
+0x75,0x77,0x78,0x74,0x6f,0x6a,0x68,0x69,0x66,0x67,0x6c,0x73,0x7a,0x7c,0x79,0x75,
+0x75,0x74,0x72,0x71,0x70,0x70,0x71,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,
+0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6e,0x6f,0x71,0x72,0x73,
+0x77,0x7a,0x7b,0x7b,0x79,0x79,0x7d,0x80,0x7e,0x79,0x73,0x71,0x72,0x74,0x74,0x73,
+0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x74,0x79,0x7f,0x83,0x83,0x7f,0x78,0x74,
+0x72,0x72,0x72,0x73,0x74,0x74,0x75,0x75,0x72,0x72,0x71,0x72,0x74,0x77,0x7a,0x7d,
+0x7a,0x79,0x78,0x78,0x78,0x79,0x7b,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x79,0x78,
+0x72,0x73,0x73,0x74,0x75,0x76,0x76,0x77,0x76,0x76,0x75,0x74,0x73,0x73,0x72,0x72,
+0x71,0x72,0x73,0x74,0x74,0x74,0x73,0x72,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x6f,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6e,0x70,0x73,0x75,0x74,0x72,0x70,0x6e,
+0x71,0x72,0x73,0x74,0x74,0x73,0x72,0x71,0x71,0x6f,0x6d,0x6c,0x6c,0x6d,0x6f,0x70,
+0x73,0x74,0x75,0x76,0x76,0x75,0x74,0x73,0x74,0x72,0x70,0x71,0x72,0x72,0x6e,0x6a,
+0x64,0x65,0x68,0x6a,0x6b,0x6c,0x6c,0x6b,0x6a,0x66,0x62,0x64,0x69,0x6b,0x69,0x65,
+0x60,0x65,0x6b,0x6d,0x6b,0x69,0x68,0x69,0x69,0x68,0x67,0x66,0x66,0x66,0x66,0x66,
+0x65,0x65,0x65,0x65,0x65,0x66,0x67,0x67,0x62,0x63,0x64,0x66,0x69,0x6d,0x71,0x73,
+0x74,0x76,0x76,0x72,0x6c,0x67,0x66,0x67,0x66,0x68,0x6c,0x74,0x7a,0x7b,0x77,0x73,
+0x74,0x73,0x72,0x71,0x70,0x70,0x71,0x71,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6e,0x6e,0x6f,0x70,0x71,0x72,
+0x76,0x78,0x78,0x76,0x73,0x72,0x74,0x77,0x75,0x70,0x6a,0x68,0x6a,0x6c,0x6c,0x6b,
+0x6e,0x6f,0x70,0x71,0x72,0x73,0x74,0x74,0x76,0x78,0x7b,0x7d,0x7d,0x7b,0x78,0x76,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x6d,0x6c,0x6b,0x6c,0x6e,0x71,0x75,0x78,
+0x79,0x78,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,0x7d,0x7e,0x7e,0x7d,0x7c,0x7a,0x79,0x77,
+0x72,0x73,0x73,0x74,0x75,0x75,0x76,0x76,0x76,0x75,0x75,0x74,0x73,0x72,0x72,0x72,
+0x6e,0x6f,0x70,0x72,0x73,0x73,0x72,0x72,0x71,0x72,0x73,0x73,0x73,0x72,0x71,0x70,
+0x74,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6d,0x71,0x73,0x76,0x78,0x78,0x76,0x73,0x71,
+0x70,0x70,0x71,0x72,0x71,0x6f,0x6d,0x6b,0x6e,0x6d,0x6b,0x6a,0x6a,0x6b,0x6d,0x6f,
+0x74,0x75,0x75,0x76,0x76,0x75,0x74,0x73,0x74,0x71,0x6f,0x70,0x71,0x71,0x6d,0x69,
+0x68,0x69,0x6b,0x6c,0x6c,0x6b,0x69,0x68,0x69,0x64,0x61,0x63,0x69,0x6c,0x69,0x65,
+0x68,0x6c,0x71,0x71,0x6d,0x68,0x66,0x66,0x66,0x67,0x68,0x68,0x67,0x66,0x65,0x64,
+0x5f,0x60,0x61,0x62,0x65,0x67,0x69,0x6b,0x63,0x64,0x65,0x67,0x6b,0x6e,0x71,0x73,
+0x72,0x73,0x73,0x6f,0x69,0x64,0x64,0x64,0x65,0x67,0x6b,0x72,0x78,0x79,0x75,0x71,
+0x74,0x73,0x72,0x70,0x70,0x70,0x71,0x71,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x71,0x72,
+0x74,0x75,0x75,0x72,0x6e,0x6c,0x6d,0x70,0x6e,0x69,0x64,0x62,0x63,0x65,0x65,0x64,
+0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x73,0x73,0x74,0x75,0x75,0x75,0x74,0x74,
+0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x69,0x68,0x67,0x68,0x6a,0x6e,0x72,0x74,
+0x78,0x78,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7b,0x7d,0x7e,0x7e,0x7d,0x7c,0x7a,0x78,0x77,
+0x75,0x76,0x77,0x78,0x78,0x76,0x75,0x74,0x73,0x73,0x73,0x73,0x73,0x72,0x72,0x72,
+0x70,0x70,0x71,0x71,0x72,0x73,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x73,0x76,0x78,0x78,0x75,0x71,0x6f,
+0x6f,0x6f,0x6e,0x6d,0x6c,0x6c,0x6b,0x6b,0x71,0x6f,0x6c,0x69,0x68,0x69,0x6b,0x6c,
+0x78,0x77,0x76,0x75,0x73,0x71,0x70,0x70,0x70,0x71,0x72,0x73,0x73,0x72,0x71,0x70,
+0x6b,0x6c,0x6d,0x6e,0x6e,0x6d,0x6b,0x6a,0x63,0x64,0x66,0x68,0x69,0x69,0x68,0x67,
+0x6e,0x6f,0x70,0x72,0x73,0x73,0x73,0x72,0x6c,0x6a,0x66,0x64,0x64,0x66,0x69,0x6b,
+0x64,0x64,0x64,0x64,0x65,0x66,0x68,0x69,0x66,0x63,0x5f,0x5e,0x61,0x68,0x6f,0x74,
+0x73,0x73,0x72,0x70,0x6d,0x69,0x65,0x63,0x60,0x65,0x6c,0x73,0x76,0x76,0x73,0x71,
+0x72,0x72,0x72,0x71,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x71,0x72,0x73,
+0x79,0x7b,0x7a,0x76,0x6f,0x6b,0x69,0x6a,0x67,0x66,0x64,0x62,0x61,0x61,0x62,0x63,
+0x64,0x64,0x64,0x64,0x63,0x63,0x63,0x63,0x63,0x64,0x64,0x66,0x6a,0x6d,0x71,0x73,
+0x72,0x74,0x76,0x74,0x71,0x6f,0x71,0x73,0x69,0x6a,0x6c,0x6e,0x70,0x72,0x74,0x75,
+0x79,0x76,0x73,0x72,0x73,0x76,0x7b,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7d,0x7c,0x78,0x75,0x73,
+0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,0x75,0x74,0x74,0x73,0x73,0x72,0x72,0x72,
+0x70,0x71,0x71,0x72,0x73,0x74,0x74,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x73,0x76,0x78,0x78,0x75,0x72,0x6f,
+0x70,0x6f,0x6f,0x6e,0x6d,0x6c,0x6c,0x6b,0x70,0x6f,0x6c,0x6a,0x6a,0x6b,0x6d,0x6e,
+0x77,0x76,0x75,0x74,0x72,0x71,0x70,0x6f,0x70,0x71,0x72,0x73,0x73,0x72,0x71,0x70,
+0x6b,0x6c,0x6d,0x6e,0x6e,0x6d,0x6b,0x6a,0x64,0x66,0x67,0x69,0x6a,0x6a,0x69,0x69,
+0x6a,0x6b,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6d,0x6b,0x67,0x64,0x64,0x66,0x68,0x6a,
+0x65,0x65,0x64,0x64,0x64,0x65,0x66,0x67,0x65,0x64,0x63,0x63,0x65,0x6a,0x70,0x73,
+0x73,0x73,0x72,0x70,0x6d,0x69,0x66,0x64,0x61,0x66,0x6d,0x73,0x76,0x76,0x74,0x72,
+0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x71,0x72,0x73,
+0x78,0x7a,0x7a,0x76,0x70,0x6b,0x6a,0x6b,0x69,0x68,0x66,0x65,0x64,0x65,0x65,0x66,
+0x67,0x67,0x67,0x67,0x66,0x66,0x66,0x66,0x65,0x65,0x66,0x67,0x6a,0x6d,0x71,0x73,
+0x74,0x76,0x77,0x74,0x70,0x6e,0x6f,0x71,0x6c,0x6c,0x6e,0x70,0x72,0x73,0x75,0x75,
+0x76,0x74,0x71,0x6f,0x70,0x73,0x78,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x7e,0x7c,0x79,0x76,0x74,
+0x71,0x71,0x72,0x73,0x73,0x72,0x71,0x71,0x76,0x76,0x75,0x74,0x73,0x73,0x72,0x71,
+0x72,0x72,0x72,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x74,0x76,0x78,0x78,0x75,0x72,0x70,
+0x70,0x70,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6f,0x6e,0x6d,0x6c,0x6c,0x6e,0x70,0x71,
+0x76,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x71,0x71,0x72,0x73,0x73,0x72,0x71,0x71,
+0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,0x67,0x68,0x69,0x6b,0x6b,0x6b,0x6b,0x6b,
+0x67,0x68,0x69,0x6b,0x6b,0x6b,0x6b,0x6a,0x6e,0x6c,0x69,0x66,0x65,0x66,0x68,0x69,
+0x67,0x66,0x65,0x63,0x63,0x63,0x63,0x64,0x66,0x66,0x67,0x69,0x6c,0x6e,0x70,0x72,
+0x74,0x73,0x72,0x70,0x6d,0x6a,0x67,0x65,0x65,0x68,0x6e,0x73,0x76,0x76,0x75,0x73,
+0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x71,0x73,0x74,
+0x76,0x78,0x79,0x76,0x71,0x6c,0x6b,0x6c,0x6c,0x6c,0x6b,0x6a,0x69,0x6a,0x6a,0x6b,
+0x6c,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6a,0x68,0x68,0x67,0x68,0x6a,0x6d,0x71,0x73,
+0x76,0x78,0x78,0x75,0x70,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x75,0x75,0x76,
+0x74,0x72,0x6e,0x6c,0x6d,0x71,0x75,0x78,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7e,0x7f,0x80,0x7f,0x7e,0x7b,0x78,0x76,
+0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x73,0x78,0x77,0x77,0x75,0x74,0x73,0x72,0x72,
+0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x75,0x77,0x78,0x77,0x76,0x73,0x72,
+0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6f,0x71,0x73,0x74,
+0x75,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x71,0x71,0x72,0x72,0x72,0x72,0x71,0x71,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6c,0x6c,0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,0x6d,
+0x67,0x68,0x69,0x6a,0x6b,0x6a,0x6a,0x69,0x6f,0x6d,0x6a,0x67,0x66,0x66,0x68,0x69,
+0x69,0x68,0x66,0x63,0x62,0x61,0x61,0x61,0x67,0x69,0x6c,0x6f,0x71,0x71,0x71,0x70,
+0x74,0x74,0x72,0x70,0x6e,0x6c,0x6a,0x69,0x6a,0x6c,0x70,0x74,0x76,0x76,0x75,0x74,
+0x72,0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6f,0x6e,0x6e,0x6f,0x70,0x71,0x73,0x74,
+0x74,0x77,0x79,0x77,0x72,0x6d,0x6c,0x6c,0x6f,0x6f,0x6f,0x6e,0x6f,0x6f,0x6f,0x6f,
+0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6b,0x6a,0x68,0x68,0x6a,0x6d,0x71,0x73,
+0x78,0x79,0x79,0x75,0x70,0x6c,0x6c,0x6d,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x76,
+0x74,0x72,0x6f,0x6d,0x6e,0x71,0x76,0x79,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7f,0x7f,0x80,0x80,0x7f,0x7c,0x79,0x77,
+0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x73,
+0x75,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x77,0x78,0x77,0x76,0x74,0x73,
+0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x71,0x72,0x73,0x75,0x76,
+0x75,0x74,0x74,0x73,0x72,0x71,0x71,0x70,0x72,0x72,0x71,0x71,0x71,0x71,0x72,0x72,
+0x71,0x70,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,
+0x69,0x6a,0x6b,0x6c,0x6c,0x6c,0x6b,0x6b,0x6e,0x6d,0x6a,0x68,0x67,0x68,0x69,0x69,
+0x6a,0x69,0x66,0x64,0x62,0x61,0x60,0x60,0x68,0x6b,0x6e,0x71,0x73,0x72,0x71,0x70,
+0x74,0x74,0x72,0x71,0x70,0x6f,0x6f,0x6e,0x70,0x72,0x73,0x75,0x76,0x75,0x75,0x74,
+0x71,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6f,0x6f,0x6f,0x6f,0x70,0x72,0x73,0x74,
+0x74,0x77,0x79,0x77,0x72,0x6e,0x6c,0x6c,0x6f,0x70,0x71,0x71,0x72,0x72,0x72,0x72,
+0x74,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x6b,0x6a,0x68,0x67,0x69,0x6d,0x71,0x74,
+0x78,0x7a,0x7a,0x76,0x71,0x6d,0x6d,0x6f,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x74,
+0x74,0x72,0x70,0x6e,0x70,0x74,0x79,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7e,0x7f,0x80,0x80,0x7f,0x7d,0x7a,0x78,
+0x77,0x77,0x76,0x76,0x77,0x78,0x7a,0x7a,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x77,0x77,0x78,0x77,0x76,0x75,0x74,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x76,
+0x75,0x75,0x75,0x74,0x73,0x72,0x72,0x72,0x73,0x72,0x71,0x71,0x71,0x71,0x72,0x73,
+0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x6b,0x6b,0x6c,0x6d,0x6d,0x6c,0x6b,0x6b,0x6d,0x6c,0x6a,0x69,0x69,0x69,0x6a,0x6b,
+0x6b,0x6a,0x67,0x65,0x63,0x62,0x61,0x61,0x6b,0x6c,0x6e,0x70,0x71,0x71,0x71,0x70,
+0x74,0x73,0x73,0x72,0x73,0x73,0x75,0x75,0x78,0x77,0x77,0x76,0x75,0x74,0x73,0x73,
+0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6f,0x6f,0x6f,0x6f,0x70,0x72,0x74,0x75,
+0x74,0x77,0x7a,0x78,0x73,0x6d,0x6a,0x6a,0x6e,0x6f,0x70,0x72,0x73,0x73,0x73,0x73,
+0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,0x6a,0x69,0x66,0x66,0x68,0x6c,0x72,0x75,
+0x77,0x79,0x7a,0x77,0x73,0x70,0x71,0x73,0x77,0x76,0x76,0x74,0x73,0x72,0x71,0x70,
+0x72,0x70,0x6f,0x6e,0x71,0x76,0x7c,0x80,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7e,0x7f,0x80,0x80,0x7f,0x7d,0x7a,0x78,
+0x75,0x75,0x74,0x74,0x75,0x77,0x78,0x7a,0x76,0x77,0x77,0x77,0x78,0x78,0x79,0x79,
+0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x78,0x78,0x77,0x77,0x76,0x75,
+0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x75,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x72,0x71,0x70,0x70,0x71,0x72,0x73,
+0x74,0x72,0x70,0x6e,0x6d,0x6d,0x6d,0x6e,0x70,0x6f,0x6d,0x6c,0x6c,0x6d,0x6e,0x6f,
+0x69,0x6a,0x6b,0x6b,0x6b,0x6a,0x69,0x69,0x6b,0x6a,0x6a,0x6a,0x6a,0x6b,0x6c,0x6d,
+0x6c,0x6a,0x68,0x66,0x64,0x63,0x63,0x63,0x6d,0x6d,0x6c,0x6c,0x6d,0x6f,0x70,0x71,
+0x73,0x73,0x73,0x73,0x75,0x78,0x7a,0x7c,0x7e,0x7c,0x7a,0x77,0x74,0x73,0x71,0x71,
+0x71,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x70,0x6f,0x6f,0x6f,0x70,0x72,0x74,0x75,
+0x75,0x78,0x7b,0x79,0x73,0x6d,0x69,0x68,0x6b,0x6d,0x6f,0x71,0x73,0x73,0x73,0x72,
+0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,0x68,0x67,0x64,0x64,0x67,0x6c,0x72,0x76,
+0x75,0x78,0x7a,0x78,0x75,0x74,0x76,0x78,0x77,0x76,0x75,0x73,0x71,0x6f,0x6e,0x6d,
+0x6d,0x6c,0x6b,0x6b,0x6f,0x75,0x7c,0x80,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7f,0x7f,0x7e,0x7c,0x7a,0x78,
+0x73,0x72,0x71,0x71,0x72,0x74,0x76,0x78,0x76,0x76,0x77,0x77,0x78,0x79,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x76,0x76,
+0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,0x76,0x76,
+0x77,0x76,0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x72,0x71,0x70,0x70,0x71,0x72,0x73,
+0x75,0x73,0x71,0x6e,0x6d,0x6d,0x6e,0x6e,0x70,0x6f,0x6d,0x6c,0x6c,0x6d,0x6e,0x6f,
+0x67,0x68,0x69,0x69,0x69,0x68,0x67,0x66,0x69,0x69,0x6a,0x6a,0x6b,0x6c,0x6d,0x6e,
+0x6c,0x6b,0x69,0x67,0x65,0x65,0x64,0x65,0x6f,0x6d,0x6b,0x6a,0x6a,0x6d,0x70,0x72,
+0x73,0x73,0x73,0x74,0x77,0x7a,0x7e,0x80,0x81,0x7f,0x7c,0x78,0x74,0x72,0x70,0x70,
+0x71,0x70,0x70,0x6f,0x6f,0x6e,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x70,0x70,0x6f,0x70,0x71,0x72,0x74,0x75,
+0x76,0x79,0x7c,0x7a,0x73,0x6c,0x68,0x67,0x6a,0x6b,0x6e,0x70,0x72,0x72,0x72,0x71,
+0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x67,0x65,0x63,0x63,0x66,0x6c,0x72,0x77,
+0x74,0x77,0x79,0x79,0x77,0x76,0x79,0x7c,0x77,0x76,0x74,0x72,0x70,0x6e,0x6c,0x6b,
+0x68,0x67,0x67,0x68,0x6d,0x74,0x7b,0x7f,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x7e,0x7c,0x79,0x78,
+0x73,0x72,0x71,0x70,0x70,0x72,0x74,0x75,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x7a,0x7a,0x7a,0x79,0x77,0x75,0x74,
+0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x78,
+0x77,0x76,0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x73,0x73,0x73,0x72,0x72,0x71,0x71,0x70,0x71,0x71,0x70,0x70,0x6f,0x6e,0x6d,0x6d,
+0x6a,0x6b,0x6c,0x6d,0x6d,0x6c,0x6a,0x69,0x62,0x64,0x66,0x69,0x69,0x67,0x65,0x63,
+0x68,0x68,0x67,0x66,0x66,0x66,0x67,0x67,0x6c,0x6d,0x70,0x72,0x73,0x72,0x71,0x70,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x75,0x74,0x72,0x71,
+0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x71,0x72,0x73,
+0x78,0x7a,0x7a,0x75,0x6c,0x64,0x5f,0x5e,0x63,0x64,0x65,0x67,0x69,0x6a,0x6b,0x6b,
+0x68,0x68,0x6a,0x6b,0x6d,0x6f,0x70,0x70,0x6b,0x6c,0x6e,0x6f,0x71,0x71,0x71,0x71,
+0x71,0x72,0x74,0x76,0x77,0x78,0x78,0x78,0x76,0x74,0x71,0x6e,0x6c,0x6b,0x6b,0x6b,
+0x62,0x62,0x65,0x6c,0x74,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,
+0x73,0x72,0x71,0x71,0x71,0x72,0x74,0x75,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x76,0x75,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x75,0x75,0x76,0x76,0x77,0x77,0x77,0x78,
+0x76,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x72,0x72,0x71,0x70,0x6f,0x6f,
+0x6c,0x6d,0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,0x66,0x67,0x67,0x67,0x67,0x66,0x65,0x65,
+0x68,0x68,0x69,0x69,0x69,0x6a,0x6b,0x6b,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,
+0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x75,0x75,0x76,0x76,0x75,0x74,0x72,0x71,
+0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,
+0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x71,0x72,0x73,
+0x78,0x79,0x7a,0x75,0x6c,0x64,0x60,0x5f,0x62,0x63,0x64,0x66,0x67,0x68,0x69,0x69,
+0x63,0x63,0x65,0x66,0x68,0x69,0x6b,0x6b,0x6a,0x6b,0x6d,0x6f,0x71,0x72,0x72,0x72,
+0x71,0x72,0x73,0x75,0x76,0x76,0x75,0x75,0x74,0x72,0x70,0x6d,0x6c,0x6b,0x6b,0x6c,
+0x63,0x63,0x65,0x6c,0x74,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,
+0x73,0x73,0x72,0x72,0x72,0x73,0x74,0x75,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7a,0x79,0x78,0x76,0x75,
+0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,
+0x76,0x76,0x76,0x75,0x74,0x74,0x73,0x73,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x72,0x72,0x72,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x75,0x74,0x74,0x73,0x73,
+0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6d,0x6d,0x6b,0x68,0x66,0x65,0x65,0x67,0x68,
+0x69,0x6a,0x6b,0x6d,0x6e,0x70,0x71,0x71,0x71,0x6f,0x6c,0x6a,0x6a,0x6c,0x70,0x72,
+0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6b,0x75,0x75,0x75,0x75,0x75,0x73,0x72,0x71,
+0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,
+0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x71,0x73,0x74,
+0x78,0x79,0x79,0x74,0x6c,0x65,0x61,0x60,0x62,0x62,0x63,0x63,0x64,0x65,0x66,0x67,
+0x5d,0x5e,0x5f,0x61,0x62,0x64,0x65,0x66,0x69,0x6b,0x6d,0x6f,0x71,0x73,0x73,0x73,
+0x70,0x71,0x72,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x6e,0x6d,0x6c,0x6c,0x6d,0x6d,
+0x65,0x65,0x66,0x6c,0x74,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,
+0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x78,0x77,0x76,
+0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x77,0x76,0x76,0x75,0x74,0x73,0x73,0x72,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x71,0x72,0x73,0x74,0x75,0x77,0x77,0x78,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
+0x73,0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x73,0x6f,0x6a,0x65,0x63,0x65,0x68,0x6b,
+0x6a,0x6b,0x6e,0x70,0x73,0x74,0x75,0x75,0x73,0x70,0x6a,0x66,0x66,0x69,0x6f,0x73,
+0x72,0x71,0x70,0x6f,0x6e,0x6c,0x6b,0x6b,0x74,0x75,0x75,0x75,0x74,0x73,0x72,0x71,
+0x71,0x70,0x70,0x6f,0x6e,0x6d,0x6d,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,
+0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6e,0x6e,0x6f,0x70,0x71,0x73,0x74,
+0x77,0x79,0x79,0x74,0x6c,0x65,0x62,0x62,0x62,0x62,0x62,0x61,0x62,0x63,0x63,0x64,
+0x5c,0x5d,0x5e,0x5f,0x61,0x63,0x64,0x65,0x69,0x6a,0x6d,0x70,0x72,0x73,0x74,0x74,
+0x70,0x70,0x71,0x71,0x71,0x6f,0x6e,0x6d,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,
+0x68,0x66,0x67,0x6c,0x74,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,
+0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x79,0x77,0x76,
+0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x72,0x73,0x74,0x75,0x77,0x78,0x79,0x7a,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,
+0x76,0x76,0x75,0x74,0x73,0x73,0x72,0x72,0x77,0x72,0x6c,0x66,0x65,0x67,0x6a,0x6d,
+0x6b,0x6d,0x70,0x72,0x74,0x75,0x76,0x76,0x73,0x6f,0x69,0x64,0x64,0x69,0x6f,0x73,
+0x75,0x75,0x74,0x72,0x71,0x70,0x6f,0x6e,0x74,0x74,0x75,0x75,0x74,0x73,0x71,0x70,
+0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x72,0x73,0x74,
+0x77,0x79,0x78,0x73,0x6c,0x66,0x64,0x64,0x64,0x63,0x62,0x61,0x60,0x61,0x62,0x63,
+0x5f,0x60,0x61,0x62,0x64,0x66,0x67,0x68,0x6a,0x6b,0x6e,0x70,0x72,0x73,0x74,0x74,
+0x70,0x70,0x71,0x71,0x70,0x6e,0x6d,0x6c,0x6c,0x6d,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,
+0x6a,0x68,0x68,0x6c,0x73,0x79,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,
+0x74,0x75,0x76,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7d,0x7c,0x7b,0x7a,0x78,0x77,
+0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,
+0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x74,0x75,0x75,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x79,0x78,0x76,0x75,0x73,0x73,0x73,0x74,0x77,0x73,0x6e,0x6a,0x68,0x69,0x6c,0x6e,
+0x6d,0x6e,0x71,0x73,0x74,0x74,0x72,0x71,0x70,0x6d,0x68,0x65,0x66,0x6a,0x70,0x74,
+0x77,0x77,0x76,0x75,0x74,0x73,0x73,0x72,0x74,0x74,0x74,0x74,0x74,0x72,0x71,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x72,0x74,0x75,
+0x77,0x78,0x77,0x73,0x6c,0x67,0x66,0x66,0x68,0x66,0x64,0x61,0x60,0x61,0x62,0x63,
+0x63,0x64,0x65,0x67,0x68,0x6a,0x6b,0x6c,0x6c,0x6d,0x6f,0x71,0x72,0x73,0x73,0x72,
+0x70,0x71,0x71,0x71,0x71,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x70,0x70,
+0x6d,0x6a,0x69,0x6d,0x73,0x79,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7c,
+0x75,0x76,0x77,0x78,0x79,0x78,0x77,0x76,0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x78,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7a,0x79,0x77,
+0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,
+0x7c,0x7b,0x7a,0x79,0x77,0x76,0x75,0x74,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x76,0x76,0x77,0x78,0x79,0x7a,0x7a,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x79,0x77,0x75,0x73,0x73,0x74,0x74,0x75,0x73,0x70,0x6d,0x6c,0x6c,0x6e,0x6e,
+0x6e,0x6f,0x71,0x72,0x72,0x70,0x6d,0x6c,0x6c,0x6b,0x69,0x68,0x6a,0x6d,0x71,0x73,
+0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x73,0x74,0x74,0x74,0x74,0x72,0x71,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x70,0x6f,0x6f,0x6f,0x70,0x72,0x74,0x75,
+0x77,0x78,0x77,0x72,0x6c,0x67,0x67,0x68,0x6b,0x69,0x66,0x63,0x61,0x62,0x63,0x64,
+0x65,0x66,0x67,0x69,0x6a,0x6c,0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x71,0x71,
+0x70,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,0x6f,0x70,0x71,0x72,0x73,0x72,0x71,0x70,
+0x6e,0x6c,0x6a,0x6d,0x73,0x79,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x75,0x76,0x78,0x79,0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x78,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7a,0x79,0x78,
+0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,
+0x7d,0x7c,0x7b,0x7a,0x78,0x77,0x75,0x75,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x79,0x77,0x75,0x73,0x73,0x74,0x74,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6e,0x6e,
+0x6e,0x70,0x71,0x72,0x70,0x6d,0x6a,0x68,0x69,0x69,0x69,0x6a,0x6c,0x6f,0x72,0x73,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x74,0x74,0x74,0x73,0x72,0x71,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,
+0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x70,0x70,0x6f,0x70,0x71,0x72,0x74,0x75,
+0x77,0x78,0x77,0x72,0x6b,0x67,0x67,0x69,0x6d,0x6b,0x67,0x64,0x62,0x62,0x63,0x65,
+0x65,0x66,0x67,0x69,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x72,0x71,0x70,0x70,
+0x71,0x71,0x72,0x73,0x73,0x73,0x72,0x71,0x70,0x71,0x73,0x74,0x74,0x73,0x71,0x70,
+0x6f,0x6c,0x6a,0x6d,0x73,0x79,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7c,0x7c,0x7d,0x7c,0x7b,0x7a,0x78,0x77,
+0x75,0x76,0x78,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x79,0x78,0x78,0x78,0x78,0x79,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x75,0x70,0x6f,0x6f,0x70,0x73,0x77,0x7a,0x7d,
+0x77,0x75,0x71,0x6d,0x6b,0x6b,0x6c,0x6d,0x6c,0x6c,0x6b,0x6b,0x6c,0x6f,0x72,0x73,
+0x76,0x76,0x74,0x72,0x6e,0x6b,0x69,0x67,0x6c,0x6d,0x6f,0x71,0x71,0x70,0x6f,0x6d,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6d,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x71,0x71,0x70,0x70,0x6f,0x6f,
+0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x74,0x75,0x75,
+0x77,0x76,0x75,0x73,0x71,0x6f,0x6e,0x6d,0x6f,0x6e,0x6d,0x6b,0x6a,0x6a,0x6a,0x6b,
+0x6a,0x6a,0x6a,0x6b,0x6c,0x6e,0x70,0x72,0x72,0x73,0x74,0x74,0x74,0x72,0x70,0x6f,
+0x6d,0x6e,0x6f,0x70,0x72,0x74,0x75,0x75,0x75,0x75,0x75,0x76,0x75,0x75,0x74,0x73,
+0x72,0x73,0x74,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7f,0x7f,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,
+0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7c,0x7d,0x7d,0x7d,0x7c,0x7a,0x78,0x77,
+0x75,0x76,0x78,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x78,0x78,0x77,0x78,0x78,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x75,0x71,0x70,0x70,0x70,0x72,0x76,0x79,0x7b,
+0x77,0x75,0x71,0x6d,0x6b,0x6b,0x6c,0x6c,0x6d,0x6c,0x6b,0x6b,0x6c,0x6f,0x72,0x74,
+0x75,0x74,0x73,0x71,0x6e,0x6c,0x6a,0x69,0x6c,0x6d,0x6f,0x71,0x71,0x70,0x6f,0x6e,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,
+0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x74,0x75,0x75,
+0x7a,0x79,0x78,0x76,0x74,0x73,0x71,0x71,0x6e,0x6e,0x6c,0x6b,0x6b,0x6b,0x6c,0x6c,
+0x6d,0x6d,0x6c,0x6c,0x6d,0x6f,0x71,0x72,0x72,0x73,0x74,0x74,0x74,0x72,0x71,0x6f,
+0x6e,0x6f,0x70,0x71,0x73,0x74,0x75,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x74,
+0x73,0x74,0x75,0x76,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7c,0x7d,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,
+0x76,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7a,0x78,0x77,
+0x75,0x76,0x78,0x7a,0x7c,0x7c,0x7c,0x7c,0x7e,0x7c,0x7b,0x79,0x77,0x77,0x77,0x77,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x76,0x73,0x72,0x71,0x70,0x71,0x74,0x76,0x78,
+0x77,0x75,0x71,0x6e,0x6c,0x6b,0x6c,0x6c,0x6d,0x6c,0x6b,0x6b,0x6c,0x6f,0x72,0x74,
+0x73,0x73,0x71,0x70,0x6e,0x6c,0x6b,0x6b,0x6c,0x6e,0x70,0x71,0x72,0x71,0x6f,0x6e,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6e,
+0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,
+0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x74,0x75,0x75,
+0x7d,0x7c,0x7b,0x79,0x77,0x76,0x75,0x74,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,0x6f,
+0x71,0x71,0x70,0x6f,0x6f,0x70,0x71,0x71,0x72,0x73,0x73,0x73,0x73,0x72,0x71,0x70,
+0x6f,0x70,0x71,0x72,0x73,0x75,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7c,0x7c,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,
+0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7a,0x79,0x78,
+0x76,0x77,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,0x7e,0x7d,0x7b,0x79,0x77,0x76,0x76,0x76,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x74,0x73,0x71,0x70,0x70,0x72,0x74,0x75,
+0x76,0x75,0x72,0x6f,0x6d,0x6c,0x6c,0x6c,0x6d,0x6c,0x6b,0x6b,0x6d,0x6f,0x72,0x74,
+0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,0x6c,0x6e,0x70,0x72,0x72,0x71,0x6f,0x6e,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,
+0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x74,0x75,0x75,
+0x7c,0x7b,0x7a,0x79,0x77,0x76,0x75,0x74,0x6e,0x6e,0x6d,0x6d,0x6e,0x70,0x72,0x73,
+0x76,0x75,0x73,0x72,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x72,0x72,0x72,
+0x71,0x72,0x72,0x73,0x75,0x76,0x76,0x77,0x75,0x75,0x74,0x74,0x74,0x75,0x76,0x76,
+0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,0x79,0x78,
+0x76,0x77,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,0x7e,0x7c,0x7a,0x79,0x77,0x77,0x77,0x77,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x73,0x71,0x70,0x6f,0x71,0x72,0x74,
+0x76,0x75,0x73,0x70,0x6e,0x6d,0x6c,0x6b,0x6d,0x6d,0x6c,0x6c,0x6d,0x70,0x73,0x74,
+0x72,0x71,0x6f,0x6d,0x6c,0x6c,0x6d,0x6e,0x6d,0x6e,0x70,0x72,0x72,0x71,0x70,0x6e,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x71,0x71,0x71,
+0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x74,0x75,0x75,
+0x78,0x78,0x77,0x76,0x74,0x73,0x72,0x72,0x70,0x70,0x70,0x70,0x71,0x73,0x75,0x76,
+0x79,0x77,0x76,0x74,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,
+0x73,0x73,0x74,0x75,0x76,0x77,0x77,0x78,0x75,0x74,0x73,0x73,0x73,0x75,0x76,0x77,
+0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7c,
+0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7b,0x79,0x78,
+0x76,0x77,0x79,0x7b,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x78,0x78,0x78,0x78,0x79,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x77,0x74,0x73,0x71,0x6f,0x6f,0x70,0x72,0x73,
+0x76,0x75,0x73,0x71,0x6f,0x6d,0x6c,0x6b,0x6e,0x6d,0x6c,0x6c,0x6d,0x70,0x73,0x75,
+0x73,0x71,0x6f,0x6c,0x6b,0x6c,0x6d,0x6d,0x6d,0x6f,0x71,0x72,0x73,0x72,0x70,0x6f,
+0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6e,0x6e,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,
+0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,
+0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x74,0x75,0x75,
+0x76,0x76,0x75,0x74,0x73,0x72,0x71,0x71,0x74,0x73,0x73,0x73,0x74,0x76,0x78,0x79,
+0x7a,0x78,0x77,0x75,0x73,0x73,0x73,0x73,0x72,0x72,0x71,0x71,0x71,0x72,0x73,0x74,
+0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x78,0x75,0x74,0x73,0x72,0x73,0x75,0x77,0x79,
+0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7c,0x7c,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,
+0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,
+0x76,0x78,0x7a,0x7c,0x7d,0x7e,0x7e,0x7d,0x7a,0x79,0x78,0x78,0x78,0x79,0x7a,0x7b,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x73,0x72,0x70,0x6e,0x6e,0x70,0x72,0x73,
+0x75,0x75,0x74,0x72,0x70,0x6e,0x6c,0x6b,0x6e,0x6d,0x6c,0x6c,0x6e,0x70,0x73,0x75,
+0x74,0x72,0x6f,0x6c,0x6a,0x6a,0x6c,0x6d,0x6d,0x6f,0x71,0x73,0x73,0x72,0x70,0x6f,
+0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,
+0x72,0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x6f,0x70,0x70,0x71,0x71,0x71,0x72,
+0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x72,0x72,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x74,0x75,0x75,
+0x77,0x76,0x76,0x75,0x74,0x73,0x72,0x72,0x78,0x77,0x77,0x77,0x77,0x78,0x7a,0x7a,
+0x79,0x78,0x76,0x75,0x74,0x74,0x74,0x74,0x73,0x72,0x71,0x70,0x71,0x72,0x74,0x75,
+0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x75,0x74,0x72,0x72,0x72,0x75,0x78,0x79,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7c,0x7d,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,
+0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7c,0x7d,0x7e,0x7e,0x7e,0x79,0x78,0x78,0x78,0x78,0x79,0x7b,0x7c,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x72,0x71,0x6f,0x6e,0x6e,0x70,0x72,0x73,
+0x75,0x75,0x74,0x72,0x70,0x6e,0x6c,0x6b,0x6e,0x6d,0x6c,0x6c,0x6e,0x70,0x73,0x75,
+0x75,0x73,0x6f,0x6c,0x6a,0x6a,0x6b,0x6c,0x6d,0x6f,0x71,0x73,0x73,0x72,0x70,0x6f,
+0x71,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,
+0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,
+0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x72,0x72,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x74,0x75,0x75,
+0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x7a,0x7a,0x79,0x78,0x79,0x7a,0x7b,0x7b,
+0x78,0x78,0x76,0x75,0x74,0x74,0x74,0x75,0x73,0x72,0x71,0x70,0x71,0x72,0x74,0x75,
+0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x75,0x74,0x72,0x71,0x72,0x75,0x78,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7f,0x7f,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,
+0x78,0x79,0x79,0x7a,0x7c,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7e,0x7f,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7a,0x79,0x78,0x77,0x77,0x76,0x71,0x6f,0x6e,0x6d,0x6e,0x70,0x73,0x75,
+0x76,0x75,0x73,0x71,0x6f,0x6d,0x6c,0x6b,0x6a,0x6a,0x6c,0x6d,0x6f,0x71,0x72,0x73,
+0x72,0x70,0x6d,0x6b,0x6a,0x6a,0x6b,0x6c,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6f,0x6f,0x70,0x71,0x72,0x72,0x72,
+0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x74,0x73,0x73,0x71,0x70,0x6f,0x6e,0x6e,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,
+0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x72,0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,
+0x76,0x76,0x77,0x77,0x79,0x7a,0x7b,0x7c,0x79,0x79,0x7a,0x7a,0x79,0x78,0x77,0x76,
+0x70,0x6f,0x6e,0x6e,0x6f,0x70,0x72,0x74,0x72,0x71,0x71,0x70,0x70,0x71,0x72,0x72,
+0x76,0x77,0x79,0x7a,0x7a,0x79,0x78,0x77,0x75,0x72,0x6e,0x6b,0x6c,0x70,0x76,0x7a,
+0x7c,0x7a,0x78,0x7a,0x7d,0x7e,0x7d,0x7a,0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7b,0x7a,0x7a,0x7a,0x7c,0x7d,
+0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7e,0x7e,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7a,0x79,0x78,0x77,0x76,0x76,0x72,0x70,0x6f,0x6e,0x6f,0x71,0x74,0x76,
+0x75,0x74,0x73,0x72,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6d,0x6e,0x70,0x71,0x72,0x72,
+0x72,0x70,0x6e,0x6b,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x73,0x73,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x75,0x75,0x74,0x73,0x73,0x72,0x71,0x71,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x73,0x74,0x74,0x75,0x75,
+0x75,0x75,0x74,0x74,0x73,0x72,0x72,0x72,0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,
+0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x79,0x79,0x79,0x79,0x78,0x76,0x75,0x74,
+0x70,0x6f,0x6f,0x6e,0x6f,0x71,0x72,0x74,0x71,0x71,0x70,0x70,0x71,0x72,0x73,0x74,
+0x77,0x78,0x79,0x7a,0x7a,0x7a,0x78,0x78,0x76,0x73,0x6f,0x6d,0x6d,0x71,0x76,0x7a,
+0x7a,0x78,0x77,0x79,0x7c,0x7e,0x7d,0x7b,0x78,0x79,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7d,0x7b,0x7a,0x7a,0x7a,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7a,0x79,0x78,0x77,0x76,0x76,0x73,0x72,0x70,0x70,0x70,0x72,0x75,0x76,
+0x74,0x74,0x73,0x73,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x72,0x72,0x72,
+0x72,0x71,0x6e,0x6c,0x6b,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x73,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x73,0x73,
+0x74,0x74,0x73,0x73,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,
+0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x79,0x79,0x79,0x78,0x76,0x74,0x72,0x70,
+0x70,0x6f,0x6f,0x6f,0x70,0x71,0x72,0x73,0x70,0x6f,0x6f,0x70,0x71,0x73,0x75,0x76,
+0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x78,0x76,0x74,0x71,0x6f,0x70,0x73,0x77,0x7a,
+0x77,0x75,0x74,0x77,0x7b,0x7e,0x7d,0x7b,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7b,0x7c,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x72,0x73,0x75,0x76,
+0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,
+0x73,0x71,0x6f,0x6c,0x6b,0x6c,0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6f,0x70,0x70,0x71,0x71,0x72,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,
+0x79,0x79,0x79,0x78,0x77,0x75,0x74,0x73,0x78,0x78,0x78,0x76,0x74,0x72,0x6f,0x6e,
+0x6f,0x6f,0x70,0x70,0x71,0x72,0x72,0x73,0x6f,0x6f,0x6f,0x70,0x72,0x75,0x77,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x77,0x75,0x73,0x72,0x72,0x75,0x77,0x79,
+0x74,0x72,0x72,0x75,0x7a,0x7d,0x7d,0x7b,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,0x74,0x73,0x73,0x73,0x73,0x74,0x74,0x75,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x74,0x72,0x6f,0x6d,0x6c,0x6c,0x6e,0x6f,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,
+0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6f,0x70,0x70,0x71,0x71,0x72,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,
+0x78,0x78,0x78,0x78,0x76,0x74,0x71,0x70,0x77,0x77,0x77,0x75,0x73,0x71,0x6e,0x6d,
+0x6f,0x70,0x70,0x71,0x72,0x72,0x72,0x73,0x6f,0x6f,0x70,0x71,0x73,0x76,0x78,0x7a,
+0x7b,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x77,0x78,0x79,
+0x73,0x71,0x71,0x74,0x7a,0x7d,0x7d,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x72,0x72,0x72,0x73,0x74,0x74,0x74,0x75,0x71,0x71,0x71,0x72,0x73,0x73,0x74,0x74,
+0x74,0x73,0x70,0x6e,0x6d,0x6d,0x6e,0x6f,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6c,0x6d,0x6d,0x6e,0x6e,0x6f,0x70,0x70,
+0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,0x74,0x74,0x73,0x72,0x71,0x70,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x73,0x73,
+0x74,0x74,0x73,0x73,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,
+0x76,0x77,0x78,0x78,0x76,0x73,0x70,0x6e,0x76,0x76,0x76,0x75,0x73,0x71,0x6f,0x6d,
+0x6f,0x70,0x71,0x72,0x73,0x73,0x73,0x72,0x70,0x70,0x71,0x72,0x74,0x76,0x79,0x7a,
+0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x79,
+0x73,0x72,0x71,0x74,0x7a,0x7d,0x7d,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7a,0x7a,
+0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x72,0x73,0x73,0x73,0x73,0x72,0x72,0x72,
+0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x6f,0x6f,0x70,0x71,0x73,0x74,0x75,0x75,
+0x75,0x73,0x70,0x6e,0x6d,0x6e,0x6f,0x70,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6f,0x70,0x71,0x73,0x74,0x75,0x76,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7a,0x79,0x78,0x76,0x74,0x72,0x71,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x73,0x74,0x74,0x75,0x75,
+0x75,0x75,0x74,0x74,0x73,0x72,0x72,0x72,0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,
+0x75,0x76,0x77,0x77,0x76,0x73,0x70,0x6e,0x75,0x75,0x75,0x75,0x74,0x72,0x70,0x6f,
+0x6e,0x70,0x71,0x73,0x74,0x73,0x73,0x72,0x72,0x71,0x72,0x72,0x74,0x76,0x78,0x79,
+0x7b,0x7a,0x78,0x76,0x75,0x75,0x76,0x77,0x79,0x7a,0x7a,0x7b,0x7a,0x7a,0x79,0x79,
+0x75,0x73,0x72,0x75,0x7a,0x7d,0x7c,0x7a,0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7a,0x79,
+0x78,0x79,0x79,0x7a,0x7c,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x79,0x78,0x78,0x76,0x76,0x75,0x74,0x72,0x72,0x73,0x73,0x72,0x72,0x71,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x6d,0x6e,0x6f,0x71,0x72,0x74,0x75,0x76,
+0x75,0x73,0x71,0x6e,0x6d,0x6e,0x6f,0x70,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x73,0x75,0x77,0x79,0x7a,0x7b,
+0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7e,0x7f,0x7e,0x7d,0x7c,0x7a,0x77,0x75,0x73,0x73,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,
+0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x72,0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,
+0x73,0x75,0x76,0x77,0x76,0x73,0x70,0x6e,0x74,0x74,0x75,0x75,0x74,0x73,0x71,0x70,
+0x6e,0x70,0x72,0x73,0x74,0x74,0x73,0x72,0x73,0x72,0x72,0x73,0x74,0x76,0x78,0x79,
+0x7b,0x79,0x77,0x75,0x74,0x74,0x75,0x76,0x7a,0x7a,0x7b,0x7c,0x7c,0x7b,0x79,0x78,
+0x76,0x74,0x73,0x76,0x7a,0x7d,0x7c,0x7a,0x7d,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7e,0x7b,0x7c,0x7d,0x7e,0x7d,0x7c,0x7a,0x79,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,
+0x79,0x7a,0x7c,0x7e,0x7e,0x7c,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x77,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7d,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x78,0x78,0x77,0x77,0x76,0x75,0x74,0x74,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,
+0x71,0x72,0x75,0x76,0x76,0x74,0x71,0x6f,0x6f,0x70,0x70,0x71,0x73,0x73,0x74,0x75,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,
+0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,0x7f,0x7f,0x7e,0x7d,0x7a,0x78,0x75,0x74,
+0x70,0x70,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x75,
+0x74,0x73,0x72,0x71,0x71,0x72,0x74,0x75,0x73,0x72,0x70,0x6f,0x6f,0x72,0x75,0x77,
+0x79,0x77,0x75,0x73,0x72,0x73,0x74,0x75,0x70,0x70,0x71,0x73,0x74,0x76,0x77,0x77,
+0x74,0x73,0x71,0x6f,0x6f,0x6e,0x6f,0x6f,0x72,0x76,0x79,0x79,0x75,0x72,0x71,0x71,
+0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7c,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,
+0x79,0x7a,0x7c,0x7d,0x7d,0x7c,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x75,0x70,0x70,0x70,0x6f,0x6e,0x6e,0x6e,0x6d,
+0x70,0x71,0x74,0x76,0x76,0x74,0x72,0x71,0x71,0x71,0x72,0x72,0x73,0x73,0x74,0x74,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x72,0x72,0x71,0x71,0x70,0x70,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x76,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7a,0x78,0x76,0x74,
+0x72,0x71,0x70,0x6f,0x6f,0x70,0x71,0x72,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x72,0x72,0x73,0x73,0x74,0x74,0x74,0x75,
+0x74,0x73,0x72,0x71,0x71,0x72,0x73,0x74,0x73,0x71,0x70,0x6f,0x6f,0x72,0x74,0x76,
+0x75,0x74,0x72,0x70,0x70,0x71,0x72,0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x76,0x77,
+0x73,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x6f,0x73,0x76,0x7a,0x7a,0x76,0x73,0x72,0x73,
+0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7b,0x7b,0x7a,0x7b,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7c,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,
+0x79,0x7a,0x7c,0x7d,0x7d,0x7c,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6e,
+0x6e,0x70,0x72,0x74,0x75,0x75,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x70,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,
+0x73,0x73,0x74,0x75,0x76,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x79,0x78,0x76,0x76,
+0x74,0x73,0x72,0x71,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x6f,0x70,0x70,0x71,0x72,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,
+0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,0x70,0x72,0x74,0x75,
+0x71,0x70,0x6e,0x6d,0x6d,0x6f,0x71,0x72,0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x75,
+0x73,0x72,0x71,0x70,0x6f,0x6f,0x70,0x70,0x74,0x78,0x7b,0x7b,0x77,0x74,0x74,0x75,
+0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7b,0x7b,0x7a,0x7a,0x7b,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x78,0x7a,0x7b,0x7d,0x7d,0x7b,0x7a,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x72,0x72,0x71,0x70,0x6f,0x6e,0x6e,0x6d,
+0x6c,0x6e,0x70,0x72,0x74,0x75,0x75,0x74,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x74,0x74,0x73,0x72,0x72,0x71,0x71,0x70,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,
+0x70,0x70,0x71,0x71,0x72,0x72,0x73,0x73,0x75,0x76,0x77,0x78,0x78,0x78,0x77,0x76,
+0x76,0x75,0x73,0x72,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x6f,0x6f,0x71,0x73,0x74,0x76,0x77,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x74,0x74,0x73,0x72,0x71,0x71,0x70,0x70,0x71,0x70,0x70,0x6f,0x70,0x72,0x73,0x74,
+0x70,0x6f,0x6e,0x6d,0x6e,0x70,0x72,0x74,0x7b,0x7b,0x7a,0x78,0x77,0x76,0x75,0x74,
+0x73,0x72,0x71,0x70,0x6f,0x70,0x70,0x71,0x76,0x79,0x7c,0x7b,0x78,0x76,0x76,0x77,
+0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7b,0x7a,0x79,
+0x78,0x79,0x7b,0x7c,0x7c,0x7b,0x79,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7b,0x79,0x78,0x76,0x75,0x75,0x72,0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6d,
+0x6b,0x6c,0x6e,0x70,0x72,0x73,0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x74,0x74,0x73,0x72,0x72,0x71,0x71,0x70,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x72,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x72,0x73,0x75,0x76,0x77,0x76,0x76,0x76,
+0x76,0x75,0x73,0x72,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x6f,0x70,0x71,0x73,0x76,0x78,0x79,0x7a,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x76,0x75,0x75,0x74,0x72,0x71,0x70,0x6f,0x70,0x70,0x70,0x70,0x70,0x71,0x73,0x73,
+0x72,0x71,0x6f,0x6f,0x6f,0x71,0x74,0x75,0x7a,0x79,0x78,0x77,0x76,0x74,0x73,0x73,
+0x73,0x72,0x71,0x70,0x70,0x70,0x71,0x72,0x76,0x79,0x7c,0x7b,0x78,0x76,0x77,0x79,
+0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x79,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7c,0x7c,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7e,0x7e,0x7e,0x7e,0x7d,0x7b,0x79,0x78,
+0x78,0x79,0x7b,0x7c,0x7c,0x7b,0x79,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7b,0x7a,0x79,0x77,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x69,0x6a,0x6b,0x6d,0x6f,0x70,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x70,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,
+0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x71,0x72,0x73,0x74,0x75,0x75,0x74,0x74,
+0x74,0x73,0x72,0x71,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x6f,0x70,0x72,0x74,0x76,0x78,0x7a,0x7b,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,
+0x77,0x77,0x77,0x76,0x74,0x72,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,
+0x73,0x72,0x70,0x6f,0x6f,0x71,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x72,0x72,0x71,
+0x73,0x72,0x71,0x70,0x70,0x71,0x72,0x73,0x77,0x79,0x7b,0x7a,0x77,0x76,0x78,0x7b,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7a,0x7a,0x79,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7e,0x7e,0x7f,0x7e,0x7d,0x7b,0x79,0x78,
+0x77,0x79,0x7b,0x7c,0x7c,0x7b,0x79,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x79,0x78,0x76,0x74,0x73,0x72,0x71,0x71,0x6f,0x6e,0x6d,0x6b,0x6a,0x69,
+0x69,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,0x73,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x72,0x72,0x71,0x71,0x70,0x70,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,
+0x73,0x73,0x73,0x72,0x72,0x71,0x71,0x70,0x70,0x71,0x72,0x73,0x74,0x73,0x73,0x72,
+0x72,0x71,0x70,0x6f,0x6f,0x70,0x71,0x72,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x6f,0x70,0x72,0x74,0x76,0x78,0x79,0x7a,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,
+0x79,0x79,0x79,0x78,0x76,0x73,0x70,0x6f,0x6e,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,
+0x72,0x70,0x6e,0x6d,0x6c,0x6d,0x6f,0x70,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,
+0x72,0x72,0x71,0x71,0x71,0x71,0x72,0x73,0x76,0x79,0x7a,0x79,0x77,0x76,0x78,0x7b,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7f,0x7f,0x7f,0x7e,0x7d,0x7b,0x79,0x78,
+0x77,0x79,0x7a,0x7c,0x7c,0x7a,0x79,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x73,0x73,0x72,0x71,0x71,0x72,0x73,0x73,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7a,0x79,0x77,0x75,0x73,0x72,0x71,0x71,0x70,0x6f,0x6d,0x6c,0x6a,0x69,0x68,
+0x69,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x73,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x73,
+0x75,0x75,0x74,0x74,0x73,0x72,0x71,0x71,0x70,0x71,0x72,0x73,0x73,0x72,0x71,0x71,
+0x70,0x70,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x70,0x70,0x72,0x73,0x75,0x77,0x78,0x79,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,
+0x7a,0x7a,0x7a,0x79,0x77,0x74,0x71,0x6f,0x6e,0x6e,0x6f,0x70,0x71,0x71,0x71,0x71,
+0x70,0x6e,0x6c,0x6a,0x69,0x6a,0x6b,0x6c,0x69,0x6a,0x6b,0x6c,0x6d,0x6f,0x70,0x70,
+0x72,0x72,0x71,0x71,0x71,0x72,0x73,0x74,0x76,0x78,0x7a,0x78,0x76,0x75,0x78,0x7b,
+0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,
+0x76,0x77,0x79,0x79,0x79,0x78,0x76,0x75,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,
+0x79,0x79,0x7a,0x7a,0x79,0x78,0x76,0x75,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x72,
+0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x78,0x78,0x77,0x76,0x74,0x70,0x6d,0x6b,0x6b,0x6c,0x6c,0x6d,0x6c,0x6b,0x6a,0x69,
+0x68,0x68,0x68,0x69,0x6a,0x6a,0x6a,0x6b,0x69,0x6b,0x6e,0x70,0x72,0x72,0x71,0x70,
+0x73,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x6f,0x70,0x70,0x71,0x70,0x6f,0x6e,0x6d,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x6f,0x6f,0x70,0x71,0x72,0x73,0x73,0x74,
+0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x76,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x70,0x6f,0x6e,
+0x6f,0x6f,0x70,0x71,0x72,0x74,0x74,0x75,0x75,0x75,0x76,0x77,0x78,0x79,0x7a,0x7a,
+0x7b,0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x72,0x71,0x70,0x6f,0x70,0x71,0x72,0x74,
+0x70,0x6c,0x68,0x66,0x68,0x68,0x67,0x65,0x65,0x62,0x5f,0x62,0x68,0x6e,0x72,0x73,
+0x72,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,0x72,0x74,0x76,0x77,0x77,0x76,0x75,0x73,
+0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,
+0x7b,0x7a,0x7a,0x7d,0x7f,0x7e,0x7a,0x75,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,
+0x79,0x79,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7a,0x79,
+0x77,0x78,0x79,0x7a,0x79,0x78,0x77,0x76,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x79,0x79,0x7a,0x7a,0x79,0x78,0x76,0x75,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x72,
+0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x77,0x77,0x77,0x76,0x73,0x70,0x6d,0x6c,0x6b,0x6c,0x6d,0x6d,0x6d,0x6c,0x6b,0x6a,
+0x68,0x68,0x69,0x69,0x6a,0x6a,0x6a,0x6b,0x69,0x6b,0x6e,0x71,0x72,0x72,0x71,0x70,
+0x72,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x70,0x6f,0x70,0x71,0x71,0x71,0x70,0x6e,0x6e,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x70,0x70,0x71,0x71,0x72,0x73,0x74,0x74,
+0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x72,0x72,0x72,0x72,0x70,0x6f,0x6e,
+0x6e,0x6e,0x6f,0x70,0x72,0x73,0x73,0x74,0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x72,0x71,0x70,0x6f,0x70,0x71,0x72,0x73,
+0x6f,0x6b,0x67,0x66,0x67,0x68,0x66,0x64,0x64,0x61,0x5f,0x62,0x68,0x6f,0x72,0x73,
+0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x6e,0x70,0x72,0x73,0x73,0x72,0x70,0x6f,
+0x75,0x76,0x77,0x77,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,
+0x79,0x77,0x77,0x79,0x7c,0x7d,0x7b,0x78,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,
+0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7d,0x7e,0x7e,0x7d,0x7c,0x7a,0x79,
+0x79,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x77,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,
+0x78,0x79,0x79,0x79,0x78,0x77,0x76,0x75,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x72,
+0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x77,0x77,0x76,0x75,0x73,0x70,0x6e,0x6d,0x6c,0x6d,0x6d,0x6e,0x6d,0x6c,0x6b,0x6a,
+0x69,0x69,0x69,0x69,0x6a,0x6a,0x6a,0x6a,0x69,0x6b,0x6e,0x71,0x72,0x72,0x71,0x70,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,0x70,0x70,0x71,0x71,0x71,0x70,0x6f,0x6e,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x73,0x74,0x74,0x74,
+0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x74,0x74,0x73,0x73,0x72,0x72,0x71,
+0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x72,0x72,0x73,0x73,0x72,0x71,0x6f,0x6e,
+0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x71,0x70,0x70,0x70,0x70,0x71,0x72,
+0x6e,0x6a,0x66,0x65,0x67,0x67,0x65,0x63,0x63,0x60,0x5f,0x63,0x69,0x6f,0x72,0x72,
+0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6e,0x6a,0x6c,0x6e,0x6f,0x6f,0x6e,0x6c,0x6a,
+0x72,0x73,0x74,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x77,0x78,0x79,0x79,
+0x75,0x73,0x71,0x73,0x78,0x7c,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x79,
+0x77,0x78,0x79,0x7a,0x7b,0x7a,0x7a,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x76,0x75,0x74,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x72,
+0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x76,0x76,0x75,0x74,0x72,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,
+0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6c,0x6f,0x71,0x73,0x72,0x72,0x71,
+0x6f,0x6e,0x6c,0x6a,0x6a,0x6b,0x6c,0x6d,0x70,0x70,0x71,0x72,0x71,0x70,0x6f,0x6e,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x72,0x73,0x73,0x74,0x74,0x74,
+0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x74,0x74,0x73,0x72,0x71,0x70,0x6f,
+0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x72,0x72,0x73,0x73,0x72,0x71,0x6f,0x6f,
+0x6d,0x6d,0x6e,0x6e,0x6f,0x70,0x70,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6f,0x6f,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,
+0x6c,0x69,0x66,0x65,0x67,0x67,0x64,0x61,0x60,0x5f,0x5f,0x64,0x6a,0x70,0x71,0x71,
+0x71,0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x69,0x6b,0x6c,0x6e,0x6d,0x6c,0x6a,0x68,
+0x6d,0x6e,0x71,0x73,0x74,0x74,0x73,0x73,0x74,0x74,0x75,0x76,0x77,0x77,0x78,0x79,
+0x70,0x6d,0x6c,0x6e,0x75,0x7b,0x7e,0x7f,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,
+0x77,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,
+0x77,0x77,0x78,0x78,0x77,0x76,0x74,0x73,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x72,
+0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x75,0x75,0x74,0x72,0x71,0x70,0x70,0x70,0x6d,0x6e,0x6f,0x6f,0x6f,0x6e,0x6c,0x6c,
+0x6b,0x6b,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6c,0x6f,0x72,0x73,0x73,0x72,0x71,
+0x6e,0x6d,0x6a,0x68,0x68,0x69,0x6b,0x6d,0x70,0x71,0x71,0x72,0x72,0x71,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x74,0x73,0x73,0x72,0x71,0x70,0x6f,0x6e,
+0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x72,0x73,0x73,0x73,0x73,0x71,0x70,0x6f,
+0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,
+0x70,0x70,0x71,0x71,0x72,0x73,0x73,0x73,0x71,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,
+0x6c,0x69,0x66,0x66,0x68,0x67,0x64,0x61,0x5e,0x5e,0x5f,0x65,0x6c,0x70,0x71,0x6f,
+0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x6b,0x6c,0x6d,0x6e,0x6e,0x6c,0x6a,0x68,
+0x67,0x69,0x6c,0x6f,0x71,0x71,0x70,0x6f,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x77,
+0x6a,0x68,0x68,0x6c,0x74,0x7c,0x7f,0x80,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x78,
+0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7a,0x79,0x78,0x78,0x78,0x79,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x76,0x77,0x77,0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x72,
+0x75,0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x74,0x72,0x71,0x70,0x70,0x71,0x71,0x6e,0x6e,0x6f,0x70,0x6f,0x6e,0x6d,0x6c,
+0x6b,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x6a,0x6a,0x6c,0x6f,0x72,0x73,0x73,0x72,0x71,
+0x6e,0x6c,0x69,0x67,0x67,0x68,0x6b,0x6d,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x72,0x72,0x71,0x70,0x70,0x6f,0x6f,0x6f,
+0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x73,0x72,0x70,0x6f,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x71,0x71,0x71,0x71,0x71,0x6f,0x6e,0x6d,
+0x6c,0x69,0x67,0x67,0x69,0x68,0x64,0x61,0x5c,0x5c,0x5f,0x66,0x6d,0x71,0x70,0x6e,
+0x70,0x6f,0x6e,0x6d,0x6c,0x6a,0x69,0x69,0x6b,0x6c,0x6e,0x6e,0x6e,0x6c,0x69,0x68,
+0x61,0x63,0x68,0x6b,0x6d,0x6d,0x6c,0x6b,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,
+0x64,0x64,0x67,0x6e,0x76,0x7d,0x7e,0x7e,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x76,0x76,0x78,0x79,0x79,0x79,0x78,0x77,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7c,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7a,0x79,0x78,0x77,0x76,0x77,0x78,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,
+0x76,0x76,0x77,0x77,0x76,0x75,0x73,0x72,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x72,
+0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x74,0x73,0x71,0x70,0x70,0x70,0x71,0x72,0x6e,0x6f,0x70,0x70,0x70,0x6f,0x6d,0x6d,
+0x6c,0x6c,0x6c,0x6b,0x6b,0x6a,0x6a,0x6a,0x6b,0x6d,0x6f,0x72,0x73,0x73,0x72,0x72,
+0x6f,0x6c,0x69,0x66,0x66,0x68,0x6b,0x6d,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,
+0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x74,0x74,0x73,0x72,0x70,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x73,0x73,0x74,0x74,0x75,
+0x74,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x70,0x71,0x71,0x72,0x71,0x6f,0x6d,0x6c,
+0x6c,0x6a,0x68,0x69,0x6a,0x69,0x65,0x61,0x5a,0x5b,0x5f,0x66,0x6e,0x71,0x70,0x6d,
+0x6f,0x6f,0x6e,0x6c,0x6b,0x69,0x68,0x68,0x69,0x6a,0x6b,0x6c,0x6b,0x69,0x66,0x65,
+0x5b,0x5f,0x63,0x68,0x6a,0x6a,0x69,0x67,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,
+0x5f,0x61,0x67,0x70,0x7a,0x7e,0x7d,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x75,0x76,0x77,0x78,0x79,0x78,0x78,0x77,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7c,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x7a,0x79,0x77,0x76,0x75,0x76,0x77,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x76,0x76,
+0x75,0x76,0x76,0x76,0x76,0x74,0x73,0x72,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x72,
+0x74,0x74,0x74,0x75,0x76,0x76,0x77,0x77,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x74,0x73,0x71,0x70,0x6f,0x70,0x72,0x73,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6d,
+0x6c,0x6c,0x6c,0x6b,0x6b,0x6a,0x6a,0x6a,0x6b,0x6d,0x70,0x72,0x74,0x74,0x73,0x72,
+0x6f,0x6d,0x69,0x66,0x66,0x68,0x6b,0x6e,0x71,0x71,0x72,0x73,0x72,0x71,0x70,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,
+0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x73,0x73,0x74,0x74,0x73,0x72,0x71,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x70,0x71,0x72,0x73,0x74,0x74,
+0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x71,0x6f,0x6d,0x6b,
+0x6c,0x6a,0x69,0x6a,0x6b,0x6a,0x66,0x61,0x59,0x5b,0x5f,0x67,0x6e,0x71,0x70,0x6d,
+0x6f,0x6f,0x6e,0x6c,0x6a,0x69,0x68,0x67,0x67,0x67,0x69,0x69,0x68,0x66,0x64,0x62,
+0x58,0x5c,0x61,0x66,0x68,0x68,0x67,0x65,0x6b,0x6a,0x69,0x67,0x66,0x64,0x62,0x62,
+0x5c,0x60,0x68,0x73,0x7c,0x7f,0x7c,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x76,0x76,0x78,0x79,0x7a,0x79,0x79,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x74,
+0x75,0x75,0x75,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,
+0x74,0x74,0x74,0x73,0x72,0x72,0x72,0x71,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x70,
+0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x72,0x71,0x70,0x6f,0x6f,0x6e,
+0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,0x6c,0x6d,0x6f,0x71,0x74,0x74,0x72,0x70,0x6f,
+0x70,0x6f,0x6d,0x6b,0x69,0x68,0x68,0x68,0x6f,0x70,0x72,0x73,0x72,0x71,0x70,0x6e,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6e,0x6f,0x71,0x72,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x6a,0x6b,0x6d,0x6d,0x6b,0x67,0x63,0x60,0x5e,0x62,0x67,0x6d,0x71,0x73,0x73,0x72,
+0x6e,0x6d,0x6b,0x66,0x62,0x63,0x68,0x6c,0x64,0x65,0x67,0x6a,0x6a,0x65,0x5b,0x54,
+0x5e,0x5a,0x5a,0x61,0x6a,0x6a,0x60,0x55,0x64,0x6d,0x73,0x6f,0x63,0x59,0x58,0x5b,
+0x5b,0x63,0x6f,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,
+0x76,0x76,0x78,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x78,0x79,0x7a,0x7b,0x7a,0x7a,0x79,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x77,0x76,0x75,0x75,0x74,
+0x75,0x75,0x74,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x74,0x73,0x73,0x73,0x72,0x72,0x71,0x71,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x72,0x72,0x71,0x70,0x6f,0x6f,0x6e,
+0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6d,0x6c,0x6e,0x6f,0x72,0x74,0x74,0x73,0x71,0x6f,
+0x70,0x6f,0x6d,0x6b,0x6a,0x69,0x69,0x69,0x6e,0x6f,0x70,0x72,0x72,0x71,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x70,0x71,0x72,0x72,0x72,0x72,0x71,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,
+0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6e,0x6c,0x6a,0x6a,
+0x6a,0x6b,0x6c,0x6c,0x6a,0x66,0x62,0x5f,0x5f,0x62,0x68,0x6d,0x71,0x72,0x72,0x71,
+0x6f,0x6d,0x6a,0x65,0x61,0x62,0x66,0x6a,0x63,0x64,0x65,0x68,0x68,0x64,0x5b,0x53,
+0x5d,0x5a,0x59,0x60,0x67,0x67,0x5e,0x54,0x62,0x6a,0x70,0x6d,0x62,0x59,0x59,0x5c,
+0x5b,0x63,0x6f,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7a,0x79,
+0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x75,0x75,0x74,0x74,
+0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x73,0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,
+0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6f,0x70,0x72,0x74,0x74,0x73,0x72,0x71,
+0x70,0x6f,0x6d,0x6c,0x6b,0x6b,0x6b,0x6b,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x73,
+0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6d,0x6b,0x69,0x67,
+0x6a,0x6b,0x6c,0x6c,0x69,0x65,0x61,0x5e,0x5f,0x63,0x68,0x6d,0x70,0x71,0x71,0x70,
+0x70,0x6d,0x68,0x63,0x60,0x60,0x63,0x65,0x61,0x61,0x62,0x65,0x65,0x61,0x59,0x53,
+0x5c,0x59,0x58,0x5d,0x63,0x63,0x5b,0x53,0x5f,0x66,0x6b,0x68,0x60,0x5a,0x59,0x5c,
+0x5b,0x63,0x6f,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7a,0x7a,
+0x76,0x77,0x78,0x78,0x79,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x73,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,
+0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x70,0x71,0x72,0x74,0x74,0x73,0x72,0x72,
+0x70,0x6f,0x6e,0x6d,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x71,0x71,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x72,0x70,0x6f,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6d,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6d,0x6c,0x6d,0x6e,0x6f,0x71,0x72,0x73,0x73,
+0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x6f,0x6d,0x69,0x66,0x64,
+0x68,0x69,0x6b,0x6b,0x69,0x65,0x60,0x5e,0x60,0x63,0x68,0x6d,0x70,0x71,0x70,0x6f,
+0x71,0x6c,0x65,0x60,0x5f,0x5f,0x60,0x60,0x5f,0x5f,0x5f,0x61,0x62,0x5f,0x59,0x53,
+0x59,0x57,0x57,0x5a,0x5e,0x5e,0x59,0x53,0x5d,0x61,0x65,0x63,0x5e,0x5a,0x5a,0x5c,
+0x5b,0x63,0x6f,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x76,0x77,0x78,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x76,0x77,0x78,0x78,0x78,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,
+0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,
+0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,
+0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x73,0x73,0x73,0x72,0x72,
+0x71,0x70,0x6f,0x6e,0x6e,0x6f,0x6f,0x70,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x71,0x6f,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6d,0x6e,0x6f,0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x6d,0x6e,0x6f,0x70,0x72,0x73,0x73,
+0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6c,0x68,0x63,0x60,
+0x65,0x67,0x69,0x69,0x68,0x65,0x61,0x5e,0x61,0x64,0x68,0x6d,0x6f,0x70,0x6f,0x6d,
+0x71,0x6a,0x61,0x5d,0x5d,0x5e,0x5d,0x5b,0x5e,0x5c,0x5c,0x5e,0x5f,0x5e,0x59,0x54,
+0x55,0x55,0x55,0x58,0x5a,0x5a,0x58,0x56,0x5d,0x5e,0x5f,0x5e,0x5c,0x5b,0x5b,0x5c,
+0x5b,0x63,0x6f,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x76,0x77,0x78,0x78,0x78,0x77,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x6f,
+0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x72,
+0x71,0x70,0x70,0x6f,0x6f,0x70,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x70,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x71,0x71,0x72,0x72,0x73,0x74,0x74,0x75,0x75,0x76,0x75,0x75,0x73,0x71,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6e,0x70,0x71,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x72,
+0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x6f,0x6b,0x66,0x61,0x5d,
+0x62,0x64,0x66,0x68,0x68,0x65,0x62,0x60,0x62,0x64,0x69,0x6d,0x6f,0x6f,0x6d,0x6c,
+0x70,0x67,0x5c,0x59,0x5c,0x5e,0x5c,0x58,0x5d,0x5b,0x5a,0x5b,0x5d,0x5d,0x59,0x55,
+0x52,0x53,0x54,0x56,0x57,0x58,0x59,0x59,0x5e,0x5d,0x5c,0x5b,0x5b,0x5b,0x5b,0x5b,
+0x5b,0x63,0x6f,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x77,0x77,0x78,0x78,0x77,0x76,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x73,0x74,0x75,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x73,0x73,0x73,0x72,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x73,0x73,0x72,0x71,0x70,0x70,
+0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x70,0x70,0x70,0x71,0x71,0x72,0x72,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,
+0x71,0x71,0x70,0x70,0x71,0x72,0x73,0x74,0x75,0x74,0x72,0x70,0x70,0x70,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x71,0x71,0x72,0x73,0x74,0x74,0x74,0x76,0x76,0x77,0x77,0x76,0x75,0x74,0x73,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6e,0x6f,0x71,0x73,0x73,0x71,0x6f,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,
+0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x70,0x71,0x71,0x6f,0x6b,0x65,0x5f,0x5b,
+0x5e,0x61,0x64,0x67,0x67,0x66,0x64,0x62,0x62,0x65,0x69,0x6d,0x6e,0x6e,0x6c,0x6b,
+0x6e,0x64,0x59,0x57,0x5b,0x5e,0x5b,0x56,0x5d,0x5b,0x59,0x5a,0x5c,0x5c,0x5a,0x57,
+0x4f,0x51,0x53,0x54,0x55,0x57,0x5a,0x5d,0x60,0x5d,0x5a,0x59,0x5a,0x5c,0x5c,0x5b,
+0x5b,0x63,0x6f,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x77,0x77,0x78,0x78,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x73,0x75,0x76,0x76,0x76,0x75,0x74,0x75,0x74,0x74,0x73,0x73,0x72,0x72,0x72,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x72,0x72,0x73,0x73,0x73,0x75,0x75,0x74,0x73,0x72,0x71,0x71,0x70,
+0x6e,0x6e,0x6e,0x6f,0x70,0x70,0x70,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x70,0x70,0x71,0x71,0x72,0x72,0x72,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x71,
+0x71,0x71,0x70,0x70,0x71,0x73,0x74,0x75,0x77,0x76,0x73,0x71,0x70,0x70,0x70,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x71,0x71,0x72,0x73,0x74,0x74,0x75,0x76,0x77,0x77,0x78,0x78,0x77,0x76,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x6e,0x70,0x72,0x74,0x74,0x72,0x70,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x70,0x71,0x71,0x6f,0x6b,0x64,0x5e,0x59,
+0x5c,0x5f,0x63,0x66,0x67,0x67,0x65,0x63,0x62,0x65,0x69,0x6c,0x6e,0x6e,0x6c,0x6a,
+0x6d,0x62,0x57,0x55,0x5b,0x5f,0x5b,0x55,0x5d,0x5b,0x58,0x59,0x5b,0x5c,0x5a,0x58,
+0x4d,0x50,0x53,0x54,0x54,0x56,0x5b,0x60,0x62,0x5e,0x59,0x58,0x5a,0x5c,0x5c,0x5a,
+0x5b,0x63,0x6f,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,
+0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x77,0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,
+0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x70,0x70,0x71,0x72,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,0x77,0x76,0x75,0x73,0x72,0x70,0x6f,0x6e,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x70,0x70,0x6f,0x6f,0x70,0x70,0x71,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x71,0x70,0x6f,0x6e,0x6e,0x6f,0x6f,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x72,
+0x73,0x72,0x71,0x70,0x71,0x72,0x74,0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,
+0x75,0x76,0x76,0x76,0x75,0x73,0x72,0x71,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x72,0x71,0x6f,0x6c,0x67,0x62,0x5d,0x5a,
+0x5a,0x5c,0x5f,0x62,0x64,0x65,0x64,0x63,0x67,0x69,0x6c,0x6f,0x70,0x6f,0x6e,0x6c,
+0x67,0x62,0x5b,0x55,0x54,0x57,0x5b,0x5f,0x51,0x5c,0x66,0x66,0x5c,0x54,0x53,0x57,
+0x5a,0x57,0x52,0x4f,0x4d,0x4f,0x52,0x55,0x60,0x64,0x66,0x61,0x59,0x55,0x58,0x5d,
+0x5f,0x67,0x72,0x79,0x7b,0x7a,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,
+0x75,0x76,0x77,0x78,0x79,0x78,0x78,0x77,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x70,0x70,0x70,0x71,0x73,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,0x76,0x76,0x75,0x73,0x72,0x70,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x71,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x71,0x70,0x6f,0x6e,0x6e,0x6f,0x70,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x73,0x72,0x71,0x71,0x71,0x73,0x74,0x75,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x75,
+0x76,0x76,0x77,0x76,0x76,0x74,0x73,0x72,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x6f,0x6c,0x68,0x64,0x60,0x5d,
+0x5b,0x5c,0x5f,0x62,0x64,0x64,0x64,0x63,0x67,0x69,0x6c,0x6f,0x70,0x6f,0x6d,0x6c,
+0x66,0x62,0x5b,0x56,0x54,0x57,0x5b,0x5e,0x55,0x5d,0x65,0x63,0x5a,0x54,0x54,0x58,
+0x5b,0x58,0x53,0x50,0x4e,0x50,0x52,0x54,0x5e,0x62,0x66,0x63,0x5e,0x5a,0x5c,0x5f,
+0x5f,0x67,0x72,0x7a,0x7b,0x7b,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,
+0x75,0x76,0x77,0x78,0x78,0x78,0x77,0x77,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x70,0x6f,0x70,0x71,0x72,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,0x76,0x75,0x74,0x73,0x71,0x70,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x70,0x6f,0x6e,0x6e,0x6f,0x70,0x71,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x70,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,
+0x73,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,
+0x76,0x77,0x77,0x77,0x77,0x75,0x74,0x73,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x70,0x6f,0x6d,0x6a,0x66,0x63,0x61,
+0x5d,0x5e,0x5f,0x61,0x62,0x63,0x63,0x63,0x69,0x6a,0x6d,0x6f,0x6f,0x6f,0x6d,0x6c,
+0x66,0x62,0x5c,0x57,0x55,0x57,0x5a,0x5d,0x5a,0x5f,0x62,0x5f,0x58,0x54,0x56,0x5a,
+0x5c,0x59,0x55,0x52,0x50,0x51,0x52,0x53,0x58,0x5d,0x63,0x65,0x62,0x60,0x5f,0x60,
+0x5f,0x68,0x73,0x7a,0x7c,0x7c,0x7c,0x7c,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,
+0x74,0x75,0x76,0x77,0x78,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,0x75,0x74,0x73,0x72,0x71,0x70,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x6f,0x6e,0x6e,0x6f,0x70,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x72,0x71,0x70,0x6f,0x6f,0x70,0x70,0x71,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,
+0x72,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x77,0x77,0x78,0x78,0x77,0x76,0x75,0x74,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x70,0x6f,0x6d,0x6b,0x68,0x67,0x65,
+0x60,0x60,0x60,0x61,0x61,0x63,0x64,0x64,0x6b,0x6c,0x6d,0x6e,0x6f,0x6e,0x6d,0x6c,
+0x65,0x62,0x5d,0x59,0x57,0x57,0x59,0x5b,0x5e,0x60,0x60,0x5c,0x57,0x55,0x59,0x5d,
+0x5c,0x5a,0x58,0x55,0x53,0x53,0x53,0x54,0x52,0x57,0x5d,0x62,0x63,0x62,0x60,0x5f,
+0x60,0x68,0x73,0x7b,0x7d,0x7d,0x7d,0x7d,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x74,0x74,0x76,0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x73,0x73,0x73,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x70,0x6f,0x6e,0x6e,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,0x74,0x73,0x73,0x72,0x71,0x70,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x6f,0x6e,0x6e,0x6e,0x6e,0x6f,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x70,0x6f,0x6f,0x70,0x71,0x72,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,
+0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x77,0x77,0x78,0x78,0x77,0x76,0x75,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x70,0x6f,0x6d,0x6b,0x69,0x69,0x68,
+0x63,0x63,0x61,0x61,0x61,0x63,0x65,0x66,0x6d,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6c,
+0x64,0x62,0x5e,0x5a,0x58,0x58,0x58,0x59,0x61,0x60,0x5f,0x5c,0x59,0x5a,0x5d,0x60,
+0x5c,0x5c,0x5a,0x59,0x58,0x57,0x57,0x56,0x4e,0x51,0x56,0x5c,0x61,0x62,0x5f,0x5d,
+0x5f,0x68,0x73,0x7b,0x7d,0x7d,0x7d,0x7e,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x73,0x74,0x75,0x76,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x70,0x6f,0x6e,0x6d,0x6e,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x70,0x70,0x71,0x71,0x72,0x72,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x71,0x72,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x73,
+0x72,0x73,0x75,0x77,0x78,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,
+0x75,0x75,0x76,0x77,0x77,0x76,0x75,0x75,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x72,0x70,0x6e,0x6c,0x6a,0x69,0x69,0x69,
+0x68,0x66,0x63,0x62,0x62,0x63,0x66,0x68,0x6f,0x6f,0x6f,0x6e,0x6e,0x6d,0x6c,0x6c,
+0x63,0x61,0x5f,0x5c,0x59,0x58,0x57,0x57,0x60,0x5f,0x5e,0x5e,0x5f,0x60,0x61,0x62,
+0x5c,0x5c,0x5d,0x5d,0x5d,0x5c,0x5b,0x5a,0x52,0x51,0x52,0x58,0x5e,0x61,0x60,0x5d,
+0x5e,0x67,0x72,0x7a,0x7d,0x7d,0x7d,0x7e,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x73,0x73,0x74,0x75,0x76,0x75,0x75,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x74,0x73,0x73,0x72,0x71,0x70,0x70,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,0x72,0x72,0x72,0x71,0x71,0x70,0x70,0x70,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x70,0x70,0x71,0x71,0x72,0x73,0x73,0x74,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x71,0x71,0x70,0x70,0x70,0x71,0x73,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x77,0x77,0x76,0x75,0x75,0x74,0x73,0x73,
+0x72,0x73,0x75,0x78,0x79,0x7a,0x7a,0x79,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x75,
+0x73,0x74,0x75,0x76,0x76,0x76,0x75,0x74,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x72,0x71,0x6e,0x6b,0x69,0x68,0x68,0x68,
+0x6c,0x69,0x65,0x63,0x62,0x64,0x68,0x6a,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,
+0x63,0x61,0x5f,0x5d,0x5a,0x58,0x56,0x56,0x5e,0x5e,0x5f,0x61,0x65,0x66,0x65,0x63,
+0x5c,0x5d,0x5f,0x61,0x61,0x61,0x5f,0x5f,0x5a,0x56,0x53,0x56,0x5d,0x63,0x63,0x61,
+0x5c,0x65,0x71,0x79,0x7c,0x7c,0x7c,0x7d,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x72,0x73,0x74,0x75,0x76,0x75,0x75,0x74,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,
+0x74,0x73,0x73,0x72,0x71,0x70,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x70,0x70,0x70,0x70,0x71,0x73,0x74,0x75,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x70,0x70,0x71,0x71,0x72,0x73,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x71,0x70,0x70,0x70,0x70,0x72,0x73,0x74,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x78,0x77,0x77,0x76,0x75,0x74,0x73,0x73,
+0x71,0x73,0x76,0x78,0x7a,0x7a,0x7a,0x7a,0x7b,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x78,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,
+0x72,0x73,0x74,0x75,0x75,0x75,0x74,0x74,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x73,0x71,0x6e,0x6b,0x68,0x67,0x67,0x67,
+0x6e,0x6b,0x67,0x63,0x63,0x65,0x69,0x6b,0x72,0x71,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,
+0x62,0x61,0x60,0x5d,0x5b,0x58,0x56,0x55,0x5d,0x5d,0x5f,0x64,0x68,0x6a,0x67,0x63,
+0x5b,0x5d,0x60,0x63,0x64,0x63,0x62,0x61,0x61,0x5b,0x55,0x56,0x5e,0x65,0x66,0x64,
+0x5c,0x64,0x70,0x78,0x7b,0x7c,0x7c,0x7d,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,
+0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,
+0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6e,
+0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6c,0x6b,0x6b,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,0x6b,0x6b,0x6d,0x6f,0x70,
+0x70,0x70,0x71,0x72,0x73,0x74,0x74,0x75,0x70,0x71,0x72,0x72,0x71,0x70,0x6e,0x6d,
+0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,
+0x70,0x70,0x71,0x71,0x72,0x72,0x73,0x73,0x75,0x75,0x74,0x73,0x72,0x71,0x71,0x70,
+0x6f,0x6f,0x70,0x71,0x71,0x72,0x73,0x73,0x72,0x71,0x6f,0x6e,0x6f,0x71,0x74,0x77,
+0x73,0x72,0x71,0x71,0x72,0x73,0x75,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,
+0x75,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7d,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x77,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,
+0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x74,0x72,0x6f,0x6c,0x6a,0x68,0x67,0x67,
+0x69,0x6f,0x71,0x6b,0x61,0x5e,0x65,0x6e,0x71,0x71,0x71,0x70,0x6f,0x6d,0x6b,0x69,
+0x64,0x61,0x5d,0x5c,0x5d,0x5c,0x59,0x56,0x58,0x5c,0x61,0x63,0x63,0x64,0x68,0x6b,
+0x61,0x60,0x60,0x5f,0x5e,0x5c,0x5b,0x5a,0x62,0x62,0x62,0x63,0x63,0x63,0x62,0x62,
+0x5f,0x67,0x72,0x79,0x7c,0x7c,0x7d,0x7f,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,
+0x78,0x79,0x7a,0x7a,0x7c,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x72,0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,
+0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6d,0x6c,0x6b,0x6b,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6c,0x6b,0x6c,0x6d,0x6f,0x70,
+0x6f,0x6f,0x70,0x71,0x72,0x73,0x74,0x74,0x71,0x72,0x72,0x72,0x71,0x6f,0x6d,0x6c,
+0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x70,0x70,0x71,0x72,0x73,0x73,0x74,0x74,0x73,0x73,0x72,0x71,0x70,0x70,
+0x6f,0x6f,0x70,0x71,0x71,0x72,0x73,0x73,0x71,0x70,0x6e,0x6e,0x6e,0x71,0x74,0x75,
+0x75,0x74,0x73,0x72,0x73,0x74,0x75,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,
+0x75,0x75,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x78,
+0x78,0x77,0x77,0x76,0x74,0x73,0x73,0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x71,0x6f,0x6c,0x6a,0x69,0x69,0x69,
+0x6a,0x6f,0x71,0x6c,0x63,0x60,0x67,0x6f,0x71,0x71,0x71,0x70,0x6f,0x6d,0x6b,0x6a,
+0x67,0x64,0x60,0x60,0x60,0x60,0x5d,0x59,0x59,0x5e,0x64,0x67,0x67,0x67,0x69,0x6b,
+0x63,0x62,0x61,0x60,0x5e,0x5c,0x5b,0x5a,0x61,0x61,0x62,0x63,0x63,0x63,0x63,0x62,
+0x60,0x68,0x72,0x79,0x7b,0x7c,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,
+0x78,0x79,0x7a,0x7a,0x7c,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6e,
+0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6d,0x6c,0x6c,0x6c,
+0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6c,0x6d,0x6e,0x6f,0x6f,
+0x6e,0x6e,0x6f,0x70,0x71,0x72,0x73,0x73,0x73,0x73,0x72,0x71,0x70,0x6e,0x6c,0x6a,
+0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6d,0x6d,0x6e,0x6f,0x71,0x72,0x73,0x73,0x73,0x73,0x72,0x71,0x71,0x70,0x70,0x6f,
+0x6f,0x70,0x70,0x71,0x71,0x72,0x72,0x73,0x71,0x6f,0x6e,0x6e,0x6e,0x70,0x72,0x74,
+0x77,0x77,0x75,0x75,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,
+0x75,0x75,0x76,0x78,0x79,0x7a,0x7b,0x7c,0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,0x7a,
+0x7a,0x79,0x78,0x77,0x75,0x73,0x72,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x70,0x6e,0x6c,0x6b,0x6b,0x6b,0x6b,
+0x6c,0x70,0x71,0x6d,0x66,0x64,0x69,0x70,0x71,0x71,0x71,0x70,0x6f,0x6d,0x6b,0x6a,
+0x6a,0x66,0x63,0x63,0x64,0x63,0x60,0x5d,0x5b,0x61,0x68,0x6c,0x6c,0x6a,0x6a,0x6b,
+0x66,0x66,0x64,0x62,0x5f,0x5d,0x5b,0x5b,0x5f,0x60,0x62,0x63,0x63,0x63,0x63,0x62,
+0x63,0x6a,0x74,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,
+0x78,0x79,0x7a,0x7a,0x7c,0x7c,0x7d,0x7e,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6d,0x6d,
+0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x70,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,
+0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,
+0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x74,0x74,0x72,0x71,0x6f,0x6c,0x6b,0x6a,
+0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,
+0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,0x73,0x72,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,
+0x70,0x70,0x70,0x71,0x71,0x72,0x72,0x72,0x70,0x6f,0x6e,0x6e,0x6e,0x70,0x71,0x72,
+0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,
+0x75,0x75,0x76,0x77,0x78,0x79,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,
+0x7b,0x7b,0x79,0x77,0x75,0x73,0x72,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x6f,0x6e,0x6d,0x6c,0x6c,0x6d,0x6e,0x6e,
+0x6d,0x70,0x71,0x6e,0x6a,0x68,0x6c,0x70,0x70,0x70,0x71,0x70,0x6f,0x6d,0x6c,0x6a,
+0x6a,0x66,0x63,0x63,0x64,0x64,0x61,0x5e,0x5d,0x64,0x6d,0x71,0x70,0x6d,0x6b,0x6b,
+0x6a,0x69,0x66,0x63,0x60,0x5e,0x5d,0x5c,0x5f,0x60,0x62,0x64,0x64,0x64,0x63,0x62,
+0x65,0x6c,0x75,0x7b,0x7b,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7b,0x7a,0x79,0x79,0x79,0x79,0x7a,0x7b,
+0x78,0x79,0x7a,0x7a,0x7c,0x7c,0x7d,0x7e,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x70,0x70,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x70,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,
+0x6b,0x6b,0x6c,0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,
+0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x75,0x74,0x72,0x70,0x6e,0x6c,0x6b,0x6a,
+0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,0x71,
+0x6c,0x6c,0x6d,0x6f,0x70,0x71,0x72,0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,
+0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x70,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x71,
+0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x75,0x75,0x76,0x76,0x77,0x78,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,
+0x7b,0x7a,0x79,0x77,0x75,0x73,0x71,0x70,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x6f,0x6e,0x6d,0x6d,0x6d,0x6e,0x6f,0x70,
+0x6e,0x6f,0x70,0x6e,0x6d,0x6c,0x6e,0x70,0x70,0x70,0x70,0x70,0x6f,0x6e,0x6c,0x6b,
+0x68,0x65,0x62,0x62,0x63,0x63,0x61,0x5d,0x61,0x67,0x6f,0x72,0x71,0x6e,0x6c,0x6c,
+0x6e,0x6c,0x68,0x65,0x62,0x60,0x60,0x60,0x60,0x62,0x64,0x66,0x66,0x65,0x62,0x61,
+0x65,0x6d,0x76,0x7b,0x7c,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7b,
+0x78,0x79,0x7a,0x7a,0x7c,0x7c,0x7d,0x7e,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,0x6c,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6b,0x6c,0x6c,0x6d,0x6e,0x6f,0x70,0x70,0x6f,0x70,0x70,0x71,0x70,0x6f,0x6e,0x6e,
+0x6e,0x6e,0x6f,0x70,0x71,0x72,0x73,0x73,0x74,0x73,0x71,0x6e,0x6d,0x6c,0x6b,0x6b,
+0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,
+0x6e,0x6e,0x6f,0x70,0x70,0x71,0x71,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x77,0x78,0x78,0x79,0x78,0x77,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,
+0x74,0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,
+0x79,0x78,0x77,0x76,0x74,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x71,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6c,0x6c,
+0x68,0x65,0x62,0x62,0x64,0x64,0x61,0x5f,0x65,0x69,0x6e,0x70,0x6e,0x6d,0x6d,0x6e,
+0x6f,0x6d,0x6a,0x66,0x64,0x63,0x63,0x64,0x63,0x65,0x67,0x69,0x68,0x65,0x62,0x60,
+0x65,0x6c,0x76,0x7b,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7a,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7a,
+0x78,0x79,0x7a,0x7a,0x7c,0x7c,0x7d,0x7e,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x70,0x70,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,0x6c,0x6b,
+0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6c,0x6d,0x6d,0x6e,0x70,0x71,0x72,0x72,0x70,0x70,0x71,0x72,0x71,0x70,0x6e,0x6d,
+0x6f,0x6f,0x70,0x71,0x72,0x73,0x74,0x74,0x73,0x71,0x6f,0x6d,0x6c,0x6c,0x6d,0x6d,
+0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6e,0x6f,0x6f,0x70,0x71,0x72,0x72,0x73,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x73,0x73,0x73,0x72,0x72,0x71,
+0x75,0x76,0x77,0x78,0x79,0x78,0x77,0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,
+0x74,0x75,0x75,0x75,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,
+0x76,0x76,0x75,0x74,0x73,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x71,0x70,0x6f,0x6e,0x6e,0x6f,0x70,0x70,
+0x6e,0x6d,0x6c,0x6d,0x70,0x71,0x70,0x6e,0x6f,0x6f,0x70,0x70,0x6f,0x6e,0x6d,0x6c,
+0x6b,0x68,0x65,0x66,0x67,0x68,0x65,0x62,0x68,0x6b,0x6d,0x6c,0x6a,0x6a,0x6d,0x70,
+0x70,0x6e,0x6a,0x67,0x65,0x65,0x66,0x67,0x67,0x68,0x6a,0x6b,0x6a,0x66,0x62,0x5f,
+0x64,0x6c,0x75,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7a,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,
+0x78,0x79,0x7a,0x7a,0x7c,0x7c,0x7d,0x7e,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,0x6c,0x6c,0x6b,0x6b,
+0x6d,0x6d,0x6d,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x70,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6d,0x6d,0x6e,0x6f,0x71,0x72,0x73,0x73,0x70,0x71,0x72,0x72,0x72,0x70,0x6e,0x6d,
+0x70,0x70,0x71,0x72,0x73,0x74,0x74,0x75,0x72,0x70,0x6e,0x6d,0x6c,0x6d,0x6e,0x6e,
+0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6e,0x6f,0x6f,0x70,0x71,0x72,0x73,0x73,
+0x73,0x73,0x72,0x72,0x71,0x71,0x70,0x70,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,
+0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x73,0x73,0x74,0x74,0x74,0x73,0x72,0x72,
+0x73,0x74,0x76,0x78,0x79,0x78,0x77,0x77,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,
+0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,
+0x74,0x74,0x74,0x73,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,
+0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x71,0x71,0x6f,0x6f,0x6e,0x6f,0x70,0x70,
+0x6d,0x6c,0x6b,0x6d,0x70,0x72,0x70,0x6d,0x6e,0x6f,0x70,0x70,0x6f,0x6e,0x6d,0x6c,
+0x6e,0x6b,0x68,0x69,0x6b,0x6b,0x68,0x66,0x6b,0x6b,0x6b,0x69,0x67,0x68,0x6d,0x72,
+0x70,0x6e,0x6b,0x68,0x66,0x67,0x68,0x6a,0x69,0x6b,0x6c,0x6d,0x6b,0x66,0x61,0x5e,
+0x64,0x6b,0x75,0x7b,0x7d,0x7c,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7a,0x79,0x78,0x78,0x78,0x78,0x79,0x7a,
+0x78,0x79,0x7a,0x7a,0x7c,0x7c,0x7d,0x7e,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x6e,0x6e,0x70,0x70,0x70,0x6f,0x6d,0x6c,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x73,0x72,0x72,0x70,0x6f,0x6e,0x6d,0x6d,
+0x6b,0x6d,0x6f,0x71,0x72,0x72,0x71,0x71,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x70,0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6d,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x70,0x70,0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6f,0x70,0x70,0x71,0x72,0x73,0x74,0x74,
+0x73,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x72,0x71,0x70,0x6f,0x6e,0x6e,0x6e,0x6e,0x6c,0x6d,0x6f,0x70,0x71,0x70,0x6f,0x6e,
+0x70,0x72,0x74,0x77,0x79,0x7b,0x7b,0x7c,0x78,0x77,0x76,0x75,0x73,0x72,0x71,0x70,
+0x74,0x74,0x74,0x74,0x75,0x76,0x78,0x79,0x78,0x78,0x78,0x77,0x76,0x76,0x76,0x75,
+0x79,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x76,0x75,0x73,0x72,0x71,0x71,0x74,0x73,0x71,0x70,0x6f,0x70,0x72,0x72,
+0x70,0x71,0x71,0x72,0x72,0x73,0x73,0x73,0x70,0x70,0x71,0x72,0x72,0x73,0x73,0x74,
+0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x72,0x72,0x71,0x6f,0x6d,0x6b,0x69,
+0x6c,0x6b,0x6b,0x6b,0x6b,0x6d,0x6e,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x6f,
+0x6e,0x6f,0x6f,0x6c,0x68,0x66,0x68,0x6b,0x6c,0x6c,0x6c,0x6b,0x69,0x65,0x62,0x60,
+0x65,0x6d,0x77,0x7d,0x7e,0x7c,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x78,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x6e,0x6f,0x70,0x70,0x70,0x6f,0x6d,0x6c,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x73,0x72,0x71,0x70,0x6f,0x6e,0x6d,0x6d,
+0x6d,0x6e,0x70,0x71,0x72,0x71,0x71,0x70,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,
+0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x70,0x70,0x71,0x71,0x71,0x6f,0x6e,0x6d,0x6f,0x6f,0x70,0x71,0x71,0x72,0x73,0x73,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x71,0x70,0x6f,0x6e,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x71,0x70,0x6f,
+0x6e,0x6f,0x72,0x75,0x78,0x7a,0x7a,0x7b,0x78,0x78,0x77,0x75,0x74,0x73,0x72,0x71,
+0x74,0x74,0x74,0x74,0x75,0x76,0x78,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x76,0x76,
+0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x76,0x75,0x74,0x73,0x72,0x71,0x71,0x73,0x72,0x70,0x6f,0x6f,0x70,0x71,0x72,
+0x70,0x71,0x71,0x71,0x72,0x72,0x73,0x73,0x70,0x70,0x71,0x71,0x72,0x73,0x73,0x73,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x71,0x71,0x70,0x6f,0x6d,0x6c,0x6b,
+0x6c,0x6c,0x6b,0x6b,0x6b,0x6c,0x6e,0x6e,0x6f,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x6f,
+0x6e,0x6f,0x6f,0x6c,0x68,0x66,0x68,0x6b,0x6b,0x6b,0x6b,0x6b,0x68,0x65,0x61,0x5f,
+0x63,0x6b,0x76,0x7c,0x7d,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x78,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x6e,0x6f,0x6f,0x70,0x6f,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x72,0x72,0x71,0x70,0x6f,0x6e,0x6e,0x6d,
+0x6e,0x6f,0x70,0x71,0x71,0x70,0x6f,0x6f,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x70,0x70,0x71,0x71,0x71,0x70,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x71,0x71,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x70,0x70,0x6f,0x6f,0x6e,0x6d,0x6d,0x72,0x72,0x73,0x73,0x72,0x71,0x70,0x6f,
+0x6a,0x6c,0x6f,0x72,0x75,0x78,0x79,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x73,
+0x75,0x74,0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x75,0x75,0x74,0x73,0x72,0x71,0x71,0x71,0x70,0x70,0x6f,0x6f,0x70,0x70,0x71,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x70,0x70,0x70,0x71,0x72,0x72,0x73,0x73,
+0x71,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x6f,0x6e,0x6d,0x6c,
+0x6c,0x6c,0x6b,0x6b,0x6b,0x6c,0x6d,0x6e,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,
+0x6d,0x6e,0x6e,0x6b,0x67,0x66,0x68,0x6a,0x69,0x6a,0x6a,0x69,0x67,0x63,0x60,0x5d,
+0x61,0x69,0x74,0x7b,0x7d,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,
+0x70,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x70,0x71,0x71,0x71,0x71,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,
+0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x71,0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x67,0x69,0x6c,0x70,0x73,0x76,0x77,0x78,0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,
+0x75,0x75,0x74,0x74,0x74,0x76,0x77,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x74,0x74,0x73,0x72,0x71,0x71,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x70,0x70,0x71,0x72,0x72,0x73,0x73,
+0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6e,0x6e,
+0x6c,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6f,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x6f,
+0x6c,0x6e,0x6e,0x6b,0x67,0x65,0x67,0x6a,0x68,0x69,0x69,0x68,0x65,0x62,0x5e,0x5c,
+0x5f,0x68,0x73,0x7a,0x7c,0x7c,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x79,0x7a,0x7b,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x74,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x6f,0x6f,0x6f,0x6e,
+0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x70,0x71,0x72,0x72,0x71,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x70,0x70,0x70,0x71,0x71,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6f,0x6f,0x70,0x70,0x6f,0x6e,0x6c,0x6b,0x6b,0x6b,0x6a,0x69,0x67,0x67,0x66,0x66,
+0x67,0x69,0x6c,0x6f,0x72,0x74,0x75,0x76,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x75,0x75,0x74,0x74,0x75,0x76,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x73,0x73,0x73,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x70,0x70,0x71,0x71,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x6f,0x6f,0x70,0x70,0x71,0x72,0x72,0x73,
+0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,0x6b,0x6c,0x6d,0x6f,0x6f,0x6f,0x6e,0x6e,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6b,0x6c,0x6e,0x6e,0x6d,0x6c,0x6c,0x6d,0x6e,0x6e,
+0x6c,0x6d,0x6d,0x6a,0x66,0x64,0x66,0x69,0x67,0x68,0x68,0x67,0x65,0x61,0x5e,0x5b,
+0x5f,0x68,0x73,0x7a,0x7c,0x7c,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7b,
+0x70,0x70,0x6f,0x6e,0x6d,0x6e,0x6e,0x6f,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x70,0x6f,0x6e,0x6e,0x6e,0x6e,0x6f,0x70,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6f,0x70,0x71,0x72,0x72,0x72,0x71,0x71,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6e,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6e,0x6f,0x70,0x71,0x70,0x6e,0x6c,0x6a,0x66,0x66,0x64,0x63,0x62,0x62,0x63,0x63,
+0x69,0x6a,0x6d,0x70,0x72,0x74,0x74,0x75,0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x78,
+0x76,0x76,0x75,0x74,0x74,0x75,0x76,0x77,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x6e,0x6f,0x70,0x72,0x72,0x72,0x72,0x72,
+0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,
+0x71,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6e,0x6c,0x6c,0x6d,0x6e,0x6f,0x6e,0x6d,0x6d,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6a,0x6b,0x6b,0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,
+0x6b,0x6c,0x6c,0x69,0x65,0x64,0x66,0x68,0x67,0x68,0x68,0x67,0x65,0x61,0x5e,0x5b,
+0x61,0x69,0x74,0x7b,0x7d,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6e,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6e,0x6d,0x6d,0x6d,0x6f,0x70,0x72,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x71,0x71,0x71,0x72,0x72,0x73,0x73,0x73,
+0x74,0x74,0x73,0x72,0x72,0x71,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6f,0x70,0x71,0x72,0x72,0x72,0x72,0x71,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,
+0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x71,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6d,0x6e,0x70,0x71,0x70,0x6e,0x6b,0x69,0x64,0x63,0x62,0x61,0x61,0x62,0x63,0x64,
+0x6c,0x6d,0x6f,0x71,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x77,0x77,0x78,0x78,
+0x77,0x76,0x75,0x74,0x74,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x79,
+0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x70,0x72,0x73,0x74,0x74,0x73,0x73,
+0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x6c,0x6d,0x6e,0x6e,0x6e,0x6d,0x6c,0x6c,
+0x6d,0x6c,0x6b,0x6a,0x69,0x69,0x6a,0x6b,0x6b,0x6a,0x69,0x69,0x69,0x69,0x6a,0x6b,
+0x6b,0x6c,0x6c,0x69,0x65,0x63,0x65,0x68,0x68,0x68,0x68,0x68,0x65,0x62,0x5e,0x5c,
+0x63,0x6b,0x76,0x7c,0x7d,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,
+0x6d,0x6d,0x6c,0x6c,0x6d,0x6f,0x71,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x71,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x70,0x70,0x71,0x71,0x72,0x72,0x73,0x73,
+0x75,0x74,0x74,0x73,0x72,0x71,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6f,0x70,0x71,0x72,0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,
+0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x6c,0x6e,0x70,0x71,0x70,0x6e,0x6b,0x69,0x64,0x63,0x62,0x61,0x62,0x63,0x65,0x66,
+0x6e,0x6f,0x71,0x72,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x78,
+0x77,0x76,0x75,0x74,0x74,0x75,0x75,0x76,0x75,0x76,0x76,0x76,0x77,0x78,0x78,0x78,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6f,0x70,0x72,0x74,0x75,0x75,0x74,0x73,
+0x72,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x6e,0x6f,0x6f,0x70,0x70,0x71,0x72,0x72,
+0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x6d,0x6e,0x6e,0x6e,0x6e,0x6d,0x6b,0x6b,
+0x6d,0x6c,0x6b,0x6a,0x69,0x69,0x6a,0x6a,0x6a,0x69,0x68,0x68,0x68,0x68,0x69,0x6a,
+0x6a,0x6c,0x6c,0x69,0x65,0x63,0x65,0x67,0x68,0x69,0x69,0x68,0x66,0x62,0x5e,0x5c,
+0x65,0x6d,0x77,0x7d,0x7e,0x7c,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x73,0x72,0x72,0x71,0x70,0x6f,0x6e,0x6e,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6d,
+0x6c,0x6c,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x71,0x72,
+0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x72,0x72,0x72,0x72,0x71,0x6f,0x6d,0x6c,
+0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x73,0x73,0x74,0x76,0x76,0x76,0x75,0x73,0x72,
+0x71,0x73,0x75,0x77,0x76,0x74,0x71,0x6f,0x73,0x72,0x70,0x6f,0x6f,0x6f,0x71,0x71,
+0x72,0x72,0x72,0x71,0x70,0x70,0x70,0x6f,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,
+0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x6f,0x70,0x71,0x72,0x73,0x73,0x72,0x72,
+0x73,0x72,0x70,0x6e,0x6e,0x6e,0x6f,0x70,0x70,0x71,0x72,0x73,0x73,0x71,0x6e,0x6d,
+0x6f,0x6e,0x6e,0x6f,0x71,0x70,0x6b,0x66,0x61,0x5e,0x5a,0x59,0x5b,0x62,0x6a,0x6f,
+0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x76,0x77,0x77,0x77,0x77,0x76,0x74,0x73,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x79,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x6d,0x70,0x73,0x73,0x71,0x71,0x72,0x75,0x72,0x73,0x73,0x74,0x73,0x71,0x6f,0x6e,
+0x6b,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x72,0x72,0x71,0x71,0x70,0x70,0x6f,0x6f,
+0x6b,0x6b,0x6a,0x6b,0x6c,0x6f,0x71,0x73,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,
+0x6d,0x6d,0x6c,0x6b,0x69,0x68,0x67,0x67,0x68,0x68,0x68,0x68,0x67,0x67,0x67,0x67,
+0x67,0x67,0x68,0x68,0x68,0x68,0x68,0x68,0x69,0x68,0x66,0x64,0x63,0x63,0x63,0x63,
+0x71,0x73,0x77,0x7b,0x7d,0x7e,0x7d,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x78,
+0x78,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x73,0x73,0x72,0x71,0x70,0x70,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,
+0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,
+0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x71,0x71,0x72,0x72,0x71,0x70,0x6e,0x6d,
+0x6d,0x6e,0x6e,0x6f,0x71,0x72,0x73,0x73,0x74,0x74,0x75,0x76,0x76,0x74,0x73,0x72,
+0x70,0x71,0x74,0x75,0x75,0x74,0x72,0x70,0x73,0x72,0x71,0x6f,0x6f,0x70,0x71,0x71,
+0x72,0x72,0x72,0x71,0x71,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x70,0x71,0x72,0x72,0x72,0x72,0x71,
+0x72,0x71,0x70,0x6e,0x6e,0x6e,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,
+0x71,0x71,0x71,0x74,0x74,0x71,0x6a,0x64,0x5d,0x5b,0x59,0x58,0x5a,0x5f,0x65,0x68,
+0x6e,0x70,0x72,0x74,0x75,0x75,0x74,0x74,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x76,0x77,0x77,0x77,0x77,0x76,0x74,0x74,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x6f,0x72,0x74,0x73,0x70,0x6f,0x71,0x73,0x76,0x74,0x71,0x6f,0x6e,0x6e,0x6f,0x70,
+0x6b,0x6c,0x6d,0x6e,0x6f,0x6e,0x6d,0x6c,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6e,0x6e,
+0x6b,0x6b,0x6a,0x6b,0x6c,0x6f,0x71,0x73,0x70,0x70,0x6f,0x6f,0x6e,0x6d,0x6d,0x6c,
+0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x66,
+0x66,0x67,0x67,0x68,0x68,0x69,0x69,0x69,0x6a,0x69,0x68,0x66,0x65,0x65,0x65,0x65,
+0x72,0x74,0x78,0x7b,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6e,
+0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x6f,0x70,0x71,0x72,0x72,0x71,0x70,0x6f,
+0x6e,0x6f,0x6f,0x70,0x71,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x74,0x73,0x72,
+0x6e,0x6f,0x72,0x74,0x74,0x74,0x72,0x71,0x73,0x72,0x71,0x70,0x70,0x70,0x71,0x71,
+0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,
+0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x72,0x72,0x71,0x71,
+0x72,0x71,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x70,0x6e,0x6d,0x6d,0x6f,0x72,0x73,
+0x75,0x76,0x78,0x7a,0x7a,0x74,0x6a,0x62,0x58,0x58,0x57,0x57,0x58,0x5a,0x5d,0x5f,
+0x65,0x68,0x6d,0x72,0x75,0x76,0x75,0x75,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x76,0x76,0x77,0x77,0x77,0x76,0x75,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x77,0x77,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x73,0x74,0x72,0x6f,0x6d,0x6e,0x70,0x78,0x76,0x73,0x70,0x6f,0x70,0x71,0x72,
+0x6a,0x6b,0x6c,0x6d,0x6e,0x6e,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,
+0x6b,0x6b,0x6b,0x6c,0x6d,0x6f,0x71,0x72,0x72,0x72,0x71,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x6c,0x6b,0x6b,0x6a,0x69,0x68,0x67,0x67,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,
+0x65,0x66,0x67,0x68,0x69,0x6b,0x6c,0x6c,0x6d,0x6c,0x6a,0x69,0x68,0x69,0x69,0x69,
+0x74,0x76,0x79,0x7b,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x7b,0x7c,0x7c,0x7c,0x7c,0x7a,0x79,0x78,0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x6e,0x6f,0x70,0x72,0x72,0x72,0x72,0x71,
+0x70,0x70,0x71,0x71,0x72,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x72,
+0x6d,0x6e,0x70,0x72,0x73,0x73,0x73,0x72,0x73,0x73,0x72,0x72,0x71,0x71,0x71,0x71,
+0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,
+0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6f,0x70,0x71,0x72,0x72,0x71,0x70,0x70,
+0x70,0x70,0x70,0x6f,0x6f,0x6f,0x70,0x70,0x72,0x6f,0x6c,0x6b,0x6c,0x70,0x75,0x78,
+0x7a,0x7b,0x7d,0x80,0x7f,0x77,0x6b,0x62,0x56,0x56,0x56,0x56,0x56,0x56,0x56,0x56,
+0x5c,0x60,0x68,0x6f,0x74,0x76,0x76,0x75,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x74,0x75,0x75,0x71,0x6c,0x6a,0x6b,0x6d,0x74,0x77,0x7b,0x7d,0x7d,0x79,0x75,0x71,
+0x6a,0x6a,0x6b,0x6c,0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6b,0x6b,0x6b,0x6c,0x6d,0x6f,0x70,0x70,0x73,0x72,0x71,0x70,0x6e,0x6c,0x6b,0x6a,
+0x6b,0x6a,0x6a,0x69,0x68,0x67,0x67,0x67,0x65,0x65,0x65,0x65,0x65,0x66,0x66,0x66,
+0x65,0x66,0x67,0x69,0x6b,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x6c,0x6d,0x6d,0x6e,
+0x76,0x77,0x79,0x7c,0x7d,0x7d,0x7d,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x79,0x79,0x7a,
+0x7d,0x7d,0x7d,0x7c,0x7b,0x79,0x77,0x76,0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6f,0x70,0x72,0x73,0x73,0x72,0x72,
+0x71,0x72,0x72,0x72,0x73,0x74,0x74,0x74,0x75,0x74,0x74,0x73,0x73,0x73,0x73,0x73,
+0x6e,0x6f,0x70,0x71,0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,0x72,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6f,0x70,0x71,0x71,0x71,0x71,0x6f,0x6f,
+0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x72,0x70,0x6d,0x6c,0x6f,0x73,0x79,0x7c,
+0x7e,0x7f,0x80,0x82,0x81,0x7a,0x6f,0x67,0x58,0x58,0x57,0x56,0x54,0x53,0x52,0x51,
+0x56,0x5a,0x61,0x68,0x6e,0x72,0x74,0x75,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x75,0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x74,
+0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x75,0x76,0x74,0x70,0x6a,0x68,0x69,0x6b,0x6d,0x77,0x84,0x8f,0x90,0x87,0x7b,0x72,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,
+0x6b,0x6b,0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x72,0x72,0x71,0x6f,0x6d,0x6c,0x6a,0x6a,
+0x69,0x69,0x69,0x68,0x68,0x67,0x67,0x66,0x64,0x64,0x65,0x65,0x65,0x66,0x66,0x66,
+0x67,0x68,0x6a,0x6c,0x6e,0x70,0x71,0x72,0x71,0x71,0x70,0x6f,0x70,0x70,0x72,0x72,
+0x79,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x77,0x78,0x7a,0x7b,
+0x7e,0x7e,0x7d,0x7c,0x7a,0x78,0x75,0x74,0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,
+0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x6f,0x70,0x71,0x72,0x73,0x73,0x72,0x72,
+0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x74,0x73,0x72,0x72,0x72,0x73,0x73,
+0x70,0x70,0x71,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x72,0x71,
+0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,
+0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6e,0x70,0x70,0x71,0x71,0x71,0x70,0x6f,0x6e,
+0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x70,0x71,0x70,0x70,0x71,0x74,0x79,0x7d,0x80,
+0x81,0x80,0x81,0x82,0x82,0x7d,0x75,0x6e,0x5f,0x5d,0x59,0x56,0x53,0x52,0x52,0x52,
+0x54,0x56,0x5a,0x60,0x66,0x6c,0x71,0x74,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x74,0x75,0x76,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x74,
+0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x75,0x75,0x73,0x6e,0x69,0x66,0x68,0x6a,0x69,0x76,0x88,0x96,0x9a,0x92,0x84,0x7a,
+0x70,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6b,0x6b,
+0x6a,0x6b,0x6d,0x6e,0x6f,0x6f,0x6e,0x6e,0x70,0x70,0x6f,0x6d,0x6c,0x6b,0x6a,0x69,
+0x68,0x68,0x68,0x67,0x67,0x67,0x66,0x66,0x64,0x64,0x65,0x66,0x66,0x67,0x67,0x68,
+0x6b,0x6b,0x6d,0x6f,0x71,0x72,0x74,0x75,0x72,0x72,0x71,0x71,0x72,0x73,0x75,0x76,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x77,0x76,0x77,0x78,0x7a,0x7c,
+0x7e,0x7e,0x7d,0x7c,0x7a,0x78,0x75,0x74,0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,
+0x72,0x72,0x71,0x71,0x70,0x70,0x70,0x6f,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x6e,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x73,0x73,0x72,0x72,0x71,
+0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x74,0x73,0x71,0x71,0x72,0x73,0x73,
+0x73,0x73,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x75,0x75,0x75,0x74,0x72,0x71,
+0x71,0x71,0x72,0x72,0x73,0x73,0x73,0x74,0x72,0x72,0x72,0x73,0x73,0x73,0x74,0x74,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x6f,0x6e,0x6d,
+0x6d,0x6e,0x70,0x71,0x72,0x71,0x70,0x6f,0x6f,0x71,0x74,0x77,0x7b,0x7e,0x81,0x82,
+0x83,0x81,0x7f,0x7f,0x80,0x7f,0x7a,0x76,0x68,0x63,0x5d,0x56,0x53,0x52,0x54,0x55,
+0x55,0x55,0x55,0x58,0x5e,0x66,0x6e,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x74,0x74,0x76,0x77,0x77,0x77,0x77,0x76,0x77,0x77,0x76,0x76,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x75,0x75,0x72,0x6d,0x67,0x65,0x67,0x6a,0x6b,0x75,0x84,0x90,0x96,0x94,0x8d,0x88,
+0x74,0x73,0x70,0x6e,0x6c,0x6c,0x6c,0x6c,0x6a,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6c,
+0x6a,0x6b,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6d,0x6d,0x6c,0x6c,0x6b,0x6a,0x6a,0x69,
+0x67,0x67,0x67,0x67,0x67,0x66,0x66,0x66,0x65,0x65,0x66,0x66,0x67,0x68,0x69,0x69,
+0x6e,0x6f,0x70,0x71,0x73,0x74,0x76,0x76,0x73,0x72,0x72,0x72,0x73,0x75,0x77,0x78,
+0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x78,0x77,0x75,0x76,0x78,0x7b,0x7c,
+0x7d,0x7d,0x7d,0x7c,0x7a,0x78,0x76,0x74,0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6f,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,
+0x72,0x72,0x72,0x71,0x71,0x70,0x70,0x6f,0x72,0x71,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x72,0x73,0x73,0x73,0x72,0x71,0x70,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x72,0x71,0x71,0x71,0x73,0x74,
+0x75,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x75,0x76,0x76,0x74,0x72,0x71,
+0x71,0x71,0x72,0x72,0x73,0x73,0x74,0x74,0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,
+0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x70,0x70,0x71,0x71,0x70,0x6f,0x6e,0x6d,
+0x6c,0x6e,0x70,0x71,0x72,0x71,0x70,0x6f,0x6e,0x71,0x76,0x7b,0x7f,0x82,0x83,0x83,
+0x84,0x81,0x7d,0x7d,0x7f,0x7f,0x7e,0x7b,0x6d,0x68,0x5f,0x57,0x53,0x53,0x56,0x59,
+0x56,0x54,0x52,0x53,0x59,0x62,0x6c,0x72,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x73,0x74,0x76,0x77,0x77,0x77,0x77,0x76,0x78,0x77,0x77,0x77,0x76,0x75,0x75,0x75,
+0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x74,0x74,0x72,0x6c,0x67,0x65,0x67,0x6b,0x6f,0x74,0x7d,0x87,0x8e,0x92,0x93,0x93,
+0x77,0x75,0x72,0x6f,0x6c,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,
+0x6a,0x6c,0x6d,0x6f,0x6f,0x6f,0x6d,0x6d,0x6b,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x6a,
+0x67,0x67,0x67,0x67,0x66,0x66,0x66,0x66,0x65,0x66,0x66,0x67,0x68,0x69,0x69,0x6a,
+0x71,0x71,0x72,0x73,0x74,0x76,0x76,0x77,0x73,0x73,0x72,0x73,0x74,0x76,0x77,0x79,
+0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x78,0x76,0x75,0x76,0x78,0x7b,0x7d,
+0x7c,0x7c,0x7c,0x7b,0x7a,0x78,0x76,0x75,0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x71,0x70,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,
+0x74,0x73,0x73,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x79,0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x77,
+0x75,0x75,0x74,0x73,0x72,0x72,0x71,0x71,0x70,0x71,0x74,0x76,0x76,0x75,0x72,0x71,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,
+0x70,0x70,0x6f,0x6f,0x70,0x71,0x72,0x73,0x70,0x71,0x72,0x73,0x72,0x71,0x70,0x6e,
+0x73,0x72,0x71,0x70,0x6f,0x70,0x72,0x73,0x7b,0x7c,0x7f,0x81,0x82,0x83,0x82,0x81,
+0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x82,0x7a,0x6d,0x60,0x57,0x53,0x54,0x55,
+0x59,0x55,0x50,0x4e,0x52,0x5b,0x65,0x6c,0x74,0x76,0x78,0x76,0x73,0x72,0x74,0x77,
+0x73,0x73,0x73,0x74,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x79,0x79,0x79,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x79,0x75,0x6e,0x69,0x65,0x65,0x67,0x69,0x6f,0x6e,0x72,0x80,0x91,0x99,0x95,0x8e,
+0x8c,0x82,0x74,0x6a,0x68,0x6a,0x6d,0x6e,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x71,0x70,0x6e,0x6d,0x6b,0x6b,0x6b,0x6b,
+0x68,0x67,0x66,0x66,0x66,0x66,0x67,0x68,0x66,0x66,0x66,0x67,0x69,0x6c,0x70,0x71,
+0x6d,0x6e,0x6f,0x71,0x72,0x73,0x74,0x74,0x6f,0x73,0x77,0x78,0x77,0x77,0x79,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x78,0x78,0x79,0x7a,0x7c,0x7d,
+0x7f,0x7e,0x7c,0x79,0x77,0x76,0x76,0x76,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x71,0x70,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,
+0x73,0x73,0x72,0x72,0x71,0x70,0x6f,0x6f,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x76,
+0x75,0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x74,0x75,0x75,0x75,0x76,0x76,0x77,0x77,
+0x75,0x75,0x74,0x74,0x73,0x72,0x71,0x71,0x72,0x74,0x76,0x78,0x78,0x76,0x74,0x73,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x70,0x70,0x6f,0x70,0x71,0x72,0x73,0x6f,0x70,0x71,0x72,0x72,0x71,0x70,0x6f,
+0x72,0x71,0x71,0x71,0x71,0x73,0x75,0x76,0x7c,0x7e,0x80,0x81,0x82,0x82,0x81,0x80,
+0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x81,0x7e,0x78,0x70,0x67,0x5d,0x56,0x52,
+0x55,0x54,0x53,0x54,0x57,0x5c,0x62,0x65,0x6f,0x73,0x76,0x77,0x75,0x74,0x76,0x78,
+0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x79,
+0x75,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x77,0x74,0x70,0x6b,0x68,0x66,0x66,0x66,0x6c,0x6b,0x70,0x7d,0x8e,0x97,0x96,0x90,
+0x8f,0x85,0x78,0x6e,0x6a,0x6b,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x71,0x6f,0x6e,0x6c,0x6b,0x6a,0x6a,0x6b,
+0x68,0x68,0x67,0x66,0x66,0x67,0x68,0x68,0x68,0x68,0x68,0x69,0x6b,0x6d,0x70,0x72,
+0x6d,0x6e,0x6f,0x70,0x71,0x72,0x72,0x72,0x70,0x73,0x77,0x79,0x77,0x77,0x79,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7c,0x7d,
+0x7f,0x7d,0x7b,0x79,0x77,0x76,0x75,0x75,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x71,0x70,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,
+0x73,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,
+0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,
+0x76,0x75,0x75,0x74,0x74,0x73,0x73,0x72,0x74,0x75,0x77,0x78,0x78,0x77,0x75,0x74,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x70,0x70,0x70,0x71,0x72,0x73,0x6f,0x70,0x71,0x71,0x71,0x71,0x70,0x6f,
+0x71,0x71,0x71,0x73,0x75,0x77,0x79,0x7b,0x7f,0x80,0x80,0x81,0x81,0x80,0x80,0x7f,
+0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x81,0x83,0x81,0x79,0x6b,0x5e,0x55,
+0x54,0x55,0x56,0x57,0x59,0x5b,0x5c,0x5d,0x67,0x6c,0x73,0x77,0x77,0x76,0x77,0x79,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x78,
+0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x74,0x73,0x72,0x70,0x6c,0x68,0x64,0x61,0x67,0x67,0x6c,0x79,0x89,0x94,0x96,0x94,
+0x94,0x8b,0x7e,0x75,0x70,0x6e,0x6c,0x6a,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x6f,0x6e,0x6c,0x6b,0x6a,0x6a,0x6a,0x6a,
+0x69,0x68,0x68,0x67,0x67,0x68,0x68,0x69,0x6a,0x6a,0x6a,0x6b,0x6d,0x6f,0x71,0x72,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x75,0x79,0x79,0x78,0x78,0x7a,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x79,0x7a,0x7c,0x7d,
+0x7e,0x7c,0x7a,0x78,0x76,0x75,0x75,0x75,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x72,0x71,0x70,0x6f,0x6e,0x6f,0x6f,0x70,
+0x72,0x72,0x71,0x71,0x70,0x70,0x70,0x6f,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x73,
+0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,
+0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,
+0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x75,0x75,0x76,0x77,0x77,0x76,0x74,0x73,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x72,
+0x72,0x72,0x71,0x70,0x70,0x71,0x72,0x73,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,
+0x71,0x72,0x73,0x76,0x79,0x7b,0x7e,0x7f,0x81,0x81,0x81,0x81,0x80,0x7f,0x7f,0x7e,
+0x81,0x81,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x81,0x85,0x85,0x80,0x77,0x6c,0x65,
+0x5c,0x5a,0x56,0x54,0x53,0x55,0x58,0x5a,0x5e,0x65,0x6f,0x75,0x76,0x77,0x77,0x79,
+0x77,0x77,0x76,0x76,0x75,0x74,0x74,0x73,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,
+0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x73,0x75,0x74,0x70,0x6a,0x63,0x5f,0x63,0x63,0x68,0x73,0x82,0x8f,0x95,0x96,
+0x98,0x90,0x86,0x7d,0x78,0x72,0x6d,0x69,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x6e,0x6d,0x6c,0x6a,0x69,0x69,0x6a,0x6a,
+0x6a,0x69,0x68,0x68,0x68,0x68,0x69,0x6a,0x6c,0x6c,0x6d,0x6d,0x6f,0x70,0x71,0x72,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x73,0x77,0x7a,0x7b,0x79,0x78,0x7a,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7c,0x7c,
+0x7d,0x7b,0x79,0x77,0x76,0x75,0x75,0x75,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,
+0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x70,
+0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,
+0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,
+0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,
+0x79,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x75,0x75,0x75,0x75,0x75,0x74,0x73,0x73,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x74,0x74,0x73,0x73,0x73,
+0x73,0x73,0x71,0x71,0x71,0x71,0x72,0x73,0x71,0x71,0x71,0x71,0x71,0x72,0x73,0x73,
+0x73,0x74,0x77,0x7a,0x7c,0x7f,0x81,0x81,0x82,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7e,
+0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7b,0x7a,
+0x6b,0x63,0x59,0x50,0x4d,0x50,0x56,0x5b,0x58,0x5f,0x69,0x6f,0x72,0x73,0x75,0x77,
+0x77,0x77,0x77,0x76,0x75,0x75,0x74,0x74,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,
+0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x70,0x73,0x76,0x77,0x74,0x6d,0x65,0x60,0x60,0x61,0x65,0x6e,0x7b,0x88,0x92,0x97,
+0x9a,0x95,0x8d,0x86,0x80,0x79,0x70,0x6a,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x6d,0x6d,0x6b,0x6a,0x69,0x6a,0x6a,0x6b,
+0x6b,0x6a,0x6a,0x69,0x69,0x6a,0x6a,0x6b,0x6d,0x6e,0x6f,0x6f,0x70,0x71,0x71,0x71,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x75,0x79,0x7c,0x7c,0x7a,0x78,0x7a,0x7c,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7c,0x7c,
+0x7c,0x7b,0x79,0x78,0x76,0x76,0x76,0x76,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x72,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x70,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x77,
+0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x77,0x77,0x77,0x76,0x75,0x75,0x74,0x74,
+0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x72,0x73,0x72,0x72,0x72,0x73,0x74,0x75,0x76,
+0x78,0x79,0x7b,0x7e,0x80,0x81,0x81,0x81,0x83,0x82,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x81,0x81,0x82,0x83,0x84,0x85,0x86,0x86,0x83,0x81,0x7e,0x7c,0x7c,0x7f,0x83,0x86,
+0x78,0x70,0x64,0x59,0x53,0x53,0x57,0x5a,0x55,0x5b,0x62,0x67,0x69,0x6c,0x71,0x74,
+0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x74,
+0x74,0x74,0x73,0x73,0x73,0x73,0x72,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x74,0x77,0x78,0x76,0x70,0x6a,0x65,0x60,0x60,0x63,0x69,0x73,0x80,0x8e,0x96,
+0x9a,0x97,0x92,0x8e,0x89,0x80,0x75,0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x6b,0x6b,0x6c,
+0x6c,0x6b,0x6a,0x6a,0x6a,0x6a,0x6b,0x6c,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x70,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6f,0x71,0x72,0x77,0x7b,0x7d,0x7d,0x7a,0x79,0x7a,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x7d,0x7c,0x7a,0x79,0x77,0x77,0x77,0x78,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x72,0x72,0x70,0x6f,0x6f,0x70,0x70,0x71,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x73,0x74,0x76,0x77,0x79,0x7b,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x80,0x80,0x81,0x81,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x79,0x79,0x78,0x77,0x76,0x76,0x75,
+0x75,0x74,0x73,0x71,0x71,0x71,0x72,0x72,0x74,0x74,0x73,0x73,0x74,0x75,0x77,0x79,
+0x7c,0x7d,0x7f,0x81,0x82,0x81,0x81,0x80,0x82,0x81,0x80,0x7f,0x7e,0x7f,0x80,0x81,
+0x80,0x81,0x82,0x84,0x86,0x88,0x89,0x8a,0x88,0x86,0x84,0x83,0x82,0x82,0x83,0x84,
+0x80,0x7c,0x76,0x6e,0x66,0x5e,0x58,0x55,0x55,0x59,0x5c,0x5f,0x61,0x65,0x6c,0x72,
+0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x73,
+0x74,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x73,0x75,0x77,0x78,0x76,0x73,0x6f,0x6c,0x61,0x61,0x62,0x65,0x6d,0x7a,0x89,0x93,
+0x98,0x97,0x95,0x94,0x8f,0x86,0x7a,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6d,0x6c,0x6b,0x6b,0x6c,0x6c,0x6d,
+0x6d,0x6c,0x6b,0x6b,0x6b,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x70,0x6f,0x6e,
+0x70,0x6f,0x6e,0x6d,0x6e,0x70,0x73,0x75,0x79,0x7c,0x7f,0x7e,0x7b,0x79,0x7a,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x7e,0x7d,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,
+0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x73,0x72,0x71,0x70,0x6f,0x70,0x70,0x71,
+0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,0x76,0x77,0x79,0x7b,0x7e,0x80,0x82,0x83,
+0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x80,0x80,0x81,0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x81,0x81,
+0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x83,0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,0x76,
+0x75,0x74,0x73,0x72,0x71,0x71,0x72,0x72,0x75,0x75,0x74,0x74,0x75,0x77,0x79,0x7a,
+0x7f,0x80,0x82,0x83,0x83,0x82,0x80,0x7f,0x81,0x80,0x7f,0x7e,0x7e,0x7f,0x81,0x82,
+0x80,0x81,0x83,0x85,0x88,0x8a,0x8c,0x8d,0x8b,0x8c,0x8c,0x8b,0x89,0x84,0x7f,0x7c,
+0x82,0x84,0x84,0x81,0x77,0x68,0x59,0x4f,0x56,0x58,0x59,0x59,0x5b,0x60,0x69,0x70,
+0x74,0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x76,0x75,0x75,0x75,0x74,0x73,0x73,0x73,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x75,0x76,0x77,0x77,0x76,0x74,0x72,0x70,0x62,0x62,0x62,0x64,0x6a,0x76,0x86,0x91,
+0x97,0x97,0x97,0x97,0x93,0x8a,0x7d,0x73,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6d,0x6d,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6d,0x6d,0x6c,0x6b,0x6b,0x6c,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x70,0x6e,0x6d,
+0x70,0x6f,0x6e,0x6d,0x6f,0x72,0x75,0x77,0x7a,0x7d,0x7f,0x7e,0x7b,0x79,0x7a,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x7e,0x7d,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x79,
+0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x71,0x72,0x73,0x74,0x75,0x76,0x76,
+0x74,0x75,0x78,0x7a,0x7c,0x7c,0x7c,0x7b,0x7f,0x7f,0x80,0x82,0x83,0x84,0x85,0x86,
+0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x87,0x86,0x84,0x83,0x81,0x81,0x81,0x82,
+0x84,0x83,0x83,0x83,0x83,0x84,0x86,0x87,0x84,0x84,0x83,0x83,0x82,0x81,0x81,0x80,
+0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x82,0x83,0x84,0x84,0x85,0x85,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x82,0x82,0x82,0x81,0x81,0x80,0x80,0x7f,
+0x77,0x77,0x76,0x75,0x74,0x73,0x73,0x72,0x74,0x73,0x72,0x73,0x76,0x7c,0x81,0x85,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7e,0x7f,0x80,0x82,0x83,0x85,0x86,0x87,0x8a,0x8b,0x8d,0x8d,0x8d,0x8b,0x8a,0x88,
+0x84,0x84,0x84,0x81,0x7d,0x77,0x71,0x6e,0x57,0x57,0x58,0x59,0x5c,0x5f,0x62,0x64,
+0x6d,0x6f,0x71,0x74,0x76,0x77,0x77,0x77,0x72,0x73,0x74,0x75,0x76,0x77,0x78,0x78,
+0x73,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x75,0x78,0x79,0x79,0x75,0x71,0x6e,0x64,0x5e,0x5d,0x63,0x66,0x6b,0x80,0x97,
+0x90,0x94,0x9b,0x9e,0x9a,0x91,0x86,0x7e,0x70,0x6d,0x6a,0x6a,0x6d,0x6e,0x6d,0x6b,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6b,0x6c,0x6d,0x6e,0x6f,0x6f,0x6e,0x6e,
+0x69,0x69,0x69,0x6a,0x6b,0x6d,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x6f,0x6e,0x6e,0x70,0x73,0x76,0x78,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x73,0x74,0x76,0x77,0x79,0x79,
+0x7b,0x7c,0x7e,0x80,0x81,0x81,0x80,0x80,0x81,0x81,0x82,0x83,0x84,0x85,0x86,0x86,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x85,0x85,0x83,0x82,0x81,0x81,0x82,0x82,
+0x81,0x80,0x80,0x80,0x80,0x81,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x81,
+0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x82,0x82,0x83,0x84,0x85,0x85,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,
+0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x76,0x76,0x76,0x77,0x7a,0x7d,0x81,0x84,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x8a,0x8b,0x8d,0x8e,0x8f,0x8f,0x8e,0x8e,
+0x87,0x86,0x85,0x83,0x81,0x7e,0x7b,0x79,0x69,0x65,0x5e,0x59,0x57,0x58,0x5b,0x5e,
+0x66,0x68,0x6b,0x6f,0x72,0x74,0x76,0x77,0x77,0x76,0x76,0x75,0x74,0x73,0x73,0x73,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x75,0x78,0x79,0x79,0x76,0x72,0x6f,0x65,0x5f,0x5e,0x63,0x66,0x6b,0x7f,0x96,
+0x92,0x95,0x9a,0x9c,0x99,0x92,0x89,0x84,0x73,0x6f,0x6c,0x6b,0x6d,0x6e,0x6d,0x6b,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,
+0x6a,0x6a,0x6a,0x6a,0x6c,0x6e,0x70,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x70,0x6f,0x6e,0x6e,0x70,0x73,0x76,0x78,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x73,0x75,0x77,0x79,0x7c,0x7d,0x7e,
+0x83,0x84,0x85,0x86,0x87,0x86,0x86,0x85,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,
+0x85,0x85,0x84,0x84,0x83,0x82,0x82,0x82,0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x83,
+0x7f,0x7e,0x7e,0x7d,0x7e,0x7f,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x83,
+0x84,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x82,0x83,0x83,0x84,0x84,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x82,
+0x83,0x83,0x82,0x81,0x81,0x80,0x80,0x7f,0x7a,0x7b,0x7d,0x7e,0x80,0x81,0x82,0x82,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x87,0x88,0x8b,0x8e,0x91,0x92,0x93,0x94,
+0x8c,0x8b,0x89,0x86,0x85,0x84,0x85,0x85,0x7e,0x77,0x6b,0x5f,0x58,0x55,0x55,0x57,
+0x5c,0x5d,0x61,0x65,0x6a,0x6e,0x72,0x74,0x7a,0x79,0x77,0x75,0x73,0x71,0x70,0x6f,
+0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x74,0x76,0x78,0x79,0x79,0x76,0x73,0x71,0x67,0x60,0x5f,0x64,0x65,0x6a,0x7d,0x94,
+0x95,0x96,0x98,0x99,0x97,0x93,0x8f,0x8c,0x79,0x74,0x6f,0x6d,0x6d,0x6e,0x6d,0x6b,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x70,0x6f,0x6f,
+0x6b,0x6b,0x6b,0x6b,0x6d,0x6f,0x70,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x70,0x6f,0x6f,0x70,0x73,0x76,0x77,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,
+0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x74,0x75,0x77,0x7a,0x7d,0x7f,0x82,0x83,
+0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x86,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x82,0x82,0x81,0x81,0x81,0x82,0x84,0x84,
+0x80,0x80,0x7f,0x7e,0x7f,0x7f,0x80,0x81,0x80,0x81,0x81,0x82,0x82,0x83,0x84,0x84,
+0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x83,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,
+0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x84,0x82,0x83,0x84,0x85,0x86,0x85,0x83,0x82,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x81,0x83,0x86,0x8a,0x8e,0x91,0x94,0x95,
+0x93,0x90,0x8c,0x89,0x86,0x86,0x87,0x87,0x86,0x82,0x7a,0x71,0x67,0x5f,0x59,0x55,
+0x53,0x54,0x57,0x5a,0x5f,0x65,0x6a,0x6c,0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x73,
+0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x76,0x78,0x79,0x79,0x77,0x74,0x72,0x6a,0x63,0x60,0x64,0x65,0x68,0x7b,0x91,
+0x97,0x97,0x97,0x97,0x96,0x95,0x94,0x94,0x80,0x7a,0x73,0x6f,0x6e,0x6e,0x6d,0x6c,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x70,0x6f,0x6f,
+0x6b,0x6b,0x6b,0x6c,0x6d,0x6f,0x71,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x71,0x6f,0x6f,0x70,0x73,0x75,0x77,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x75,0x76,0x76,0x77,0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x7a,
+0x70,0x70,0x70,0x71,0x71,0x72,0x72,0x72,0x75,0x76,0x78,0x7b,0x7f,0x82,0x84,0x85,
+0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x83,0x83,0x82,0x82,0x82,0x83,0x84,0x85,
+0x84,0x84,0x83,0x82,0x82,0x82,0x83,0x84,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x84,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,
+0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x89,0x89,0x88,0x88,0x86,0x84,0x82,0x81,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7c,0x7e,0x80,0x84,0x87,0x8b,0x8e,0x90,
+0x97,0x94,0x8f,0x8a,0x86,0x84,0x83,0x83,0x83,0x85,0x86,0x84,0x7d,0x72,0x66,0x5e,
+0x54,0x53,0x53,0x54,0x57,0x5b,0x60,0x63,0x6c,0x6d,0x6f,0x71,0x74,0x77,0x78,0x79,
+0x76,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x77,0x78,0x79,0x79,0x77,0x76,0x74,0x6d,0x65,0x62,0x65,0x64,0x66,0x78,0x8e,
+0x98,0x97,0x96,0x96,0x96,0x97,0x97,0x98,0x89,0x81,0x77,0x71,0x6e,0x6e,0x6d,0x6c,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6f,0x6f,0x70,0x71,0x71,0x70,0x6f,0x6e,
+0x6b,0x6b,0x6b,0x6c,0x6d,0x6f,0x71,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x72,0x71,0x70,0x70,0x71,0x73,0x75,0x77,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,
+0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x74,0x74,0x75,0x76,0x78,0x79,0x7a,0x7a,0x79,0x7a,0x7a,0x7b,0x7b,0x7a,0x7a,0x79,
+0x6f,0x70,0x70,0x71,0x71,0x72,0x72,0x73,0x75,0x77,0x79,0x7c,0x7f,0x81,0x84,0x85,
+0x83,0x83,0x82,0x82,0x83,0x84,0x85,0x85,0x87,0x87,0x88,0x88,0x88,0x89,0x89,0x89,
+0x89,0x88,0x88,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x84,0x83,0x83,0x84,0x85,0x85,
+0x87,0x87,0x85,0x84,0x84,0x84,0x85,0x86,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,
+0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x8b,0x89,0x85,0x81,0x7e,0x7d,0x7c,0x7c,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7c,0x7c,0x7d,0x7f,0x82,0x85,0x88,0x89,
+0x94,0x93,0x91,0x8e,0x8a,0x86,0x82,0x80,0x7f,0x84,0x8a,0x8d,0x8a,0x81,0x76,0x6f,
+0x61,0x5e,0x5a,0x56,0x55,0x56,0x59,0x5b,0x60,0x62,0x65,0x6a,0x6f,0x73,0x77,0x79,
+0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x77,0x78,0x79,0x79,0x78,0x77,0x76,0x70,0x67,0x64,0x65,0x64,0x65,0x76,0x8b,
+0x97,0x97,0x97,0x97,0x97,0x97,0x98,0x98,0x90,0x87,0x7b,0x73,0x6f,0x6e,0x6d,0x6c,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6d,
+0x6b,0x6b,0x6b,0x6b,0x6d,0x6f,0x70,0x72,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x73,0x72,0x71,0x70,0x71,0x73,0x75,0x77,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x75,0x75,0x76,0x77,0x78,0x78,0x79,0x79,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,
+0x6f,0x6f,0x70,0x71,0x71,0x72,0x73,0x73,0x76,0x77,0x79,0x7b,0x7e,0x80,0x82,0x83,
+0x81,0x81,0x80,0x80,0x81,0x83,0x85,0x86,0x85,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,
+0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x88,0x88,0x86,0x85,0x84,0x84,0x85,0x85,
+0x87,0x86,0x85,0x84,0x84,0x84,0x84,0x85,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x85,0x85,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x88,0x83,0x7c,0x75,0x71,0x71,0x72,0x74,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x80,0x81,0x83,0x84,
+0x8d,0x8f,0x91,0x92,0x91,0x8d,0x88,0x85,0x83,0x85,0x87,0x88,0x87,0x85,0x82,0x81,
+0x74,0x6f,0x67,0x5f,0x59,0x57,0x58,0x59,0x56,0x58,0x5c,0x60,0x65,0x69,0x6d,0x6f,
+0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x78,0x79,0x79,0x79,0x78,0x78,0x72,0x69,0x65,0x66,0x63,0x64,0x74,0x89,
+0x95,0x96,0x98,0x99,0x99,0x98,0x96,0x95,0x96,0x8c,0x7f,0x74,0x6f,0x6e,0x6d,0x6c,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,
+0x6a,0x6a,0x6a,0x6a,0x6c,0x6e,0x70,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x74,0x73,0x71,0x70,0x71,0x73,0x75,0x77,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x78,0x78,0x79,0x7a,0x7a,0x79,0x78,0x78,
+0x6f,0x6f,0x70,0x71,0x71,0x72,0x73,0x73,0x76,0x77,0x79,0x7b,0x7d,0x7f,0x81,0x81,
+0x81,0x80,0x80,0x80,0x81,0x84,0x86,0x88,0x84,0x85,0x86,0x87,0x88,0x8a,0x8b,0x8b,
+0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,0x8a,0x89,0x88,0x86,0x85,0x85,0x85,0x85,
+0x86,0x85,0x84,0x82,0x82,0x82,0x83,0x83,0x89,0x89,0x89,0x88,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x83,0x83,0x84,0x84,0x85,0x85,0x86,0x86,
+0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x85,0x7e,0x75,0x6c,0x67,0x67,0x6a,0x6d,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x81,0x81,0x82,0x82,0x82,0x84,0x83,0x81,0x80,0x7f,0x80,0x81,0x82,
+0x86,0x8b,0x91,0x96,0x97,0x94,0x8f,0x8c,0x89,0x86,0x82,0x7f,0x7f,0x83,0x88,0x8c,
+0x83,0x7c,0x71,0x66,0x5e,0x59,0x58,0x59,0x52,0x53,0x56,0x59,0x5d,0x60,0x63,0x64,
+0x71,0x72,0x73,0x75,0x76,0x78,0x79,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x78,0x78,0x79,0x79,0x79,0x79,0x78,0x73,0x6a,0x65,0x66,0x63,0x63,0x73,0x88,
+0x93,0x95,0x98,0x9a,0x9a,0x98,0x95,0x93,0x99,0x8f,0x80,0x75,0x70,0x6e,0x6d,0x6c,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,
+0x69,0x69,0x69,0x6a,0x6b,0x6d,0x6f,0x70,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x74,0x73,0x72,0x71,0x71,0x73,0x75,0x77,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7d,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,0x79,0x78,0x77,
+0x6e,0x6d,0x6d,0x6d,0x6e,0x70,0x71,0x73,0x79,0x79,0x7b,0x7d,0x80,0x84,0x87,0x89,
+0x83,0x85,0x87,0x89,0x8b,0x8d,0x8d,0x8d,0x89,0x89,0x89,0x89,0x8a,0x8a,0x8a,0x8a,
+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x88,0x88,0x87,0x87,0x86,0x86,
+0x88,0x88,0x89,0x89,0x87,0x85,0x82,0x80,0x87,0x88,0x88,0x89,0x89,0x88,0x87,0x86,
+0x8a,0x89,0x87,0x86,0x85,0x84,0x84,0x84,0x87,0x86,0x85,0x84,0x84,0x85,0x86,0x87,
+0x89,0x87,0x86,0x84,0x84,0x84,0x85,0x86,0x85,0x84,0x83,0x83,0x84,0x86,0x88,0x8a,
+0x89,0x83,0x80,0x84,0x8d,0x8f,0x89,0x82,0x70,0x68,0x5d,0x54,0x4f,0x51,0x56,0x5a,
+0x59,0x64,0x73,0x7d,0x81,0x80,0x7f,0x7e,0x7c,0x7f,0x82,0x82,0x80,0x80,0x82,0x84,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x82,0x85,0x89,0x8d,0x91,0x95,0x96,0x8b,0x8b,0x8b,0x8a,0x88,0x85,0x82,0x80,
+0x84,0x86,0x87,0x84,0x7a,0x6b,0x5d,0x53,0x55,0x56,0x58,0x5a,0x5a,0x59,0x57,0x56,
+0x60,0x62,0x65,0x69,0x6d,0x70,0x72,0x73,0x71,0x73,0x76,0x79,0x7b,0x7c,0x7c,0x7c,
+0x7a,0x7b,0x7b,0x7a,0x78,0x76,0x73,0x71,0x69,0x69,0x67,0x62,0x5e,0x64,0x71,0x7c,
+0x92,0x94,0x97,0x9a,0x9a,0x99,0x97,0x95,0x99,0x96,0x8e,0x7f,0x70,0x69,0x6c,0x71,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,
+0x69,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x72,0x72,0x72,0x72,0x73,0x75,0x76,0x77,0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x77,0x77,0x78,0x7a,0x7b,0x7c,0x7d,0x7e,0x79,0x79,0x7a,0x7a,0x79,0x78,0x77,0x76,
+0x7b,0x7c,0x7d,0x7c,0x7b,0x79,0x76,0x75,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x70,0x6f,0x6f,0x6e,0x6f,0x70,0x71,0x72,0x78,0x78,0x79,0x7b,0x7e,0x82,0x85,0x87,
+0x83,0x85,0x87,0x89,0x8b,0x8c,0x8d,0x8d,0x89,0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,
+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,0x87,0x87,0x87,
+0x88,0x89,0x89,0x89,0x87,0x85,0x83,0x82,0x84,0x85,0x86,0x86,0x86,0x85,0x84,0x84,
+0x88,0x87,0x87,0x86,0x85,0x85,0x85,0x85,0x87,0x86,0x86,0x85,0x85,0x86,0x86,0x87,
+0x88,0x87,0x85,0x84,0x84,0x85,0x86,0x87,0x86,0x86,0x85,0x85,0x86,0x87,0x89,0x8a,
+0x81,0x82,0x86,0x8a,0x8b,0x85,0x79,0x70,0x65,0x60,0x58,0x51,0x4d,0x4e,0x52,0x54,
+0x52,0x5b,0x67,0x71,0x77,0x7b,0x7f,0x82,0x7e,0x80,0x81,0x80,0x7d,0x7d,0x7f,0x82,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x81,0x84,0x87,0x8b,0x8e,0x91,0x92,0x92,0x91,0x91,0x8f,0x8c,0x88,0x85,0x83,
+0x84,0x86,0x87,0x86,0x81,0x77,0x6e,0x67,0x5e,0x5c,0x57,0x54,0x53,0x55,0x58,0x5a,
+0x58,0x59,0x5b,0x5d,0x5f,0x60,0x61,0x62,0x69,0x6b,0x6d,0x70,0x72,0x73,0x73,0x73,
+0x74,0x74,0x74,0x74,0x73,0x71,0x6f,0x6d,0x67,0x67,0x66,0x61,0x5e,0x64,0x71,0x7d,
+0x93,0x95,0x97,0x99,0x9a,0x99,0x97,0x96,0x98,0x96,0x8f,0x83,0x74,0x6c,0x6c,0x6e,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,
+0x69,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x72,0x72,0x72,0x72,0x73,0x75,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7b,
+0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x79,0x7a,0x7a,0x7b,0x7a,0x79,0x78,0x77,
+0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x78,0x77,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,
+0x73,0x72,0x71,0x70,0x70,0x70,0x71,0x71,0x76,0x76,0x77,0x79,0x7c,0x7f,0x82,0x83,
+0x83,0x84,0x86,0x89,0x8a,0x8b,0x8b,0x8b,0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,
+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,0x88,0x88,0x87,
+0x89,0x89,0x89,0x89,0x88,0x86,0x85,0x84,0x82,0x83,0x84,0x84,0x84,0x84,0x83,0x82,
+0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x85,0x88,0x87,0x86,0x85,0x85,0x86,0x87,0x88,
+0x86,0x85,0x85,0x84,0x85,0x86,0x87,0x87,0x88,0x87,0x87,0x87,0x88,0x89,0x8a,0x8b,
+0x7b,0x84,0x8d,0x8d,0x83,0x73,0x64,0x5c,0x57,0x55,0x51,0x4e,0x4c,0x4c,0x4d,0x4e,
+0x4b,0x50,0x58,0x5f,0x66,0x70,0x7b,0x83,0x81,0x82,0x81,0x7e,0x7b,0x7a,0x7e,0x81,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x81,0x82,0x85,0x87,0x89,0x8b,0x8c,0x96,0x95,0x94,0x92,0x90,0x8d,0x8a,0x88,
+0x85,0x86,0x88,0x89,0x88,0x85,0x82,0x80,0x6e,0x68,0x5e,0x55,0x51,0x53,0x58,0x5c,
+0x56,0x56,0x56,0x56,0x56,0x57,0x57,0x57,0x5f,0x60,0x62,0x64,0x66,0x67,0x67,0x67,
+0x69,0x6a,0x6a,0x6b,0x6a,0x69,0x68,0x67,0x63,0x64,0x64,0x60,0x5e,0x65,0x73,0x7f,
+0x94,0x96,0x98,0x99,0x9a,0x99,0x97,0x96,0x96,0x96,0x92,0x88,0x7b,0x71,0x6c,0x6b,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6c,0x6c,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,
+0x69,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,
+0x73,0x73,0x72,0x73,0x74,0x75,0x77,0x78,0x7a,0x7b,0x7b,0x7c,0x7b,0x7b,0x79,0x79,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,
+0x76,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x7a,0x7b,0x7c,0x7b,0x7a,0x79,0x78,
+0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,
+0x75,0x74,0x73,0x71,0x70,0x70,0x70,0x71,0x74,0x74,0x75,0x76,0x79,0x7b,0x7e,0x7f,
+0x82,0x83,0x85,0x87,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x8a,0x8a,0x8a,0x8b,0x8b,
+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,0x88,0x88,0x88,
+0x89,0x89,0x89,0x88,0x88,0x87,0x86,0x86,0x83,0x83,0x84,0x85,0x85,0x85,0x84,0x84,
+0x84,0x84,0x85,0x86,0x86,0x86,0x86,0x86,0x88,0x87,0x86,0x85,0x85,0x86,0x87,0x88,
+0x85,0x85,0x85,0x85,0x85,0x86,0x87,0x87,0x89,0x88,0x89,0x89,0x89,0x8a,0x8a,0x8b,
+0x80,0x89,0x8e,0x87,0x74,0x61,0x57,0x54,0x4d,0x4e,0x4e,0x4e,0x4d,0x4c,0x4b,0x4b,
+0x49,0x4b,0x4d,0x4f,0x55,0x61,0x70,0x7a,0x82,0x83,0x82,0x7f,0x7c,0x7b,0x7f,0x82,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x81,0x82,0x83,0x84,0x85,0x85,0x90,0x90,0x90,0x90,0x90,0x90,0x8f,0x8f,
+0x89,0x89,0x89,0x89,0x8a,0x8c,0x8d,0x8e,0x7e,0x79,0x6f,0x66,0x5e,0x5a,0x58,0x58,
+0x59,0x59,0x58,0x58,0x58,0x59,0x5a,0x5b,0x58,0x59,0x5a,0x5c,0x5d,0x5e,0x5e,0x5f,
+0x5f,0x60,0x60,0x61,0x62,0x62,0x62,0x62,0x60,0x62,0x62,0x60,0x5f,0x68,0x77,0x84,
+0x96,0x97,0x98,0x99,0x99,0x98,0x97,0x96,0x95,0x95,0x94,0x8e,0x84,0x78,0x6e,0x69,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x69,0x69,
+0x69,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x72,0x72,0x72,
+0x74,0x73,0x73,0x73,0x74,0x76,0x78,0x79,0x7b,0x7c,0x7c,0x7c,0x7c,0x7a,0x79,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,
+0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,
+0x76,0x75,0x74,0x72,0x71,0x70,0x70,0x70,0x73,0x73,0x73,0x74,0x76,0x78,0x7b,0x7c,
+0x80,0x81,0x83,0x85,0x86,0x87,0x87,0x86,0x88,0x88,0x88,0x89,0x89,0x89,0x89,0x8a,
+0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x87,0x87,0x88,0x88,0x88,0x88,0x88,0x88,
+0x88,0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x85,0x86,0x87,0x88,0x88,0x88,0x87,0x87,
+0x84,0x85,0x86,0x87,0x88,0x87,0x86,0x86,0x87,0x86,0x85,0x85,0x85,0x85,0x86,0x87,
+0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x89,0x89,0x89,0x89,0x89,0x89,
+0x8b,0x8c,0x86,0x76,0x62,0x55,0x53,0x57,0x4b,0x4d,0x4e,0x4f,0x4f,0x4e,0x4c,0x4b,
+0x4c,0x4b,0x49,0x48,0x4a,0x53,0x60,0x6a,0x7d,0x80,0x82,0x81,0x7f,0x7f,0x82,0x84,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x84,0x85,0x86,0x89,0x8c,0x8f,0x91,0x93,
+0x8d,0x8c,0x8a,0x89,0x89,0x8a,0x8c,0x8d,0x89,0x88,0x85,0x7e,0x74,0x68,0x5d,0x57,
+0x5a,0x59,0x58,0x58,0x59,0x5a,0x5c,0x5d,0x57,0x58,0x58,0x58,0x59,0x5a,0x5b,0x5c,
+0x59,0x5a,0x5a,0x5b,0x5c,0x5d,0x5e,0x5e,0x5e,0x61,0x62,0x61,0x62,0x6c,0x7c,0x8a,
+0x97,0x98,0x98,0x99,0x99,0x98,0x97,0x97,0x96,0x96,0x95,0x92,0x8b,0x80,0x73,0x6b,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x69,0x69,
+0x69,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x73,0x73,
+0x74,0x74,0x74,0x74,0x75,0x77,0x78,0x79,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x79,0x78,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,
+0x77,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,
+0x76,0x74,0x73,0x71,0x70,0x70,0x70,0x71,0x72,0x72,0x72,0x73,0x74,0x76,0x78,0x79,
+0x7e,0x7f,0x80,0x82,0x83,0x83,0x83,0x83,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x86,0x86,0x85,0x85,0x85,0x86,0x87,0x88,0x85,0x86,0x88,0x89,0x8a,0x89,0x89,0x89,
+0x85,0x87,0x88,0x8a,0x8a,0x88,0x86,0x85,0x86,0x85,0x84,0x83,0x83,0x84,0x85,0x86,
+0x86,0x86,0x87,0x87,0x86,0x86,0x84,0x84,0x86,0x87,0x88,0x88,0x88,0x88,0x87,0x86,
+0x8e,0x86,0x77,0x64,0x55,0x50,0x53,0x59,0x4e,0x4f,0x50,0x50,0x50,0x4e,0x4d,0x4c,
+0x4d,0x4d,0x4b,0x48,0x47,0x4c,0x54,0x5b,0x70,0x76,0x7d,0x81,0x82,0x81,0x82,0x84,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7d,0x7e,0x7f,0x82,0x86,0x8a,0x8e,0x90,
+0x8e,0x8d,0x8b,0x89,0x87,0x87,0x87,0x87,0x8d,0x8f,0x91,0x8e,0x86,0x7a,0x6c,0x64,
+0x5d,0x5c,0x59,0x57,0x56,0x56,0x57,0x58,0x59,0x59,0x58,0x58,0x58,0x59,0x5a,0x5b,
+0x58,0x58,0x58,0x58,0x59,0x5b,0x5c,0x5d,0x5e,0x61,0x63,0x63,0x66,0x71,0x83,0x91,
+0x99,0x99,0x99,0x99,0x98,0x98,0x97,0x97,0x99,0x97,0x96,0x95,0x91,0x87,0x7b,0x71,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6c,0x6c,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,
+0x69,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6f,0x70,0x70,0x71,0x72,0x73,0x74,
+0x75,0x75,0x74,0x75,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7c,0x7c,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,
+0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7a,0x7a,
+0x77,0x77,0x76,0x76,0x77,0x78,0x79,0x7a,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,
+0x74,0x73,0x72,0x70,0x70,0x70,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x75,0x77,0x78,
+0x7b,0x7c,0x7e,0x7f,0x80,0x80,0x80,0x80,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,
+0x85,0x84,0x83,0x83,0x84,0x85,0x87,0x88,0x83,0x84,0x85,0x87,0x88,0x88,0x87,0x87,
+0x88,0x89,0x8b,0x8c,0x8b,0x89,0x86,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x87,0x87,0x88,0x88,0x87,0x85,0x83,0x81,0x84,0x85,0x86,0x87,0x87,0x86,0x84,0x83,
+0x86,0x79,0x66,0x57,0x51,0x51,0x53,0x53,0x52,0x51,0x50,0x4e,0x4d,0x4c,0x4b,0x4b,
+0x49,0x4c,0x4e,0x4d,0x4b,0x4c,0x50,0x53,0x5e,0x68,0x75,0x7e,0x81,0x81,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x81,0x84,0x86,0x88,
+0x8c,0x8c,0x8b,0x8a,0x89,0x87,0x85,0x84,0x8b,0x8d,0x8f,0x8f,0x8d,0x88,0x82,0x7f,
+0x70,0x6c,0x67,0x60,0x5b,0x58,0x57,0x56,0x5a,0x59,0x58,0x57,0x57,0x58,0x5a,0x5b,
+0x5a,0x5a,0x59,0x59,0x59,0x5b,0x5d,0x5e,0x5e,0x62,0x65,0x66,0x6a,0x76,0x89,0x97,
+0x9a,0x9a,0x99,0x98,0x98,0x98,0x98,0x98,0x9c,0x98,0x96,0x95,0x94,0x8e,0x82,0x78,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,
+0x69,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6f,0x70,0x72,0x73,0x73,0x74,
+0x75,0x75,0x75,0x75,0x76,0x78,0x7a,0x7b,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7b,0x7a,0x7a,0x79,
+0x77,0x76,0x75,0x74,0x74,0x75,0x77,0x78,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x72,0x72,0x71,0x70,0x6f,0x70,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x74,0x76,0x77,
+0x7a,0x7b,0x7c,0x7e,0x7f,0x7f,0x7e,0x7e,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x85,
+0x84,0x83,0x82,0x82,0x83,0x85,0x87,0x88,0x80,0x81,0x83,0x84,0x85,0x85,0x85,0x85,
+0x89,0x8b,0x8c,0x8d,0x8c,0x89,0x86,0x84,0x83,0x83,0x82,0x81,0x81,0x82,0x83,0x83,
+0x88,0x88,0x89,0x88,0x87,0x84,0x81,0x80,0x82,0x83,0x85,0x86,0x85,0x84,0x82,0x81,
+0x7c,0x6d,0x5b,0x52,0x52,0x54,0x50,0x4c,0x54,0x52,0x4f,0x4b,0x49,0x49,0x49,0x4a,
+0x45,0x49,0x4f,0x51,0x4f,0x4f,0x50,0x51,0x51,0x5e,0x6e,0x7b,0x80,0x7f,0x7d,0x7c,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x85,0x83,0x81,0x80,0x7f,0x7f,0x80,0x81,
+0x89,0x8a,0x8b,0x8c,0x8b,0x89,0x86,0x85,0x89,0x89,0x88,0x89,0x8c,0x8f,0x92,0x94,
+0x86,0x81,0x79,0x6f,0x66,0x60,0x5c,0x5b,0x5a,0x59,0x58,0x57,0x56,0x57,0x59,0x5a,
+0x5c,0x5c,0x5a,0x5a,0x5a,0x5c,0x5d,0x5f,0x5f,0x62,0x66,0x68,0x6d,0x79,0x8c,0x9a,
+0x9b,0x9a,0x99,0x98,0x98,0x98,0x98,0x98,0x9e,0x99,0x95,0x95,0x96,0x91,0x86,0x7d,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,
+0x69,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6f,0x70,0x72,0x73,0x74,0x74,
+0x76,0x75,0x75,0x75,0x76,0x78,0x7a,0x7b,0x79,0x7a,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x76,0x77,0x78,0x79,0x7a,0x7a,0x79,0x79,
+0x77,0x76,0x74,0x73,0x73,0x74,0x75,0x76,0x74,0x75,0x75,0x76,0x77,0x77,0x78,0x78,
+0x70,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x70,0x71,0x72,0x73,0x74,0x74,0x73,0x73,
+0x74,0x74,0x75,0x76,0x78,0x7a,0x7c,0x7d,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,
+0x81,0x82,0x83,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x85,0x87,0x87,0x87,0x86,0x86,
+0x86,0x85,0x83,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x82,0x82,0x83,0x84,0x84,
+0x8b,0x8a,0x8a,0x89,0x88,0x87,0x87,0x86,0x86,0x86,0x86,0x87,0x87,0x86,0x86,0x86,
+0x89,0x86,0x82,0x82,0x84,0x86,0x86,0x84,0x81,0x8a,0x89,0x80,0x82,0x8b,0x87,0x78,
+0x5b,0x55,0x4f,0x50,0x53,0x54,0x50,0x4b,0x4e,0x4e,0x4d,0x4c,0x4b,0x4a,0x4a,0x49,
+0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4c,0x4d,0x4c,0x51,0x5a,0x65,0x71,0x7c,0x84,0x89,
+0x80,0x7f,0x80,0x83,0x86,0x87,0x83,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x83,0x84,0x87,0x88,0x89,0x89,0x88,0x88,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,
+0x8c,0x8c,0x8a,0x87,0x82,0x7b,0x75,0x71,0x61,0x5f,0x5c,0x59,0x58,0x59,0x5a,0x5c,
+0x5a,0x5a,0x5b,0x5c,0x5d,0x5e,0x5f,0x5f,0x5b,0x60,0x69,0x75,0x81,0x8d,0x96,0x9b,
+0x9b,0x9b,0x9a,0x9a,0x99,0x98,0x98,0x97,0x98,0x99,0x99,0x98,0x95,0x91,0x8c,0x89,
+0x77,0x73,0x6d,0x6b,0x6c,0x6c,0x6a,0x68,0x6d,0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,
+0x6c,0x6d,0x6f,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x72,0x73,0x74,0x74,
+0x74,0x75,0x76,0x78,0x78,0x78,0x78,0x77,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x77,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,
+0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x79,
+0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6f,0x70,0x72,0x73,0x74,0x74,0x73,0x73,
+0x71,0x71,0x72,0x73,0x75,0x77,0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x7b,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x80,0x81,0x82,0x84,0x84,0x85,0x84,0x84,
+0x83,0x82,0x81,0x7f,0x7e,0x7e,0x7e,0x7e,0x81,0x81,0x82,0x83,0x84,0x85,0x86,0x87,
+0x8c,0x8c,0x8b,0x8a,0x89,0x89,0x88,0x88,0x88,0x88,0x89,0x89,0x89,0x89,0x88,0x88,
+0x8a,0x86,0x83,0x82,0x85,0x86,0x85,0x83,0x7e,0x87,0x88,0x81,0x82,0x86,0x7e,0x6e,
+0x58,0x53,0x4f,0x4f,0x53,0x54,0x50,0x4b,0x4e,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x49,
+0x4b,0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4c,0x4d,0x50,0x56,0x60,0x6b,0x76,0x80,0x85,
+0x80,0x7f,0x7e,0x80,0x82,0x82,0x80,0x7e,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x83,0x85,0x87,0x88,0x88,0x88,0x87,0x84,0x85,0x85,0x86,0x88,0x89,0x8a,0x8a,
+0x89,0x8a,0x8b,0x8a,0x88,0x84,0x81,0x7e,0x7c,0x78,0x73,0x6d,0x69,0x66,0x65,0x65,
+0x64,0x65,0x65,0x66,0x67,0x68,0x69,0x69,0x71,0x75,0x7a,0x82,0x8a,0x92,0x97,0x9a,
+0x9b,0x9b,0x9a,0x99,0x99,0x98,0x98,0x97,0x98,0x98,0x99,0x98,0x96,0x92,0x8f,0x8c,
+0x7a,0x74,0x6f,0x6c,0x6c,0x6c,0x6b,0x69,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6d,0x6d,0x6f,0x70,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x72,0x73,0x74,0x74,
+0x74,0x75,0x77,0x78,0x79,0x78,0x78,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x7a,0x7b,0x7c,0x7c,0x7d,0x7c,0x7b,0x7b,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6f,0x70,0x72,0x73,0x74,0x74,0x73,0x73,
+0x6d,0x6e,0x6f,0x70,0x72,0x73,0x74,0x74,0x75,0x74,0x74,0x73,0x73,0x72,0x72,0x71,
+0x73,0x74,0x75,0x76,0x76,0x76,0x75,0x75,0x7a,0x7b,0x7d,0x7f,0x80,0x80,0x80,0x80,
+0x7f,0x7e,0x7d,0x7b,0x7b,0x7b,0x7b,0x7c,0x80,0x80,0x82,0x83,0x85,0x86,0x87,0x88,
+0x8b,0x8a,0x8a,0x89,0x89,0x88,0x88,0x87,0x88,0x89,0x8a,0x8a,0x8a,0x8a,0x89,0x88,
+0x88,0x85,0x81,0x81,0x82,0x83,0x81,0x7f,0x79,0x81,0x84,0x82,0x80,0x7c,0x6e,0x5e,
+0x53,0x50,0x4e,0x4f,0x51,0x52,0x4f,0x4c,0x4e,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x49,
+0x4a,0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4c,0x4e,0x4f,0x51,0x58,0x61,0x6d,0x78,0x7f,
+0x81,0x80,0x7e,0x7d,0x7d,0x7d,0x7e,0x7e,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x80,0x82,0x84,0x86,0x87,0x87,0x87,0x84,0x84,0x85,0x86,0x87,0x88,0x89,0x89,
+0x86,0x88,0x8b,0x8d,0x8e,0x8e,0x8d,0x8c,0x8f,0x8c,0x88,0x83,0x80,0x7e,0x7e,0x7d,
+0x7b,0x7c,0x7d,0x7d,0x7f,0x7f,0x80,0x81,0x8c,0x8d,0x8f,0x91,0x94,0x97,0x99,0x9a,
+0x9b,0x9a,0x9a,0x99,0x98,0x98,0x97,0x97,0x97,0x98,0x99,0x99,0x97,0x95,0x92,0x90,
+0x7e,0x78,0x70,0x6c,0x6c,0x6c,0x6b,0x6a,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6d,0x6e,0x6f,0x70,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x72,0x73,0x74,0x74,
+0x75,0x76,0x77,0x78,0x79,0x79,0x78,0x78,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,
+0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6d,0x6d,0x6f,0x70,0x71,0x73,0x73,0x73,0x73,0x72,
+0x6d,0x6e,0x6f,0x71,0x71,0x72,0x72,0x72,0x72,0x71,0x71,0x70,0x6f,0x6e,0x6e,0x6d,
+0x6e,0x6f,0x70,0x71,0x72,0x71,0x71,0x70,0x74,0x75,0x77,0x79,0x7b,0x7c,0x7c,0x7c,
+0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7f,0x81,0x83,0x84,0x85,
+0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x82,0x7f,0x7b,0x7b,0x7d,0x7d,0x7a,0x78,0x74,0x79,0x7e,0x7f,0x7b,0x70,0x5e,0x4f,
+0x4e,0x4d,0x4d,0x4f,0x50,0x50,0x4f,0x4e,0x4e,0x4d,0x4d,0x4c,0x4b,0x4a,0x49,0x48,
+0x4a,0x4a,0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4e,0x4d,0x4d,0x50,0x58,0x63,0x6f,0x76,
+0x82,0x82,0x81,0x7e,0x7c,0x7c,0x7e,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7d,0x7e,0x80,0x81,0x83,0x85,0x86,0x86,0x84,0x84,0x85,0x86,0x86,0x87,0x88,0x88,
+0x86,0x88,0x8b,0x8e,0x90,0x91,0x91,0x91,0x8d,0x8d,0x8d,0x8e,0x90,0x92,0x94,0x96,
+0x93,0x93,0x94,0x95,0x96,0x97,0x98,0x98,0x98,0x98,0x99,0x99,0x99,0x9a,0x9a,0x9a,
+0x9a,0x9a,0x9a,0x99,0x98,0x98,0x97,0x97,0x97,0x98,0x99,0x99,0x99,0x97,0x95,0x94,
+0x83,0x7c,0x73,0x6d,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6e,0x6f,0x70,0x71,0x71,0x70,0x6f,0x6f,0x6f,0x70,0x71,0x72,0x73,0x74,0x74,0x75,
+0x75,0x76,0x78,0x79,0x7a,0x7a,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x6f,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6f,0x6f,0x71,0x72,0x73,0x73,0x72,0x72,
+0x6f,0x70,0x72,0x73,0x74,0x73,0x72,0x72,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6e,0x6e,
+0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x70,0x70,0x72,0x73,0x75,0x77,0x77,0x77,0x77,
+0x75,0x74,0x73,0x73,0x73,0x74,0x75,0x76,0x75,0x76,0x77,0x79,0x7a,0x7c,0x7d,0x7e,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7d,0x7f,0x81,0x81,0x7f,0x7d,0x7b,
+0x79,0x76,0x74,0x74,0x76,0x76,0x73,0x70,0x73,0x72,0x75,0x78,0x72,0x63,0x51,0x46,
+0x4a,0x4c,0x4f,0x50,0x4f,0x4e,0x4e,0x4e,0x4d,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x48,
+0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4b,0x4c,0x4e,0x4c,0x4a,0x4b,0x51,0x5b,0x65,0x6b,
+0x7f,0x82,0x84,0x82,0x7e,0x7d,0x80,0x84,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7d,0x7d,0x7e,0x7f,0x81,0x83,0x84,0x85,0x84,0x84,0x84,0x85,0x86,0x86,0x86,0x87,
+0x88,0x89,0x8a,0x8c,0x8c,0x8d,0x8d,0x8c,0x8b,0x8c,0x8d,0x8e,0x91,0x94,0x96,0x97,
+0x97,0x98,0x98,0x99,0x9a,0x9b,0x9c,0x9c,0x97,0x97,0x98,0x98,0x99,0x9a,0x9a,0x9a,
+0x9a,0x9a,0x99,0x99,0x98,0x97,0x97,0x96,0x97,0x98,0x98,0x99,0x99,0x98,0x97,0x97,
+0x89,0x81,0x76,0x6f,0x6c,0x6d,0x6d,0x6c,0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,
+0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,0x6e,0x70,0x70,0x71,0x72,0x73,0x74,0x75,0x75,
+0x76,0x77,0x78,0x7a,0x7a,0x7a,0x7a,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7c,0x7b,0x7a,0x79,
+0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6e,0x6f,0x71,0x72,0x73,0x73,0x72,0x72,
+0x70,0x72,0x74,0x75,0x75,0x74,0x72,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6f,0x70,0x71,0x72,0x72,0x72,0x71,0x71,0x6f,0x70,0x72,0x73,0x74,0x74,0x73,0x73,
+0x71,0x70,0x70,0x70,0x71,0x72,0x73,0x74,0x72,0x72,0x73,0x74,0x75,0x76,0x76,0x77,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x76,0x79,0x7b,0x7b,0x79,0x76,0x74,
+0x72,0x70,0x6e,0x70,0x72,0x72,0x6f,0x6c,0x74,0x6c,0x6a,0x6d,0x67,0x57,0x49,0x46,
+0x49,0x4d,0x51,0x51,0x4f,0x4c,0x4d,0x4f,0x4d,0x4d,0x4c,0x4b,0x4a,0x49,0x48,0x48,
+0x4a,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4b,0x4d,0x4b,0x4a,0x4b,0x4f,0x55,0x5c,0x61,
+0x75,0x7d,0x84,0x85,0x81,0x7e,0x81,0x85,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7e,0x7e,0x7f,0x80,0x81,0x83,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x86,
+0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x92,0x91,0x90,0x8f,0x8d,0x8c,0x8b,0x8a,
+0x8e,0x8f,0x8f,0x90,0x91,0x92,0x93,0x93,0x93,0x94,0x95,0x96,0x98,0x99,0x9a,0x9b,
+0x9a,0x99,0x99,0x98,0x98,0x97,0x96,0x96,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+0x8e,0x85,0x78,0x70,0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6d,0x6d,0x6e,0x6f,0x6f,0x6f,
+0x70,0x70,0x71,0x72,0x71,0x70,0x6f,0x6e,0x70,0x71,0x71,0x72,0x73,0x74,0x75,0x75,
+0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x79,0x78,0x77,
+0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6c,0x6c,0x6e,0x6f,0x70,0x72,0x72,0x72,0x72,0x71,
+0x6f,0x70,0x73,0x74,0x74,0x72,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x6f,0x70,0x71,0x71,
+0x6e,0x6f,0x70,0x71,0x72,0x71,0x71,0x70,0x70,0x71,0x72,0x72,0x72,0x72,0x71,0x70,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x71,0x72,0x73,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x71,0x73,0x76,0x78,0x78,0x76,0x73,0x71,
+0x6f,0x6d,0x6d,0x6f,0x73,0x73,0x70,0x6d,0x77,0x68,0x60,0x62,0x5d,0x4e,0x46,0x49,
+0x49,0x4e,0x54,0x53,0x4f,0x4b,0x4c,0x4f,0x4d,0x4c,0x4c,0x4b,0x4a,0x49,0x48,0x48,
+0x49,0x49,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4c,0x4f,0x52,0x56,0x58,
+0x68,0x74,0x81,0x86,0x81,0x7d,0x7f,0x83,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x80,0x7f,0x7e,0x7f,0x80,0x81,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,
+0x86,0x86,0x87,0x87,0x88,0x8a,0x8b,0x8b,0x93,0x93,0x92,0x91,0x8f,0x8d,0x8c,0x8b,
+0x8d,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x92,0x96,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9b,
+0x99,0x99,0x99,0x98,0x97,0x97,0x96,0x96,0x99,0x98,0x98,0x97,0x97,0x97,0x97,0x97,
+0x92,0x88,0x7a,0x70,0x6d,0x6d,0x6e,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x71,0x71,
+0x71,0x71,0x72,0x72,0x71,0x70,0x6f,0x6e,0x70,0x71,0x71,0x72,0x73,0x74,0x75,0x76,
+0x77,0x78,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x76,0x75,
+0x77,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,
+0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6e,0x6f,0x70,0x72,0x72,0x72,0x72,0x71,
+0x6d,0x6e,0x71,0x72,0x71,0x6f,0x6d,0x6b,0x6a,0x6b,0x6b,0x6d,0x6e,0x6f,0x70,0x71,
+0x6d,0x6e,0x6f,0x70,0x71,0x70,0x70,0x6f,0x71,0x72,0x72,0x72,0x72,0x71,0x6f,0x6e,
+0x6d,0x6d,0x6d,0x6d,0x6e,0x70,0x72,0x73,0x74,0x74,0x73,0x73,0x73,0x73,0x72,0x72,
+0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x70,0x72,0x76,0x78,0x78,0x76,0x72,0x70,
+0x6f,0x6e,0x6e,0x71,0x74,0x75,0x73,0x6f,0x79,0x66,0x5a,0x5b,0x56,0x49,0x45,0x4d,
+0x49,0x4f,0x55,0x55,0x4f,0x4a,0x4b,0x4f,0x4d,0x4c,0x4b,0x4b,0x49,0x49,0x48,0x47,
+0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4b,0x4a,0x4b,0x4d,0x4e,0x50,0x51,0x52,0x53,
+0x5f,0x6d,0x7e,0x84,0x80,0x7c,0x7c,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x83,0x81,0x80,0x7e,0x7e,0x7f,0x80,0x81,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x85,0x87,0x8a,0x8c,0x8f,0x90,0x8c,0x8e,0x90,0x92,0x95,0x97,0x98,0x98,
+0x95,0x95,0x96,0x97,0x98,0x99,0x99,0x9a,0x9b,0x9b,0x9b,0x9b,0x9c,0x9c,0x9c,0x9c,
+0x99,0x99,0x98,0x98,0x97,0x97,0x96,0x96,0x99,0x99,0x98,0x97,0x96,0x96,0x96,0x96,
+0x95,0x8a,0x7b,0x71,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x71,0x72,0x72,
+0x71,0x71,0x72,0x72,0x71,0x70,0x6f,0x6e,0x71,0x71,0x72,0x73,0x74,0x75,0x75,0x76,
+0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x77,0x79,0x79,0x79,0x79,0x78,0x77,0x75,0x74,
+0x77,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7c,0x7c,
+0x6c,0x6d,0x6e,0x6f,0x6f,0x6e,0x6e,0x6d,0x73,0x73,0x74,0x74,0x73,0x71,0x70,0x6f,
+0x6e,0x70,0x71,0x73,0x73,0x72,0x71,0x70,0x71,0x70,0x6f,0x6e,0x6d,0x6e,0x6e,0x6f,
+0x6e,0x6e,0x6d,0x6c,0x6c,0x6d,0x6e,0x6e,0x70,0x6f,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,
+0x6c,0x6b,0x6a,0x6a,0x6b,0x6d,0x6f,0x71,0x72,0x71,0x70,0x70,0x6f,0x70,0x71,0x71,
+0x73,0x72,0x71,0x70,0x70,0x72,0x73,0x75,0x72,0x73,0x74,0x75,0x75,0x75,0x74,0x74,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x70,0x70,0x6e,0x67,0x5c,0x51,0x4a,0x47,0x49,0x4a,
+0x51,0x50,0x4f,0x4f,0x4d,0x4d,0x4c,0x4b,0x4c,0x4c,0x4b,0x4a,0x48,0x47,0x46,0x46,
+0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4b,0x4c,0x4d,0x4f,0x50,
+0x4f,0x5d,0x71,0x7e,0x81,0x80,0x7f,0x80,0x7e,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x81,
+0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,
+0x83,0x84,0x84,0x85,0x86,0x87,0x87,0x87,0x8c,0x8d,0x8e,0x90,0x92,0x94,0x95,0x96,
+0x97,0x97,0x98,0x98,0x99,0x9a,0x9a,0x9a,0x99,0x99,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+0x9b,0x9a,0x9a,0x99,0x98,0x97,0x96,0x96,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x99,0x8e,0x80,0x75,0x70,0x6e,0x6d,0x6c,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,
+0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x74,0x74,0x75,0x76,
+0x76,0x78,0x7a,0x7d,0x7d,0x7c,0x7a,0x79,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,
+0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7a,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x77,0x77,
+0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7d,0x7d,
+0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6e,0x6d,0x72,0x72,0x73,0x73,0x72,0x70,0x6f,0x6e,
+0x6e,0x6f,0x71,0x72,0x72,0x72,0x71,0x70,0x71,0x70,0x6f,0x6e,0x6d,0x6e,0x6e,0x6f,
+0x6e,0x6d,0x6c,0x6c,0x6c,0x6c,0x6d,0x6e,0x70,0x6f,0x6e,0x6d,0x6c,0x6d,0x6d,0x6e,
+0x6b,0x6b,0x6a,0x6a,0x6b,0x6c,0x6e,0x6f,0x70,0x6f,0x6f,0x6e,0x6e,0x6f,0x70,0x71,
+0x73,0x72,0x70,0x6f,0x6f,0x70,0x71,0x72,0x72,0x72,0x74,0x75,0x75,0x75,0x74,0x73,
+0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x69,0x5f,0x53,0x4a,0x47,0x49,0x4b,
+0x51,0x50,0x4f,0x4f,0x4d,0x4d,0x4c,0x4b,0x4c,0x4b,0x4b,0x4a,0x48,0x47,0x46,0x46,
+0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4b,0x4b,0x4b,0x4c,0x4d,0x4f,0x50,
+0x50,0x5a,0x69,0x77,0x80,0x82,0x80,0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x81,0x81,0x81,
+0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x83,0x84,0x84,0x85,0x86,0x87,0x87,0x88,0x8c,0x8c,0x8e,0x8f,0x91,0x93,0x94,0x95,
+0x96,0x96,0x96,0x97,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x9a,0x9a,0x9a,
+0x9a,0x9a,0x9a,0x99,0x98,0x97,0x97,0x96,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x99,0x8f,0x81,0x76,0x71,0x6f,0x6e,0x6d,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,
+0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x71,0x71,0x72,0x73,0x74,0x75,0x75,0x76,
+0x77,0x78,0x7b,0x7d,0x7e,0x7c,0x7b,0x79,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,
+0x7d,0x7c,0x7a,0x79,0x78,0x78,0x79,0x79,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x76,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6e,0x6e,0x70,0x71,0x71,0x71,0x70,0x6f,0x6e,0x6d,
+0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x70,0x70,0x70,0x6e,0x6d,0x6d,0x6d,0x6e,0x6f,
+0x6d,0x6d,0x6c,0x6b,0x6b,0x6c,0x6d,0x6d,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6d,
+0x6a,0x6a,0x6a,0x6a,0x6a,0x6b,0x6d,0x6e,0x6d,0x6d,0x6c,0x6c,0x6d,0x6e,0x6f,0x70,
+0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,0x71,0x72,0x73,0x74,0x74,0x74,0x73,0x73,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x71,0x6c,0x63,0x56,0x4c,0x47,0x48,0x4b,
+0x51,0x50,0x4f,0x4f,0x4d,0x4d,0x4c,0x4b,0x4c,0x4b,0x4a,0x49,0x48,0x48,0x47,0x46,
+0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4b,0x4a,0x4a,0x4b,0x4c,0x4e,0x4f,
+0x51,0x54,0x5d,0x6d,0x7d,0x85,0x82,0x7c,0x7f,0x7f,0x80,0x80,0x80,0x81,0x81,0x81,
+0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x83,
+0x83,0x83,0x84,0x85,0x86,0x87,0x88,0x88,0x8b,0x8b,0x8c,0x8e,0x90,0x91,0x92,0x93,
+0x94,0x94,0x94,0x95,0x96,0x96,0x97,0x97,0x98,0x98,0x98,0x98,0x99,0x99,0x99,0x99,
+0x9a,0x9a,0x99,0x99,0x98,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x99,0x8f,0x81,0x76,0x72,0x70,0x70,0x6f,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,
+0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x73,0x74,0x75,0x76,0x76,
+0x78,0x7a,0x7c,0x7d,0x7e,0x7d,0x7b,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7a,0x79,0x78,0x77,0x77,0x78,0x78,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x76,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6f,0x6f,0x70,0x6f,0x6e,0x6d,0x6c,
+0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x6f,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,
+0x6c,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6c,0x6e,0x6d,0x6c,0x6b,0x6b,0x6b,0x6c,0x6c,
+0x69,0x69,0x69,0x6a,0x6a,0x6b,0x6b,0x6c,0x6b,0x6a,0x6a,0x6a,0x6b,0x6c,0x6e,0x6f,
+0x71,0x70,0x6f,0x6d,0x6b,0x6a,0x69,0x69,0x70,0x71,0x72,0x73,0x73,0x73,0x72,0x72,
+0x6d,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,0x6c,0x72,0x6f,0x67,0x5a,0x4d,0x47,0x49,0x4d,
+0x51,0x50,0x4f,0x4f,0x4d,0x4d,0x4c,0x4b,0x4b,0x4b,0x4a,0x49,0x49,0x48,0x47,0x47,
+0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4b,0x4a,0x4a,0x4a,0x4b,0x4d,0x4e,
+0x51,0x4e,0x52,0x62,0x78,0x85,0x83,0x7c,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,
+0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,
+0x83,0x83,0x84,0x85,0x87,0x88,0x89,0x89,0x8a,0x8a,0x8b,0x8d,0x8e,0x90,0x91,0x91,
+0x92,0x92,0x93,0x93,0x94,0x95,0x95,0x95,0x96,0x96,0x97,0x97,0x98,0x98,0x99,0x99,
+0x9a,0x99,0x99,0x99,0x98,0x98,0x97,0x97,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+0x99,0x8f,0x81,0x77,0x73,0x72,0x71,0x71,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x77,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x79,0x78,0x77,0x76,0x76,0x77,0x77,0x78,0x77,0x76,0x76,0x76,0x76,0x76,0x77,
+0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x79,0x78,0x78,0x78,0x79,0x7a,
+0x6b,0x6c,0x6d,0x6f,0x6f,0x6f,0x6f,0x6f,0x6d,0x6e,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,
+0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x70,0x6f,0x6e,0x6d,0x6c,0x6d,0x6d,0x6e,
+0x6b,0x6b,0x6a,0x69,0x69,0x6a,0x6b,0x6b,0x6d,0x6c,0x6b,0x6a,0x6a,0x6a,0x6b,0x6b,
+0x69,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6a,0x6a,0x69,0x69,0x69,0x69,0x6b,0x6c,0x6d,
+0x6f,0x6e,0x6d,0x6c,0x6a,0x68,0x66,0x66,0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x70,
+0x6d,0x6d,0x6e,0x6f,0x6e,0x6d,0x6b,0x6a,0x70,0x70,0x6a,0x5d,0x4d,0x46,0x49,0x4f,
+0x51,0x50,0x4f,0x4f,0x4d,0x4d,0x4c,0x4b,0x4a,0x4a,0x4a,0x49,0x49,0x48,0x48,0x48,
+0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4b,0x4a,0x49,0x4a,0x4a,0x4b,0x4c,
+0x50,0x4a,0x4b,0x5a,0x71,0x81,0x84,0x7f,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x81,
+0x83,0x83,0x84,0x86,0x87,0x89,0x8a,0x8a,0x8a,0x8a,0x8b,0x8c,0x8e,0x8f,0x90,0x90,
+0x90,0x91,0x91,0x92,0x92,0x93,0x94,0x94,0x95,0x95,0x95,0x96,0x97,0x98,0x98,0x99,
+0x99,0x99,0x99,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+0x98,0x8e,0x81,0x77,0x73,0x72,0x72,0x72,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6f,
+0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x77,0x78,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x79,0x78,0x76,0x76,0x76,0x76,0x77,0x77,0x76,0x75,0x74,0x74,0x75,0x77,0x78,
+0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x79,0x78,0x77,0x76,0x77,0x77,0x78,
+0x6a,0x6b,0x6d,0x6f,0x70,0x70,0x70,0x6f,0x6d,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,
+0x6d,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6a,0x6a,0x69,0x68,0x68,0x69,0x6a,0x6a,0x6c,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6a,
+0x6a,0x6a,0x6b,0x6c,0x6c,0x6b,0x6b,0x6a,0x6b,0x6a,0x69,0x68,0x68,0x69,0x6a,0x6b,
+0x6d,0x6d,0x6c,0x6c,0x6a,0x68,0x66,0x64,0x6b,0x6c,0x6d,0x6e,0x6f,0x6e,0x6e,0x6d,
+0x6c,0x6d,0x6e,0x6f,0x6e,0x6c,0x6a,0x68,0x6e,0x70,0x6c,0x5e,0x4d,0x45,0x49,0x51,
+0x51,0x50,0x4f,0x4f,0x4d,0x4d,0x4c,0x4b,0x4a,0x4a,0x4a,0x49,0x49,0x48,0x48,0x48,
+0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4a,0x49,0x49,0x49,0x49,0x4a,0x4b,
+0x4d,0x49,0x4a,0x56,0x69,0x7a,0x83,0x85,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,
+0x83,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x81,0x81,
+0x82,0x83,0x84,0x86,0x88,0x89,0x8a,0x8b,0x8a,0x8b,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,
+0x90,0x90,0x91,0x91,0x92,0x93,0x93,0x93,0x93,0x93,0x94,0x95,0x96,0x97,0x98,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+0x96,0x8c,0x7f,0x76,0x72,0x72,0x73,0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,
+0x70,0x70,0x71,0x71,0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x78,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x79,0x78,0x77,0x76,0x76,0x77,0x77,0x76,0x75,0x74,0x73,0x74,0x76,0x78,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x75,0x76,0x76,
+0x6a,0x6b,0x6d,0x6e,0x70,0x70,0x70,0x70,0x6d,0x6d,0x6e,0x6f,0x6f,0x6f,0x6e,0x6d,
+0x6d,0x6c,0x6b,0x6b,0x6b,0x6c,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6d,
+0x6a,0x69,0x68,0x67,0x67,0x68,0x69,0x6a,0x6b,0x6a,0x69,0x68,0x68,0x68,0x69,0x69,
+0x6b,0x6c,0x6d,0x6d,0x6d,0x6c,0x6b,0x6a,0x6d,0x6c,0x6a,0x69,0x68,0x68,0x68,0x69,
+0x6b,0x6b,0x6c,0x6c,0x6a,0x68,0x66,0x65,0x69,0x6a,0x6b,0x6c,0x6c,0x6c,0x6b,0x6b,
+0x6b,0x6c,0x6e,0x6f,0x6e,0x6c,0x69,0x67,0x6a,0x6e,0x6c,0x5f,0x4d,0x45,0x4a,0x53,
+0x51,0x50,0x4f,0x4f,0x4d,0x4d,0x4c,0x4b,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x48,
+0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4a,0x49,0x48,0x48,0x49,0x4a,0x4a,
+0x4a,0x4a,0x4d,0x54,0x61,0x71,0x82,0x8c,0x83,0x82,0x82,0x82,0x81,0x81,0x80,0x80,
+0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x80,0x80,0x80,0x81,0x81,0x81,
+0x82,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8c,0x8b,0x8b,0x8c,0x8d,0x8e,0x8f,0x8f,0x90,
+0x90,0x90,0x91,0x91,0x92,0x92,0x93,0x93,0x92,0x92,0x93,0x94,0x95,0x97,0x97,0x98,
+0x98,0x98,0x98,0x98,0x98,0x99,0x99,0x99,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+0x94,0x8b,0x7e,0x75,0x72,0x72,0x72,0x72,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x71,
+0x70,0x70,0x71,0x71,0x72,0x73,0x73,0x74,0x74,0x74,0x75,0x76,0x77,0x78,0x78,0x79,
+0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7b,0x7a,0x79,0x77,0x77,0x77,0x77,0x78,0x76,0x75,0x74,0x73,0x74,0x77,0x79,0x7b,
+0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x77,0x76,0x75,0x74,0x73,0x74,0x75,0x75,
+0x6a,0x6b,0x6d,0x6e,0x70,0x70,0x70,0x70,0x6d,0x6e,0x6f,0x70,0x70,0x6f,0x6f,0x6e,
+0x6d,0x6c,0x6b,0x6a,0x6a,0x6c,0x6d,0x6f,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6d,
+0x69,0x69,0x68,0x67,0x67,0x68,0x69,0x69,0x6b,0x6a,0x69,0x68,0x67,0x68,0x69,0x69,
+0x6b,0x6c,0x6e,0x6e,0x6e,0x6d,0x6b,0x6a,0x6e,0x6d,0x6b,0x69,0x68,0x67,0x67,0x68,
+0x6a,0x6b,0x6b,0x6c,0x6b,0x69,0x67,0x65,0x67,0x68,0x69,0x6a,0x6b,0x6a,0x6a,0x69,
+0x6b,0x6c,0x6e,0x6f,0x6e,0x6b,0x68,0x66,0x68,0x6d,0x6c,0x5f,0x4d,0x45,0x4a,0x54,
+0x51,0x50,0x4f,0x4f,0x4d,0x4d,0x4c,0x4b,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
+0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4b,0x4a,0x49,0x48,0x48,0x48,0x49,0x4a,
+0x47,0x4b,0x50,0x54,0x5c,0x6c,0x81,0x90,0x83,0x83,0x82,0x82,0x81,0x81,0x80,0x80,
+0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x82,
+0x82,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8e,0x8f,0x8f,0x90,
+0x90,0x90,0x91,0x91,0x92,0x93,0x93,0x93,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
+0x98,0x98,0x98,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+0x93,0x8a,0x7d,0x74,0x71,0x71,0x72,0x72,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x72,
+0x70,0x70,0x71,0x71,0x72,0x73,0x74,0x74,0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x79,
+0x7a,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7b,0x79,0x78,0x77,0x77,0x78,0x78,0x77,0x75,0x74,0x73,0x74,0x77,0x7a,0x7c,
+0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x76,0x75,0x74,0x73,0x73,0x73,0x74,0x74,
+0x70,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x69,0x6b,0x6d,0x6f,0x70,0x6f,0x6e,0x6d,
+0x6d,0x6e,0x6e,0x6f,0x6e,0x6d,0x6b,0x6b,0x6d,0x6d,0x6b,0x6a,0x69,0x6a,0x6a,0x6b,
+0x6b,0x6a,0x6a,0x69,0x69,0x6a,0x6b,0x6c,0x69,0x6a,0x6b,0x6c,0x6c,0x6a,0x69,0x67,
+0x6a,0x6a,0x6a,0x6a,0x6a,0x69,0x69,0x69,0x69,0x69,0x68,0x68,0x68,0x68,0x68,0x68,
+0x69,0x6b,0x6d,0x6f,0x6f,0x6d,0x6b,0x69,0x68,0x68,0x69,0x69,0x6a,0x6a,0x6b,0x6b,
+0x70,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,0x6b,0x6c,0x67,0x5e,0x56,0x51,0x4f,0x4f,0x50,
+0x50,0x4f,0x4f,0x4e,0x4d,0x4c,0x4c,0x4b,0x49,0x49,0x49,0x49,0x48,0x48,0x48,0x47,
+0x48,0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
+0x4c,0x4d,0x4e,0x50,0x57,0x68,0x80,0x92,0x88,0x87,0x84,0x81,0x80,0x7f,0x7f,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x83,0x83,0x83,0x82,0x82,0x81,0x81,0x80,
+0x7e,0x7f,0x80,0x81,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x81,0x81,
+0x85,0x86,0x88,0x8a,0x8b,0x8b,0x8a,0x89,0x8d,0x8e,0x8e,0x8f,0x90,0x91,0x92,0x92,
+0x8f,0x8f,0x8f,0x90,0x90,0x90,0x90,0x91,0x91,0x91,0x92,0x93,0x95,0x96,0x97,0x97,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x99,0x99,0x98,0x98,0x98,0x98,0x99,0x99,
+0x92,0x89,0x7c,0x73,0x71,0x72,0x73,0x73,0x70,0x70,0x70,0x71,0x71,0x71,0x71,0x72,
+0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x79,
+0x7b,0x78,0x75,0x76,0x79,0x7b,0x7b,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x7c,0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,
+0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x75,0x75,0x76,0x77,0x78,0x79,0x7a,0x7a,
+0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x74,0x74,0x75,0x75,0x76,0x76,0x77,0x77,
+0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6a,0x6b,0x6e,0x70,0x70,0x70,0x6e,0x6d,
+0x6d,0x6d,0x6e,0x6e,0x6d,0x6c,0x6b,0x6a,0x6e,0x6d,0x6b,0x6a,0x6a,0x6a,0x6b,0x6b,
+0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6b,0x69,0x6a,0x6b,0x6c,0x6b,0x6a,0x69,0x68,
+0x68,0x68,0x68,0x68,0x67,0x67,0x67,0x67,0x69,0x69,0x69,0x69,0x68,0x68,0x68,0x68,
+0x69,0x6b,0x6d,0x6f,0x6f,0x6d,0x6b,0x69,0x69,0x69,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,
+0x6f,0x6e,0x6e,0x6d,0x6c,0x6b,0x6b,0x6a,0x6c,0x67,0x5f,0x57,0x52,0x4f,0x50,0x50,
+0x4f,0x4e,0x4e,0x4d,0x4c,0x4c,0x4b,0x4b,0x49,0x49,0x49,0x49,0x48,0x48,0x48,0x47,
+0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
+0x4b,0x4d,0x4e,0x4f,0x55,0x66,0x7d,0x8f,0x8a,0x89,0x86,0x83,0x81,0x80,0x80,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x83,0x83,0x82,0x82,0x81,0x81,0x80,0x80,
+0x7f,0x7f,0x80,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x85,
+0x86,0x87,0x89,0x8b,0x8b,0x8b,0x8b,0x8a,0x8d,0x8d,0x8e,0x8f,0x90,0x90,0x91,0x91,
+0x90,0x90,0x90,0x90,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x93,0x95,0x96,0x96,0x97,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x99,
+0x90,0x87,0x7b,0x73,0x71,0x71,0x72,0x72,0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,
+0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x75,0x75,0x75,0x76,0x77,0x78,0x79,0x79,
+0x7a,0x77,0x75,0x75,0x79,0x7b,0x7b,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x76,0x77,0x77,0x77,0x78,0x79,0x79,0x79,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,
+0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x75,0x76,0x76,0x76,0x77,0x77,0x78,0x78,
+0x6c,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6b,0x6a,0x6c,0x6e,0x70,0x71,0x70,0x6f,0x6e,
+0x6b,0x6c,0x6c,0x6d,0x6d,0x6c,0x6a,0x6a,0x6e,0x6d,0x6c,0x6b,0x6a,0x6b,0x6b,0x6c,
+0x6a,0x6a,0x69,0x68,0x68,0x69,0x6a,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6a,0x69,0x68,
+0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+0x6a,0x6b,0x6d,0x6e,0x6e,0x6d,0x6b,0x6a,0x6a,0x6b,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,
+0x6d,0x6d,0x6c,0x6c,0x6b,0x6a,0x6a,0x6a,0x6d,0x68,0x60,0x59,0x53,0x51,0x50,0x51,
+0x4d,0x4d,0x4c,0x4c,0x4b,0x4b,0x4a,0x4a,0x49,0x49,0x49,0x49,0x48,0x48,0x48,0x47,
+0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
+0x4a,0x4c,0x4d,0x4e,0x53,0x62,0x78,0x89,0x8d,0x8c,0x89,0x86,0x83,0x81,0x80,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x83,0x84,0x86,0x88,0x8a,0x8b,0x8c,
+0x88,0x89,0x8a,0x8b,0x8c,0x8c,0x8c,0x8b,0x8d,0x8d,0x8e,0x8e,0x8f,0x90,0x90,0x90,
+0x90,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x91,0x92,0x93,0x93,0x94,0x95,0x96,0x97,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x98,
+0x8b,0x83,0x79,0x72,0x70,0x71,0x71,0x71,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x72,
+0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x74,0x75,0x76,0x77,0x79,0x79,0x7a,
+0x78,0x75,0x73,0x74,0x78,0x7b,0x7b,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,
+0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,0x77,0x77,0x78,0x78,0x78,0x78,0x79,0x79,
+0x6b,0x6a,0x6a,0x6a,0x69,0x69,0x69,0x69,0x6a,0x6c,0x6e,0x70,0x71,0x70,0x6f,0x6e,
+0x6a,0x6b,0x6b,0x6c,0x6c,0x6b,0x6a,0x69,0x6e,0x6d,0x6c,0x6b,0x6b,0x6c,0x6d,0x6d,
+0x6b,0x6a,0x69,0x68,0x68,0x68,0x69,0x69,0x6b,0x6b,0x6b,0x6b,0x6a,0x6a,0x69,0x69,
+0x67,0x67,0x67,0x68,0x68,0x68,0x68,0x68,0x6a,0x6a,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,
+0x6a,0x6b,0x6d,0x6d,0x6d,0x6d,0x6b,0x6a,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6c,0x6b,0x6b,0x6b,0x6a,0x6a,0x69,0x69,0x6d,0x68,0x61,0x5a,0x54,0x52,0x51,0x51,
+0x4c,0x4c,0x4b,0x4b,0x4a,0x4a,0x4a,0x49,0x49,0x49,0x49,0x49,0x48,0x48,0x48,0x47,
+0x48,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,
+0x49,0x4b,0x4c,0x4d,0x51,0x5e,0x72,0x81,0x90,0x8e,0x8c,0x89,0x85,0x83,0x81,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+0x82,0x82,0x81,0x81,0x80,0x81,0x81,0x82,0x84,0x86,0x88,0x8b,0x8e,0x90,0x92,0x92,
+0x8b,0x8b,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,0x8e,0x8e,0x8e,0x8f,0x8f,0x8f,0x90,0x90,
+0x91,0x91,0x92,0x92,0x92,0x92,0x93,0x93,0x92,0x92,0x93,0x94,0x94,0x95,0x96,0x96,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x96,0x97,0x97,0x97,0x97,0x96,0x96,
+0x86,0x7f,0x76,0x71,0x70,0x71,0x71,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,
+0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x74,0x72,0x73,0x75,0x77,0x78,0x79,0x7a,0x7a,
+0x75,0x72,0x71,0x73,0x77,0x7a,0x7b,0x79,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x76,
+0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x7b,0x7b,0x7a,0x79,0x78,0x76,0x76,0x75,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,
+0x69,0x69,0x69,0x68,0x68,0x68,0x68,0x67,0x69,0x6b,0x6d,0x6f,0x70,0x6f,0x6e,0x6d,
+0x69,0x6a,0x6b,0x6c,0x6c,0x6b,0x6b,0x6a,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,0x6e,
+0x6b,0x6b,0x69,0x68,0x68,0x68,0x69,0x69,0x6b,0x6b,0x6a,0x6a,0x6a,0x69,0x6a,0x6a,
+0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,
+0x6b,0x6c,0x6c,0x6d,0x6d,0x6c,0x6c,0x6b,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6b,0x6b,0x6a,0x6a,0x6a,0x6a,0x6a,0x69,0x6c,0x68,0x62,0x5b,0x55,0x52,0x51,0x50,
+0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x4a,0x4a,0x49,0x49,0x49,0x49,0x48,0x48,0x48,0x47,
+0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
+0x48,0x4b,0x4d,0x4d,0x4f,0x5a,0x6c,0x7a,0x90,0x8f,0x8d,0x8b,0x87,0x84,0x82,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x82,0x82,
+0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x84,0x88,0x8a,0x8d,0x91,0x93,0x95,0x96,0x96,
+0x8e,0x8e,0x8d,0x8d,0x8e,0x8e,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x90,0x90,0x90,0x90,
+0x91,0x91,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x95,0x95,0x95,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x96,0x97,0x97,0x97,0x95,0x93,0x92,
+0x82,0x7c,0x75,0x71,0x71,0x72,0x71,0x70,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,
+0x72,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x72,0x73,0x75,0x77,0x79,0x79,0x79,0x78,
+0x72,0x70,0x6e,0x71,0x76,0x7a,0x7b,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x79,0x79,0x7a,0x7a,0x79,0x78,0x76,0x75,
+0x76,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x7b,0x7b,0x7a,0x79,0x78,0x77,0x77,0x76,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x69,0x68,0x68,0x68,0x68,0x67,0x67,0x67,0x68,0x6a,0x6c,0x6e,0x6f,0x6e,0x6d,0x6c,
+0x6a,0x6a,0x6c,0x6d,0x6d,0x6c,0x6c,0x6b,0x6e,0x6d,0x6d,0x6c,0x6d,0x6e,0x6f,0x70,
+0x6d,0x6c,0x6b,0x69,0x69,0x69,0x69,0x6a,0x6c,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6a,
+0x6b,0x6b,0x6c,0x6d,0x6d,0x6e,0x6e,0x6f,0x6b,0x6b,0x6b,0x6c,0x6d,0x6d,0x6e,0x6e,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6b,0x6a,
+0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6b,0x67,0x61,0x5b,0x55,0x51,0x50,0x4f,
+0x4b,0x4b,0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x49,0x49,0x49,0x49,0x48,0x48,0x48,0x47,
+0x47,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
+0x48,0x4b,0x4d,0x4d,0x4e,0x58,0x67,0x74,0x8f,0x8f,0x8e,0x8c,0x89,0x86,0x83,0x81,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x83,0x83,0x83,0x83,0x84,0x84,
+0x85,0x84,0x83,0x82,0x83,0x85,0x87,0x89,0x8d,0x8f,0x92,0x95,0x97,0x98,0x97,0x97,
+0x91,0x90,0x8f,0x8f,0x8f,0x8f,0x90,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x90,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x95,0x95,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x97,0x98,0x97,0x96,0x93,0x90,0x8e,
+0x7e,0x79,0x74,0x72,0x73,0x73,0x72,0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,
+0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x74,0x77,0x78,0x79,0x78,0x77,0x76,
+0x6f,0x6d,0x6c,0x6f,0x75,0x7a,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x76,0x75,
+0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x69,0x68,0x68,0x68,0x67,0x67,0x67,0x67,0x67,0x68,0x6b,0x6d,0x6d,0x6d,0x6b,0x6a,
+0x6a,0x6b,0x6c,0x6d,0x6e,0x6e,0x6d,0x6d,0x6e,0x6e,0x6d,0x6d,0x6d,0x6e,0x70,0x70,
+0x6f,0x6e,0x6c,0x6b,0x6a,0x6a,0x6a,0x6a,0x6d,0x6b,0x6a,0x69,0x68,0x69,0x6a,0x6b,
+0x69,0x6a,0x6a,0x6b,0x6c,0x6d,0x6d,0x6e,0x6b,0x6b,0x6c,0x6d,0x6d,0x6e,0x6f,0x6f,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6a,0x6a,0x69,0x69,
+0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x69,0x66,0x60,0x5a,0x55,0x51,0x4e,0x4d,
+0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4c,0x4c,0x49,0x49,0x49,0x49,0x48,0x48,0x48,0x47,
+0x47,0x47,0x47,0x47,0x48,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
+0x49,0x4c,0x4e,0x4e,0x4e,0x56,0x64,0x70,0x8d,0x8d,0x8d,0x8c,0x8a,0x87,0x84,0x82,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x83,0x83,0x84,0x84,0x85,0x85,0x85,0x86,
+0x85,0x84,0x83,0x83,0x85,0x88,0x8b,0x8d,0x92,0x93,0x96,0x98,0x99,0x98,0x97,0x95,
+0x93,0x92,0x90,0x8f,0x8f,0x90,0x91,0x92,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x90,0x90,0x90,0x90,0x91,0x91,0x91,0x91,0x93,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x99,0x98,0x95,0x91,0x8d,0x8a,
+0x7b,0x77,0x73,0x73,0x74,0x75,0x74,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x76,0x78,0x79,0x79,0x78,0x75,0x74,
+0x6d,0x6b,0x6a,0x6e,0x74,0x79,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x76,0x75,
+0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,
+0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,
+0x69,0x69,0x68,0x68,0x68,0x67,0x67,0x67,0x66,0x67,0x6a,0x6c,0x6c,0x6c,0x6a,0x69,
+0x6b,0x6b,0x6d,0x6e,0x6f,0x6e,0x6e,0x6d,0x6e,0x6e,0x6d,0x6d,0x6d,0x6f,0x70,0x71,
+0x70,0x6f,0x6d,0x6b,0x6b,0x6a,0x6b,0x6b,0x6d,0x6c,0x6a,0x68,0x68,0x69,0x6a,0x6b,
+0x67,0x67,0x68,0x69,0x6a,0x6a,0x6b,0x6b,0x6b,0x6b,0x6c,0x6d,0x6e,0x6f,0x6f,0x70,
+0x6d,0x6c,0x6c,0x6b,0x6b,0x6c,0x6c,0x6d,0x6b,0x6b,0x6a,0x6a,0x69,0x69,0x68,0x68,
+0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6c,0x68,0x65,0x60,0x5a,0x54,0x50,0x4e,0x4c,
+0x4b,0x4b,0x4b,0x4c,0x4c,0x4c,0x4c,0x4c,0x49,0x49,0x49,0x49,0x48,0x48,0x48,0x47,
+0x47,0x47,0x47,0x47,0x48,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
+0x4a,0x4d,0x4f,0x4e,0x4e,0x55,0x63,0x6e,0x8c,0x8c,0x8c,0x8c,0x8a,0x88,0x85,0x83,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x84,0x84,0x85,0x85,0x86,0x86,0x87,0x87,
+0x86,0x85,0x84,0x84,0x86,0x89,0x8d,0x90,0x94,0x96,0x99,0x9a,0x9a,0x98,0x96,0x94,
+0x94,0x93,0x91,0x90,0x90,0x90,0x92,0x93,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,
+0x8f,0x8f,0x8f,0x90,0x90,0x90,0x90,0x91,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x99,0x99,0x99,0x98,0x94,0x90,0x8b,0x88,
+0x7a,0x77,0x73,0x73,0x75,0x76,0x74,0x72,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x77,0x79,0x7a,0x79,0x77,0x74,0x72,
+0x6c,0x6a,0x6a,0x6d,0x74,0x79,0x7b,0x7b,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7b,0x7b,0x7b,0x7b,0x7a,0x78,0x76,0x75,
+0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x77,0x75,0x75,0x76,0x77,0x78,0x79,0x7a,0x7a,
+0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,
+0x67,0x68,0x69,0x69,0x6a,0x6a,0x69,0x69,0x6b,0x6a,0x69,0x68,0x68,0x69,0x6a,0x6b,
+0x6a,0x6b,0x6c,0x6e,0x6f,0x6f,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x72,
+0x75,0x73,0x71,0x6e,0x6d,0x6c,0x6d,0x6d,0x6e,0x6d,0x6c,0x6a,0x6a,0x6c,0x6d,0x6e,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6c,0x6c,0x6d,0x6e,0x6f,0x70,0x70,0x71,
+0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6b,0x6a,0x6a,0x69,0x6a,0x6b,0x6b,
+0x6a,0x6a,0x6b,0x6c,0x6c,0x6d,0x6e,0x6e,0x67,0x63,0x5c,0x55,0x4f,0x4c,0x4b,0x4b,
+0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,
+0x4c,0x4e,0x4f,0x4f,0x4f,0x54,0x5c,0x62,0x82,0x8c,0x91,0x8c,0x8c,0x90,0x8b,0x80,
+0x83,0x83,0x82,0x82,0x81,0x82,0x82,0x82,0x84,0x85,0x87,0x88,0x88,0x87,0x86,0x85,
+0x83,0x84,0x86,0x8a,0x8d,0x90,0x93,0x94,0x95,0x96,0x96,0x97,0x97,0x97,0x97,0x96,
+0x94,0x93,0x91,0x90,0x8f,0x90,0x91,0x92,0x93,0x93,0x92,0x92,0x91,0x91,0x90,0x90,
+0x90,0x90,0x90,0x91,0x92,0x92,0x92,0x93,0x95,0x94,0x94,0x94,0x95,0x96,0x97,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x97,0x98,0x9a,0x98,0x90,0x85,0x7c,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x73,0x74,0x75,0x75,0x76,0x76,0x77,0x76,0x78,0x7a,0x7b,0x7a,0x77,0x73,0x70,
+0x6b,0x6c,0x6f,0x72,0x77,0x7b,0x7f,0x81,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,0x74,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x76,
+0x68,0x68,0x69,0x69,0x69,0x6a,0x69,0x69,0x69,0x69,0x68,0x68,0x68,0x69,0x6a,0x6b,
+0x6a,0x6b,0x6c,0x6d,0x6e,0x6e,0x6d,0x6c,0x6a,0x6b,0x6c,0x6d,0x6f,0x70,0x71,0x71,
+0x72,0x70,0x6e,0x6c,0x6b,0x6a,0x6b,0x6b,0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6b,0x6b,0x6c,0x6c,0x6d,0x6e,0x6f,0x6f,
+0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6b,
+0x69,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6c,0x67,0x63,0x5c,0x55,0x4f,0x4c,0x4b,0x4a,
+0x4b,0x4b,0x4a,0x4a,0x4a,0x4a,0x4a,0x4a,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,
+0x4c,0x4e,0x4f,0x4f,0x4f,0x54,0x5b,0x61,0x80,0x8c,0x91,0x8d,0x8c,0x8f,0x8b,0x81,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x85,0x85,0x87,0x88,0x88,0x87,0x86,0x86,
+0x85,0x87,0x89,0x8c,0x8f,0x92,0x94,0x95,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,
+0x94,0x93,0x91,0x90,0x90,0x90,0x91,0x92,0x93,0x93,0x93,0x92,0x92,0x91,0x91,0x91,
+0x90,0x90,0x91,0x91,0x92,0x92,0x92,0x93,0x94,0x94,0x93,0x93,0x94,0x95,0x97,0x97,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x97,0x98,0x99,0x98,0x91,0x86,0x7d,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,0x79,0x7a,0x7a,0x78,0x74,0x70,0x6e,
+0x6a,0x6c,0x6e,0x71,0x75,0x78,0x7b,0x7d,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,
+0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,
+0x68,0x68,0x68,0x69,0x69,0x69,0x6a,0x6a,0x67,0x67,0x67,0x67,0x68,0x6a,0x6b,0x6c,
+0x6b,0x6c,0x6c,0x6d,0x6c,0x6c,0x6a,0x6a,0x67,0x68,0x69,0x6a,0x6c,0x6e,0x6f,0x6f,
+0x6e,0x6d,0x6c,0x6a,0x69,0x69,0x69,0x69,0x6c,0x6b,0x6b,0x6a,0x6a,0x6b,0x6b,0x6c,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,0x6e,
+0x70,0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x68,0x68,0x69,0x69,
+0x68,0x69,0x69,0x69,0x69,0x6a,0x6a,0x6a,0x66,0x62,0x5b,0x54,0x4e,0x4b,0x4a,0x49,
+0x4b,0x4b,0x4b,0x4b,0x4a,0x4a,0x4a,0x49,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,
+0x4c,0x4d,0x4f,0x4e,0x4f,0x53,0x59,0x5f,0x7c,0x8a,0x92,0x8e,0x8c,0x8f,0x8b,0x82,
+0x7f,0x7f,0x80,0x80,0x81,0x81,0x81,0x81,0x85,0x86,0x87,0x88,0x89,0x88,0x88,0x87,
+0x8a,0x8b,0x8d,0x8f,0x92,0x95,0x96,0x98,0x97,0x97,0x96,0x95,0x94,0x93,0x92,0x92,
+0x93,0x93,0x92,0x91,0x90,0x91,0x91,0x92,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x93,0x92,0x92,0x92,0x93,0x94,0x95,0x96,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x96,0x97,0x99,0x98,0x91,0x87,0x7f,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,0x79,0x79,0x79,0x77,0x74,0x70,0x6c,0x6a,
+0x6b,0x6c,0x6e,0x71,0x74,0x76,0x78,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,
+0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,
+0x69,0x68,0x68,0x68,0x68,0x69,0x6a,0x6b,0x66,0x66,0x66,0x67,0x68,0x6a,0x6c,0x6d,
+0x6c,0x6c,0x6d,0x6c,0x6c,0x6a,0x68,0x67,0x65,0x65,0x67,0x68,0x6a,0x6b,0x6c,0x6d,
+0x6e,0x6d,0x6d,0x6c,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6a,0x6a,0x6b,0x6b,0x6b,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6c,0x6c,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,
+0x71,0x71,0x70,0x70,0x6f,0x6e,0x6d,0x6d,0x6b,0x6a,0x69,0x67,0x67,0x67,0x68,0x68,
+0x68,0x68,0x68,0x68,0x68,0x67,0x67,0x67,0x65,0x61,0x5a,0x53,0x4d,0x4a,0x49,0x49,
+0x4c,0x4c,0x4c,0x4b,0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,
+0x4b,0x4d,0x4f,0x4e,0x4e,0x51,0x57,0x5c,0x77,0x88,0x93,0x8f,0x8c,0x8e,0x8b,0x83,
+0x7e,0x7f,0x80,0x81,0x82,0x82,0x82,0x82,0x87,0x88,0x88,0x89,0x8a,0x8a,0x8a,0x8a,
+0x8f,0x90,0x91,0x93,0x95,0x97,0x98,0x99,0x98,0x97,0x95,0x93,0x91,0x90,0x90,0x90,
+0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x92,0x93,0x94,0x95,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x96,0x97,0x98,0x97,0x91,0x87,0x80,
+0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x75,0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x7a,0x79,0x77,0x74,0x71,0x6d,0x6a,0x68,
+0x6f,0x70,0x72,0x74,0x76,0x78,0x78,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,
+0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,
+0x69,0x69,0x68,0x67,0x68,0x69,0x6a,0x6b,0x67,0x67,0x67,0x67,0x69,0x6b,0x6d,0x6e,
+0x6d,0x6d,0x6d,0x6d,0x6b,0x6a,0x68,0x67,0x65,0x65,0x66,0x67,0x69,0x6a,0x6a,0x6b,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,
+0x70,0x70,0x70,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,0x6b,0x69,0x68,0x67,0x67,0x67,0x67,
+0x68,0x68,0x67,0x67,0x66,0x66,0x65,0x65,0x62,0x5e,0x58,0x51,0x4d,0x4a,0x4a,0x4a,
+0x4d,0x4d,0x4c,0x4b,0x4b,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,
+0x4a,0x4d,0x4e,0x4e,0x4e,0x50,0x55,0x59,0x70,0x84,0x92,0x90,0x8b,0x8c,0x89,0x83,
+0x7f,0x80,0x82,0x84,0x86,0x86,0x86,0x85,0x8a,0x8a,0x8a,0x8b,0x8b,0x8c,0x8d,0x8e,
+0x93,0x93,0x94,0x95,0x97,0x98,0x99,0x9a,0x97,0x96,0x93,0x91,0x8f,0x8e,0x8e,0x8e,
+0x92,0x92,0x92,0x93,0x93,0x93,0x92,0x92,0x93,0x93,0x94,0x94,0x94,0x94,0x94,0x94,
+0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x93,0x94,0x95,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x96,0x96,0x96,0x95,0x8f,0x86,0x7f,
+0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x79,0x7a,0x78,0x75,0x71,0x6e,0x6b,0x69,0x69,
+0x73,0x75,0x77,0x79,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,
+0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,
+0x6a,0x69,0x67,0x67,0x67,0x68,0x6b,0x6c,0x69,0x69,0x69,0x69,0x6a,0x6c,0x6d,0x6e,
+0x6d,0x6d,0x6d,0x6d,0x6c,0x6b,0x69,0x68,0x67,0x68,0x68,0x68,0x68,0x69,0x69,0x69,
+0x6e,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,0x6b,0x6c,0x6c,0x6d,0x6d,0x6c,0x6c,0x6b,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6c,0x6a,0x68,0x67,0x67,0x67,0x68,
+0x69,0x68,0x68,0x67,0x66,0x65,0x64,0x64,0x5f,0x5b,0x56,0x50,0x4c,0x4b,0x4b,0x4b,
+0x4e,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,
+0x4a,0x4c,0x4e,0x4e,0x4d,0x4f,0x53,0x57,0x6a,0x80,0x91,0x8f,0x89,0x89,0x87,0x82,
+0x82,0x84,0x87,0x89,0x8b,0x8b,0x8b,0x8a,0x8d,0x8c,0x8c,0x8d,0x8e,0x8f,0x91,0x92,
+0x95,0x95,0x96,0x96,0x97,0x98,0x98,0x99,0x96,0x94,0x91,0x8e,0x8d,0x8c,0x8d,0x8e,
+0x91,0x91,0x93,0x93,0x94,0x93,0x93,0x92,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,
+0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x92,0x93,0x94,0x95,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x96,0x95,0x94,0x92,0x8d,0x84,0x7d,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x78,0x76,0x72,0x6f,0x6d,0x6c,0x6c,0x6c,
+0x75,0x77,0x7a,0x7c,0x7e,0x7e,0x7d,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,
+0x6b,0x69,0x67,0x66,0x66,0x68,0x6b,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6c,0x6d,0x6e,
+0x6d,0x6d,0x6e,0x6e,0x6d,0x6c,0x6b,0x6a,0x6b,0x6b,0x6a,0x6a,0x69,0x69,0x68,0x68,
+0x6b,0x6c,0x6d,0x6f,0x70,0x6f,0x6e,0x6e,0x6c,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6a,0x6a,0x6a,0x69,0x69,0x69,0x69,0x69,
+0x69,0x69,0x6a,0x6b,0x6b,0x6c,0x6d,0x6d,0x6e,0x6d,0x6b,0x69,0x68,0x68,0x68,0x68,
+0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x63,0x5b,0x58,0x53,0x4f,0x4c,0x4b,0x4c,0x4d,
+0x4f,0x4e,0x4d,0x4c,0x4b,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,
+0x49,0x4c,0x4e,0x4e,0x4d,0x4e,0x51,0x55,0x64,0x7d,0x90,0x8f,0x88,0x87,0x86,0x81,
+0x85,0x88,0x8b,0x8f,0x91,0x91,0x90,0x8f,0x8f,0x8f,0x8f,0x8f,0x90,0x92,0x94,0x95,
+0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x94,0x92,0x8f,0x8c,0x8b,0x8c,0x8d,0x8e,
+0x90,0x91,0x93,0x94,0x95,0x94,0x93,0x93,0x94,0x94,0x94,0x95,0x95,0x96,0x96,0x96,
+0x94,0x94,0x94,0x93,0x93,0x92,0x92,0x92,0x93,0x92,0x92,0x92,0x92,0x94,0x95,0x96,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x94,0x92,0x90,0x8a,0x80,0x79,
+0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x75,0x73,0x70,0x6d,0x6c,0x6d,0x6f,0x70,
+0x73,0x75,0x79,0x7c,0x7e,0x7e,0x7d,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,
+0x6b,0x69,0x67,0x66,0x66,0x68,0x6b,0x6d,0x6e,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6c,0x6d,0x6e,0x6e,0x6e,0x6d,0x6c,0x6b,0x6d,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,
+0x67,0x69,0x6b,0x6d,0x6d,0x6d,0x6c,0x6b,0x6c,0x6d,0x6f,0x70,0x70,0x6f,0x6d,0x6c,
+0x6a,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x66,0x66,0x65,0x65,0x65,0x65,0x65,0x64,
+0x66,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6f,0x6e,0x6c,0x6a,0x69,0x68,0x68,0x69,
+0x6b,0x6a,0x69,0x68,0x66,0x65,0x64,0x63,0x59,0x56,0x52,0x4e,0x4c,0x4c,0x4d,0x4f,
+0x4f,0x4e,0x4e,0x4c,0x4b,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x48,0x48,0x48,0x49,0x49,0x49,0x4a,0x4a,
+0x49,0x4c,0x4e,0x4e,0x4d,0x4d,0x50,0x54,0x61,0x7b,0x90,0x8e,0x86,0x85,0x85,0x81,
+0x88,0x8a,0x8e,0x92,0x94,0x94,0x93,0x93,0x91,0x90,0x90,0x90,0x91,0x93,0x96,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x93,0x91,0x8e,0x8b,0x8a,0x8b,0x8d,0x8e,
+0x90,0x91,0x93,0x94,0x95,0x95,0x93,0x93,0x94,0x94,0x94,0x95,0x95,0x96,0x96,0x97,
+0x94,0x94,0x94,0x93,0x93,0x92,0x92,0x92,0x93,0x93,0x92,0x92,0x93,0x94,0x96,0x97,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x99,0x96,0x93,0x91,0x8e,0x88,0x7e,0x77,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x74,0x72,0x6e,0x6c,0x6c,0x6e,0x71,0x73,
+0x70,0x73,0x76,0x7a,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x78,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x77,
+0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x76,
+0x69,0x69,0x69,0x6a,0x6b,0x6b,0x6c,0x6c,0x6e,0x6d,0x6d,0x6c,0x6c,0x6d,0x6d,0x6e,
+0x6e,0x6d,0x6c,0x6b,0x6b,0x6c,0x6d,0x6d,0x6d,0x6c,0x6b,0x6a,0x69,0x69,0x6a,0x6b,
+0x67,0x67,0x67,0x67,0x68,0x6a,0x6b,0x6c,0x6d,0x6c,0x6b,0x6b,0x6b,0x6c,0x6d,0x6e,
+0x69,0x68,0x67,0x67,0x68,0x6a,0x6c,0x6d,0x69,0x69,0x68,0x67,0x68,0x68,0x69,0x6a,
+0x66,0x67,0x67,0x68,0x69,0x6a,0x6b,0x6b,0x6c,0x6d,0x6d,0x6c,0x6b,0x69,0x67,0x66,
+0x66,0x68,0x6b,0x6c,0x6c,0x6a,0x67,0x65,0x54,0x52,0x50,0x4e,0x4d,0x4d,0x4e,0x4e,
+0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
+0x48,0x47,0x47,0x46,0x46,0x45,0x44,0x44,0x47,0x47,0x47,0x48,0x49,0x49,0x4a,0x4a,
+0x4a,0x4d,0x4f,0x4f,0x4d,0x4c,0x4f,0x51,0x60,0x79,0x8c,0x8e,0x8b,0x8e,0x8f,0x8b,
+0x91,0x91,0x90,0x90,0x90,0x91,0x92,0x93,0x91,0x92,0x93,0x94,0x96,0x97,0x97,0x98,
+0x8c,0x8f,0x94,0x97,0x98,0x96,0x93,0x90,0x8c,0x8d,0x8b,0x8a,0x8d,0x91,0x90,0x8a,
+0x92,0x94,0x97,0x99,0x98,0x96,0x93,0x90,0x93,0x95,0x98,0x9a,0x9a,0x9a,0x98,0x97,
+0x92,0x93,0x92,0x8f,0x8b,0x8b,0x8f,0x93,0x90,0x91,0x93,0x94,0x96,0x97,0x98,0x99,
+0x9b,0x97,0x93,0x92,0x94,0x96,0x97,0x97,0x95,0x8d,0x8e,0x95,0x91,0x81,0x74,0x72,
+0x77,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x74,0x75,0x75,0x76,0x76,0x77,
+0x75,0x76,0x78,0x79,0x79,0x78,0x77,0x76,0x6f,0x6e,0x6d,0x6c,0x6c,0x6d,0x6e,0x6e,
+0x67,0x6b,0x72,0x78,0x7c,0x7d,0x7c,0x7b,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x76,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,
+0x69,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,0x6c,0x6b,0x6b,0x6b,0x6b,0x6c,0x6d,
+0x6d,0x6c,0x6b,0x6b,0x6b,0x6c,0x6d,0x6d,0x6e,0x6d,0x6c,0x6a,0x69,0x69,0x69,0x6a,
+0x67,0x67,0x67,0x67,0x68,0x69,0x6b,0x6c,0x6a,0x69,0x68,0x68,0x68,0x69,0x6a,0x6a,
+0x68,0x68,0x67,0x67,0x68,0x6a,0x6b,0x6d,0x6a,0x6a,0x69,0x68,0x68,0x68,0x69,0x69,
+0x68,0x68,0x68,0x69,0x69,0x69,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6b,0x6a,0x68,0x67,
+0x65,0x66,0x68,0x6a,0x69,0x66,0x63,0x60,0x53,0x51,0x4f,0x4d,0x4c,0x4c,0x4d,0x4d,
+0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,
+0x47,0x47,0x46,0x46,0x46,0x45,0x45,0x45,0x47,0x47,0x47,0x48,0x49,0x49,0x4a,0x4a,
+0x4a,0x4c,0x4f,0x4f,0x4c,0x4c,0x4e,0x51,0x5f,0x78,0x8b,0x8d,0x8c,0x8f,0x90,0x8c,
+0x90,0x90,0x8f,0x8f,0x90,0x91,0x93,0x94,0x96,0x95,0x96,0x96,0x97,0x97,0x95,0x94,
+0x95,0x98,0x9c,0x9e,0x9f,0x9c,0x99,0x97,0x97,0x96,0x93,0x92,0x95,0x98,0x98,0x97,
+0x97,0x98,0x9a,0x9b,0x9a,0x9a,0x99,0x9a,0x94,0x96,0x99,0x9b,0x99,0x95,0x92,0x91,
+0x97,0x98,0x99,0x97,0x94,0x93,0x93,0x94,0x8f,0x8f,0x8e,0x8e,0x8e,0x8e,0x8e,0x8f,
+0x93,0x94,0x92,0x8b,0x83,0x80,0x82,0x86,0x86,0x7f,0x81,0x8b,0x8b,0x7e,0x75,0x75,
+0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x73,0x74,0x74,0x75,0x75,0x76,0x77,0x77,
+0x77,0x78,0x79,0x79,0x79,0x77,0x76,0x75,0x6f,0x6e,0x6d,0x6c,0x6b,0x6c,0x6c,0x6d,
+0x6a,0x6d,0x73,0x78,0x7b,0x7c,0x7b,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x78,0x79,0x7a,0x7a,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x6a,0x6a,0x6b,0x6b,0x6c,0x6d,0x6d,0x6d,0x6b,0x6a,0x69,0x69,0x69,0x69,0x6a,0x6b,
+0x6a,0x6a,0x6a,0x69,0x6a,0x6b,0x6d,0x6e,0x6f,0x6e,0x6c,0x6a,0x69,0x68,0x68,0x69,
+0x68,0x67,0x67,0x67,0x67,0x69,0x6a,0x6b,0x67,0x66,0x66,0x65,0x65,0x65,0x66,0x67,
+0x68,0x68,0x67,0x67,0x68,0x69,0x6b,0x6b,0x6c,0x6b,0x69,0x68,0x68,0x68,0x68,0x69,
+0x6a,0x6a,0x69,0x69,0x69,0x69,0x68,0x68,0x69,0x6a,0x6a,0x6b,0x6b,0x6a,0x69,0x69,
+0x64,0x66,0x67,0x67,0x65,0x61,0x5d,0x5a,0x51,0x50,0x4f,0x4d,0x4c,0x4c,0x4c,0x4c,
+0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x47,0x47,0x47,0x48,0x49,0x49,0x4a,0x4a,
+0x49,0x4c,0x4f,0x4e,0x4c,0x4c,0x4e,0x51,0x5e,0x76,0x8b,0x8d,0x8c,0x91,0x92,0x8e,
+0x8e,0x8e,0x8e,0x8e,0x8f,0x91,0x93,0x94,0x9a,0x99,0x97,0x98,0x98,0x95,0x8f,0x8a,
+0x91,0x93,0x95,0x96,0x96,0x93,0x90,0x8e,0x92,0x8e,0x8c,0x8c,0x8d,0x8f,0x92,0x96,
+0x92,0x92,0x91,0x8e,0x8c,0x8c,0x90,0x94,0x92,0x96,0x9b,0x9a,0x94,0x8c,0x86,0x83,
+0x80,0x82,0x85,0x86,0x84,0x80,0x7c,0x79,0x78,0x77,0x75,0x73,0x71,0x71,0x71,0x71,
+0x87,0x8f,0x91,0x84,0x6e,0x63,0x69,0x74,0x75,0x6e,0x72,0x7f,0x82,0x7a,0x74,0x77,
+0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,
+0x79,0x79,0x79,0x79,0x77,0x75,0x74,0x72,0x6e,0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6b,
+0x6d,0x70,0x74,0x78,0x7b,0x7b,0x7a,0x79,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,0x6e,0x6e,0x6a,0x69,0x68,0x67,0x67,0x68,0x69,0x6a,
+0x69,0x69,0x69,0x69,0x69,0x6b,0x6c,0x6d,0x70,0x6e,0x6c,0x6a,0x69,0x68,0x68,0x68,
+0x68,0x68,0x67,0x67,0x68,0x69,0x6a,0x6b,0x68,0x67,0x66,0x65,0x65,0x66,0x66,0x67,
+0x68,0x68,0x68,0x68,0x68,0x69,0x6a,0x6a,0x6d,0x6c,0x6a,0x69,0x68,0x68,0x68,0x68,
+0x6c,0x6b,0x6b,0x6a,0x69,0x68,0x67,0x67,0x67,0x68,0x69,0x6a,0x6b,0x6b,0x6a,0x6a,
+0x67,0x68,0x68,0x67,0x64,0x5f,0x5a,0x56,0x50,0x4f,0x4e,0x4d,0x4c,0x4b,0x4b,0x4b,
+0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,
+0x44,0x44,0x45,0x46,0x46,0x47,0x47,0x48,0x47,0x47,0x47,0x48,0x49,0x49,0x4a,0x4a,
+0x49,0x4c,0x4e,0x4e,0x4c,0x4b,0x4e,0x51,0x5c,0x75,0x8a,0x8d,0x8d,0x92,0x94,0x90,
+0x8c,0x8c,0x8d,0x8e,0x8f,0x92,0x94,0x95,0x9c,0x99,0x96,0x96,0x96,0x90,0x86,0x7d,
+0x7a,0x7a,0x7b,0x7a,0x79,0x76,0x74,0x72,0x77,0x71,0x70,0x73,0x73,0x72,0x77,0x82,
+0x85,0x84,0x7f,0x76,0x6e,0x6d,0x72,0x79,0x8b,0x93,0x99,0x97,0x8d,0x80,0x76,0x72,
+0x64,0x66,0x6b,0x6f,0x70,0x6c,0x64,0x5d,0x63,0x61,0x5f,0x5d,0x5c,0x5d,0x5f,0x61,
+0x7b,0x8b,0x93,0x81,0x62,0x52,0x5d,0x6f,0x6f,0x68,0x6a,0x77,0x7b,0x75,0x72,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x77,0x77,0x78,0x78,
+0x7b,0x7a,0x79,0x77,0x75,0x73,0x71,0x70,0x6d,0x6c,0x6b,0x6a,0x69,0x69,0x6a,0x6a,
+0x70,0x72,0x76,0x79,0x7a,0x7a,0x79,0x78,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x6a,0x6a,0x6b,0x6b,0x6c,0x6d,0x6d,0x6d,0x6a,0x69,0x68,0x67,0x67,0x68,0x69,0x6a,
+0x6a,0x69,0x69,0x69,0x69,0x6b,0x6c,0x6d,0x6f,0x6e,0x6c,0x6a,0x69,0x68,0x68,0x69,
+0x6a,0x69,0x69,0x68,0x68,0x69,0x6a,0x6b,0x6b,0x6b,0x69,0x68,0x68,0x68,0x69,0x69,
+0x67,0x67,0x68,0x68,0x69,0x69,0x68,0x68,0x6c,0x6b,0x6a,0x69,0x68,0x68,0x69,0x69,
+0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x67,0x66,0x67,0x69,0x6a,0x6b,0x6b,0x6b,0x6a,
+0x6a,0x6b,0x6b,0x69,0x64,0x5e,0x59,0x55,0x4f,0x4f,0x4e,0x4e,0x4d,0x4c,0x4a,0x4a,
+0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,
+0x44,0x44,0x45,0x46,0x46,0x47,0x47,0x48,0x47,0x47,0x47,0x48,0x49,0x49,0x4a,0x4a,
+0x49,0x4c,0x4e,0x4e,0x4c,0x4b,0x4e,0x50,0x5c,0x75,0x8a,0x8e,0x8d,0x92,0x95,0x91,
+0x8d,0x8d,0x8d,0x8e,0x90,0x92,0x94,0x95,0x9a,0x96,0x92,0x93,0x93,0x8b,0x7d,0x70,
+0x64,0x63,0x62,0x61,0x5f,0x5d,0x5b,0x5a,0x5c,0x56,0x58,0x62,0x61,0x5a,0x62,0x72,
+0x80,0x7e,0x76,0x68,0x59,0x54,0x59,0x61,0x83,0x8d,0x97,0x94,0x86,0x74,0x67,0x62,
+0x60,0x62,0x68,0x70,0x75,0x72,0x69,0x61,0x61,0x5f,0x5c,0x5b,0x5c,0x60,0x64,0x67,
+0x73,0x88,0x95,0x83,0x61,0x50,0x5e,0x74,0x74,0x6b,0x6a,0x74,0x78,0x71,0x6f,0x73,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x79,
+0x7b,0x79,0x77,0x75,0x72,0x70,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6b,
+0x73,0x74,0x77,0x79,0x7a,0x7a,0x79,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,
+0x69,0x69,0x6a,0x6a,0x6b,0x6c,0x6c,0x6c,0x6b,0x6a,0x69,0x69,0x69,0x69,0x6a,0x6b,
+0x6c,0x6b,0x6a,0x6a,0x6a,0x6a,0x6b,0x6c,0x6e,0x6d,0x6b,0x6a,0x69,0x69,0x6a,0x6a,
+0x6c,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6c,0x6e,0x6d,0x6b,0x6a,0x69,0x69,0x6a,0x6a,
+0x67,0x67,0x68,0x69,0x69,0x68,0x67,0x67,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6b,
+0x6c,0x6c,0x6b,0x6a,0x6a,0x69,0x68,0x68,0x66,0x67,0x69,0x6a,0x6a,0x6a,0x6a,0x69,
+0x6b,0x6b,0x6b,0x68,0x64,0x5d,0x57,0x53,0x4f,0x4f,0x4f,0x4f,0x4e,0x4c,0x4b,0x4a,
+0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,0x47,0x47,0x47,0x47,0x47,
+0x45,0x45,0x45,0x46,0x46,0x46,0x47,0x47,0x47,0x47,0x47,0x48,0x49,0x49,0x4a,0x4a,
+0x48,0x4b,0x4e,0x4d,0x4b,0x4b,0x4d,0x50,0x5d,0x76,0x8b,0x8e,0x8e,0x92,0x94,0x91,
+0x8f,0x8f,0x8f,0x8f,0x90,0x92,0x94,0x95,0x99,0x93,0x8f,0x91,0x93,0x8b,0x78,0x68,
+0x5c,0x5b,0x58,0x56,0x54,0x53,0x52,0x52,0x53,0x4d,0x55,0x65,0x64,0x59,0x60,0x74,
+0x83,0x83,0x7c,0x6a,0x57,0x4e,0x53,0x5a,0x7c,0x8a,0x97,0x95,0x83,0x6d,0x5f,0x5a,
+0x5e,0x5f,0x65,0x70,0x7a,0x7c,0x74,0x6c,0x5e,0x5b,0x58,0x56,0x57,0x5b,0x61,0x64,
+0x71,0x87,0x94,0x84,0x64,0x54,0x62,0x77,0x7b,0x70,0x6d,0x74,0x76,0x70,0x6e,0x73,
+0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,
+0x79,0x77,0x74,0x71,0x6f,0x6d,0x6c,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6d,
+0x74,0x75,0x77,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,
+0x68,0x68,0x69,0x69,0x6a,0x6b,0x6b,0x6b,0x6d,0x6c,0x6b,0x6b,0x6b,0x6b,0x6c,0x6d,
+0x6f,0x6e,0x6c,0x6b,0x6a,0x6a,0x6b,0x6b,0x6c,0x6b,0x6a,0x6a,0x6a,0x6a,0x6b,0x6c,
+0x6e,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,0x6d,0x6c,0x6b,0x69,0x68,0x68,0x69,0x69,
+0x66,0x67,0x68,0x69,0x69,0x68,0x67,0x66,0x69,0x69,0x69,0x69,0x69,0x6b,0x6c,0x6d,
+0x6c,0x6b,0x6b,0x6a,0x6a,0x69,0x69,0x69,0x67,0x68,0x69,0x6a,0x6a,0x6a,0x69,0x68,
+0x68,0x68,0x68,0x65,0x60,0x5a,0x54,0x50,0x50,0x50,0x51,0x51,0x4f,0x4e,0x4c,0x4a,
+0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0x48,
+0x47,0x47,0x46,0x46,0x46,0x45,0x45,0x45,0x47,0x47,0x47,0x48,0x49,0x49,0x4a,0x4a,
+0x48,0x4b,0x4d,0x4d,0x4b,0x4b,0x4d,0x50,0x5e,0x77,0x8c,0x8e,0x8e,0x92,0x94,0x90,
+0x91,0x91,0x91,0x91,0x91,0x93,0x94,0x95,0x99,0x93,0x90,0x93,0x96,0x8e,0x79,0x67,
+0x59,0x57,0x54,0x51,0x50,0x4f,0x4f,0x50,0x53,0x4e,0x5c,0x72,0x71,0x61,0x66,0x7d,
+0x81,0x83,0x7f,0x6f,0x5b,0x50,0x55,0x5d,0x79,0x8a,0x9b,0x99,0x85,0x6d,0x5e,0x58,
+0x57,0x57,0x5c,0x6a,0x79,0x7f,0x7a,0x73,0x61,0x5d,0x56,0x52,0x50,0x53,0x57,0x5b,
+0x73,0x85,0x91,0x82,0x64,0x55,0x60,0x72,0x7c,0x71,0x6c,0x73,0x75,0x70,0x6f,0x75,
+0x75,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x76,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,
+0x76,0x74,0x71,0x6e,0x6c,0x6b,0x6a,0x6a,0x68,0x68,0x68,0x69,0x6b,0x6d,0x6f,0x70,
+0x74,0x75,0x77,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x78,0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7a,
+0x67,0x67,0x68,0x68,0x69,0x6a,0x6a,0x6a,0x6e,0x6d,0x6d,0x6c,0x6c,0x6d,0x6d,0x6e,
+0x71,0x70,0x6e,0x6c,0x6b,0x6a,0x6a,0x6a,0x6a,0x6a,0x69,0x69,0x6a,0x6b,0x6c,0x6d,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6d,0x6e,0x6e,0x6b,0x6a,0x69,0x67,0x66,0x66,0x66,0x67,
+0x66,0x67,0x68,0x69,0x69,0x68,0x66,0x65,0x68,0x68,0x68,0x69,0x6a,0x6c,0x6e,0x6f,
+0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x6a,0x6a,0x68,0x68,0x69,0x6a,0x6a,0x69,0x68,0x67,
+0x65,0x65,0x64,0x62,0x5d,0x57,0x51,0x4d,0x50,0x51,0x51,0x51,0x50,0x4e,0x4c,0x4b,
+0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,0x48,0x49,0x49,0x49,0x49,0x49,0x49,0x49,0x49,
+0x48,0x47,0x47,0x46,0x46,0x45,0x44,0x44,0x47,0x47,0x47,0x48,0x49,0x49,0x4a,0x4a,
+0x48,0x4b,0x4d,0x4d,0x4b,0x4a,0x4d,0x50,0x5f,0x78,0x8c,0x8f,0x8e,0x92,0x93,0x8f,
+0x93,0x93,0x92,0x92,0x92,0x93,0x94,0x95,0x9b,0x95,0x91,0x96,0x9a,0x91,0x7c,0x69,
+0x54,0x52,0x4f,0x4c,0x4a,0x4a,0x4b,0x4c,0x51,0x4e,0x5f,0x78,0x77,0x65,0x6a,0x82,
+0x78,0x7d,0x7c,0x6e,0x5a,0x50,0x55,0x5d,0x7a,0x8c,0x9e,0x9d,0x88,0x6f,0x5f,0x5a,
+0x58,0x57,0x5c,0x6b,0x7d,0x86,0x84,0x7d,0x72,0x6c,0x64,0x5c,0x58,0x59,0x5c,0x5e,
+0x75,0x84,0x8d,0x7f,0x63,0x54,0x5b,0x6a,0x7a,0x6e,0x6a,0x71,0x74,0x70,0x71,0x78,
+0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,
+0x74,0x72,0x6f,0x6c,0x6a,0x69,0x69,0x6a,0x67,0x67,0x68,0x69,0x6c,0x6e,0x71,0x72,
+0x74,0x75,0x77,0x79,0x7a,0x7c,0x7c,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x78,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7d,0x7c,0x7b,0x7a,0x78,0x78,0x77,0x75,0x75,0x76,0x77,0x78,0x79,0x79,0x7a,
+0x67,0x66,0x65,0x64,0x65,0x67,0x68,0x6a,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6c,0x6b,0x6a,0x69,0x68,0x68,0x69,0x69,0x68,0x67,0x67,0x67,0x67,0x69,0x6a,0x6b,
+0x69,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6c,0x6b,0x6a,0x68,0x67,0x65,0x65,0x65,0x65,
+0x6b,0x6a,0x69,0x68,0x68,0x68,0x69,0x6a,0x66,0x66,0x66,0x67,0x68,0x6b,0x6d,0x6e,
+0x6e,0x6d,0x6a,0x68,0x67,0x67,0x67,0x68,0x66,0x66,0x66,0x66,0x67,0x68,0x6a,0x6b,
+0x67,0x64,0x5f,0x5a,0x55,0x51,0x4f,0x4e,0x4f,0x4f,0x4f,0x4f,0x4e,0x4d,0x4b,0x4a,
+0x4b,0x4a,0x49,0x48,0x47,0x47,0x48,0x48,0x48,0x48,0x48,0x48,0x47,0x47,0x47,0x47,
+0x47,0x47,0x47,0x46,0x46,0x46,0x46,0x45,0x44,0x44,0x45,0x46,0x47,0x48,0x48,0x49,
+0x4b,0x4a,0x49,0x4c,0x4f,0x4f,0x4d,0x4a,0x5a,0x76,0x8f,0x93,0x90,0x93,0x95,0x93,
+0x90,0x90,0x90,0x91,0x92,0x94,0x95,0x96,0x91,0x93,0x92,0x90,0x96,0x96,0x80,0x66,
+0x57,0x56,0x53,0x4e,0x4b,0x4d,0x53,0x58,0x63,0x66,0x6b,0x71,0x77,0x7b,0x7d,0x7e,
+0x80,0x7d,0x75,0x66,0x58,0x52,0x55,0x5b,0x77,0x8f,0x98,0x95,0x8b,0x70,0x58,0x58,
+0x56,0x59,0x61,0x6d,0x7b,0x84,0x88,0x88,0x75,0x6c,0x61,0x5a,0x58,0x5a,0x5b,0x5b,
+0x71,0x87,0x95,0x86,0x64,0x4f,0x55,0x66,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x78,0x77,0x78,0x7a,0x7a,0x7a,0x78,0x76,0x75,
+0x71,0x6f,0x6c,0x69,0x68,0x69,0x6b,0x6d,0x68,0x67,0x66,0x65,0x67,0x6a,0x6e,0x70,
+0x70,0x74,0x79,0x7a,0x79,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,0x78,0x77,
+0x7a,0x79,0x77,0x76,0x76,0x77,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x76,0x76,
+0x7b,0x7a,0x7a,0x79,0x78,0x77,0x76,0x76,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,
+0x67,0x67,0x66,0x65,0x66,0x67,0x69,0x6a,0x6e,0x6d,0x6c,0x6b,0x6b,0x6c,0x6d,0x6d,
+0x6c,0x6b,0x6a,0x69,0x68,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x67,0x68,0x69,0x6a,
+0x68,0x68,0x68,0x69,0x69,0x6a,0x6a,0x6a,0x6a,0x69,0x68,0x67,0x66,0x66,0x67,0x67,
+0x6a,0x69,0x68,0x67,0x67,0x68,0x68,0x69,0x68,0x67,0x67,0x67,0x68,0x6a,0x6b,0x6c,
+0x6d,0x6c,0x6a,0x68,0x67,0x66,0x67,0x67,0x66,0x66,0x65,0x65,0x66,0x68,0x69,0x6a,
+0x67,0x64,0x5f,0x59,0x54,0x51,0x4f,0x4e,0x4e,0x4e,0x4f,0x4f,0x4e,0x4d,0x4b,0x4a,
+0x4a,0x4a,0x49,0x48,0x48,0x48,0x49,0x4a,0x49,0x49,0x48,0x48,0x48,0x48,0x47,0x47,
+0x47,0x47,0x47,0x47,0x46,0x46,0x46,0x46,0x44,0x44,0x45,0x46,0x47,0x48,0x49,0x49,
+0x4b,0x4a,0x4a,0x4c,0x4e,0x4e,0x4d,0x4b,0x5e,0x79,0x90,0x93,0x90,0x94,0x96,0x93,
+0x90,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x91,0x94,0x92,0x91,0x96,0x96,0x80,0x65,
+0x54,0x53,0x50,0x4b,0x49,0x4a,0x4e,0x52,0x67,0x6a,0x6e,0x73,0x78,0x7b,0x7d,0x7e,
+0x7e,0x7a,0x70,0x61,0x52,0x4e,0x53,0x5a,0x78,0x90,0x99,0x95,0x8b,0x70,0x58,0x59,
+0x57,0x5a,0x63,0x6f,0x7a,0x80,0x81,0x7e,0x6f,0x67,0x5d,0x57,0x56,0x59,0x5a,0x5b,
+0x6f,0x85,0x95,0x86,0x64,0x50,0x57,0x68,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x79,0x77,0x75,0x74,
+0x70,0x6e,0x6b,0x69,0x68,0x69,0x6b,0x6c,0x68,0x67,0x66,0x66,0x67,0x6a,0x6d,0x6f,
+0x6f,0x74,0x79,0x7a,0x7a,0x79,0x7b,0x7d,0x7f,0x7e,0x7d,0x7c,0x7b,0x79,0x78,0x78,
+0x7a,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,
+0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,
+0x68,0x68,0x67,0x67,0x67,0x68,0x69,0x6a,0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6c,0x6d,
+0x6b,0x6b,0x69,0x68,0x68,0x69,0x69,0x6a,0x6b,0x6a,0x69,0x67,0x67,0x67,0x67,0x68,
+0x65,0x65,0x66,0x66,0x66,0x67,0x67,0x67,0x68,0x67,0x67,0x66,0x67,0x68,0x69,0x6a,
+0x68,0x67,0x67,0x66,0x66,0x67,0x68,0x68,0x6a,0x69,0x68,0x68,0x68,0x68,0x69,0x6a,
+0x6b,0x6a,0x69,0x67,0x66,0x66,0x66,0x66,0x65,0x65,0x64,0x64,0x65,0x66,0x68,0x69,
+0x67,0x64,0x5e,0x58,0x54,0x51,0x4f,0x4f,0x4c,0x4d,0x4d,0x4e,0x4d,0x4c,0x4b,0x4a,
+0x49,0x49,0x48,0x48,0x48,0x49,0x4a,0x4b,0x4a,0x49,0x49,0x49,0x49,0x48,0x48,0x48,
+0x47,0x47,0x47,0x47,0x46,0x46,0x46,0x46,0x44,0x44,0x45,0x46,0x47,0x48,0x49,0x49,
+0x4c,0x4b,0x4b,0x4c,0x4d,0x4d,0x4e,0x4e,0x63,0x7b,0x8f,0x91,0x90,0x94,0x95,0x92,
+0x90,0x91,0x91,0x92,0x93,0x94,0x95,0x95,0x92,0x95,0x93,0x92,0x97,0x96,0x7f,0x64,
+0x51,0x50,0x4d,0x4b,0x4b,0x4d,0x4f,0x52,0x6e,0x70,0x73,0x76,0x79,0x7c,0x7d,0x7e,
+0x7d,0x78,0x6c,0x5b,0x4d,0x4a,0x51,0x5a,0x79,0x90,0x99,0x94,0x8b,0x70,0x58,0x59,
+0x59,0x5d,0x67,0x72,0x7b,0x7d,0x78,0x73,0x66,0x5f,0x57,0x52,0x54,0x57,0x5a,0x5b,
+0x6c,0x83,0x93,0x85,0x65,0x52,0x5a,0x6b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,
+0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x7b,0x7b,0x7a,0x79,0x78,0x76,0x73,0x72,
+0x6e,0x6d,0x6a,0x68,0x68,0x68,0x6a,0x6b,0x68,0x68,0x66,0x66,0x67,0x69,0x6c,0x6d,
+0x6e,0x73,0x78,0x7a,0x7a,0x79,0x7b,0x7c,0x7e,0x7e,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,
+0x7a,0x79,0x78,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,
+0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x69,0x69,0x68,0x68,0x68,0x69,0x69,0x69,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,
+0x6b,0x6a,0x69,0x68,0x68,0x69,0x6a,0x6a,0x6d,0x6b,0x6a,0x68,0x66,0x66,0x66,0x66,
+0x63,0x63,0x63,0x63,0x64,0x64,0x64,0x64,0x66,0x65,0x65,0x66,0x67,0x69,0x6a,0x6c,
+0x67,0x66,0x65,0x65,0x65,0x66,0x67,0x68,0x6c,0x6b,0x6a,0x68,0x67,0x67,0x68,0x68,
+0x69,0x69,0x68,0x67,0x66,0x66,0x66,0x65,0x65,0x65,0x64,0x64,0x64,0x65,0x67,0x68,
+0x67,0x63,0x5d,0x57,0x53,0x50,0x50,0x50,0x4c,0x4d,0x4d,0x4d,0x4d,0x4c,0x4b,0x4a,
+0x49,0x48,0x48,0x47,0x48,0x49,0x4a,0x4b,0x4a,0x4a,0x4a,0x49,0x49,0x49,0x48,0x48,
+0x48,0x48,0x47,0x47,0x47,0x46,0x46,0x46,0x44,0x45,0x45,0x46,0x47,0x48,0x49,0x4a,
+0x4c,0x4d,0x4d,0x4d,0x4c,0x4d,0x50,0x53,0x67,0x7c,0x8c,0x8d,0x8c,0x91,0x92,0x8e,
+0x90,0x91,0x92,0x94,0x94,0x95,0x95,0x94,0x93,0x95,0x94,0x93,0x98,0x96,0x7e,0x62,
+0x4e,0x4d,0x4e,0x52,0x57,0x5c,0x5e,0x5f,0x76,0x77,0x78,0x7a,0x7b,0x7d,0x7d,0x7e,
+0x7e,0x79,0x6c,0x5a,0x4c,0x4a,0x53,0x5c,0x7b,0x91,0x99,0x94,0x8b,0x70,0x59,0x59,
+0x5d,0x62,0x6c,0x78,0x7e,0x7c,0x74,0x6c,0x60,0x5a,0x52,0x50,0x52,0x56,0x59,0x5a,
+0x6a,0x81,0x92,0x85,0x66,0x54,0x5d,0x6f,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,
+0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,0x7c,0x7b,0x7a,0x78,0x75,0x73,0x71,0x70,
+0x6c,0x6b,0x6a,0x68,0x68,0x68,0x69,0x6a,0x68,0x68,0x67,0x67,0x67,0x69,0x6a,0x6b,
+0x6c,0x71,0x77,0x7a,0x7a,0x79,0x7a,0x7c,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x79,0x79,0x79,0x79,0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
+0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x76,
+0x69,0x69,0x69,0x69,0x69,0x69,0x68,0x68,0x69,0x68,0x68,0x67,0x68,0x69,0x6a,0x6b,
+0x6a,0x6a,0x69,0x68,0x68,0x69,0x6a,0x6b,0x6d,0x6c,0x6a,0x68,0x66,0x66,0x65,0x66,
+0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x62,0x63,0x63,0x64,0x64,0x66,0x68,0x6a,0x6c,
+0x66,0x65,0x65,0x64,0x65,0x66,0x67,0x68,0x6d,0x6c,0x6a,0x68,0x67,0x67,0x67,0x67,
+0x68,0x68,0x68,0x68,0x67,0x66,0x66,0x65,0x66,0x65,0x64,0x64,0x64,0x65,0x66,0x67,
+0x67,0x63,0x5c,0x56,0x52,0x50,0x50,0x51,0x4d,0x4e,0x4e,0x4e,0x4d,0x4c,0x4a,0x49,
+0x48,0x48,0x47,0x46,0x47,0x48,0x49,0x4a,0x4a,0x49,0x49,0x49,0x49,0x48,0x48,0x48,
+0x48,0x48,0x48,0x47,0x47,0x47,0x47,0x46,0x45,0x45,0x46,0x47,0x48,0x49,0x49,0x4a,
+0x4b,0x4e,0x4f,0x4e,0x4c,0x4e,0x54,0x5a,0x6b,0x7c,0x89,0x88,0x88,0x8e,0x8f,0x89,
+0x91,0x92,0x93,0x95,0x95,0x95,0x94,0x93,0x93,0x96,0x96,0x94,0x98,0x96,0x7d,0x61,
+0x4d,0x4d,0x52,0x5c,0x68,0x71,0x74,0x73,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,
+0x81,0x7c,0x6f,0x5f,0x51,0x4e,0x57,0x60,0x7c,0x93,0x9a,0x94,0x8a,0x6f,0x59,0x5a,
+0x5f,0x65,0x70,0x7b,0x81,0x7e,0x75,0x6d,0x60,0x5a,0x53,0x50,0x52,0x56,0x58,0x58,
+0x68,0x7f,0x91,0x85,0x67,0x56,0x5f,0x72,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x79,
+0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x7b,0x7a,0x78,0x75,0x73,0x70,0x6f,0x6e,
+0x6b,0x6a,0x6a,0x69,0x69,0x69,0x69,0x6a,0x69,0x68,0x68,0x67,0x67,0x68,0x69,0x69,
+0x6a,0x70,0x77,0x7a,0x7a,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x79,0x79,0x78,0x77,0x76,0x76,0x75,
+0x68,0x68,0x69,0x69,0x69,0x68,0x67,0x66,0x67,0x67,0x66,0x66,0x67,0x68,0x69,0x6a,
+0x6a,0x69,0x69,0x68,0x68,0x69,0x6b,0x6b,0x6d,0x6c,0x6a,0x68,0x66,0x66,0x66,0x66,
+0x63,0x63,0x63,0x62,0x62,0x62,0x62,0x61,0x62,0x62,0x62,0x63,0x64,0x67,0x69,0x6a,
+0x65,0x65,0x65,0x65,0x65,0x67,0x68,0x69,0x6d,0x6c,0x6a,0x68,0x67,0x67,0x67,0x67,
+0x68,0x68,0x69,0x69,0x69,0x68,0x67,0x66,0x67,0x66,0x65,0x65,0x65,0x65,0x66,0x67,
+0x66,0x62,0x5c,0x55,0x51,0x50,0x50,0x52,0x51,0x51,0x50,0x4f,0x4e,0x4b,0x49,0x48,
+0x48,0x47,0x46,0x45,0x45,0x45,0x46,0x46,0x49,0x48,0x48,0x48,0x48,0x47,0x47,0x47,
+0x48,0x48,0x48,0x48,0x47,0x47,0x47,0x47,0x45,0x45,0x46,0x47,0x48,0x49,0x4a,0x4a,
+0x4b,0x4f,0x51,0x4f,0x4d,0x50,0x5a,0x63,0x72,0x80,0x88,0x86,0x87,0x8e,0x8e,0x87,
+0x91,0x92,0x94,0x96,0x96,0x95,0x94,0x93,0x94,0x97,0x97,0x95,0x99,0x96,0x7d,0x60,
+0x4e,0x4f,0x55,0x64,0x75,0x81,0x82,0x7f,0x80,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x7f,
+0x81,0x7d,0x74,0x65,0x57,0x53,0x5a,0x61,0x7e,0x94,0x9a,0x94,0x8a,0x6f,0x59,0x5a,
+0x5e,0x63,0x6d,0x79,0x80,0x80,0x78,0x71,0x65,0x5f,0x57,0x54,0x54,0x56,0x56,0x56,
+0x67,0x7e,0x90,0x85,0x67,0x56,0x61,0x73,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,
+0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x77,0x75,0x72,0x6f,0x6e,0x6d,0x6d,
+0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x69,0x68,0x68,0x68,0x67,0x67,0x67,0x67,
+0x68,0x6e,0x76,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7a,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x76,0x76,
+0x67,0x68,0x68,0x69,0x68,0x67,0x65,0x64,0x66,0x65,0x65,0x65,0x66,0x67,0x69,0x6a,
+0x69,0x69,0x68,0x68,0x69,0x6a,0x6b,0x6c,0x6c,0x6b,0x69,0x68,0x67,0x66,0x67,0x67,
+0x64,0x64,0x64,0x63,0x63,0x62,0x62,0x62,0x61,0x61,0x61,0x61,0x63,0x65,0x66,0x68,
+0x66,0x65,0x65,0x65,0x66,0x67,0x69,0x6a,0x6d,0x6c,0x6a,0x68,0x67,0x67,0x67,0x67,
+0x68,0x69,0x6a,0x6a,0x6a,0x69,0x68,0x67,0x68,0x68,0x67,0x66,0x66,0x66,0x67,0x68,
+0x66,0x62,0x5b,0x54,0x50,0x50,0x51,0x52,0x54,0x54,0x53,0x51,0x4e,0x4b,0x48,0x47,
+0x48,0x47,0x46,0x44,0x43,0x42,0x43,0x43,0x47,0x47,0x47,0x47,0x46,0x46,0x46,0x46,
+0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,0x45,0x46,0x46,0x47,0x48,0x49,0x4a,0x4a,
+0x4a,0x4f,0x53,0x51,0x4e,0x52,0x5f,0x6a,0x7b,0x86,0x8b,0x88,0x8a,0x92,0x91,0x8a,
+0x91,0x93,0x95,0x97,0x97,0x95,0x93,0x92,0x95,0x98,0x98,0x96,0x9a,0x96,0x7c,0x5e,
+0x4f,0x4f,0x56,0x66,0x79,0x84,0x83,0x7e,0x82,0x81,0x80,0x7e,0x7e,0x7f,0x80,0x80,
+0x7e,0x7c,0x76,0x69,0x5b,0x56,0x59,0x5f,0x7f,0x94,0x9a,0x93,0x89,0x6f,0x59,0x5b,
+0x58,0x5d,0x66,0x72,0x7c,0x7e,0x7b,0x76,0x6d,0x66,0x5e,0x59,0x57,0x57,0x56,0x54,
+0x67,0x7f,0x90,0x85,0x67,0x57,0x61,0x73,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x76,0x74,0x71,0x6f,0x6d,0x6c,0x6c,0x6c,
+0x6a,0x6b,0x6b,0x6c,0x6c,0x6c,0x6b,0x6b,0x69,0x69,0x69,0x68,0x68,0x67,0x66,0x66,
+0x67,0x6d,0x75,0x7a,0x7a,0x79,0x79,0x7a,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x77,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x77,
+0x66,0x67,0x68,0x69,0x68,0x66,0x65,0x63,0x65,0x65,0x64,0x64,0x65,0x67,0x68,0x69,
+0x69,0x69,0x68,0x68,0x69,0x6a,0x6b,0x6c,0x6b,0x6a,0x69,0x67,0x67,0x67,0x68,0x68,
+0x65,0x65,0x65,0x64,0x64,0x63,0x63,0x62,0x60,0x60,0x60,0x60,0x61,0x63,0x65,0x66,
+0x66,0x66,0x65,0x66,0x67,0x68,0x6a,0x6b,0x6c,0x6b,0x69,0x68,0x67,0x67,0x68,0x68,
+0x68,0x69,0x6a,0x6b,0x6b,0x6a,0x68,0x67,0x69,0x68,0x67,0x66,0x66,0x67,0x68,0x68,
+0x66,0x62,0x5b,0x54,0x50,0x4f,0x51,0x53,0x56,0x56,0x54,0x52,0x4f,0x4b,0x48,0x46,
+0x49,0x47,0x45,0x43,0x41,0x41,0x40,0x40,0x47,0x46,0x46,0x46,0x46,0x45,0x45,0x45,
+0x49,0x49,0x48,0x48,0x48,0x47,0x47,0x47,0x45,0x46,0x47,0x47,0x49,0x49,0x4a,0x4b,
+0x49,0x4f,0x54,0x52,0x4f,0x54,0x62,0x6f,0x81,0x8b,0x8f,0x8b,0x8d,0x95,0x95,0x8d,
+0x91,0x93,0x95,0x97,0x97,0x96,0x93,0x92,0x95,0x99,0x98,0x97,0x9a,0x96,0x7c,0x5e,
+0x50,0x50,0x56,0x65,0x78,0x81,0x7e,0x77,0x83,0x82,0x80,0x7f,0x7e,0x7f,0x80,0x81,
+0x7a,0x7a,0x76,0x6a,0x5d,0x56,0x57,0x5c,0x80,0x95,0x9a,0x93,0x89,0x6f,0x59,0x5b,
+0x53,0x57,0x60,0x6c,0x77,0x7c,0x7b,0x78,0x73,0x6c,0x63,0x5c,0x5a,0x58,0x55,0x53,
+0x67,0x7f,0x91,0x85,0x68,0x57,0x61,0x73,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,
+0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x74,0x72,0x6f,0x6d,0x6b,0x6b,0x6b,0x6c,
+0x6b,0x6b,0x6c,0x6c,0x6d,0x6c,0x6c,0x6c,0x69,0x69,0x69,0x68,0x68,0x67,0x65,0x65,
+0x66,0x6d,0x75,0x7a,0x7a,0x79,0x79,0x79,0x77,0x77,0x78,0x79,0x79,0x7a,0x7b,0x7b,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,
+0x76,0x77,0x77,0x77,0x78,0x79,0x79,0x79,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,
+0x65,0x64,0x62,0x61,0x62,0x65,0x68,0x6a,0x63,0x65,0x68,0x6b,0x6c,0x6b,0x69,0x68,
+0x65,0x67,0x69,0x6b,0x6c,0x6c,0x6b,0x6a,0x6c,0x6a,0x67,0x64,0x62,0x61,0x61,0x62,
+0x62,0x63,0x64,0x65,0x65,0x63,0x62,0x60,0x5f,0x5f,0x60,0x62,0x63,0x64,0x65,0x65,
+0x64,0x63,0x63,0x64,0x66,0x69,0x6c,0x6e,0x6a,0x69,0x68,0x67,0x67,0x67,0x68,0x68,
+0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x6b,0x6b,0x6a,0x69,0x68,0x67,0x66,0x66,
+0x61,0x5c,0x54,0x4d,0x4a,0x4b,0x4f,0x52,0x54,0x56,0x58,0x58,0x54,0x4e,0x48,0x44,
+0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x41,0x40,0x40,0x40,0x41,0x42,0x44,0x45,
+0x46,0x47,0x49,0x4a,0x4a,0x49,0x47,0x46,0x45,0x46,0x46,0x47,0x48,0x49,0x4a,0x4a,
+0x49,0x50,0x55,0x54,0x51,0x56,0x64,0x70,0x85,0x87,0x89,0x8c,0x8f,0x90,0x91,0x91,
+0x96,0x95,0x93,0x92,0x92,0x94,0x96,0x98,0x98,0x9b,0x99,0x97,0x99,0x95,0x7b,0x5d,
+0x52,0x50,0x53,0x5e,0x6f,0x7d,0x83,0x83,0x84,0x7d,0x78,0x7a,0x82,0x85,0x80,0x79,
+0x7a,0x71,0x66,0x62,0x64,0x64,0x61,0x5d,0x82,0x95,0x99,0x93,0x8b,0x71,0x58,0x57,
+0x56,0x55,0x59,0x64,0x73,0x7d,0x7e,0x7c,0x7a,0x73,0x71,0x71,0x67,0x56,0x51,0x57,
+0x64,0x81,0x93,0x86,0x70,0x68,0x6c,0x70,0x72,0x73,0x75,0x77,0x78,0x78,0x78,0x77,
+0x77,0x78,0x7a,0x7b,0x79,0x75,0x71,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,
+0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6a,0x6b,0x6b,0x6b,0x6b,0x6a,0x6a,0x69,
+0x6d,0x73,0x79,0x7c,0x7b,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7d,0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,
+0x74,0x75,0x76,0x77,0x79,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,
+0x65,0x64,0x63,0x62,0x63,0x65,0x68,0x6a,0x65,0x66,0x69,0x6b,0x6b,0x6a,0x68,0x67,
+0x66,0x67,0x69,0x6a,0x6b,0x6a,0x6a,0x69,0x6b,0x69,0x67,0x64,0x62,0x62,0x62,0x62,
+0x62,0x63,0x64,0x65,0x65,0x63,0x62,0x61,0x5f,0x60,0x60,0x61,0x63,0x64,0x65,0x65,
+0x63,0x63,0x63,0x64,0x66,0x69,0x6b,0x6d,0x6a,0x69,0x68,0x67,0x66,0x67,0x67,0x68,
+0x66,0x66,0x66,0x67,0x67,0x67,0x68,0x68,0x6c,0x6c,0x6b,0x6a,0x68,0x67,0x66,0x66,
+0x61,0x5c,0x55,0x50,0x4e,0x4f,0x53,0x56,0x5a,0x5c,0x5e,0x5f,0x5c,0x57,0x50,0x4c,
+0x48,0x47,0x47,0x46,0x45,0x45,0x44,0x44,0x43,0x43,0x42,0x42,0x43,0x44,0x46,0x47,
+0x46,0x47,0x48,0x49,0x49,0x48,0x47,0x46,0x46,0x46,0x47,0x48,0x49,0x4a,0x4a,0x4b,
+0x4c,0x52,0x56,0x55,0x54,0x5c,0x6b,0x79,0x87,0x88,0x8b,0x8d,0x90,0x91,0x92,0x92,
+0x96,0x95,0x94,0x93,0x93,0x95,0x97,0x98,0x98,0x9a,0x99,0x97,0x99,0x94,0x7a,0x5d,
+0x50,0x4d,0x4f,0x58,0x66,0x71,0x76,0x77,0x7a,0x79,0x79,0x7b,0x7f,0x81,0x80,0x7e,
+0x79,0x70,0x67,0x64,0x66,0x67,0x63,0x5f,0x82,0x95,0x99,0x93,0x8b,0x71,0x58,0x57,
+0x57,0x55,0x57,0x61,0x70,0x7b,0x7e,0x7d,0x73,0x6d,0x6d,0x6f,0x66,0x57,0x53,0x5a,
+0x63,0x80,0x93,0x87,0x72,0x6a,0x6f,0x73,0x73,0x74,0x76,0x77,0x78,0x79,0x79,0x79,
+0x79,0x79,0x79,0x77,0x75,0x72,0x6f,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,
+0x6b,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x69,0x69,0x6a,0x6a,0x6a,0x69,0x69,0x68,0x68,
+0x6d,0x72,0x79,0x7c,0x7b,0x7a,0x7a,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,0x77,
+0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x66,0x65,0x64,0x63,0x64,0x65,0x68,0x69,0x67,0x68,0x69,0x6a,0x6a,0x69,0x67,0x65,
+0x66,0x67,0x68,0x69,0x69,0x68,0x67,0x67,0x69,0x68,0x66,0x64,0x63,0x62,0x62,0x62,
+0x63,0x64,0x64,0x65,0x64,0x63,0x62,0x61,0x5f,0x60,0x61,0x62,0x63,0x63,0x64,0x65,
+0x63,0x63,0x63,0x64,0x66,0x68,0x6a,0x6c,0x6a,0x69,0x68,0x67,0x66,0x67,0x67,0x68,
+0x65,0x65,0x66,0x67,0x68,0x69,0x69,0x6a,0x6e,0x6d,0x6c,0x6b,0x69,0x68,0x66,0x66,
+0x61,0x5e,0x59,0x55,0x54,0x57,0x5b,0x5d,0x63,0x65,0x67,0x68,0x66,0x61,0x5c,0x59,
+0x50,0x4f,0x4e,0x4c,0x4a,0x48,0x47,0x46,0x47,0x46,0x45,0x45,0x45,0x46,0x47,0x48,
+0x47,0x47,0x48,0x49,0x49,0x48,0x47,0x47,0x46,0x46,0x47,0x48,0x49,0x4a,0x4b,0x4b,
+0x50,0x53,0x55,0x55,0x58,0x64,0x76,0x84,0x89,0x8b,0x8d,0x8f,0x92,0x93,0x93,0x93,
+0x97,0x96,0x94,0x93,0x93,0x95,0x97,0x99,0x98,0x9a,0x99,0x96,0x99,0x94,0x79,0x5c,
+0x4d,0x4b,0x4b,0x50,0x59,0x61,0x65,0x66,0x6d,0x74,0x7a,0x7b,0x78,0x77,0x7c,0x81,
+0x79,0x72,0x6a,0x69,0x6b,0x6c,0x68,0x63,0x82,0x95,0x99,0x93,0x8b,0x71,0x58,0x57,
+0x59,0x55,0x55,0x5d,0x6c,0x78,0x7e,0x7f,0x6e,0x69,0x6a,0x6d,0x66,0x58,0x55,0x5c,
+0x61,0x7f,0x94,0x89,0x75,0x6e,0x74,0x78,0x73,0x75,0x76,0x78,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7a,0x76,0x72,0x6f,0x6d,0x6c,0x6b,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,
+0x6c,0x6c,0x6b,0x6a,0x69,0x68,0x68,0x67,0x68,0x68,0x68,0x67,0x67,0x67,0x67,0x67,
+0x6d,0x72,0x78,0x7c,0x7b,0x7a,0x7b,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,
+0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x77,
+0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x66,0x66,0x65,0x64,0x65,0x66,0x68,0x69,0x69,0x69,0x6a,0x6a,0x69,0x67,0x65,0x64,
+0x67,0x67,0x67,0x67,0x67,0x66,0x66,0x65,0x66,0x66,0x65,0x64,0x64,0x63,0x63,0x63,
+0x64,0x64,0x64,0x64,0x64,0x63,0x63,0x62,0x61,0x61,0x62,0x62,0x63,0x64,0x64,0x65,
+0x63,0x64,0x64,0x65,0x67,0x69,0x6a,0x6b,0x6a,0x69,0x68,0x67,0x67,0x67,0x68,0x68,
+0x64,0x64,0x65,0x67,0x68,0x69,0x6a,0x6b,0x6f,0x6e,0x6d,0x6b,0x6a,0x68,0x67,0x67,
+0x62,0x60,0x5d,0x5b,0x5b,0x5e,0x61,0x64,0x67,0x69,0x6c,0x6d,0x6c,0x69,0x65,0x63,
+0x5c,0x5b,0x59,0x57,0x54,0x51,0x4f,0x4e,0x4b,0x4a,0x48,0x46,0x46,0x45,0x46,0x46,
+0x47,0x48,0x48,0x48,0x48,0x48,0x48,0x47,0x47,0x47,0x48,0x49,0x4a,0x4b,0x4b,0x4c,
+0x50,0x51,0x53,0x55,0x5b,0x6a,0x7d,0x8b,0x8c,0x8d,0x8f,0x92,0x93,0x94,0x95,0x95,
+0x97,0x96,0x94,0x93,0x93,0x95,0x97,0x99,0x97,0x9a,0x98,0x96,0x98,0x93,0x78,0x5a,
+0x4e,0x4c,0x4b,0x4d,0x50,0x54,0x57,0x58,0x64,0x71,0x7c,0x7a,0x6f,0x69,0x70,0x7a,
+0x7c,0x76,0x71,0x71,0x75,0x75,0x6f,0x69,0x82,0x95,0x99,0x93,0x8b,0x71,0x58,0x57,
+0x5a,0x55,0x52,0x59,0x67,0x75,0x7c,0x7e,0x71,0x6c,0x6d,0x70,0x68,0x59,0x55,0x5b,
+0x5f,0x7e,0x94,0x8b,0x77,0x72,0x77,0x7b,0x75,0x76,0x77,0x79,0x7a,0x7a,0x7a,0x7a,
+0x7d,0x79,0x73,0x6e,0x6a,0x69,0x69,0x6a,0x67,0x68,0x69,0x6a,0x6b,0x6c,0x6c,0x6d,
+0x6c,0x6c,0x6b,0x69,0x68,0x67,0x66,0x65,0x67,0x67,0x66,0x66,0x66,0x67,0x68,0x68,
+0x6e,0x73,0x79,0x7b,0x7b,0x7a,0x7c,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x78,0x77,0x76,0x76,0x75,0x75,
+0x75,0x76,0x76,0x77,0x79,0x7a,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,
+0x67,0x67,0x66,0x66,0x66,0x67,0x68,0x68,0x6a,0x6a,0x69,0x69,0x68,0x66,0x65,0x64,
+0x68,0x67,0x67,0x66,0x66,0x66,0x66,0x66,0x65,0x65,0x65,0x65,0x65,0x65,0x65,0x65,
+0x65,0x65,0x64,0x64,0x64,0x63,0x63,0x64,0x63,0x63,0x63,0x64,0x64,0x65,0x65,0x65,
+0x64,0x65,0x66,0x67,0x69,0x6a,0x6a,0x6a,0x6b,0x6a,0x69,0x68,0x68,0x68,0x69,0x69,
+0x64,0x65,0x66,0x67,0x69,0x6a,0x6b,0x6b,0x6e,0x6d,0x6c,0x6b,0x6a,0x69,0x68,0x68,
+0x65,0x63,0x61,0x60,0x61,0x63,0x65,0x67,0x67,0x69,0x6b,0x6d,0x6e,0x6c,0x6a,0x68,
+0x68,0x67,0x65,0x62,0x5f,0x5d,0x5b,0x5a,0x50,0x4f,0x4c,0x49,0x47,0x45,0x44,0x44,
+0x48,0x48,0x48,0x47,0x47,0x48,0x48,0x48,0x47,0x48,0x48,0x49,0x4a,0x4b,0x4c,0x4d,
+0x4f,0x4f,0x50,0x55,0x5f,0x6f,0x81,0x8c,0x8e,0x8f,0x91,0x93,0x95,0x95,0x96,0x96,
+0x96,0x95,0x93,0x92,0x93,0x94,0x96,0x98,0x97,0x9a,0x98,0x95,0x97,0x92,0x77,0x59,
+0x50,0x50,0x4f,0x4d,0x4c,0x4d,0x50,0x52,0x62,0x71,0x7d,0x79,0x69,0x5f,0x65,0x6f,
+0x80,0x7c,0x79,0x7a,0x7e,0x7d,0x76,0x6f,0x82,0x95,0x99,0x93,0x8b,0x71,0x58,0x57,
+0x5a,0x55,0x52,0x57,0x65,0x72,0x78,0x7a,0x78,0x73,0x73,0x75,0x6b,0x59,0x53,0x58,
+0x5e,0x7d,0x94,0x8b,0x78,0x72,0x77,0x7b,0x76,0x77,0x78,0x79,0x7a,0x79,0x79,0x78,
+0x79,0x76,0x71,0x6c,0x68,0x67,0x68,0x69,0x66,0x67,0x67,0x68,0x69,0x6a,0x6b,0x6b,
+0x6b,0x6b,0x6a,0x68,0x67,0x66,0x65,0x64,0x68,0x67,0x67,0x67,0x68,0x6a,0x6c,0x6d,
+0x70,0x74,0x79,0x7b,0x7a,0x7a,0x7b,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x75,
+0x76,0x76,0x77,0x78,0x79,0x79,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,
+0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x68,0x69,0x69,0x69,0x68,0x67,0x66,0x65,0x65,
+0x68,0x67,0x66,0x66,0x66,0x66,0x67,0x68,0x64,0x64,0x66,0x67,0x68,0x68,0x67,0x67,
+0x66,0x66,0x64,0x64,0x63,0x63,0x64,0x65,0x65,0x65,0x65,0x66,0x66,0x66,0x67,0x67,
+0x66,0x67,0x68,0x6a,0x6b,0x6b,0x6b,0x6b,0x6c,0x6c,0x6b,0x6a,0x69,0x6a,0x6a,0x6b,
+0x66,0x66,0x67,0x68,0x69,0x6a,0x6a,0x6b,0x6b,0x6b,0x6a,0x6a,0x6a,0x69,0x69,0x69,
+0x67,0x67,0x65,0x64,0x64,0x65,0x66,0x67,0x65,0x66,0x69,0x6c,0x6d,0x6d,0x6c,0x6b,
+0x6f,0x6e,0x6c,0x6b,0x69,0x67,0x65,0x65,0x5a,0x58,0x54,0x4f,0x4b,0x47,0x45,0x44,
+0x49,0x48,0x47,0x47,0x47,0x47,0x48,0x49,0x48,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4d,
+0x50,0x50,0x52,0x59,0x65,0x74,0x83,0x8b,0x8f,0x90,0x92,0x94,0x95,0x96,0x96,0x96,
+0x95,0x94,0x92,0x91,0x91,0x93,0x95,0x97,0x97,0x9a,0x98,0x95,0x96,0x91,0x76,0x58,
+0x51,0x52,0x52,0x4f,0x4b,0x4a,0x4e,0x52,0x64,0x71,0x7c,0x79,0x6b,0x61,0x64,0x6a,
+0x82,0x7e,0x7d,0x7f,0x83,0x80,0x77,0x6f,0x82,0x95,0x99,0x93,0x8b,0x71,0x58,0x57,
+0x5a,0x55,0x52,0x58,0x64,0x6f,0x73,0x72,0x7a,0x75,0x75,0x76,0x6b,0x59,0x51,0x56,
+0x5d,0x7d,0x94,0x8b,0x77,0x70,0x74,0x78,0x78,0x79,0x79,0x79,0x79,0x77,0x76,0x75,
+0x73,0x71,0x6f,0x6c,0x6a,0x69,0x69,0x69,0x66,0x66,0x67,0x67,0x68,0x68,0x69,0x69,
+0x69,0x69,0x68,0x67,0x66,0x65,0x65,0x64,0x69,0x68,0x68,0x69,0x6b,0x6f,0x72,0x75,
+0x73,0x77,0x7a,0x7b,0x79,0x79,0x7a,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,
+0x68,0x68,0x68,0x68,0x68,0x68,0x67,0x67,0x69,0x68,0x67,0x67,0x66,0x66,0x66,0x66,
+0x67,0x67,0x66,0x65,0x66,0x68,0x69,0x6b,0x63,0x65,0x67,0x69,0x6a,0x6a,0x69,0x69,
+0x67,0x66,0x64,0x63,0x63,0x63,0x65,0x65,0x67,0x67,0x68,0x68,0x68,0x68,0x68,0x68,
+0x67,0x68,0x6a,0x6c,0x6d,0x6d,0x6c,0x6c,0x6e,0x6d,0x6c,0x6b,0x6b,0x6b,0x6c,0x6c,
+0x67,0x68,0x68,0x68,0x69,0x69,0x69,0x69,0x68,0x68,0x68,0x69,0x69,0x6a,0x6a,0x6a,
+0x6a,0x69,0x68,0x67,0x66,0x65,0x64,0x64,0x63,0x65,0x68,0x6b,0x6e,0x6e,0x6e,0x6e,
+0x6f,0x6f,0x6e,0x6d,0x6d,0x6c,0x6b,0x6b,0x67,0x63,0x5e,0x58,0x52,0x4d,0x49,0x48,
+0x49,0x48,0x47,0x46,0x46,0x47,0x48,0x49,0x48,0x49,0x4a,0x4b,0x4c,0x4d,0x4d,0x4e,
+0x53,0x54,0x57,0x60,0x6e,0x7b,0x85,0x8a,0x8f,0x90,0x92,0x94,0x95,0x96,0x95,0x95,
+0x93,0x92,0x91,0x90,0x90,0x92,0x94,0x95,0x97,0x9a,0x97,0x94,0x96,0x90,0x75,0x57,
+0x4f,0x52,0x53,0x4f,0x4a,0x49,0x4e,0x53,0x66,0x70,0x7b,0x7c,0x74,0x6e,0x6d,0x70,
+0x80,0x7d,0x7c,0x7f,0x82,0x7e,0x74,0x6a,0x82,0x95,0x99,0x93,0x8b,0x71,0x58,0x57,
+0x58,0x55,0x54,0x5a,0x65,0x6d,0x6d,0x6b,0x73,0x6e,0x70,0x73,0x6a,0x58,0x51,0x56,
+0x5d,0x7d,0x93,0x8a,0x75,0x6d,0x70,0x73,0x7a,0x7a,0x7a,0x79,0x77,0x75,0x73,0x71,
+0x6c,0x6c,0x6d,0x6e,0x6d,0x6c,0x6a,0x69,0x66,0x66,0x66,0x67,0x67,0x67,0x67,0x67,
+0x67,0x67,0x67,0x66,0x66,0x65,0x65,0x65,0x6a,0x6a,0x6a,0x6c,0x70,0x75,0x79,0x7c,
+0x76,0x79,0x7c,0x7b,0x79,0x77,0x79,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x79,
+0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x77,0x77,
+0x68,0x68,0x69,0x69,0x69,0x68,0x67,0x67,0x68,0x67,0x67,0x66,0x66,0x66,0x67,0x67,
+0x67,0x66,0x66,0x66,0x67,0x69,0x6b,0x6c,0x63,0x65,0x67,0x6a,0x6b,0x6b,0x6b,0x6a,
+0x67,0x66,0x64,0x63,0x63,0x63,0x65,0x66,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+0x68,0x6a,0x6c,0x6d,0x6e,0x6e,0x6d,0x6c,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x69,0x69,0x69,0x69,0x68,0x68,0x68,0x68,0x65,0x66,0x67,0x68,0x69,0x6a,0x6b,0x6b,
+0x6c,0x6b,0x6a,0x68,0x66,0x64,0x63,0x62,0x64,0x65,0x69,0x6c,0x6e,0x70,0x70,0x70,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6f,0x6c,0x66,0x5f,0x58,0x52,0x4d,0x4b,
+0x4a,0x49,0x47,0x46,0x46,0x47,0x49,0x4a,0x49,0x49,0x4a,0x4b,0x4c,0x4d,0x4e,0x4e,
+0x56,0x57,0x5c,0x67,0x74,0x80,0x88,0x8a,0x8f,0x90,0x92,0x94,0x95,0x95,0x95,0x95,
+0x93,0x91,0x90,0x8f,0x8f,0x91,0x93,0x94,0x97,0x99,0x97,0x94,0x95,0x90,0x75,0x57,
+0x4c,0x50,0x52,0x4e,0x49,0x48,0x4e,0x54,0x68,0x70,0x79,0x7e,0x7d,0x7a,0x77,0x77,
+0x7d,0x7a,0x7a,0x7d,0x80,0x7b,0x70,0x66,0x82,0x95,0x99,0x93,0x8b,0x71,0x58,0x57,
+0x57,0x55,0x55,0x5c,0x66,0x6c,0x6a,0x66,0x6b,0x67,0x6a,0x6f,0x68,0x58,0x52,0x58,
+0x5e,0x7d,0x93,0x89,0x74,0x6b,0x6d,0x6f,0x7b,0x7b,0x7a,0x78,0x76,0x73,0x70,0x6f,
+0x67,0x69,0x6c,0x6f,0x70,0x6e,0x6b,0x69,0x67,0x67,0x67,0x66,0x66,0x65,0x65,0x65,
+0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x6b,0x6b,0x6c,0x6e,0x72,0x78,0x7e,0x81,
+0x78,0x7b,0x7d,0x7b,0x78,0x76,0x78,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x79,
+0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x77,
+0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x67,0x68,0x68,0x69,0x68,0x67,0x66,0x65,
+0x64,0x65,0x67,0x69,0x6b,0x6c,0x6c,0x6c,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+0x65,0x65,0x65,0x66,0x67,0x67,0x68,0x68,0x68,0x68,0x69,0x6a,0x6b,0x6b,0x6b,0x6b,
+0x6a,0x6b,0x6c,0x6d,0x6e,0x6d,0x6d,0x6c,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6b,0x6a,0x68,0x67,0x67,0x67,0x68,
+0x68,0x69,0x6a,0x6b,0x6a,0x69,0x67,0x66,0x67,0x67,0x68,0x6a,0x6c,0x6d,0x6f,0x6f,
+0x6f,0x6f,0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x69,0x6a,0x6a,0x69,0x67,0x62,0x5e,0x5b,
+0x4d,0x4c,0x4a,0x49,0x48,0x49,0x4a,0x4b,0x48,0x4a,0x4c,0x4e,0x4f,0x4e,0x4c,0x4b,
+0x51,0x56,0x61,0x6d,0x78,0x80,0x86,0x89,0x8d,0x90,0x93,0x95,0x96,0x95,0x93,0x92,
+0x92,0x92,0x91,0x91,0x91,0x92,0x93,0x93,0x9e,0x97,0x93,0x98,0x9a,0x8b,0x6b,0x51,
+0x4c,0x4d,0x4e,0x4d,0x4c,0x4f,0x55,0x5b,0x69,0x71,0x7c,0x83,0x83,0x7f,0x7c,0x7a,
+0x83,0x7d,0x7d,0x82,0x7b,0x6b,0x64,0x67,0x82,0x93,0x96,0x92,0x8d,0x74,0x59,0x55,
+0x55,0x53,0x54,0x5b,0x67,0x72,0x7a,0x7d,0x78,0x78,0x75,0x6e,0x64,0x5d,0x59,0x59,
+0x5f,0x79,0x91,0x8d,0x74,0x62,0x65,0x71,0x79,0x77,0x74,0x71,0x6e,0x6d,0x6c,0x6b,
+0x69,0x6b,0x6e,0x70,0x70,0x6e,0x6c,0x6a,0x67,0x68,0x69,0x69,0x69,0x68,0x67,0x66,
+0x60,0x62,0x65,0x68,0x6b,0x6d,0x6e,0x6e,0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7d,0x7c,0x7b,0x79,0x78,0x77,0x78,0x79,0x7a,
+0x7b,0x7b,0x7a,0x79,0x7a,0x7a,0x7c,0x7c,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,
+0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x79,0x7d,0x7e,0x7f,0x80,0x80,0x7f,0x7e,0x7d,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x65,0x66,0x67,0x68,0x68,0x67,0x66,0x66,
+0x64,0x65,0x67,0x6a,0x6b,0x6c,0x6c,0x6c,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+0x65,0x65,0x66,0x66,0x67,0x68,0x68,0x68,0x69,0x6a,0x6a,0x6b,0x6c,0x6c,0x6c,0x6c,
+0x6c,0x6d,0x6e,0x6e,0x6e,0x6e,0x6d,0x6c,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x70,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6c,0x6a,0x69,0x68,0x68,0x68,0x69,
+0x68,0x69,0x6a,0x6a,0x6a,0x69,0x67,0x66,0x67,0x67,0x69,0x6a,0x6c,0x6e,0x6f,0x6f,
+0x70,0x70,0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6e,0x6e,0x6c,0x68,0x64,0x62,
+0x59,0x56,0x53,0x4f,0x4b,0x49,0x48,0x48,0x47,0x48,0x4a,0x4c,0x4e,0x4f,0x50,0x51,
+0x50,0x56,0x61,0x6d,0x79,0x81,0x87,0x89,0x8e,0x90,0x93,0x95,0x96,0x95,0x93,0x92,
+0x92,0x92,0x92,0x92,0x93,0x93,0x94,0x95,0x9a,0x94,0x91,0x97,0x9a,0x8c,0x6e,0x54,
+0x4b,0x4c,0x4c,0x4a,0x48,0x4a,0x50,0x55,0x6d,0x73,0x7b,0x7f,0x7f,0x7d,0x7c,0x7c,
+0x81,0x7d,0x7d,0x7f,0x74,0x64,0x60,0x67,0x83,0x93,0x96,0x91,0x8c,0x74,0x59,0x55,
+0x57,0x55,0x54,0x5a,0x63,0x6d,0x73,0x75,0x6a,0x6c,0x6c,0x67,0x5e,0x57,0x53,0x52,
+0x5f,0x7a,0x92,0x90,0x77,0x64,0x64,0x6e,0x76,0x74,0x72,0x6f,0x6d,0x6c,0x6b,0x6b,
+0x6a,0x6b,0x6d,0x6f,0x6f,0x6d,0x6a,0x69,0x68,0x68,0x69,0x69,0x69,0x68,0x67,0x66,
+0x64,0x66,0x69,0x6c,0x70,0x72,0x73,0x74,0x77,0x77,0x77,0x78,0x79,0x7a,0x7a,0x7b,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7b,
+0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x76,
+0x77,0x77,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x63,0x64,0x66,0x67,0x67,0x67,0x67,0x67,
+0x64,0x66,0x68,0x6a,0x6c,0x6d,0x6d,0x6d,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,
+0x66,0x66,0x66,0x67,0x68,0x68,0x69,0x69,0x6b,0x6b,0x6c,0x6c,0x6d,0x6e,0x6e,0x6f,
+0x6f,0x6f,0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,0x6b,0x6a,0x69,0x69,0x6a,0x6a,
+0x69,0x69,0x6a,0x6a,0x6a,0x69,0x68,0x67,0x67,0x68,0x69,0x6b,0x6c,0x6e,0x6f,0x70,
+0x71,0x71,0x72,0x73,0x72,0x71,0x70,0x6f,0x71,0x72,0x73,0x73,0x71,0x6f,0x6c,0x6a,
+0x68,0x65,0x60,0x5a,0x54,0x4e,0x4b,0x49,0x49,0x48,0x48,0x49,0x4b,0x4f,0x53,0x56,
+0x50,0x57,0x62,0x6f,0x7a,0x83,0x88,0x8b,0x8f,0x90,0x93,0x95,0x95,0x95,0x93,0x92,
+0x91,0x92,0x93,0x94,0x95,0x95,0x96,0x96,0x97,0x92,0x91,0x96,0x98,0x8b,0x6f,0x58,
+0x50,0x51,0x51,0x4f,0x4e,0x50,0x56,0x5b,0x73,0x76,0x7a,0x7a,0x79,0x7a,0x7c,0x7f,
+0x7e,0x7c,0x7c,0x79,0x69,0x58,0x5a,0x68,0x83,0x94,0x96,0x91,0x8c,0x74,0x59,0x56,
+0x58,0x56,0x55,0x59,0x61,0x68,0x6d,0x6e,0x64,0x67,0x6a,0x67,0x60,0x57,0x52,0x50,
+0x5e,0x79,0x93,0x92,0x7b,0x66,0x62,0x69,0x71,0x70,0x6e,0x6c,0x6b,0x6a,0x6a,0x6a,
+0x6a,0x6b,0x6d,0x6d,0x6d,0x6b,0x69,0x67,0x68,0x69,0x69,0x6a,0x69,0x68,0x67,0x66,
+0x67,0x69,0x6d,0x71,0x75,0x78,0x79,0x7a,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x79,0x79,0x79,0x79,0x79,0x7a,0x7c,0x7d,
+0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,
+0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x77,0x77,0x78,0x79,0x79,0x78,0x77,0x77,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x62,0x63,0x65,0x66,0x67,0x68,0x67,0x67,
+0x65,0x66,0x68,0x6b,0x6c,0x6d,0x6e,0x6e,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,
+0x67,0x67,0x67,0x68,0x69,0x69,0x6a,0x6a,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x70,0x70,
+0x71,0x71,0x71,0x71,0x70,0x6e,0x6d,0x6c,0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x71,0x71,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x6b,0x6b,0x6c,
+0x6a,0x6a,0x6a,0x6a,0x6a,0x69,0x68,0x68,0x68,0x69,0x6a,0x6b,0x6d,0x6f,0x70,0x71,
+0x72,0x73,0x74,0x74,0x74,0x73,0x72,0x71,0x73,0x73,0x74,0x74,0x74,0x72,0x71,0x70,
+0x74,0x71,0x6d,0x67,0x61,0x5c,0x58,0x56,0x51,0x4e,0x4b,0x48,0x49,0x4c,0x50,0x53,
+0x52,0x59,0x64,0x72,0x7d,0x86,0x8a,0x8c,0x90,0x91,0x93,0x94,0x94,0x94,0x93,0x92,
+0x91,0x92,0x94,0x95,0x96,0x97,0x97,0x97,0x98,0x94,0x93,0x97,0x96,0x88,0x6e,0x58,
+0x4d,0x4f,0x50,0x50,0x51,0x55,0x5c,0x61,0x7a,0x7a,0x79,0x76,0x74,0x76,0x7c,0x82,
+0x7c,0x79,0x77,0x70,0x5d,0x4e,0x56,0x68,0x84,0x94,0x96,0x91,0x8c,0x74,0x5a,0x57,
+0x57,0x55,0x54,0x59,0x61,0x69,0x6d,0x6e,0x6a,0x6e,0x71,0x6f,0x67,0x5d,0x56,0x53,
+0x5d,0x77,0x91,0x92,0x7c,0x66,0x60,0x63,0x6d,0x6c,0x6b,0x69,0x69,0x69,0x69,0x69,
+0x6a,0x6b,0x6c,0x6c,0x6b,0x69,0x67,0x66,0x69,0x69,0x6a,0x6a,0x6a,0x69,0x68,0x67,
+0x68,0x6a,0x6e,0x73,0x77,0x7a,0x7c,0x7d,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x78,0x78,0x79,0x79,0x7a,0x7c,0x7d,0x7d,
+0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x78,
+0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x77,0x77,0x78,0x78,0x78,0x78,0x77,0x77,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x62,0x63,0x65,0x67,0x68,0x68,0x68,0x68,
+0x66,0x67,0x69,0x6b,0x6d,0x6e,0x6e,0x6e,0x67,0x67,0x67,0x67,0x67,0x67,0x67,0x67,
+0x68,0x68,0x68,0x69,0x6a,0x6a,0x6b,0x6b,0x6d,0x6d,0x6c,0x6c,0x6c,0x6e,0x70,0x71,
+0x71,0x72,0x72,0x71,0x70,0x6f,0x6d,0x6c,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x71,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,0x6b,0x6b,0x6c,0x6d,
+0x6b,0x6b,0x6a,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x6a,0x6c,0x6e,0x6f,0x71,0x71,
+0x72,0x73,0x74,0x75,0x75,0x75,0x74,0x73,0x72,0x73,0x73,0x73,0x73,0x73,0x72,0x72,
+0x78,0x77,0x75,0x72,0x6f,0x6c,0x69,0x68,0x5e,0x5a,0x54,0x4e,0x4b,0x4b,0x4d,0x4e,
+0x55,0x5d,0x69,0x76,0x81,0x88,0x8c,0x8e,0x91,0x92,0x93,0x93,0x94,0x93,0x93,0x93,
+0x91,0x93,0x95,0x96,0x97,0x97,0x97,0x96,0x99,0x97,0x96,0x98,0x95,0x85,0x6d,0x5a,
+0x4c,0x4e,0x51,0x53,0x55,0x5b,0x63,0x6a,0x7f,0x7d,0x78,0x73,0x70,0x73,0x7b,0x82,
+0x7b,0x73,0x6d,0x64,0x54,0x49,0x54,0x68,0x85,0x95,0x96,0x90,0x8b,0x74,0x5b,0x58,
+0x54,0x53,0x54,0x5a,0x63,0x6b,0x6f,0x70,0x6b,0x6e,0x71,0x6d,0x65,0x5b,0x54,0x51,
+0x5d,0x76,0x8e,0x90,0x7d,0x68,0x60,0x62,0x6c,0x6b,0x69,0x68,0x68,0x68,0x68,0x69,
+0x6a,0x6a,0x6b,0x6b,0x6a,0x69,0x68,0x67,0x6a,0x6a,0x6b,0x6b,0x6b,0x6a,0x69,0x68,
+0x67,0x69,0x6d,0x72,0x76,0x79,0x7b,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,
+0x7c,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x64,0x65,0x67,0x68,0x68,0x68,0x68,0x67,
+0x66,0x68,0x6a,0x6c,0x6e,0x6f,0x6f,0x6f,0x68,0x68,0x68,0x68,0x68,0x68,0x68,0x68,
+0x69,0x69,0x69,0x6a,0x6b,0x6b,0x6c,0x6c,0x6c,0x6b,0x6a,0x69,0x6a,0x6c,0x6e,0x70,
+0x70,0x70,0x71,0x71,0x70,0x6f,0x6e,0x6d,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6d,0x6c,0x6b,0x6b,0x6b,0x6b,0x6c,0x6d,
+0x6c,0x6b,0x6a,0x69,0x69,0x69,0x6a,0x6a,0x69,0x6a,0x6b,0x6d,0x6e,0x70,0x71,0x72,
+0x72,0x73,0x74,0x75,0x75,0x75,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x72,
+0x76,0x77,0x77,0x77,0x77,0x76,0x75,0x74,0x6b,0x68,0x62,0x5b,0x56,0x53,0x51,0x51,
+0x5a,0x62,0x6e,0x7a,0x85,0x8b,0x8e,0x8e,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x92,0x93,0x95,0x97,0x97,0x96,0x95,0x94,0x95,0x95,0x96,0x99,0x95,0x87,0x72,0x62,
+0x66,0x68,0x6b,0x6c,0x6e,0x73,0x7b,0x81,0x81,0x7e,0x79,0x73,0x6f,0x72,0x79,0x80,
+0x7c,0x6d,0x5e,0x57,0x4f,0x4b,0x56,0x67,0x86,0x96,0x96,0x90,0x8b,0x74,0x5b,0x59,
+0x54,0x53,0x54,0x59,0x62,0x69,0x6c,0x6c,0x61,0x63,0x65,0x62,0x5b,0x55,0x52,0x51,
+0x63,0x79,0x8e,0x91,0x80,0x6e,0x67,0x68,0x6d,0x6c,0x6a,0x69,0x68,0x68,0x68,0x69,
+0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6a,0x6b,0x6b,0x6c,0x6b,0x6a,0x69,0x68,
+0x67,0x6a,0x6d,0x71,0x75,0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7b,
+0x7c,0x7b,0x7a,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,
+0x67,0x68,0x6a,0x6c,0x6e,0x6f,0x6f,0x6f,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+0x69,0x6a,0x6a,0x6b,0x6b,0x6c,0x6d,0x6d,0x6b,0x69,0x68,0x67,0x67,0x6a,0x6c,0x6e,
+0x6e,0x6e,0x6f,0x70,0x70,0x6f,0x6e,0x6d,0x71,0x71,0x70,0x70,0x6f,0x6e,0x6d,0x6d,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6c,0x6b,0x6a,0x6a,0x6a,0x6b,0x6c,0x6d,
+0x6d,0x6c,0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6a,0x6a,0x6c,0x6d,0x6f,0x71,0x72,0x72,
+0x72,0x72,0x74,0x75,0x75,0x75,0x75,0x74,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x74,
+0x73,0x74,0x76,0x77,0x77,0x77,0x76,0x75,0x74,0x73,0x70,0x6c,0x67,0x62,0x5f,0x5d,
+0x5f,0x66,0x72,0x7e,0x88,0x8d,0x8f,0x8f,0x93,0x93,0x93,0x92,0x92,0x92,0x93,0x93,
+0x93,0x94,0x96,0x97,0x97,0x95,0x92,0x90,0x8a,0x8d,0x93,0x98,0x98,0x8e,0x7d,0x71,
+0x80,0x81,0x80,0x7e,0x7d,0x7f,0x84,0x89,0x81,0x7f,0x7a,0x74,0x6f,0x71,0x77,0x7d,
+0x7f,0x66,0x51,0x4c,0x4d,0x50,0x59,0x66,0x87,0x96,0x96,0x90,0x8b,0x74,0x5c,0x5a,
+0x56,0x54,0x54,0x57,0x5c,0x61,0x61,0x60,0x59,0x5c,0x5d,0x5c,0x5a,0x5a,0x5d,0x60,
+0x6d,0x7f,0x92,0x94,0x86,0x77,0x71,0x73,0x6f,0x6e,0x6c,0x6a,0x69,0x69,0x69,0x69,
+0x69,0x69,0x69,0x6a,0x6a,0x6b,0x6c,0x6d,0x6b,0x6b,0x6c,0x6c,0x6c,0x6b,0x6a,0x69,
+0x6a,0x6c,0x6f,0x73,0x76,0x78,0x79,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x79,0x7a,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7c,0x7b,0x7a,0x78,0x77,0x77,0x78,0x78,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x67,0x68,0x69,0x69,0x69,0x69,0x68,0x67,0x69,0x69,0x6a,0x6a,0x6a,0x69,0x68,0x67,
+0x67,0x68,0x6a,0x6d,0x6e,0x6f,0x70,0x70,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,
+0x6a,0x6a,0x6a,0x6b,0x6c,0x6c,0x6d,0x6d,0x69,0x68,0x66,0x65,0x66,0x68,0x6b,0x6d,
+0x6c,0x6d,0x6e,0x6f,0x70,0x6f,0x6f,0x6e,0x72,0x72,0x71,0x70,0x6e,0x6d,0x6c,0x6c,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6b,0x6a,0x6a,0x69,0x69,0x6a,0x6b,0x6c,
+0x6d,0x6c,0x6a,0x69,0x68,0x69,0x6a,0x6b,0x6a,0x6b,0x6c,0x6d,0x6f,0x71,0x72,0x73,
+0x71,0x72,0x73,0x75,0x75,0x75,0x74,0x74,0x79,0x79,0x78,0x77,0x76,0x76,0x76,0x76,
+0x72,0x73,0x74,0x75,0x75,0x74,0x72,0x71,0x78,0x79,0x78,0x77,0x74,0x6f,0x6b,0x68,
+0x62,0x69,0x75,0x81,0x8a,0x8e,0x8f,0x8f,0x94,0x93,0x93,0x92,0x92,0x92,0x93,0x93,
+0x93,0x95,0x96,0x97,0x96,0x94,0x90,0x8e,0x81,0x86,0x8f,0x97,0x9a,0x93,0x86,0x7c,
+0x7e,0x7d,0x7b,0x76,0x71,0x6f,0x73,0x76,0x81,0x7f,0x7b,0x75,0x70,0x71,0x76,0x7b,
+0x80,0x62,0x48,0x45,0x4d,0x54,0x5c,0x65,0x88,0x96,0x96,0x90,0x8b,0x74,0x5c,0x5a,
+0x59,0x56,0x54,0x55,0x57,0x59,0x57,0x55,0x5a,0x5c,0x5f,0x60,0x61,0x66,0x6e,0x74,
+0x74,0x85,0x96,0x97,0x8b,0x7d,0x7a,0x7c,0x71,0x6f,0x6d,0x6b,0x6a,0x69,0x69,0x69,
+0x68,0x69,0x69,0x6a,0x6b,0x6d,0x6e,0x6f,0x6b,0x6b,0x6c,0x6d,0x6c,0x6b,0x6a,0x69,
+0x6d,0x6f,0x72,0x75,0x78,0x79,0x7a,0x7b,0x79,0x78,0x78,0x78,0x78,0x78,0x77,0x77,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x7a,0x7b,0x7d,0x7d,0x7d,0x7b,0x7a,0x78,
+0x7c,0x7b,0x7a,0x78,0x77,0x77,0x77,0x78,0x74,0x75,0x76,0x78,0x7a,0x7b,0x7d,0x7e,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x76,0x75,0x75,0x76,0x78,0x79,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x6d,0x6c,0x6b,0x6a,0x68,0x66,0x65,0x65,0x66,0x67,0x68,0x69,0x6b,0x6c,0x6d,0x6e,
+0x6d,0x6e,0x6f,0x70,0x70,0x6e,0x6c,0x6b,0x6a,0x69,0x67,0x66,0x66,0x69,0x6c,0x6e,
+0x68,0x68,0x68,0x68,0x69,0x69,0x69,0x69,0x67,0x68,0x6a,0x6b,0x6c,0x6c,0x6b,0x6b,
+0x6b,0x6b,0x6c,0x6d,0x6f,0x70,0x71,0x72,0x70,0x70,0x70,0x6e,0x6d,0x6a,0x68,0x67,
+0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6b,0x6a,0x6a,0x6b,0x6d,0x6f,0x72,0x74,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x72,0x74,0x76,0x77,0x78,0x78,0x77,0x76,
+0x75,0x7b,0x83,0x88,0x8a,0x8b,0x8e,0x90,0x93,0x92,0x91,0x90,0x90,0x92,0x93,0x95,
+0x96,0x92,0x8f,0x94,0x99,0x95,0x87,0x7a,0x69,0x7a,0x8f,0x9a,0x95,0x87,0x7a,0x73,
+0x76,0x70,0x67,0x5f,0x5e,0x68,0x77,0x83,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
+0x71,0x67,0x58,0x4d,0x4b,0x52,0x5d,0x65,0x93,0x94,0x95,0x90,0x86,0x76,0x67,0x5d,
+0x5a,0x5c,0x5f,0x63,0x68,0x6c,0x6f,0x71,0x6f,0x75,0x7d,0x82,0x86,0x89,0x8e,0x92,
+0x96,0x95,0x96,0x9a,0x9b,0x95,0x87,0x7b,0x73,0x71,0x6e,0x6c,0x6c,0x6d,0x6f,0x71,
+0x6f,0x6e,0x6c,0x6b,0x6b,0x6c,0x6e,0x6f,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,
+0x6a,0x6c,0x70,0x75,0x78,0x79,0x79,0x79,0x75,0x76,0x76,0x77,0x77,0x78,0x79,0x79,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7c,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,
+0x77,0x78,0x79,0x7a,0x7a,0x79,0x78,0x77,0x79,0x7a,0x7a,0x7a,0x7a,0x78,0x77,0x76,
+0x6c,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x66,0x69,0x69,0x6a,0x6c,0x6d,0x6f,0x70,0x70,
+0x6e,0x6f,0x70,0x70,0x6f,0x6e,0x6c,0x6b,0x6a,0x69,0x67,0x65,0x66,0x67,0x6a,0x6c,
+0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6b,0x6c,0x69,0x6a,0x6b,0x6c,0x6c,0x6c,0x6b,0x6b,
+0x6b,0x6b,0x6c,0x6d,0x6e,0x6f,0x6f,0x70,0x6f,0x6f,0x6f,0x6f,0x6e,0x6c,0x6a,0x69,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6c,0x6d,0x70,0x72,0x74,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x74,0x76,0x77,0x78,0x78,0x77,0x76,
+0x79,0x7f,0x87,0x8c,0x8e,0x8f,0x91,0x93,0x93,0x92,0x91,0x91,0x91,0x92,0x94,0x95,
+0x97,0x93,0x91,0x95,0x99,0x96,0x89,0x7d,0x68,0x78,0x8c,0x98,0x97,0x8d,0x82,0x7c,
+0x75,0x71,0x6a,0x63,0x61,0x68,0x74,0x7d,0x80,0x81,0x81,0x81,0x82,0x82,0x82,0x82,
+0x7a,0x72,0x68,0x61,0x60,0x67,0x71,0x78,0x91,0x92,0x94,0x92,0x8c,0x82,0x78,0x71,
+0x75,0x77,0x79,0x7c,0x80,0x83,0x85,0x86,0x85,0x89,0x8f,0x92,0x93,0x94,0x97,0x9a,
+0x9a,0x97,0x96,0x98,0x99,0x93,0x87,0x7d,0x73,0x72,0x6f,0x6d,0x6d,0x6e,0x70,0x71,
+0x70,0x6f,0x6d,0x6c,0x6c,0x6d,0x6f,0x70,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6c,0x6e,0x72,0x76,0x78,0x79,0x79,0x79,0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7c,
+0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x79,0x79,0x79,0x79,0x78,0x76,0x76,
+0x6b,0x6b,0x6a,0x6a,0x6a,0x69,0x69,0x69,0x6b,0x6c,0x6c,0x6e,0x6f,0x70,0x71,0x72,
+0x6f,0x6f,0x70,0x6f,0x6e,0x6d,0x6b,0x6a,0x6a,0x69,0x67,0x65,0x65,0x66,0x67,0x69,
+0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6c,0x6c,0x6d,0x6d,0x6d,0x6c,0x6b,0x6a,
+0x6b,0x6b,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x70,0x6f,0x6d,0x6d,
+0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6f,0x71,0x72,0x73,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x74,0x75,0x77,0x77,0x77,0x77,0x77,
+0x7e,0x84,0x8b,0x90,0x92,0x92,0x94,0x96,0x93,0x93,0x92,0x92,0x92,0x93,0x94,0x95,
+0x97,0x94,0x93,0x96,0x9a,0x97,0x8c,0x83,0x69,0x75,0x86,0x94,0x9a,0x96,0x8e,0x88,
+0x87,0x86,0x82,0x7d,0x79,0x7b,0x81,0x87,0x85,0x86,0x86,0x87,0x88,0x89,0x8a,0x8a,
+0x87,0x84,0x7f,0x7c,0x7d,0x82,0x89,0x8e,0x90,0x91,0x92,0x93,0x91,0x8f,0x8b,0x89,
+0x8d,0x8e,0x8f,0x91,0x92,0x94,0x95,0x96,0x94,0x98,0x9b,0x9b,0x99,0x98,0x9a,0x9c,
+0x9d,0x98,0x93,0x93,0x93,0x8f,0x86,0x7d,0x74,0x73,0x71,0x6f,0x6f,0x70,0x71,0x72,
+0x72,0x70,0x6e,0x6d,0x6d,0x6e,0x70,0x72,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6f,0x71,0x75,0x78,0x79,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,
+0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x77,0x77,
+0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6b,0x6c,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x70,
+0x6f,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,0x6b,0x6a,0x69,0x68,0x66,0x65,0x65,0x66,0x67,
+0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6c,0x6d,0x6e,0x6e,0x6f,0x6f,0x6e,0x6d,0x6b,0x6a,
+0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6e,0x6f,0x70,0x71,0x72,0x72,0x71,0x71,
+0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,0x6e,
+0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x71,0x72,0x73,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x76,0x77,0x77,0x77,0x77,
+0x80,0x86,0x8d,0x91,0x92,0x93,0x94,0x96,0x94,0x93,0x93,0x94,0x94,0x94,0x95,0x95,
+0x97,0x96,0x95,0x98,0x9a,0x97,0x90,0x89,0x6c,0x72,0x7f,0x8e,0x9a,0x9d,0x98,0x92,
+0x94,0x95,0x96,0x93,0x8e,0x8b,0x8c,0x8e,0x8b,0x8b,0x8c,0x8d,0x8f,0x90,0x91,0x92,
+0x94,0x93,0x91,0x90,0x90,0x92,0x94,0x96,0x91,0x91,0x91,0x92,0x93,0x94,0x96,0x96,
+0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x93,0x96,0x98,0x97,0x94,0x93,0x95,0x97,
+0x9d,0x96,0x8e,0x8c,0x8c,0x89,0x81,0x7a,0x75,0x74,0x72,0x71,0x71,0x71,0x72,0x73,
+0x73,0x71,0x70,0x6e,0x6e,0x70,0x71,0x73,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x72,0x74,0x77,0x79,0x7a,0x7a,0x79,0x78,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x6b,0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,0x6d,0x68,0x69,0x69,0x6a,0x6b,0x6c,0x6d,0x6d,
+0x6f,0x6e,0x6e,0x6d,0x6c,0x6c,0x6c,0x6c,0x6b,0x6a,0x69,0x68,0x67,0x67,0x67,0x67,
+0x69,0x69,0x69,0x6a,0x6a,0x6a,0x6b,0x6b,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6d,0x6c,
+0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6f,0x70,0x72,0x73,0x74,0x74,0x74,0x74,
+0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x71,0x71,0x72,0x72,0x72,0x73,0x72,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x76,0x77,0x78,0x78,
+0x7f,0x85,0x8c,0x90,0x91,0x91,0x92,0x94,0x94,0x94,0x95,0x95,0x96,0x96,0x96,0x96,
+0x97,0x97,0x97,0x98,0x99,0x97,0x93,0x8f,0x72,0x72,0x77,0x86,0x96,0x9e,0x9b,0x94,
+0x8e,0x92,0x96,0x95,0x90,0x8c,0x8a,0x8a,0x8f,0x90,0x91,0x92,0x94,0x95,0x96,0x96,
+0x9a,0x9a,0x99,0x98,0x96,0x94,0x92,0x91,0x94,0x92,0x91,0x90,0x91,0x93,0x95,0x96,
+0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x90,0x93,0x95,0x94,0x92,0x92,0x95,0x98,
+0x98,0x91,0x89,0x86,0x86,0x84,0x7c,0x76,0x75,0x74,0x73,0x72,0x72,0x72,0x73,0x73,
+0x74,0x72,0x70,0x6f,0x6f,0x70,0x72,0x74,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,
+0x74,0x75,0x78,0x7a,0x7b,0x7a,0x79,0x78,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,
+0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7e,0x7f,0x80,0x81,0x81,0x80,0x80,0x7f,
+0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x68,0x68,0x69,0x69,0x6a,0x6b,0x6b,0x6b,
+0x6d,0x6c,0x6c,0x6c,0x6c,0x6d,0x6e,0x6f,0x6c,0x6c,0x6c,0x6b,0x6b,0x6b,0x6b,0x6a,
+0x6a,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6b,0x6f,0x70,0x71,0x71,0x71,0x70,0x6f,0x6e,
+0x6e,0x6e,0x6e,0x6f,0x6f,0x70,0x70,0x70,0x71,0x72,0x74,0x75,0x76,0x76,0x76,0x76,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x74,0x73,0x73,0x72,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x77,0x78,0x79,
+0x80,0x86,0x8c,0x90,0x90,0x8f,0x91,0x92,0x94,0x95,0x96,0x97,0x97,0x97,0x96,0x96,
+0x96,0x97,0x98,0x98,0x97,0x96,0x95,0x94,0x7a,0x73,0x70,0x7c,0x8f,0x9a,0x96,0x8e,
+0x8f,0x94,0x99,0x9a,0x97,0x93,0x92,0x92,0x93,0x93,0x94,0x95,0x96,0x97,0x98,0x98,
+0x9a,0x99,0x98,0x97,0x94,0x91,0x8e,0x8d,0x94,0x93,0x91,0x90,0x90,0x90,0x91,0x91,
+0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x96,0x98,0x99,0x97,0x95,0x94,0x97,0x9a,
+0x94,0x8d,0x87,0x85,0x86,0x83,0x7b,0x73,0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,
+0x73,0x72,0x70,0x6f,0x6f,0x70,0x72,0x73,0x77,0x77,0x77,0x76,0x75,0x75,0x74,0x74,
+0x73,0x75,0x77,0x7a,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,
+0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7e,0x7f,0x80,0x81,0x82,0x81,0x81,0x80,
+0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6a,0x6a,0x6b,0x6b,0x6c,0x6c,0x6d,0x6d,
+0x6b,0x6a,0x6a,0x6a,0x6c,0x6e,0x70,0x71,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x6e,0x6e,
+0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x72,0x72,0x72,0x71,0x70,
+0x6f,0x70,0x70,0x71,0x72,0x73,0x74,0x74,0x73,0x74,0x76,0x77,0x77,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x73,0x74,0x75,0x76,0x75,0x74,0x73,0x72,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x76,0x75,0x74,0x74,0x75,0x76,0x78,0x79,
+0x83,0x88,0x8f,0x92,0x92,0x91,0x92,0x93,0x94,0x95,0x97,0x98,0x99,0x98,0x97,0x96,
+0x94,0x96,0x98,0x98,0x96,0x95,0x96,0x98,0x82,0x75,0x6b,0x74,0x87,0x93,0x8e,0x84,
+0x8e,0x94,0x9a,0x9d,0x9c,0x9a,0x9a,0x9b,0x95,0x95,0x95,0x96,0x96,0x97,0x97,0x97,
+0x95,0x95,0x94,0x93,0x92,0x91,0x90,0x90,0x91,0x91,0x92,0x92,0x92,0x91,0x90,0x90,
+0x94,0x94,0x95,0x95,0x96,0x96,0x97,0x97,0x9a,0x9b,0x9a,0x95,0x90,0x8d,0x8f,0x91,
+0x92,0x8d,0x89,0x89,0x8b,0x87,0x7d,0x75,0x73,0x73,0x73,0x73,0x73,0x72,0x72,0x71,
+0x73,0x72,0x70,0x6e,0x6e,0x70,0x72,0x73,0x76,0x76,0x75,0x74,0x74,0x73,0x72,0x72,
+0x71,0x73,0x76,0x79,0x7b,0x7b,0x7a,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,
+0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,
+0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,
+0x6f,0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x6f,
+0x69,0x69,0x69,0x6a,0x6c,0x6e,0x71,0x73,0x6d,0x6e,0x6f,0x70,0x71,0x71,0x71,0x71,
+0x71,0x71,0x71,0x72,0x72,0x72,0x73,0x73,0x6e,0x6f,0x71,0x72,0x73,0x73,0x72,0x72,
+0x70,0x70,0x71,0x73,0x74,0x75,0x76,0x77,0x75,0x75,0x77,0x78,0x78,0x78,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x74,0x75,0x76,0x76,0x76,0x75,0x73,0x71,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x76,0x75,0x74,0x74,0x75,0x76,0x78,0x7a,
+0x86,0x8b,0x91,0x95,0x94,0x93,0x94,0x95,0x95,0x96,0x97,0x99,0x99,0x98,0x97,0x96,
+0x94,0x96,0x98,0x97,0x95,0x94,0x97,0x99,0x87,0x76,0x69,0x6f,0x82,0x8e,0x88,0x7c,
+0x81,0x86,0x8d,0x91,0x91,0x91,0x93,0x94,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x91,0x91,0x91,0x91,0x92,0x93,0x95,0x96,0x8e,0x8f,0x92,0x94,0x95,0x94,0x92,0x91,
+0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x94,0x99,0x98,0x95,0x8e,0x86,0x81,0x81,0x82,
+0x92,0x8e,0x8c,0x8e,0x90,0x8b,0x80,0x77,0x72,0x73,0x73,0x73,0x73,0x72,0x71,0x71,
+0x73,0x71,0x6f,0x6e,0x6e,0x6f,0x71,0x73,0x74,0x73,0x73,0x72,0x71,0x70,0x70,0x6f,
+0x70,0x72,0x75,0x79,0x7a,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,
+0x7a,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,0x77,0x78,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,
+0x6e,0x6d,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,
+0x6f,0x6f,0x70,0x71,0x71,0x72,0x73,0x73,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x75,0x75,0x76,0x77,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,
+0x74,0x73,0x73,0x74,0x75,0x77,0x79,0x7a,0x79,0x78,0x76,0x75,0x74,0x74,0x74,0x74,
+0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,
+0x75,0x77,0x79,0x77,0x75,0x73,0x75,0x77,0x74,0x74,0x74,0x73,0x72,0x71,0x70,0x6f,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x77,0x78,0x77,0x76,0x77,0x7b,0x7f,
+0x88,0x8a,0x8e,0x91,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,0x98,0x98,0x99,
+0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x8f,0x7e,0x6d,0x6a,0x73,0x7b,0x7a,0x74,
+0x66,0x7c,0x95,0x9d,0x96,0x90,0x97,0xa1,0x96,0x96,0x97,0x98,0x99,0x99,0x99,0x99,
+0x99,0x98,0x98,0x96,0x95,0x94,0x93,0x92,0x8c,0x90,0x93,0x93,0x91,0x90,0x92,0x94,
+0x92,0x92,0x93,0x93,0x94,0x95,0x95,0x95,0x9b,0x99,0x93,0x8d,0x89,0x8b,0x92,0x98,
+0x95,0x8c,0x87,0x8b,0x93,0x90,0x81,0x72,0x72,0x72,0x73,0x72,0x72,0x70,0x6e,0x6d,
+0x6f,0x6e,0x6d,0x6d,0x6d,0x6f,0x71,0x72,0x71,0x71,0x71,0x71,0x71,0x70,0x70,0x70,
+0x73,0x75,0x78,0x7a,0x7b,0x79,0x77,0x76,0x75,0x78,0x7b,0x7e,0x7f,0x7f,0x7d,0x7c,
+0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x79,0x7b,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x79,0x78,0x78,0x77,0x78,0x79,0x7b,0x7c,
+0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,
+0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6d,0x6c,0x6b,0x6c,0x6c,0x6d,0x6e,0x6e,0x6f,0x6f,
+0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x71,0x71,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x75,0x75,0x76,0x77,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,
+0x74,0x74,0x74,0x74,0x75,0x77,0x79,0x7a,0x7a,0x79,0x77,0x76,0x75,0x75,0x75,0x76,
+0x76,0x77,0x78,0x79,0x79,0x78,0x77,0x76,0x77,0x77,0x77,0x76,0x76,0x75,0x75,0x75,
+0x72,0x74,0x76,0x75,0x72,0x71,0x73,0x75,0x74,0x74,0x74,0x73,0x73,0x72,0x71,0x70,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x77,0x79,0x78,0x76,0x77,0x7c,0x80,
+0x88,0x8b,0x8e,0x92,0x95,0x96,0x96,0x95,0x96,0x96,0x96,0x97,0x97,0x98,0x98,0x98,
+0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x98,0x92,0x88,0x7b,0x6f,0x68,0x66,0x66,
+0x5e,0x69,0x7b,0x8b,0x94,0x98,0x98,0x98,0x97,0x97,0x98,0x98,0x98,0x97,0x96,0x96,
+0x90,0x90,0x8f,0x8f,0x8f,0x8f,0x90,0x90,0x92,0x94,0x95,0x94,0x92,0x90,0x91,0x92,
+0x92,0x92,0x93,0x94,0x94,0x95,0x95,0x96,0x97,0x96,0x92,0x8d,0x89,0x8b,0x91,0x96,
+0x89,0x83,0x80,0x86,0x8f,0x8f,0x82,0x75,0x72,0x72,0x72,0x72,0x71,0x70,0x6e,0x6d,
+0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x71,0x72,0x71,0x71,0x71,0x71,0x70,0x70,0x70,0x70,
+0x73,0x75,0x78,0x7a,0x7a,0x79,0x77,0x76,0x76,0x78,0x7b,0x7e,0x7f,0x7e,0x7d,0x7c,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x79,0x79,0x78,0x79,0x7a,0x7b,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7b,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,
+0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6a,0x6b,0x6c,0x6d,0x6e,0x6f,0x70,0x71,
+0x6d,0x6d,0x6e,0x6e,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x75,0x76,0x76,0x77,0x76,0x75,0x74,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,
+0x75,0x74,0x74,0x74,0x75,0x77,0x79,0x7a,0x7b,0x7a,0x78,0x77,0x76,0x76,0x77,0x77,
+0x77,0x78,0x79,0x79,0x79,0x79,0x78,0x77,0x78,0x77,0x77,0x76,0x76,0x75,0x74,0x74,
+0x70,0x72,0x74,0x73,0x70,0x6f,0x71,0x74,0x75,0x75,0x74,0x73,0x73,0x72,0x72,0x71,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x78,0x79,0x78,0x77,0x78,0x7d,0x82,
+0x8a,0x8c,0x90,0x93,0x95,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,
+0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x9e,0x9c,0x96,0x88,0x77,0x67,0x5d,0x59,
+0x57,0x57,0x61,0x78,0x91,0x9e,0x99,0x8f,0x98,0x98,0x98,0x98,0x96,0x94,0x92,0x91,
+0x85,0x85,0x86,0x87,0x89,0x8b,0x8e,0x8f,0x96,0x96,0x95,0x94,0x92,0x91,0x91,0x90,
+0x92,0x93,0x93,0x94,0x94,0x95,0x96,0x96,0x93,0x93,0x92,0x8f,0x8c,0x8c,0x90,0x95,
+0x7e,0x7a,0x79,0x81,0x8a,0x8b,0x81,0x76,0x71,0x71,0x72,0x72,0x71,0x70,0x6e,0x6d,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x72,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x73,0x75,0x77,0x79,0x7a,0x79,0x78,0x77,0x77,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x7c,
+0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7d,0x7f,0x7f,
+0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x71,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6a,0x6b,0x6c,0x6d,0x6f,0x71,0x72,0x73,
+0x71,0x71,0x71,0x71,0x72,0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x75,0x76,0x76,0x76,0x76,0x75,0x73,0x72,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,
+0x75,0x75,0x74,0x74,0x75,0x76,0x78,0x79,0x7b,0x7a,0x79,0x78,0x77,0x77,0x78,0x79,
+0x78,0x78,0x78,0x79,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x76,0x75,0x74,0x73,0x73,
+0x6f,0x72,0x74,0x73,0x71,0x70,0x72,0x75,0x75,0x74,0x73,0x73,0x72,0x72,0x72,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x79,0x7a,0x78,0x77,0x7a,0x7f,0x84,
+0x8c,0x8e,0x91,0x94,0x97,0x97,0x97,0x96,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x9c,0x96,0x8f,0x8c,0x88,0x7c,0x69,0x59,
+0x5a,0x58,0x5f,0x75,0x8f,0x9d,0x99,0x8f,0x99,0x99,0x98,0x97,0x94,0x91,0x8d,0x8b,
+0x81,0x80,0x81,0x82,0x86,0x8a,0x8f,0x92,0x92,0x90,0x8e,0x8f,0x91,0x93,0x92,0x91,
+0x93,0x93,0x93,0x94,0x95,0x95,0x96,0x96,0x92,0x94,0x94,0x92,0x8f,0x8f,0x93,0x96,
+0x7e,0x7b,0x7b,0x81,0x88,0x87,0x7e,0x75,0x6f,0x70,0x71,0x71,0x70,0x6f,0x6e,0x6d,
+0x6e,0x6e,0x6e,0x6e,0x6f,0x70,0x71,0x71,0x6f,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,
+0x73,0x74,0x76,0x78,0x79,0x79,0x78,0x78,0x78,0x79,0x7b,0x7d,0x7e,0x7d,0x7d,0x7c,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,
+0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,0x6c,0x6c,0x6e,0x6f,0x71,0x73,0x74,0x74,
+0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x75,0x76,0x76,0x76,0x75,0x74,0x72,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x74,0x74,
+0x74,0x74,0x73,0x73,0x74,0x75,0x76,0x77,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x78,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x75,0x73,0x72,0x71,0x71,
+0x70,0x73,0x75,0x75,0x72,0x72,0x74,0x77,0x74,0x74,0x72,0x71,0x71,0x71,0x73,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7b,0x79,0x78,0x7b,0x81,0x87,
+0x8d,0x90,0x93,0x96,0x98,0x98,0x98,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x96,0x94,0x92,0x92,0x8f,0x84,0x74,0x67,
+0x69,0x6d,0x75,0x82,0x8f,0x96,0x97,0x95,0x98,0x98,0x98,0x96,0x93,0x8e,0x89,0x86,
+0x84,0x83,0x82,0x83,0x87,0x8d,0x93,0x97,0x8a,0x87,0x85,0x88,0x8f,0x95,0x95,0x94,
+0x93,0x93,0x94,0x94,0x95,0x96,0x96,0x97,0x95,0x96,0x96,0x94,0x91,0x92,0x96,0x9a,
+0x86,0x85,0x84,0x87,0x88,0x84,0x7a,0x71,0x6e,0x6f,0x70,0x70,0x70,0x6f,0x6e,0x6d,
+0x6c,0x6c,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x71,
+0x73,0x74,0x75,0x77,0x78,0x78,0x79,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,
+0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x79,0x7a,0x7a,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,
+0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x6f,0x6f,0x70,0x72,0x73,0x74,0x75,0x76,
+0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x76,0x76,0x76,0x76,0x75,0x73,0x72,0x71,0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,
+0x73,0x73,0x72,0x72,0x72,0x73,0x74,0x75,0x77,0x76,0x76,0x75,0x75,0x75,0x76,0x77,
+0x75,0x75,0x74,0x73,0x73,0x74,0x75,0x75,0x75,0x75,0x74,0x73,0x71,0x70,0x6f,0x6f,
+0x6f,0x72,0x74,0x74,0x72,0x71,0x73,0x76,0x73,0x72,0x70,0x6f,0x6f,0x70,0x72,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x7b,0x7c,0x7b,0x79,0x79,0x7c,0x83,0x89,
+0x8f,0x91,0x94,0x97,0x99,0x99,0x99,0x98,0x98,0x98,0x98,0x97,0x97,0x97,0x96,0x96,
+0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x92,0x9b,0xa2,0x9b,0x8a,0x7c,0x78,0x7a,
+0x7d,0x85,0x8e,0x91,0x90,0x91,0x95,0x9a,0x97,0x97,0x97,0x95,0x91,0x8b,0x86,0x82,
+0x8d,0x8b,0x88,0x87,0x8a,0x8f,0x96,0x9a,0x89,0x84,0x81,0x85,0x8f,0x96,0x97,0x94,
+0x93,0x94,0x94,0x95,0x95,0x96,0x97,0x97,0x99,0x98,0x95,0x91,0x8e,0x8f,0x95,0x9b,
+0x8e,0x8d,0x8d,0x8c,0x89,0x82,0x77,0x70,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x6e,0x6d,
+0x69,0x6a,0x6c,0x6d,0x6e,0x6e,0x6d,0x6d,0x6e,0x6e,0x6e,0x6f,0x70,0x70,0x71,0x71,
+0x73,0x73,0x74,0x76,0x77,0x78,0x79,0x79,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7a,0x79,0x78,0x77,0x78,0x78,0x79,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x74,0x75,0x76,0x76,0x76,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x75,0x73,0x71,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,
+0x72,0x71,0x71,0x70,0x70,0x71,0x72,0x73,0x74,0x74,0x73,0x72,0x72,0x73,0x74,0x75,
+0x73,0x72,0x71,0x70,0x70,0x71,0x72,0x73,0x74,0x73,0x72,0x71,0x6f,0x6e,0x6d,0x6c,
+0x6b,0x6d,0x70,0x70,0x6e,0x6d,0x70,0x73,0x72,0x70,0x6e,0x6d,0x6d,0x6f,0x71,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7c,0x7c,0x7c,0x7a,0x79,0x7d,0x85,0x8b,
+0x91,0x93,0x96,0x98,0x9a,0x9a,0x99,0x99,0x98,0x98,0x98,0x97,0x97,0x96,0x96,0x96,
+0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x93,0x9b,0xa0,0x99,0x8a,0x81,0x84,0x8b,
+0x8e,0x93,0x98,0x97,0x93,0x91,0x94,0x98,0x95,0x95,0x96,0x94,0x90,0x8a,0x84,0x80,
+0x95,0x91,0x8d,0x8a,0x8b,0x8f,0x95,0x9a,0x92,0x8a,0x84,0x87,0x91,0x97,0x96,0x91,
+0x94,0x94,0x94,0x95,0x96,0x96,0x97,0x97,0x99,0x97,0x90,0x89,0x86,0x89,0x91,0x99,
+0x8f,0x8f,0x8f,0x8e,0x89,0x81,0x77,0x71,0x6c,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6d,
+0x67,0x68,0x6a,0x6c,0x6c,0x6c,0x6b,0x6b,0x6d,0x6d,0x6e,0x6f,0x6f,0x70,0x71,0x71,
+0x72,0x73,0x74,0x75,0x76,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,
+0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7e,0x7d,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x7f,
+0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x76,0x76,0x76,0x76,0x74,0x73,0x71,0x70,0x6e,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,
+0x71,0x71,0x70,0x6f,0x6f,0x70,0x71,0x72,0x73,0x72,0x71,0x71,0x71,0x72,0x73,0x74,
+0x71,0x70,0x6f,0x6e,0x6e,0x6f,0x70,0x71,0x73,0x72,0x71,0x70,0x6e,0x6d,0x6b,0x6b,
+0x67,0x69,0x6c,0x6c,0x6a,0x6a,0x6c,0x6f,0x71,0x6f,0x6d,0x6c,0x6c,0x6e,0x70,0x72,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7c,0x7d,0x7c,0x7a,0x7a,0x7e,0x86,0x8c,
+0x91,0x93,0x96,0x99,0x9a,0x9b,0x9a,0x99,0x99,0x98,0x98,0x97,0x97,0x96,0x96,0x96,
+0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x94,0x92,0x90,0x8f,0x90,0x92,0x94,0x95,
+0x97,0x97,0x98,0x97,0x95,0x94,0x93,0x94,0x93,0x94,0x95,0x94,0x90,0x8a,0x83,0x7f,
+0x99,0x95,0x8f,0x8a,0x8a,0x8e,0x94,0x98,0x9b,0x92,0x89,0x8b,0x93,0x97,0x94,0x8e,
+0x94,0x94,0x94,0x95,0x96,0x96,0x97,0x97,0x99,0x94,0x8c,0x83,0x7f,0x83,0x8d,0x96,
+0x8c,0x8d,0x8e,0x8d,0x88,0x81,0x78,0x73,0x6c,0x6c,0x6e,0x6e,0x6f,0x6e,0x6d,0x6d,
+0x66,0x67,0x69,0x6b,0x6c,0x6b,0x6a,0x69,0x6d,0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x71,
+0x72,0x73,0x73,0x74,0x76,0x78,0x79,0x7a,0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,
+0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x80,0x7f,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x79,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x7f,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x78,0x79,0x79,0x79,0x78,0x77,0x75,0x75,
+0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x76,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,
+0x73,0x72,0x70,0x6f,0x70,0x73,0x76,0x78,0x75,0x75,0x74,0x73,0x71,0x70,0x6f,0x6f,
+0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,
+0x6c,0x6b,0x6b,0x6b,0x6b,0x6c,0x6e,0x6f,0x74,0x72,0x70,0x6e,0x6e,0x6f,0x70,0x71,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x81,0x89,0x90,
+0x95,0x96,0x98,0x99,0x9a,0x9a,0x9a,0x9a,0x99,0x99,0x99,0x98,0x97,0x97,0x96,0x96,
+0x96,0x96,0x95,0x95,0x96,0x98,0x9a,0x9c,0x96,0x95,0x94,0x93,0x92,0x93,0x93,0x94,
+0x9a,0x98,0x96,0x94,0x93,0x94,0x94,0x95,0x91,0x91,0x91,0x90,0x8c,0x88,0x83,0x80,
+0x7b,0x82,0x82,0x7d,0x83,0x92,0x99,0x96,0x94,0x8f,0x89,0x87,0x88,0x8a,0x8a,0x89,
+0x7d,0x8a,0x98,0x9a,0x94,0x92,0x9a,0xa4,0x8c,0x91,0x8b,0x7a,0x74,0x80,0x8e,0x93,
+0x8d,0x8c,0x8c,0x8d,0x8c,0x87,0x7f,0x78,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6b,0x6c,0x6d,0x6e,0x6d,0x6c,0x6a,0x69,0x6b,0x6c,0x6d,0x6e,0x70,0x71,0x72,0x73,
+0x6a,0x6d,0x71,0x75,0x78,0x79,0x79,0x79,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7d,0x7f,
+0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7e,0x7e,0x7d,0x7b,0x7a,0x78,0x77,0x77,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7e,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x77,0x78,0x78,0x79,0x78,0x77,0x76,0x75,
+0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x73,
+0x76,0x76,0x75,0x75,0x74,0x73,0x72,0x72,0x72,0x71,0x70,0x6e,0x6e,0x6e,0x6e,0x6f,
+0x71,0x6f,0x6d,0x6c,0x6c,0x6e,0x71,0x73,0x71,0x71,0x70,0x70,0x6f,0x6e,0x6e,0x6d,
+0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,0x6e,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,
+0x6d,0x6c,0x6c,0x6b,0x6c,0x6d,0x6e,0x6f,0x73,0x72,0x6f,0x6e,0x6e,0x6f,0x70,0x72,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7b,0x7b,0x7b,0x7c,0x81,0x8a,0x90,
+0x94,0x95,0x97,0x98,0x99,0x99,0x99,0x99,0x98,0x98,0x98,0x97,0x97,0x97,0x97,0x97,
+0x97,0x96,0x96,0x95,0x96,0x97,0x99,0x9a,0x99,0x98,0x97,0x96,0x95,0x96,0x96,0x97,
+0x98,0x97,0x96,0x94,0x94,0x94,0x95,0x96,0x95,0x95,0x95,0x94,0x91,0x8d,0x89,0x87,
+0x80,0x86,0x85,0x80,0x85,0x93,0x98,0x93,0x90,0x8b,0x85,0x81,0x81,0x81,0x81,0x80,
+0x7a,0x88,0x97,0x99,0x92,0x8d,0x8f,0x94,0x8d,0x93,0x8d,0x7d,0x77,0x83,0x91,0x95,
+0x8c,0x8c,0x8c,0x8d,0x8d,0x88,0x7f,0x78,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6a,0x6b,0x6c,0x6d,0x6d,0x6c,0x6b,0x6a,0x6d,0x6e,0x6e,0x6f,0x70,0x71,0x71,0x72,
+0x6a,0x6d,0x71,0x75,0x78,0x79,0x79,0x79,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7d,0x7e,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x77,0x78,0x78,0x78,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x75,0x75,0x74,0x74,0x74,0x73,0x73,0x73,
+0x76,0x76,0x75,0x73,0x72,0x71,0x70,0x6f,0x71,0x71,0x70,0x6f,0x6f,0x70,0x71,0x71,
+0x6e,0x6d,0x6b,0x69,0x69,0x6a,0x6b,0x6c,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,0x6d,
+0x6c,0x6c,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6a,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,
+0x6e,0x6d,0x6d,0x6c,0x6d,0x6e,0x6f,0x70,0x72,0x70,0x6e,0x6d,0x6d,0x6f,0x70,0x72,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x7a,0x7b,0x7c,0x7c,0x7d,0x82,0x8a,0x91,
+0x94,0x95,0x96,0x97,0x98,0x98,0x97,0x97,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x98,
+0x98,0x97,0x97,0x96,0x96,0x97,0x98,0x98,0x9b,0x9a,0x99,0x98,0x98,0x98,0x99,0x9a,
+0x96,0x96,0x95,0x95,0x95,0x96,0x97,0x98,0x98,0x98,0x99,0x99,0x97,0x94,0x91,0x8f,
+0x89,0x8d,0x8a,0x83,0x88,0x94,0x97,0x90,0x89,0x85,0x81,0x7c,0x7a,0x7a,0x7b,0x7b,
+0x7f,0x89,0x93,0x95,0x8d,0x85,0x82,0x82,0x8f,0x96,0x92,0x82,0x7d,0x88,0x94,0x98,
+0x8c,0x8b,0x8c,0x8e,0x8d,0x88,0x7f,0x78,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x69,0x69,0x6b,0x6c,0x6d,0x6d,0x6c,0x6c,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,
+0x6b,0x6d,0x71,0x75,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7c,0x7d,0x7e,
+0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x75,0x76,0x78,0x78,0x78,0x78,0x77,
+0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,
+0x75,0x75,0x74,0x72,0x71,0x6f,0x6e,0x6e,0x71,0x71,0x70,0x70,0x70,0x71,0x72,0x73,
+0x6f,0x6d,0x6c,0x6a,0x69,0x69,0x69,0x6a,0x6c,0x6d,0x6d,0x6e,0x6e,0x6f,0x6f,0x6f,
+0x6d,0x6d,0x6d,0x6e,0x6f,0x6f,0x70,0x70,0x6a,0x6a,0x6a,0x6b,0x6b,0x6b,0x6c,0x6c,
+0x6f,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x70,0x70,0x6f,0x6d,0x6c,0x6d,0x6f,0x71,0x72,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x7a,0x7c,0x7c,0x7c,0x7d,0x82,0x8b,0x91,
+0x93,0x94,0x95,0x96,0x97,0x97,0x96,0x96,0x94,0x95,0x95,0x96,0x97,0x97,0x98,0x98,
+0x98,0x98,0x97,0x97,0x97,0x96,0x96,0x97,0x9b,0x9a,0x99,0x98,0x97,0x98,0x98,0x99,
+0x94,0x94,0x95,0x95,0x96,0x98,0x98,0x99,0x98,0x98,0x99,0x99,0x99,0x97,0x96,0x95,
+0x91,0x93,0x8e,0x87,0x8b,0x96,0x95,0x8b,0x82,0x82,0x80,0x7d,0x7c,0x7d,0x81,0x85,
+0x8e,0x8f,0x8f,0x8c,0x85,0x80,0x7e,0x7e,0x90,0x98,0x95,0x87,0x82,0x8c,0x97,0x99,
+0x8b,0x8b,0x8c,0x8f,0x8f,0x89,0x80,0x78,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x68,0x68,0x6a,0x6b,0x6c,0x6d,0x6d,0x6d,0x72,0x72,0x71,0x70,0x70,0x6f,0x6e,0x6e,
+0x6c,0x6e,0x72,0x76,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,
+0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x77,0x77,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x73,0x74,0x76,0x77,0x78,0x78,0x77,0x77,
+0x75,0x75,0x76,0x76,0x77,0x77,0x77,0x78,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,
+0x74,0x74,0x73,0x71,0x70,0x6f,0x6e,0x6d,0x71,0x71,0x70,0x70,0x70,0x71,0x72,0x73,
+0x71,0x70,0x6f,0x6d,0x6c,0x6c,0x6b,0x6b,0x6e,0x6f,0x6f,0x70,0x71,0x72,0x72,0x72,
+0x6f,0x6f,0x70,0x70,0x71,0x72,0x72,0x73,0x6b,0x6b,0x6b,0x6c,0x6c,0x6c,0x6d,0x6d,
+0x70,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,0x6c,0x6f,0x71,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x7a,0x7b,0x7c,0x7c,0x7d,0x82,0x8a,0x91,
+0x93,0x94,0x95,0x96,0x96,0x96,0x95,0x95,0x94,0x94,0x95,0x95,0x96,0x97,0x97,0x97,
+0x98,0x98,0x98,0x98,0x97,0x97,0x96,0x96,0x97,0x97,0x95,0x94,0x94,0x94,0x95,0x96,
+0x93,0x94,0x95,0x96,0x98,0x98,0x99,0x99,0x95,0x96,0x96,0x97,0x97,0x96,0x96,0x95,
+0x96,0x96,0x8f,0x88,0x8e,0x98,0x94,0x87,0x7f,0x81,0x84,0x84,0x83,0x87,0x8f,0x96,
+0xa0,0x97,0x8b,0x83,0x80,0x82,0x84,0x85,0x8f,0x98,0x97,0x8b,0x86,0x8f,0x98,0x99,
+0x8b,0x8c,0x8e,0x91,0x91,0x8b,0x81,0x7a,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x68,0x68,0x69,0x6a,0x6b,0x6c,0x6d,0x6e,0x73,0x72,0x71,0x70,0x6f,0x6d,0x6d,0x6c,
+0x6d,0x6f,0x73,0x76,0x78,0x79,0x79,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x79,0x79,0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x75,0x76,0x77,0x77,0x77,0x76,0x76,
+0x74,0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x73,0x73,0x72,0x72,0x72,0x71,0x71,0x71,
+0x72,0x72,0x72,0x71,0x70,0x70,0x6f,0x6f,0x71,0x71,0x70,0x6f,0x6f,0x70,0x71,0x71,
+0x73,0x72,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6f,0x70,0x70,0x71,0x71,0x72,0x72,0x73,
+0x70,0x70,0x70,0x71,0x71,0x71,0x72,0x72,0x6d,0x6d,0x6d,0x6d,0x6e,0x6e,0x6e,0x6e,
+0x70,0x6f,0x6e,0x6d,0x6c,0x6d,0x6d,0x6e,0x6c,0x6c,0x6b,0x6b,0x6c,0x6e,0x71,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x79,0x7a,0x7b,0x7b,0x7c,0x81,0x89,0x90,
+0x94,0x95,0x96,0x97,0x97,0x96,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,
+0x96,0x97,0x97,0x98,0x98,0x98,0x97,0x96,0x95,0x95,0x93,0x92,0x92,0x92,0x93,0x94,
+0x94,0x94,0x96,0x98,0x98,0x99,0x99,0x98,0x93,0x93,0x94,0x94,0x94,0x94,0x94,0x94,
+0x98,0x96,0x8e,0x88,0x8f,0x9a,0x94,0x85,0x7e,0x84,0x89,0x89,0x89,0x8d,0x98,0xa1,
+0xa6,0x98,0x88,0x81,0x84,0x8a,0x8d,0x8c,0x8b,0x96,0x97,0x8c,0x87,0x8f,0x97,0x97,
+0x8c,0x8d,0x90,0x93,0x94,0x8e,0x84,0x7b,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6a,0x69,0x69,0x69,0x6a,0x6b,0x6c,0x6d,0x71,0x71,0x70,0x6f,0x6d,0x6c,0x6b,0x6b,
+0x6e,0x70,0x73,0x76,0x79,0x79,0x79,0x78,0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x74,
+0x74,0x74,0x75,0x75,0x76,0x77,0x78,0x78,0x72,0x72,0x72,0x72,0x71,0x71,0x71,0x71,
+0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x72,0x71,0x70,0x6e,0x6e,0x6e,0x6e,0x6f,
+0x71,0x71,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6e,0x6e,0x6e,0x6e,0x6d,0x6d,0x6d,0x6e,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,
+0x6f,0x6e,0x6d,0x6c,0x6b,0x6c,0x6c,0x6d,0x6b,0x6a,0x6a,0x6a,0x6c,0x6e,0x72,0x73,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x78,0x79,0x7a,0x7a,0x7b,0x80,0x88,0x8f,
+0x95,0x96,0x97,0x97,0x97,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,
+0x94,0x95,0x97,0x98,0x99,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x93,0x93,0x94,0x94,
+0x94,0x95,0x97,0x98,0x99,0x99,0x98,0x97,0x94,0x94,0x93,0x93,0x93,0x94,0x94,0x94,
+0x96,0x94,0x8b,0x87,0x90,0x9b,0x94,0x83,0x80,0x86,0x8c,0x8a,0x87,0x8a,0x95,0x9f,
+0x9d,0x91,0x86,0x87,0x8f,0x95,0x92,0x8b,0x88,0x93,0x96,0x8c,0x87,0x8e,0x95,0x94,
+0x8d,0x8e,0x92,0x96,0x96,0x90,0x86,0x7d,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6b,0x6b,0x69,0x68,0x68,0x69,0x6b,0x6c,0x6f,0x6f,0x6e,0x6d,0x6c,0x6b,0x6a,0x6a,
+0x6e,0x70,0x74,0x77,0x79,0x79,0x79,0x78,0x78,0x79,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7e,0x7f,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x77,0x77,0x77,0x77,0x75,0x74,0x73,
+0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x78,0x72,0x72,0x72,0x71,0x71,0x71,0x70,0x70,
+0x70,0x70,0x71,0x71,0x72,0x73,0x73,0x73,0x72,0x71,0x70,0x6e,0x6d,0x6d,0x6d,0x6d,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6d,0x6d,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,
+0x6c,0x6c,0x6b,0x6b,0x6a,0x69,0x69,0x69,0x6f,0x70,0x70,0x70,0x71,0x71,0x71,0x71,
+0x6f,0x6e,0x6c,0x6b,0x6b,0x6b,0x6b,0x6c,0x6a,0x6a,0x69,0x6a,0x6b,0x6e,0x72,0x74,
+0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x77,0x78,0x79,0x79,0x7a,0x7f,0x87,0x8e,
+0x96,0x97,0x98,0x98,0x98,0x97,0x96,0x95,0x96,0x96,0x95,0x94,0x94,0x93,0x93,0x92,
+0x93,0x94,0x96,0x98,0x99,0x99,0x99,0x98,0x98,0x97,0x96,0x95,0x95,0x95,0x96,0x96,
+0x95,0x96,0x98,0x99,0x99,0x98,0x97,0x96,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,
+0x95,0x92,0x89,0x85,0x90,0x9c,0x94,0x82,0x82,0x88,0x8c,0x89,0x83,0x84,0x8e,0x99,
+0x91,0x8a,0x86,0x8e,0x9a,0x9d,0x92,0x86,0x85,0x91,0x94,0x8b,0x86,0x8d,0x93,0x92,
+0x8d,0x8f,0x93,0x97,0x98,0x91,0x87,0x7e,0x6f,0x6e,0x6d,0x6c,0x6c,0x6c,0x6d,0x6e,
+0x6d,0x6b,0x6a,0x68,0x68,0x69,0x6a,0x6b,0x6e,0x6d,0x6d,0x6c,0x6b,0x6b,0x6a,0x6a,
+0x6f,0x71,0x74,0x77,0x79,0x79,0x79,0x78,0x77,0x79,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7a,0x7b,0x7b,0x7d,0x7f,0x80,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,
+0x91,0x90,0x8f,0x8d,0x8a,0x86,0x83,0x81,0x7c,0x7e,0x81,0x83,0x84,0x83,0x82,0x81,
+0x82,0x82,0x82,0x81,0x7f,0x7d,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x78,
+0x75,0x75,0x76,0x77,0x78,0x78,0x78,0x78,0x7d,0x7d,0x7e,0x7d,0x7b,0x78,0x74,0x72,
+0x78,0x77,0x75,0x74,0x74,0x75,0x77,0x78,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x78,0x77,
+0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x78,0x7f,0x80,0x81,0x83,0x83,0x83,0x83,0x82,
+0x78,0x79,0x7a,0x79,0x75,0x74,0x76,0x78,0x76,0x76,0x76,0x75,0x74,0x73,0x72,0x72,
+0x78,0x7a,0x7b,0x7c,0x7c,0x7c,0x7a,0x79,0x80,0x81,0x81,0x7e,0x79,0x77,0x78,0x7a,
+0x79,0x78,0x76,0x75,0x75,0x77,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,
+0x80,0x80,0x81,0x82,0x81,0x7f,0x7d,0x7b,0x7f,0x7e,0x7c,0x7b,0x7b,0x7b,0x7d,0x7e,
+0x7d,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7c,
+0x7f,0x7e,0x7c,0x7b,0x7b,0x7d,0x7e,0x7f,0x82,0x82,0x83,0x84,0x85,0x85,0x86,0x86,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,
+0x80,0x7e,0x7c,0x7a,0x7a,0x7c,0x7f,0x80,0x7b,0x7b,0x79,0x79,0x78,0x79,0x7a,0x7a,
+0x7d,0x7d,0x7d,0x7d,0x7b,0x7a,0x78,0x77,0x73,0x73,0x74,0x75,0x77,0x78,0x79,0x79,
+0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x7c,0x7a,0x79,0x7b,0x7f,0x82,0x81,0x7f,
+0x7c,0x79,0x76,0x77,0x7a,0x7c,0x7b,0x7a,0x77,0x7a,0x7f,0x82,0x82,0x7f,0x7b,0x78,
+0x7d,0x7f,0x82,0x84,0x86,0x85,0x84,0x84,0x7e,0x7f,0x7f,0x80,0x81,0x82,0x82,0x83,
+0x81,0x81,0x82,0x82,0x83,0x83,0x84,0x84,0x80,0x80,0x82,0x84,0x87,0x89,0x8a,0x8b,
+0x87,0x87,0x88,0x88,0x87,0x86,0x84,0x83,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x90,0x90,0x8f,0x8e,0x8b,0x88,0x85,0x84,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x82,0x81,0x80,0x7e,0x7d,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,
+0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x7e,0x7f,0x7f,0x7f,0x7d,0x7a,0x76,0x74,
+0x78,0x77,0x75,0x74,0x75,0x76,0x79,0x7a,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7f,0x80,0x81,0x83,0x83,0x83,0x83,0x82,
+0x7b,0x7c,0x7c,0x7a,0x77,0x75,0x76,0x78,0x79,0x78,0x77,0x76,0x75,0x75,0x75,0x75,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x79,0x78,0x80,0x81,0x81,0x7e,0x7a,0x77,0x79,0x7b,
+0x79,0x78,0x77,0x76,0x76,0x78,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7b,0x7b,
+0x7f,0x80,0x80,0x81,0x80,0x7e,0x7c,0x7b,0x7f,0x7e,0x7d,0x7b,0x7b,0x7c,0x7d,0x7d,
+0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7b,0x7a,0x7e,0x7e,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7f,0x80,0x83,0x84,0x84,0x85,0x86,0x87,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,
+0x82,0x80,0x7e,0x7c,0x7b,0x7c,0x7e,0x80,0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7b,0x7c,
+0x7d,0x7d,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,0x75,0x76,0x76,0x77,0x78,0x79,0x79,0x79,
+0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x7b,0x7a,0x79,0x7b,0x80,0x82,0x81,0x7f,
+0x7d,0x7a,0x77,0x78,0x7b,0x7d,0x7d,0x7b,0x78,0x7b,0x7f,0x82,0x82,0x7f,0x7b,0x79,
+0x7a,0x7b,0x7e,0x81,0x83,0x83,0x82,0x81,0x7f,0x80,0x80,0x81,0x82,0x82,0x83,0x83,
+0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x86,0x86,0x85,0x84,0x82,0x81,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x90,0x90,0x90,0x8f,0x8d,0x8b,0x88,0x87,0x7e,0x7c,0x7a,0x78,0x78,0x79,0x7b,0x7c,
+0x82,0x80,0x7d,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7e,0x7f,0x80,0x7f,0x7e,0x7b,0x78,0x76,
+0x78,0x77,0x75,0x75,0x76,0x78,0x7b,0x7c,0x84,0x81,0x7d,0x7a,0x78,0x79,0x7c,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7f,0x80,0x81,0x83,0x83,0x83,0x83,0x82,
+0x7f,0x7e,0x7c,0x7a,0x78,0x77,0x77,0x77,0x7c,0x7a,0x78,0x76,0x75,0x76,0x77,0x78,
+0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x78,0x78,0x80,0x81,0x81,0x7e,0x7a,0x78,0x7a,0x7d,
+0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7d,0x7d,
+0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7d,0x7e,0x80,0x81,0x86,0x86,0x86,0x87,0x88,0x88,0x89,0x89,
+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,
+0x84,0x83,0x80,0x7e,0x7d,0x7d,0x7e,0x7f,0x80,0x7f,0x7e,0x7c,0x7c,0x7c,0x7c,0x7d,
+0x7d,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x7b,0x79,0x79,0x7b,0x80,0x83,0x82,0x80,
+0x7f,0x7c,0x79,0x7a,0x7d,0x7f,0x7e,0x7c,0x79,0x7c,0x80,0x82,0x82,0x80,0x7c,0x79,
+0x76,0x78,0x7b,0x7f,0x81,0x81,0x81,0x80,0x81,0x81,0x82,0x82,0x83,0x83,0x84,0x84,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x8a,0x89,0x88,0x86,0x84,0x82,0x80,0x7f,
+0x83,0x84,0x84,0x84,0x84,0x82,0x81,0x80,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x90,0x90,0x90,0x90,0x8e,0x8d,0x8b,0x8a,0x83,0x80,0x7b,0x77,0x76,0x78,0x7c,0x7e,
+0x81,0x7f,0x7b,0x78,0x77,0x78,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,
+0x7f,0x7e,0x7c,0x7b,0x79,0x79,0x79,0x78,0x7b,0x7c,0x7d,0x7d,0x7c,0x79,0x77,0x75,
+0x77,0x76,0x75,0x75,0x77,0x79,0x7c,0x7e,0x84,0x80,0x7a,0x75,0x74,0x76,0x7a,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7f,0x80,0x81,0x83,0x83,0x83,0x83,0x82,
+0x80,0x7d,0x79,0x77,0x78,0x78,0x78,0x77,0x7b,0x7a,0x77,0x76,0x75,0x76,0x78,0x79,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x81,0x81,0x81,0x7d,0x79,0x78,0x7a,0x7d,
+0x79,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7b,0x7b,0x7b,0x7a,0x7b,0x7c,0x7c,0x7d,
+0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7d,0x7e,0x7f,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,
+0x7a,0x7a,0x7b,0x7d,0x7f,0x81,0x83,0x84,0x88,0x88,0x89,0x89,0x89,0x8a,0x8a,0x8a,
+0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x89,0x89,0x88,0x88,0x88,0x87,0x87,0x87,
+0x87,0x85,0x83,0x81,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7d,0x7c,0x7a,0x7a,0x7a,0x7a,
+0x7d,0x7e,0x7f,0x80,0x81,0x81,0x80,0x80,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,
+0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x7b,0x79,0x79,0x7c,0x80,0x83,0x83,0x81,
+0x80,0x7d,0x7b,0x7b,0x7f,0x81,0x80,0x7e,0x7c,0x7e,0x81,0x83,0x83,0x80,0x7d,0x7a,
+0x77,0x79,0x7c,0x80,0x82,0x82,0x82,0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x85,
+0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x89,0x88,0x87,0x85,0x83,0x82,0x80,0x80,
+0x85,0x85,0x86,0x86,0x85,0x84,0x82,0x81,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,
+0x90,0x90,0x90,0x90,0x8f,0x8e,0x8c,0x8b,0x87,0x84,0x7f,0x7c,0x7a,0x7c,0x7f,0x82,
+0x7f,0x7e,0x7c,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7e,0x7c,0x7a,0x78,0x76,0x76,0x76,0x76,0x77,0x78,0x79,0x7a,0x79,0x77,0x74,0x73,
+0x77,0x76,0x75,0x75,0x77,0x79,0x7c,0x7e,0x80,0x7c,0x76,0x71,0x70,0x72,0x76,0x79,
+0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x7f,0x80,0x81,0x83,0x83,0x83,0x83,0x82,
+0x7e,0x79,0x74,0x75,0x79,0x7c,0x7c,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x82,0x82,0x80,0x7c,0x77,0x76,0x79,0x7c,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x7c,0x7d,0x7e,
+0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,
+0x7c,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7d,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,
+0x7b,0x7c,0x7e,0x80,0x82,0x84,0x86,0x86,0x8a,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,0x8b,
+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,
+0x88,0x87,0x85,0x83,0x82,0x81,0x81,0x81,0x7f,0x7e,0x7c,0x7a,0x78,0x77,0x77,0x77,
+0x7d,0x7e,0x80,0x81,0x82,0x82,0x82,0x81,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,
+0x7f,0x7e,0x7d,0x7b,0x7b,0x7b,0x7c,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x7b,0x79,0x79,0x7c,0x81,0x84,0x83,0x82,
+0x81,0x7e,0x7c,0x7c,0x80,0x82,0x81,0x7f,0x7e,0x80,0x82,0x83,0x83,0x80,0x7e,0x7c,
+0x7b,0x7d,0x80,0x83,0x85,0x86,0x85,0x85,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x84,
+0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x85,
+0x90,0x90,0x91,0x90,0x8f,0x8d,0x8c,0x8b,0x89,0x87,0x84,0x81,0x80,0x81,0x82,0x84,
+0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,
+0x7d,0x7b,0x79,0x76,0x75,0x75,0x76,0x77,0x75,0x76,0x78,0x79,0x78,0x77,0x75,0x73,
+0x78,0x77,0x75,0x75,0x76,0x78,0x7b,0x7c,0x7a,0x77,0x73,0x71,0x70,0x72,0x74,0x76,
+0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x79,0x7f,0x80,0x81,0x83,0x83,0x83,0x83,0x82,
+0x7c,0x76,0x72,0x75,0x7e,0x86,0x87,0x85,0x79,0x7b,0x7e,0x81,0x81,0x7e,0x7b,0x79,
+0x7a,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7a,0x83,0x83,0x80,0x7b,0x75,0x73,0x76,0x7a,
+0x77,0x77,0x79,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7c,0x7b,0x7a,0x7a,0x7c,0x7e,0x7f,
+0x7f,0x7e,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,
+0x7c,0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,
+0x7f,0x80,0x82,0x85,0x87,0x88,0x89,0x89,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,
+0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x83,0x81,0x7f,0x7d,0x7a,0x78,0x77,0x76,0x76,
+0x7e,0x7f,0x80,0x82,0x82,0x82,0x82,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,
+0x81,0x7f,0x7d,0x7b,0x7a,0x7a,0x7b,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x7b,0x79,0x79,0x7c,0x81,0x84,0x84,0x83,
+0x82,0x7f,0x7c,0x7d,0x80,0x82,0x81,0x7f,0x80,0x81,0x83,0x84,0x83,0x81,0x7e,0x7d,
+0x7e,0x80,0x83,0x86,0x87,0x87,0x86,0x85,0x83,0x83,0x83,0x83,0x83,0x83,0x84,0x83,
+0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x7f,0x7f,0x80,0x82,0x84,0x85,0x86,0x87,
+0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,0x81,0x81,0x82,0x82,0x83,0x84,0x84,0x84,
+0x91,0x91,0x91,0x90,0x8e,0x8c,0x8a,0x89,0x85,0x85,0x85,0x85,0x84,0x84,0x83,0x83,
+0x7b,0x7e,0x82,0x85,0x85,0x81,0x7c,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7f,0x7d,0x7a,0x78,0x77,0x78,0x79,0x7a,0x77,0x78,0x7a,0x7b,0x7b,0x7a,0x78,0x77,
+0x78,0x77,0x75,0x74,0x75,0x76,0x79,0x7a,0x76,0x75,0x75,0x74,0x74,0x75,0x76,0x76,
+0x74,0x74,0x76,0x78,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,0x81,0x83,0x83,0x83,0x83,0x82,
+0x7d,0x76,0x72,0x79,0x87,0x92,0x94,0x92,0x7b,0x80,0x87,0x8c,0x8c,0x88,0x81,0x7c,
+0x79,0x78,0x77,0x77,0x78,0x79,0x7b,0x7d,0x85,0x84,0x80,0x79,0x73,0x70,0x73,0x76,
+0x75,0x76,0x78,0x7a,0x7c,0x7c,0x7b,0x7b,0x7e,0x7d,0x7b,0x79,0x7a,0x7c,0x7e,0x80,
+0x80,0x7f,0x7e,0x7d,0x7d,0x7e,0x80,0x80,0x7e,0x7e,0x7f,0x80,0x80,0x7e,0x7d,0x7c,
+0x7c,0x7d,0x7e,0x7f,0x80,0x7f,0x7f,0x7e,0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7e,0x7e,
+0x83,0x85,0x87,0x89,0x8b,0x8c,0x8b,0x8b,0x8c,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x88,0x88,0x88,0x87,0x87,
+0x87,0x88,0x88,0x87,0x87,0x86,0x86,0x86,0x85,0x83,0x81,0x7e,0x7b,0x7a,0x79,0x79,
+0x7f,0x80,0x81,0x82,0x82,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,
+0x7f,0x7d,0x7a,0x77,0x76,0x76,0x77,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x7a,0x79,0x79,0x7c,0x81,0x85,0x85,0x83,
+0x82,0x7e,0x7c,0x7d,0x80,0x82,0x81,0x7f,0x82,0x83,0x84,0x84,0x83,0x81,0x7f,0x7e,
+0x80,0x81,0x84,0x86,0x86,0x85,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,
+0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x83,0x81,0x81,0x81,0x82,0x83,0x83,0x84,0x84,
+0x84,0x85,0x85,0x85,0x84,0x83,0x82,0x81,0x80,0x80,0x81,0x82,0x83,0x83,0x84,0x84,
+0x91,0x91,0x91,0x90,0x8e,0x8c,0x89,0x88,0x82,0x83,0x85,0x86,0x86,0x84,0x82,0x81,
+0x79,0x7e,0x85,0x89,0x89,0x83,0x7c,0x77,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,
+0x81,0x7f,0x7c,0x7a,0x79,0x7b,0x7d,0x7e,0x7a,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x78,0x77,0x75,0x74,0x74,0x75,0x77,0x78,0x74,0x75,0x77,0x78,0x79,0x79,0x78,0x77,
+0x75,0x76,0x78,0x7a,0x7c,0x7f,0x81,0x82,0x7f,0x80,0x81,0x83,0x83,0x83,0x83,0x82,
+0x7e,0x77,0x74,0x7d,0x8e,0x9b,0x9e,0x9d,0x7e,0x85,0x8e,0x95,0x95,0x8f,0x86,0x7f,
+0x77,0x77,0x76,0x76,0x78,0x7a,0x7c,0x7e,0x86,0x84,0x80,0x78,0x71,0x6f,0x71,0x74,
+0x74,0x75,0x78,0x7a,0x7b,0x7b,0x7b,0x7a,0x7f,0x7d,0x7b,0x79,0x7a,0x7c,0x7e,0x80,
+0x80,0x80,0x7e,0x7d,0x7e,0x7f,0x80,0x82,0x7d,0x7e,0x80,0x80,0x80,0x7f,0x7d,0x7c,
+0x7c,0x7d,0x7e,0x7f,0x80,0x80,0x7f,0x7f,0x7c,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x86,0x88,0x8a,0x8c,0x8e,0x8e,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,
+0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x88,0x88,0x88,0x88,0x87,0x87,0x87,0x87,
+0x87,0x87,0x88,0x88,0x88,0x88,0x87,0x87,0x89,0x87,0x84,0x81,0x7f,0x7d,0x7c,0x7c,
+0x7f,0x80,0x81,0x81,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7c,0x7a,0x76,0x73,0x72,0x72,0x73,0x75,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7b,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x7a,0x79,0x79,0x7c,0x82,0x85,0x85,0x84,
+0x81,0x7e,0x7c,0x7c,0x7f,0x81,0x81,0x7f,0x83,0x83,0x84,0x84,0x83,0x81,0x7f,0x7e,
+0x80,0x81,0x83,0x84,0x84,0x83,0x81,0x80,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x82,
+0x86,0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x84,0x84,0x83,0x82,0x82,0x81,0x80,0x80,
+0x81,0x81,0x82,0x82,0x81,0x80,0x7e,0x7d,0x80,0x80,0x81,0x82,0x82,0x83,0x84,0x84,
+0x8e,0x90,0x91,0x92,0x91,0x8f,0x8b,0x89,0x82,0x84,0x86,0x88,0x89,0x8a,0x8a,0x8a,
+0x81,0x83,0x84,0x82,0x7d,0x7a,0x7a,0x7b,0x80,0x7c,0x79,0x7c,0x81,0x82,0x7d,0x77,
+0x80,0x7c,0x78,0x78,0x7b,0x7d,0x7d,0x7b,0x75,0x77,0x7b,0x7d,0x7d,0x7b,0x77,0x75,
+0x75,0x76,0x77,0x79,0x7b,0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7c,0x7a,0x78,0x75,0x74,
+0x74,0x76,0x79,0x7d,0x81,0x85,0x88,0x8a,0x81,0x82,0x83,0x83,0x83,0x83,0x82,0x81,
+0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x7d,0x7f,0x82,0x83,0x82,0x7f,0x7b,0x78,
+0x77,0x79,0x7b,0x7a,0x78,0x7a,0x7e,0x82,0x83,0x80,0x7e,0x7d,0x7b,0x76,0x6e,0x68,
+0x74,0x70,0x6d,0x6f,0x74,0x7a,0x7d,0x7e,0x7b,0x7a,0x7a,0x7a,0x7c,0x7e,0x80,0x82,
+0x81,0x7f,0x7d,0x7c,0x7b,0x7d,0x7f,0x80,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x7d,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7f,0x83,0x87,0x8a,
+0x8d,0x8d,0x8c,0x8b,0x8b,0x8a,0x89,0x89,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x89,0x88,0x88,0x88,0x89,0x89,0x89,0x8a,0x8a,
+0x8b,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x87,0x87,0x87,0x86,0x85,0x83,0x82,0x81,0x81,
+0x7f,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x7f,0x80,0x80,0x80,0x7f,0x7d,0x7c,0x7b,
+0x7b,0x7a,0x78,0x77,0x76,0x77,0x78,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x77,0x7b,0x7e,0x7f,0x7c,0x79,0x79,0x7a,0x7a,0x79,0x78,0x7b,0x7f,0x82,0x80,0x7e,
+0x82,0x7f,0x7c,0x7a,0x7a,0x7e,0x83,0x86,0x81,0x82,0x82,0x83,0x82,0x81,0x80,0x7f,
+0x82,0x82,0x83,0x84,0x84,0x84,0x83,0x82,0x80,0x81,0x82,0x83,0x84,0x85,0x85,0x86,
+0x89,0x88,0x87,0x86,0x84,0x83,0x81,0x81,0x80,0x80,0x81,0x81,0x82,0x82,0x83,0x83,
+0x84,0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x8f,0x90,0x91,0x92,0x90,0x8d,0x8a,0x88,0x83,0x84,0x86,0x88,0x89,0x8a,0x8a,0x8a,
+0x83,0x85,0x86,0x83,0x7e,0x7a,0x7a,0x7c,0x7e,0x79,0x77,0x79,0x7e,0x80,0x7e,0x7a,
+0x80,0x7c,0x78,0x77,0x7a,0x7c,0x7c,0x7b,0x75,0x77,0x7a,0x7d,0x7d,0x7a,0x77,0x75,
+0x76,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x75,0x76,0x77,0x78,0x79,0x7a,0x7a,0x7a,
+0x74,0x75,0x77,0x7a,0x7d,0x80,0x82,0x84,0x81,0x82,0x83,0x84,0x84,0x83,0x82,0x81,
+0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x75,0x78,0x7c,0x7f,0x80,0x7f,0x7c,0x7a,
+0x74,0x75,0x75,0x74,0x73,0x75,0x7b,0x80,0x8c,0x82,0x74,0x69,0x65,0x64,0x65,0x65,
+0x67,0x64,0x62,0x64,0x69,0x6f,0x72,0x72,0x75,0x73,0x72,0x71,0x73,0x76,0x7a,0x7d,
+0x81,0x81,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7a,0x7b,0x7d,0x7f,0x82,0x85,0x88,0x89,
+0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8a,0x8a,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8b,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x88,0x88,0x89,0x89,0x89,0x8a,0x8a,0x8a,
+0x8b,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x87,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x82,
+0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x7f,0x7f,0x80,0x80,0x7f,0x7d,0x7c,0x7b,
+0x7b,0x7a,0x79,0x77,0x77,0x77,0x78,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x78,0x7a,0x7c,0x7d,0x7c,0x7e,0x81,0x84,0x87,0x86,0x87,0x89,0x8d,0x8d,0x89,0x85,
+0x82,0x82,0x82,0x82,0x83,0x83,0x84,0x85,0x82,0x82,0x83,0x83,0x82,0x81,0x80,0x7f,
+0x81,0x82,0x83,0x84,0x84,0x84,0x83,0x82,0x81,0x81,0x82,0x82,0x83,0x84,0x84,0x84,
+0x85,0x85,0x84,0x83,0x82,0x81,0x80,0x7f,0x81,0x81,0x82,0x82,0x83,0x83,0x83,0x84,
+0x86,0x86,0x86,0x87,0x87,0x88,0x88,0x88,0x85,0x85,0x86,0x86,0x87,0x87,0x88,0x88,
+0x90,0x91,0x91,0x90,0x8e,0x8b,0x88,0x86,0x84,0x85,0x87,0x88,0x89,0x89,0x89,0x89,
+0x86,0x88,0x88,0x84,0x7f,0x7b,0x7b,0x7d,0x7c,0x79,0x75,0x77,0x7b,0x7f,0x81,0x80,
+0x7f,0x7b,0x77,0x76,0x79,0x7b,0x7b,0x79,0x75,0x77,0x7a,0x7c,0x7c,0x7a,0x77,0x75,
+0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x78,0x79,0x7b,0x7d,0x81,0x82,0x83,0x84,0x84,0x83,0x82,0x81,
+0x79,0x78,0x77,0x76,0x76,0x77,0x78,0x79,0x6f,0x72,0x76,0x7b,0x7d,0x7e,0x7d,0x7c,
+0x76,0x77,0x77,0x75,0x74,0x77,0x7e,0x84,0x8e,0x7f,0x69,0x58,0x51,0x53,0x58,0x5b,
+0x5a,0x58,0x56,0x59,0x5f,0x64,0x66,0x66,0x6e,0x6b,0x68,0x66,0x68,0x6e,0x74,0x79,
+0x80,0x81,0x82,0x82,0x81,0x7d,0x7a,0x78,0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x78,0x7b,0x7f,0x84,0x87,0x89,0x89,0x89,
+0x8b,0x8b,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x89,0x89,0x8a,0x8a,0x8a,0x8a,
+0x8b,0x8b,0x8a,0x8a,0x89,0x89,0x88,0x88,0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x83,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x7f,0x7f,0x80,0x80,0x7f,0x7e,0x7c,0x7b,
+0x7b,0x7b,0x7a,0x79,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7b,0x7a,0x79,0x7b,0x7f,0x86,0x8d,0x92,0x96,0x96,0x97,0x9a,0x9b,0x98,0x92,0x8c,
+0x85,0x88,0x8c,0x90,0x90,0x8d,0x88,0x85,0x83,0x83,0x84,0x84,0x83,0x82,0x80,0x7f,
+0x81,0x82,0x83,0x84,0x84,0x84,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x85,
+0x87,0x88,0x88,0x88,0x88,0x89,0x89,0x89,0x85,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,
+0x91,0x90,0x90,0x8f,0x8c,0x89,0x86,0x84,0x85,0x86,0x88,0x89,0x89,0x89,0x89,0x88,
+0x88,0x89,0x89,0x85,0x7f,0x7c,0x7c,0x7e,0x7e,0x7c,0x79,0x79,0x7d,0x82,0x86,0x88,
+0x7f,0x7b,0x77,0x76,0x78,0x7a,0x79,0x78,0x76,0x77,0x79,0x7b,0x7b,0x79,0x77,0x76,
+0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x77,
+0x7e,0x7c,0x79,0x76,0x75,0x76,0x78,0x79,0x82,0x82,0x83,0x84,0x84,0x83,0x82,0x82,
+0x7a,0x79,0x77,0x75,0x75,0x75,0x77,0x78,0x72,0x74,0x78,0x7b,0x7d,0x7d,0x7c,0x7b,
+0x7c,0x7d,0x7c,0x7a,0x7a,0x7d,0x84,0x8a,0x87,0x7e,0x71,0x67,0x61,0x5d,0x5a,0x57,
+0x58,0x56,0x56,0x59,0x60,0x64,0x65,0x64,0x6b,0x68,0x63,0x62,0x64,0x6b,0x73,0x79,
+0x7e,0x80,0x82,0x82,0x80,0x7a,0x75,0x71,0x71,0x72,0x72,0x72,0x71,0x70,0x6e,0x6d,
+0x6c,0x6c,0x6b,0x6c,0x6d,0x6f,0x72,0x73,0x78,0x7c,0x82,0x88,0x8b,0x8c,0x8a,0x89,
+0x8a,0x8a,0x8b,0x8b,0x8c,0x8d,0x8d,0x8e,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8c,0x8c,0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,0x89,0x8a,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,
+0x8b,0x8b,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x89,0x89,0x88,0x87,0x86,0x86,0x85,0x85,
+0x84,0x84,0x83,0x83,0x82,0x82,0x82,0x81,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,
+0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7a,0x78,0x7b,0x83,0x8d,0x96,0x9a,0x9a,0x9b,0x9c,0x9f,0x9f,0x9b,0x92,0x8b,
+0x89,0x8e,0x96,0x9b,0x9b,0x95,0x8d,0x88,0x84,0x85,0x85,0x85,0x84,0x82,0x81,0x80,
+0x81,0x81,0x83,0x84,0x85,0x84,0x84,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,
+0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x85,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,
+0x90,0x8f,0x8e,0x8d,0x8a,0x87,0x85,0x84,0x87,0x88,0x89,0x89,0x89,0x89,0x88,0x87,
+0x88,0x89,0x88,0x83,0x7e,0x7b,0x7d,0x7f,0x82,0x82,0x81,0x81,0x82,0x85,0x8a,0x8e,
+0x80,0x7b,0x77,0x76,0x78,0x7a,0x79,0x77,0x77,0x78,0x7a,0x7b,0x7b,0x7a,0x78,0x77,
+0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x74,0x79,0x79,0x79,0x7a,0x7c,0x7f,0x82,0x84,
+0x84,0x81,0x7c,0x78,0x76,0x76,0x78,0x7a,0x82,0x83,0x84,0x84,0x84,0x84,0x83,0x82,
+0x7e,0x7c,0x79,0x77,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7c,0x7a,0x79,
+0x7a,0x7c,0x7d,0x7b,0x7a,0x7c,0x81,0x86,0x85,0x89,0x8f,0x93,0x90,0x83,0x71,0x63,
+0x5e,0x5d,0x5e,0x63,0x69,0x6d,0x6d,0x6c,0x6c,0x69,0x66,0x65,0x69,0x70,0x78,0x7d,
+0x7c,0x7d,0x7f,0x7f,0x7c,0x77,0x71,0x6d,0x6b,0x6b,0x6b,0x6b,0x69,0x68,0x66,0x65,
+0x61,0x60,0x5f,0x5f,0x61,0x65,0x69,0x6b,0x7b,0x7f,0x85,0x8b,0x8e,0x8e,0x8c,0x8a,
+0x8a,0x8b,0x8b,0x8c,0x8c,0x8d,0x8e,0x8e,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,0x8b,0x8b,0x8b,0x8c,0x8c,
+0x8b,0x8b,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x88,0x88,0x87,0x87,0x87,
+0x86,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x7e,0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7d,0x7a,0x79,0x7e,0x88,0x92,0x96,0x97,0x92,0x92,0x93,0x95,0x96,0x92,0x8a,0x84,
+0x8a,0x90,0x98,0x9e,0x9e,0x98,0x90,0x8b,0x86,0x86,0x86,0x86,0x85,0x83,0x81,0x80,
+0x80,0x81,0x82,0x84,0x85,0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x85,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,
+0x8e,0x8e,0x8c,0x8a,0x88,0x86,0x85,0x84,0x88,0x89,0x89,0x8a,0x8a,0x89,0x87,0x87,
+0x86,0x86,0x85,0x81,0x7c,0x7a,0x7d,0x80,0x84,0x87,0x89,0x89,0x87,0x87,0x8a,0x8d,
+0x81,0x7d,0x78,0x77,0x78,0x7a,0x79,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,
+0x79,0x79,0x78,0x77,0x76,0x76,0x75,0x75,0x71,0x72,0x75,0x7a,0x81,0x89,0x90,0x94,
+0x88,0x83,0x7d,0x78,0x76,0x77,0x7a,0x7c,0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x82,
+0x82,0x80,0x7c,0x79,0x77,0x78,0x7a,0x7b,0x7f,0x80,0x80,0x7f,0x7e,0x7c,0x7a,0x79,
+0x76,0x79,0x7d,0x7e,0x7b,0x7a,0x7b,0x7d,0x8b,0x96,0xa7,0xb3,0xb2,0xa1,0x88,0x75,
+0x63,0x63,0x66,0x6b,0x72,0x75,0x74,0x72,0x6e,0x6d,0x6d,0x6e,0x72,0x78,0x7f,0x82,
+0x7e,0x7e,0x7e,0x7d,0x7a,0x76,0x71,0x6f,0x6c,0x6c,0x6c,0x6b,0x69,0x67,0x65,0x63,
+0x61,0x5f,0x5e,0x5e,0x60,0x65,0x6b,0x6f,0x82,0x84,0x88,0x8b,0x8d,0x8e,0x8d,0x8c,
+0x8c,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8c,0x8c,0x8c,0x8c,
+0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x89,0x89,0x89,0x89,
+0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,0x7d,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,
+0x7c,0x7c,0x7e,0x7e,0x7f,0x7e,0x7e,0x7d,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7d,0x7c,0x7d,0x85,0x8f,0x93,0x8e,0x88,0x84,0x83,0x83,0x85,0x87,0x86,0x81,0x7d,
+0x87,0x8a,0x8f,0x93,0x94,0x91,0x8d,0x8b,0x87,0x88,0x88,0x87,0x86,0x84,0x82,0x81,
+0x7f,0x80,0x82,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x87,0x87,0x87,0x88,0x88,0x88,0x88,0x88,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,
+0x8c,0x8b,0x8a,0x89,0x87,0x86,0x85,0x85,0x89,0x8a,0x8a,0x8a,0x8a,0x88,0x87,0x86,
+0x82,0x83,0x81,0x7e,0x7a,0x79,0x7c,0x80,0x83,0x89,0x8e,0x8e,0x89,0x85,0x85,0x88,
+0x82,0x7e,0x79,0x78,0x79,0x7b,0x7a,0x78,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x77,0x77,0x78,0x7b,0x80,0x86,0x8b,0x8f,
+0x86,0x82,0x7b,0x76,0x74,0x76,0x7a,0x7d,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x83,0x80,0x7c,0x78,0x76,0x77,0x79,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7f,0x85,0x8c,0x8e,0x8b,0x86,0x83,0x82,0x8b,0x92,0x9c,0xa5,0xa4,0x97,0x84,0x76,
+0x62,0x62,0x66,0x6c,0x73,0x76,0x74,0x71,0x6e,0x70,0x73,0x77,0x7b,0x80,0x83,0x85,
+0x84,0x83,0x80,0x7e,0x7b,0x79,0x77,0x76,0x75,0x75,0x74,0x73,0x71,0x6f,0x6c,0x6b,
+0x6d,0x6b,0x69,0x69,0x6c,0x72,0x79,0x7d,0x89,0x89,0x8a,0x8a,0x8c,0x8d,0x8e,0x8f,
+0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8c,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8e,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,
+0x8a,0x8a,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8a,0x8a,0x8a,0x8a,
+0x89,0x89,0x88,0x86,0x84,0x83,0x82,0x81,0x7d,0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,
+0x7c,0x7d,0x7f,0x80,0x80,0x80,0x7f,0x7e,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7d,0x7d,0x82,0x8c,0x94,0x91,0x83,0x76,0x79,0x76,0x75,0x77,0x7b,0x7e,0x7d,0x7c,
+0x7f,0x80,0x80,0x81,0x83,0x84,0x86,0x87,0x89,0x89,0x89,0x88,0x86,0x84,0x82,0x81,
+0x7f,0x80,0x82,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x87,
+0x88,0x88,0x88,0x88,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x84,0x84,
+0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,
+0x8b,0x8a,0x89,0x88,0x87,0x86,0x86,0x86,0x8a,0x8a,0x8b,0x8b,0x8a,0x88,0x87,0x86,
+0x80,0x80,0x7f,0x7c,0x78,0x78,0x7c,0x80,0x81,0x88,0x90,0x90,0x89,0x82,0x81,0x82,
+0x83,0x7f,0x7a,0x78,0x7a,0x7b,0x7a,0x79,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x87,0x85,0x81,0x7d,0x7b,0x7b,0x7c,0x7d,
+0x84,0x7f,0x78,0x73,0x71,0x74,0x79,0x7d,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x82,0x7f,0x7b,0x77,0x75,0x75,0x78,0x79,0x74,0x76,0x78,0x7a,0x7c,0x7e,0x7f,0x80,
+0x8f,0x96,0x9f,0xa3,0x9f,0x98,0x92,0x8f,0x84,0x83,0x83,0x83,0x82,0x7c,0x72,0x6a,
+0x5d,0x5e,0x62,0x69,0x70,0x73,0x70,0x6d,0x6e,0x71,0x76,0x7b,0x80,0x83,0x85,0x86,
+0x89,0x87,0x83,0x7f,0x7d,0x7c,0x7c,0x7d,0x7e,0x7d,0x7d,0x7b,0x79,0x77,0x74,0x73,
+0x7a,0x77,0x75,0x75,0x78,0x7f,0x86,0x8b,0x8d,0x8c,0x8a,0x8a,0x8a,0x8c,0x8e,0x90,
+0x8f,0x8e,0x8e,0x8d,0x8c,0x8c,0x8b,0x8b,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8e,0x8e,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x8d,
+0x8a,0x8a,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,0x8b,
+0x8a,0x8a,0x88,0x87,0x85,0x83,0x82,0x81,0x7c,0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,
+0x7c,0x7d,0x7f,0x81,0x81,0x81,0x80,0x7f,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7e,0x85,0x91,0x98,0x90,0x7b,0x69,0x74,0x70,0x6e,0x70,0x75,0x7a,0x7d,0x7d,
+0x79,0x77,0x74,0x73,0x75,0x7a,0x7f,0x83,0x89,0x89,0x89,0x88,0x87,0x85,0x82,0x81,
+0x7f,0x80,0x82,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x85,0x86,0x87,0x88,0x89,0x89,
+0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,
+0x8b,0x8b,0x8a,0x8a,0x89,0x89,0x88,0x88,0x87,0x86,0x86,0x85,0x84,0x83,0x82,0x82,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x89,0x8a,0x8a,0x8b,0x8b,0x8c,0x8c,0x8c,
+0x88,0x87,0x86,0x84,0x83,0x81,0x80,0x7f,0x82,0x8a,0x91,0x90,0x89,0x81,0x7f,0x80,
+0x7c,0x78,0x74,0x75,0x78,0x7c,0x7d,0x7d,0x74,0x76,0x78,0x7a,0x7c,0x7c,0x7c,0x7b,
+0x77,0x78,0x79,0x77,0x76,0x78,0x7e,0x83,0x94,0x90,0x88,0x80,0x79,0x76,0x74,0x74,
+0x79,0x79,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x80,0x84,0x88,0x89,0x86,0x83,0x82,0x82,
+0x77,0x7a,0x7c,0x7c,0x7a,0x79,0x7a,0x7c,0x78,0x79,0x7a,0x7c,0x7f,0x81,0x83,0x84,
+0x8f,0xa2,0xb8,0xbe,0xb2,0x9d,0x8e,0x86,0x8a,0x82,0x77,0x6d,0x68,0x63,0x5f,0x5c,
+0x5e,0x5d,0x5f,0x65,0x6c,0x72,0x73,0x72,0x6c,0x73,0x7d,0x83,0x85,0x84,0x83,0x84,
+0x83,0x84,0x84,0x83,0x7f,0x7a,0x75,0x72,0x70,0x6f,0x76,0x80,0x7d,0x6f,0x6a,0x70,
+0x6c,0x70,0x76,0x7d,0x83,0x87,0x8a,0x8b,0x8d,0x8d,0x8d,0x8e,0x8e,0x8e,0x8f,0x8f,
+0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,
+0x8e,0x8e,0x8e,0x8e,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,
+0x8a,0x8a,0x89,0x88,0x88,0x87,0x87,0x86,0x83,0x82,0x80,0x7e,0x7c,0x7c,0x7b,0x7b,
+0x7d,0x7c,0x7a,0x79,0x79,0x79,0x79,0x7a,0x77,0x77,0x77,0x77,0x79,0x7a,0x7c,0x7d,
+0x7f,0x7e,0x8a,0x9d,0x9b,0x86,0x77,0x77,0x77,0x77,0x76,0x75,0x76,0x78,0x7a,0x7b,
+0x7c,0x7f,0x80,0x7c,0x76,0x77,0x7e,0x86,0x86,0x86,0x87,0x88,0x87,0x86,0x84,0x82,
+0x81,0x82,0x84,0x86,0x87,0x88,0x87,0x87,0x84,0x83,0x83,0x84,0x85,0x86,0x88,0x89,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x87,0x85,0x82,0x80,0x80,0x82,0x84,0x86,
+0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x84,0x84,0x85,0x85,0x86,0x86,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x87,0x87,0x88,0x88,
+0x87,0x86,0x85,0x84,0x82,0x81,0x80,0x7f,0x7f,0x8a,0x97,0x9c,0x97,0x8c,0x84,0x80,
+0x82,0x7e,0x7a,0x7a,0x7d,0x80,0x81,0x80,0x78,0x7a,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,
+0x79,0x7a,0x7a,0x79,0x78,0x7a,0x7e,0x81,0x8f,0x8b,0x85,0x7f,0x7a,0x77,0x76,0x76,
+0x7e,0x7d,0x7d,0x7c,0x7d,0x7e,0x7f,0x80,0x7f,0x82,0x85,0x85,0x83,0x82,0x84,0x86,
+0x7d,0x7a,0x77,0x78,0x7a,0x7c,0x7c,0x7b,0x74,0x76,0x79,0x7c,0x7e,0x7f,0x7f,0x7f,
+0x97,0xa7,0xb7,0xba,0xaf,0x9e,0x92,0x8d,0x87,0x80,0x76,0x6f,0x6c,0x69,0x66,0x63,
+0x5a,0x5f,0x68,0x73,0x7a,0x7a,0x73,0x6c,0x6d,0x73,0x7b,0x7f,0x80,0x80,0x82,0x84,
+0x83,0x84,0x84,0x83,0x7f,0x79,0x74,0x70,0x6e,0x6d,0x75,0x7f,0x7c,0x6e,0x6a,0x6f,
+0x6f,0x72,0x78,0x7f,0x84,0x88,0x8b,0x8b,0x8d,0x8d,0x8e,0x8e,0x8e,0x8f,0x8f,0x8f,
+0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,
+0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8e,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,
+0x8e,0x8e,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8b,0x8b,0x8a,0x8a,0x89,0x88,0x88,0x87,0x84,0x82,0x80,0x7e,0x7c,0x7b,0x7b,0x7b,
+0x7b,0x7a,0x79,0x78,0x77,0x78,0x78,0x79,0x77,0x77,0x77,0x77,0x78,0x79,0x7a,0x7b,
+0x7e,0x7f,0x8d,0x9e,0x9c,0x88,0x7a,0x7a,0x77,0x76,0x75,0x74,0x73,0x74,0x75,0x76,
+0x7a,0x7d,0x80,0x7d,0x79,0x7a,0x80,0x85,0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x82,
+0x81,0x82,0x84,0x85,0x86,0x87,0x87,0x87,0x85,0x84,0x84,0x84,0x84,0x86,0x87,0x88,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x87,0x85,0x83,0x81,0x81,0x82,0x84,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x85,0x85,0x85,0x86,0x86,0x87,0x87,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x83,
+0x85,0x84,0x84,0x83,0x82,0x81,0x80,0x80,0x7e,0x86,0x90,0x94,0x91,0x8b,0x86,0x84,
+0x88,0x84,0x80,0x80,0x82,0x84,0x84,0x83,0x7d,0x7e,0x7f,0x80,0x80,0x80,0x7f,0x7f,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x86,0x84,0x81,0x7d,0x7b,0x7a,0x7a,0x7a,
+0x82,0x82,0x81,0x80,0x80,0x81,0x82,0x83,0x7f,0x81,0x82,0x81,0x81,0x83,0x89,0x8e,
+0x8b,0x7f,0x74,0x74,0x7b,0x81,0x7e,0x78,0x78,0x76,0x74,0x74,0x75,0x7a,0x7e,0x81,
+0x9d,0xa6,0xaf,0xae,0xa4,0x98,0x92,0x90,0x85,0x7e,0x76,0x71,0x6f,0x6e,0x6c,0x69,
+0x59,0x5e,0x67,0x72,0x78,0x77,0x70,0x6a,0x6f,0x73,0x76,0x78,0x78,0x7b,0x7f,0x83,
+0x84,0x85,0x84,0x82,0x7e,0x78,0x72,0x6e,0x6d,0x6c,0x73,0x7d,0x7a,0x6d,0x69,0x6f,
+0x73,0x76,0x7c,0x82,0x87,0x8a,0x8c,0x8d,0x8e,0x8e,0x8e,0x8e,0x8f,0x8f,0x8f,0x8f,
+0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8e,0x8e,0x8d,0x8d,0x8c,0x8c,0x8b,
+0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8b,0x8b,0x8b,
+0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x89,0x85,0x83,0x81,0x7e,0x7c,0x7b,0x7a,0x7a,
+0x79,0x78,0x77,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x77,0x76,0x76,0x77,0x78,0x79,
+0x7d,0x82,0x91,0x9f,0x9d,0x8d,0x81,0x80,0x7a,0x78,0x76,0x74,0x72,0x71,0x71,0x71,
+0x78,0x7c,0x7f,0x80,0x7e,0x7e,0x82,0x85,0x89,0x87,0x83,0x80,0x7f,0x7f,0x80,0x80,
+0x80,0x81,0x83,0x85,0x86,0x86,0x86,0x85,0x86,0x85,0x84,0x84,0x84,0x84,0x85,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x83,0x82,0x82,0x83,0x85,0x86,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x7f,0x7d,0x7c,0x7c,0x7f,0x85,0x89,
+0x8a,0x86,0x82,0x82,0x83,0x84,0x83,0x81,0x7e,0x7e,0x7e,0x7f,0x7f,0x7e,0x7e,0x7e,
+0x79,0x78,0x79,0x7a,0x7c,0x7d,0x7b,0x79,0x7e,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x82,0x82,0x81,0x80,0x80,0x81,0x82,0x83,0x83,0x83,0x83,0x81,0x81,0x86,0x8f,0x96,
+0x9d,0x8b,0x78,0x75,0x7e,0x84,0x7e,0x75,0x7f,0x7a,0x73,0x6e,0x6f,0x76,0x7f,0x85,
+0x96,0x99,0x9c,0x98,0x91,0x8b,0x8a,0x8b,0x85,0x7f,0x77,0x71,0x6f,0x6d,0x69,0x66,
+0x5f,0x5f,0x61,0x66,0x6c,0x70,0x6f,0x6c,0x70,0x72,0x72,0x72,0x72,0x76,0x7d,0x83,
+0x85,0x85,0x85,0x82,0x7d,0x77,0x70,0x6d,0x6c,0x6a,0x71,0x7b,0x79,0x6d,0x6a,0x70,
+0x78,0x7b,0x80,0x86,0x8a,0x8c,0x8d,0x8e,0x8e,0x8f,0x8f,0x8f,0x8f,0x90,0x90,0x90,
+0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x8f,0x8f,0x8e,0x8d,0x8d,0x8d,
+0x8d,0x8d,0x8d,0x8d,0x8d,0x8e,0x8e,0x8e,0x8d,0x8d,0x8d,0x8d,0x8c,0x8c,0x8c,0x8c,
+0x8e,0x8e,0x8d,0x8d,0x8c,0x8c,0x8b,0x8b,0x86,0x85,0x82,0x7f,0x7c,0x7b,0x7a,0x7a,
+0x77,0x76,0x75,0x74,0x74,0x75,0x76,0x76,0x79,0x78,0x77,0x76,0x75,0x75,0x76,0x76,
+0x7c,0x87,0x98,0xa3,0xa0,0x95,0x8c,0x8a,0x82,0x80,0x7e,0x7a,0x77,0x74,0x71,0x70,
+0x7a,0x7d,0x80,0x82,0x83,0x83,0x84,0x85,0x8a,0x87,0x82,0x7e,0x7c,0x7c,0x7e,0x80,
+0x80,0x81,0x83,0x84,0x85,0x85,0x85,0x85,0x87,0x86,0x85,0x84,0x83,0x84,0x84,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x85,0x84,0x83,0x83,0x84,0x86,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,
+0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x83,0x82,0x7e,0x79,0x78,0x7b,0x80,0x85,0x88,
+0x86,0x83,0x7f,0x7f,0x80,0x81,0x7e,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x77,0x76,0x78,0x7c,0x82,0x82,0x7e,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7e,0x7d,0x7d,0x7c,0x7d,0x7e,0x7f,0x80,0x86,0x86,0x85,0x84,0x84,0x8a,0x93,0x9b,
+0xaa,0x96,0x81,0x7a,0x80,0x84,0x7c,0x73,0x7c,0x7c,0x7e,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x86,0x86,0x86,0x83,0x80,0x7e,0x7f,0x80,0x86,0x80,0x77,0x71,0x6c,0x68,0x62,0x5e,
+0x65,0x67,0x6c,0x74,0x79,0x79,0x74,0x6f,0x70,0x70,0x70,0x6e,0x6f,0x74,0x7d,0x84,
+0x85,0x85,0x85,0x82,0x7e,0x77,0x71,0x6d,0x6c,0x6a,0x71,0x7b,0x79,0x6e,0x6c,0x73,
+0x7d,0x80,0x84,0x89,0x8c,0x8e,0x8e,0x8e,0x8f,0x8f,0x8f,0x90,0x90,0x90,0x91,0x91,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x8f,0x8f,0x8e,0x8e,
+0x8d,0x8d,0x8e,0x8e,0x8f,0x8f,0x8f,0x90,0x8f,0x8f,0x8e,0x8e,0x8e,0x8d,0x8d,0x8d,
+0x8f,0x8f,0x8e,0x8e,0x8d,0x8d,0x8c,0x8c,0x89,0x87,0x84,0x81,0x7e,0x7b,0x7a,0x7a,
+0x76,0x76,0x75,0x74,0x74,0x75,0x76,0x77,0x7a,0x79,0x77,0x76,0x75,0x75,0x75,0x76,
+0x7a,0x8d,0xa0,0xa7,0xa5,0x9f,0x9b,0x98,0x92,0x90,0x8d,0x89,0x84,0x7f,0x7b,0x79,
+0x81,0x81,0x82,0x84,0x86,0x87,0x86,0x85,0x8b,0x88,0x84,0x80,0x7e,0x7e,0x7f,0x80,
+0x81,0x82,0x84,0x85,0x85,0x85,0x85,0x84,0x86,0x85,0x84,0x83,0x83,0x83,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x85,0x85,0x84,0x84,0x85,0x86,0x87,0x87,
+0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,
+0x81,0x81,0x82,0x83,0x84,0x85,0x85,0x86,0x82,0x82,0x85,0x8a,0x8e,0x8d,0x87,0x82,
+0x80,0x7d,0x7a,0x7a,0x7c,0x7c,0x7a,0x77,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7b,
+0x79,0x78,0x7a,0x83,0x8c,0x8e,0x87,0x80,0x7a,0x7b,0x7d,0x7e,0x7e,0x7d,0x7b,0x7a,
+0x77,0x77,0x77,0x78,0x79,0x7b,0x7d,0x7e,0x87,0x87,0x87,0x86,0x86,0x8a,0x92,0x98,
+0xa5,0x96,0x85,0x7e,0x80,0x81,0x7c,0x76,0x75,0x80,0x8f,0x99,0x97,0x8a,0x78,0x6b,
+0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7c,0x7c,0x87,0x80,0x78,0x71,0x6c,0x66,0x60,0x5b,
+0x67,0x73,0x84,0x94,0x99,0x8f,0x7d,0x6e,0x6d,0x6e,0x6f,0x6f,0x70,0x75,0x7d,0x84,
+0x85,0x86,0x85,0x83,0x7f,0x79,0x73,0x6f,0x6d,0x6c,0x72,0x7c,0x7a,0x70,0x6f,0x77,
+0x81,0x84,0x87,0x8b,0x8e,0x8f,0x8e,0x8e,0x90,0x90,0x90,0x90,0x91,0x91,0x91,0x91,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x91,0x91,0x90,0x8f,0x8f,
+0x8e,0x8f,0x8f,0x90,0x90,0x91,0x91,0x92,0x91,0x91,0x90,0x90,0x90,0x8f,0x8f,0x8f,
+0x90,0x8f,0x8f,0x8e,0x8d,0x8d,0x8c,0x8c,0x8c,0x8a,0x86,0x83,0x7f,0x7d,0x7b,0x7b,
+0x77,0x77,0x76,0x76,0x76,0x77,0x78,0x79,0x7a,0x79,0x78,0x77,0x76,0x76,0x77,0x77,
+0x7a,0x92,0xa8,0xad,0xab,0xab,0xaa,0xa7,0xa7,0xa5,0xa2,0x9d,0x97,0x92,0x8d,0x8a,
+0x8d,0x89,0x85,0x85,0x87,0x89,0x88,0x86,0x8a,0x89,0x87,0x85,0x84,0x82,0x82,0x81,
+0x83,0x84,0x85,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x83,0x83,0x83,0x83,0x84,0x85,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x88,
+0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x89,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x81,0x81,0x81,0x80,
+0x81,0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x85,0x85,0x87,0x8d,0x91,0x8f,0x86,0x7e,
+0x7c,0x79,0x77,0x78,0x7a,0x7b,0x78,0x75,0x79,0x78,0x78,0x78,0x79,0x7b,0x7d,0x7e,
+0x7d,0x7d,0x81,0x8c,0x98,0x9c,0x94,0x8b,0x7c,0x7d,0x7f,0x80,0x7f,0x7c,0x79,0x77,
+0x73,0x74,0x74,0x76,0x78,0x7b,0x7e,0x7f,0x83,0x85,0x86,0x85,0x84,0x86,0x8b,0x90,
+0x92,0x8b,0x84,0x7f,0x7e,0x7e,0x7e,0x7d,0x82,0x8c,0x9a,0xa3,0x9f,0x90,0x7d,0x70,
+0x72,0x75,0x7a,0x81,0x86,0x87,0x84,0x81,0x84,0x7f,0x78,0x73,0x6f,0x6b,0x66,0x61,
+0x68,0x77,0x8e,0xa1,0xa5,0x97,0x7f,0x6d,0x6a,0x6c,0x6f,0x71,0x73,0x77,0x7f,0x85,
+0x85,0x85,0x86,0x84,0x80,0x7b,0x75,0x72,0x6f,0x6d,0x74,0x7e,0x7c,0x73,0x72,0x7a,
+0x84,0x86,0x89,0x8c,0x8e,0x8f,0x8e,0x8d,0x90,0x90,0x91,0x91,0x91,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x92,0x92,0x91,0x90,0x90,
+0x90,0x90,0x90,0x91,0x92,0x93,0x93,0x94,0x93,0x92,0x92,0x92,0x92,0x91,0x91,0x91,
+0x8f,0x8f,0x8f,0x8e,0x8d,0x8d,0x8c,0x8c,0x8f,0x8c,0x89,0x85,0x81,0x7e,0x7d,0x7c,
+0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7b,0x7a,0x79,0x78,0x77,0x77,0x78,0x78,0x79,
+0x79,0x97,0xaf,0xb2,0xb0,0xb5,0xb8,0xb4,0xbb,0xb9,0xb6,0xb2,0xab,0xa5,0x9f,0x9c,
+0x99,0x91,0x87,0x84,0x87,0x8a,0x89,0x88,0x88,0x8a,0x8b,0x8c,0x8b,0x88,0x85,0x83,
+0x85,0x85,0x86,0x87,0x87,0x87,0x86,0x86,0x83,0x83,0x82,0x82,0x83,0x84,0x85,0x86,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x86,0x87,0x88,0x88,0x88,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,
+0x81,0x81,0x83,0x84,0x86,0x88,0x89,0x89,0x89,0x83,0x7d,0x7e,0x82,0x84,0x81,0x7d,
+0x7a,0x78,0x76,0x78,0x7a,0x7b,0x78,0x75,0x7a,0x79,0x79,0x79,0x7b,0x7d,0x7f,0x81,
+0x82,0x81,0x86,0x93,0xa2,0xa6,0x9e,0x94,0x7e,0x80,0x81,0x81,0x80,0x7c,0x77,0x74,
+0x72,0x73,0x74,0x76,0x79,0x7c,0x7f,0x81,0x80,0x82,0x85,0x84,0x82,0x82,0x85,0x88,
+0x80,0x80,0x80,0x7d,0x7b,0x7c,0x80,0x83,0x97,0x99,0x9c,0x9b,0x97,0x8f,0x86,0x81,
+0x73,0x77,0x80,0x8a,0x92,0x93,0x8e,0x88,0x81,0x7d,0x78,0x75,0x73,0x71,0x6d,0x69,
+0x6a,0x75,0x86,0x96,0x9a,0x8f,0x7c,0x6d,0x68,0x6b,0x70,0x73,0x75,0x7a,0x80,0x85,
+0x85,0x85,0x86,0x85,0x81,0x7c,0x77,0x73,0x71,0x6f,0x75,0x7f,0x7e,0x74,0x74,0x7d,
+0x85,0x87,0x8a,0x8d,0x8e,0x8e,0x8e,0x8d,0x90,0x91,0x91,0x91,0x92,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x92,0x91,0x91,0x91,
+0x90,0x91,0x91,0x92,0x93,0x94,0x95,0x95,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,
+0x8f,0x8f,0x8e,0x8e,0x8d,0x8c,0x8c,0x8c,0x90,0x8e,0x8a,0x86,0x82,0x7f,0x7d,0x7d,
+0x7a,0x79,0x79,0x79,0x79,0x7a,0x7c,0x7d,0x7a,0x79,0x78,0x78,0x78,0x79,0x7a,0x7b,
+0x79,0x99,0xb3,0xb5,0xb4,0xbc,0xbf,0xbb,0xc7,0xc6,0xc3,0xbe,0xb8,0xb1,0xab,0xa8,
+0xa0,0x96,0x89,0x84,0x86,0x8a,0x8a,0x88,0x87,0x8a,0x8e,0x91,0x90,0x8c,0x87,0x84,
+0x86,0x86,0x87,0x88,0x88,0x88,0x87,0x86,0x82,0x82,0x82,0x82,0x83,0x85,0x86,0x87,
+0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x84,0x84,0x86,0x87,0x88,0x88,0x88,0x88,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x87,0x87,0x86,0x86,0x85,0x85,0x84,0x84,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x81,0x82,0x83,0x83,0x82,0x81,0x81,
+0x82,0x83,0x84,0x85,0x86,0x87,0x87,0x88,0x85,0x87,0x86,0x83,0x7d,0x7a,0x7a,0x7c,
+0x7b,0x7a,0x79,0x78,0x79,0x7b,0x7d,0x7f,0x81,0x7c,0x76,0x75,0x7b,0x89,0x99,0xa3,
+0xa8,0x9c,0x8e,0x89,0x8b,0x8b,0x84,0x7c,0x80,0x7c,0x7b,0x84,0x90,0x95,0x90,0x88,
+0x79,0x78,0x76,0x76,0x77,0x7b,0x7e,0x80,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x7a,0x7c,0x7c,0x7a,0x79,0x7f,0x8d,0x98,0xb7,0xb9,0xb5,0xa5,0x8d,0x7a,0x73,0x73,
+0x79,0x73,0x76,0x88,0x9f,0xa5,0x95,0x83,0x7d,0x74,0x6c,0x6e,0x78,0x7f,0x7d,0x79,
+0x7d,0x7f,0x82,0x84,0x82,0x7c,0x75,0x70,0x6f,0x74,0x7a,0x7c,0x7c,0x7c,0x7e,0x80,
+0x83,0x84,0x88,0x8e,0x95,0x9d,0xa4,0xa8,0x87,0x82,0x7a,0x74,0x72,0x75,0x79,0x7d,
+0x8b,0x8b,0x8c,0x8c,0x8c,0x8d,0x8d,0x8d,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x92,0x92,0x93,0x94,0x95,0x96,0x96,0x97,0x96,0x96,0x96,0x95,0x94,0x94,0x94,0x93,
+0x92,0x92,0x91,0x91,0x90,0x90,0x8f,0x8f,0x89,0x8a,0x8b,0x8a,0x88,0x84,0x80,0x7d,
+0x79,0x79,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x7a,0x7b,0x7d,0x7e,
+0x84,0x9d,0xb1,0xb5,0xb7,0xbe,0xc3,0xc1,0xc0,0xc1,0xc3,0xc3,0xc0,0xba,0xb4,0xb0,
+0xae,0x9e,0x8c,0x84,0x86,0x89,0x87,0x83,0x89,0x8b,0x8e,0x8f,0x90,0x8e,0x8c,0x8b,
+0x87,0x84,0x82,0x83,0x86,0x88,0x86,0x84,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x84,0x84,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x82,0x83,0x84,0x84,0x83,0x82,0x81,
+0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x83,0x86,0x87,0x86,0x82,0x7c,0x79,0x79,0x7b,
+0x7b,0x7a,0x78,0x77,0x76,0x78,0x7a,0x7b,0x81,0x7e,0x7a,0x7a,0x80,0x8c,0x98,0xa0,
+0x9d,0x92,0x86,0x82,0x84,0x84,0x7e,0x78,0x78,0x75,0x77,0x82,0x90,0x98,0x95,0x8f,
+0x79,0x78,0x77,0x77,0x79,0x7c,0x7f,0x81,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x79,0x7b,0x7b,0x78,0x76,0x7c,0x87,0x91,0xa4,0xa8,0xa6,0x9a,0x88,0x7a,0x77,0x78,
+0x7e,0x77,0x74,0x7e,0x8f,0x98,0x94,0x8c,0x8a,0x82,0x7d,0x81,0x8c,0x95,0x95,0x92,
+0x8a,0x89,0x8a,0x8f,0x93,0x91,0x8a,0x84,0x7d,0x7f,0x7f,0x7c,0x7a,0x7a,0x7e,0x82,
+0x84,0x85,0x88,0x8b,0x90,0x96,0x9b,0x9e,0x8a,0x87,0x82,0x7f,0x7e,0x80,0x83,0x85,
+0x8a,0x8a,0x8b,0x8c,0x8d,0x8e,0x8e,0x8f,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,
+0x92,0x93,0x93,0x94,0x95,0x96,0x96,0x97,0x96,0x96,0x96,0x95,0x95,0x94,0x94,0x94,
+0x93,0x93,0x92,0x91,0x91,0x90,0x90,0x8f,0x8a,0x8b,0x8b,0x8b,0x88,0x85,0x81,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7e,0x7f,0x80,
+0x86,0x9e,0xb3,0xb7,0xb7,0xbd,0xbf,0xbc,0xb9,0xba,0xbc,0xbd,0xbc,0xba,0xb7,0xb5,
+0xaa,0x9c,0x8b,0x84,0x86,0x8a,0x88,0x85,0x88,0x8b,0x8e,0x8f,0x8e,0x8b,0x89,0x88,
+0x89,0x86,0x83,0x84,0x86,0x88,0x86,0x84,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x83,0x83,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x82,
+0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7c,0x84,0x85,0x84,0x80,0x7b,0x79,0x7a,0x7c,
+0x7d,0x7b,0x79,0x76,0x75,0x75,0x76,0x77,0x7f,0x7e,0x7e,0x80,0x85,0x8c,0x94,0x99,
+0x8e,0x86,0x7c,0x79,0x7b,0x7c,0x78,0x73,0x79,0x76,0x78,0x7f,0x8a,0x90,0x8d,0x88,
+0x79,0x79,0x78,0x79,0x7a,0x7d,0x80,0x82,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x7b,0x7b,0x7a,0x77,0x75,0x78,0x80,0x86,0x8b,0x8f,0x91,0x8b,0x81,0x7a,0x7a,0x7d,
+0x7f,0x7a,0x74,0x74,0x7c,0x86,0x8e,0x93,0x8e,0x88,0x85,0x8b,0x96,0xa0,0xa2,0xa1,
+0x94,0x8f,0x8e,0x98,0xa6,0xac,0xa7,0x9f,0x97,0x93,0x8a,0x80,0x78,0x78,0x7e,0x84,
+0x87,0x87,0x87,0x88,0x89,0x8b,0x8d,0x8e,0x83,0x83,0x83,0x84,0x85,0x86,0x87,0x88,
+0x88,0x89,0x8a,0x8c,0x8d,0x8f,0x90,0x91,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,
+0x93,0x93,0x94,0x94,0x95,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,
+0x94,0x93,0x93,0x92,0x92,0x91,0x91,0x90,0x8c,0x8d,0x8d,0x8c,0x89,0x86,0x82,0x80,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7f,0x80,0x81,
+0x88,0xa1,0xb6,0xb9,0xb7,0xba,0xba,0xb5,0xb6,0xb7,0xb7,0xb7,0xb8,0xb9,0xba,0xba,
+0xa3,0x97,0x8a,0x84,0x87,0x8a,0x89,0x87,0x88,0x8c,0x90,0x90,0x8d,0x89,0x87,0x87,
+0x8d,0x89,0x85,0x85,0x86,0x87,0x86,0x83,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x84,0x84,0x83,0x83,0x83,0x83,0x82,0x82,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x83,
+0x82,0x81,0x80,0x7e,0x7c,0x7b,0x7a,0x79,0x7c,0x7e,0x7f,0x7d,0x7a,0x7b,0x7f,0x83,
+0x81,0x7f,0x7c,0x78,0x76,0x76,0x76,0x76,0x7b,0x7c,0x7f,0x82,0x85,0x89,0x8b,0x8d,
+0x82,0x7c,0x76,0x74,0x76,0x77,0x75,0x72,0x81,0x7d,0x7b,0x7c,0x7f,0x7e,0x7a,0x75,
+0x79,0x79,0x79,0x7a,0x7c,0x7f,0x81,0x83,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x7e,0x7d,0x7b,0x78,0x77,0x78,0x7b,0x7e,0x7a,0x7d,0x80,0x7e,0x7a,0x78,0x7a,0x7d,
+0x7a,0x7a,0x77,0x73,0x72,0x79,0x85,0x8f,0x82,0x7f,0x7d,0x82,0x8a,0x92,0x95,0x95,
+0x8e,0x88,0x88,0x96,0xac,0xba,0xb9,0xb3,0xb4,0xab,0x9a,0x87,0x7a,0x77,0x7d,0x83,
+0x89,0x88,0x86,0x84,0x82,0x80,0x7f,0x7f,0x75,0x78,0x7c,0x80,0x83,0x84,0x83,0x83,
+0x87,0x88,0x8a,0x8c,0x8e,0x90,0x92,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,
+0x94,0x94,0x94,0x95,0x95,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x95,0x95,0x94,0x94,0x93,0x92,0x92,0x92,0x8f,0x8f,0x8e,0x8d,0x8a,0x87,0x84,0x83,
+0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7b,0x7b,0x7a,0x7b,0x7b,0x7d,0x7e,0x7f,
+0x8a,0xa2,0xb6,0xb7,0xb4,0xb5,0xb4,0xaf,0xaa,0xa9,0xa6,0xa5,0xa4,0xa6,0xa8,0xa9,
+0x9a,0x92,0x89,0x85,0x87,0x8a,0x8a,0x89,0x8b,0x91,0x96,0x96,0x8f,0x8a,0x88,0x89,
+0x8f,0x8b,0x86,0x85,0x86,0x87,0x85,0x83,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,
+0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x81,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x83,
+0x85,0x84,0x83,0x80,0x7e,0x7c,0x7a,0x79,0x75,0x77,0x79,0x79,0x7a,0x7d,0x84,0x89,
+0x84,0x82,0x7e,0x7b,0x79,0x78,0x79,0x79,0x77,0x79,0x7d,0x80,0x82,0x83,0x82,0x81,
+0x7b,0x79,0x75,0x74,0x75,0x76,0x76,0x76,0x7c,0x7a,0x78,0x77,0x76,0x74,0x70,0x6e,
+0x78,0x79,0x79,0x7b,0x7d,0x80,0x82,0x83,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x81,0x7f,0x7d,0x7b,0x7b,0x7b,0x7a,0x7a,0x74,0x76,0x77,0x77,0x76,0x77,0x79,0x7b,
+0x74,0x78,0x7b,0x78,0x73,0x74,0x7b,0x83,0x79,0x77,0x76,0x78,0x7b,0x7f,0x81,0x81,
+0x81,0x7c,0x7c,0x8b,0xa2,0xb3,0xb8,0xb6,0xc5,0xb9,0xa5,0x8f,0x7e,0x78,0x7c,0x82,
+0x89,0x88,0x85,0x82,0x7e,0x7b,0x78,0x76,0x72,0x76,0x7c,0x82,0x86,0x87,0x86,0x85,
+0x87,0x88,0x8a,0x8c,0x8f,0x91,0x93,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x96,0x96,0x96,0x95,0x94,0x94,0x93,0x93,0x92,0x91,0x90,0x8e,0x8c,0x89,0x87,0x85,
+0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7a,0x78,0x78,0x77,0x77,0x78,0x79,0x7a,0x7b,
+0x8b,0xa1,0xb3,0xb2,0xae,0xaf,0xaf,0xab,0x9d,0x9b,0x96,0x92,0x8f,0x8d,0x8d,0x8e,
+0x92,0x8e,0x89,0x87,0x87,0x89,0x8a,0x8a,0x8e,0x97,0x9e,0x9d,0x94,0x8d,0x8c,0x8f,
+0x91,0x8c,0x87,0x84,0x85,0x86,0x85,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,
+0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x82,
+0x87,0x85,0x84,0x81,0x7f,0x7c,0x7a,0x79,0x74,0x75,0x77,0x77,0x78,0x7c,0x83,0x89,
+0x82,0x80,0x7e,0x7b,0x7a,0x7a,0x7b,0x7c,0x77,0x79,0x7c,0x7e,0x7f,0x7d,0x7b,0x79,
+0x78,0x78,0x77,0x76,0x76,0x77,0x78,0x79,0x6f,0x70,0x71,0x72,0x74,0x75,0x76,0x77,
+0x77,0x78,0x79,0x7b,0x7e,0x80,0x82,0x83,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x81,0x7e,0x7b,0x7c,0x7e,0x7d,0x7a,0x76,0x76,0x76,0x76,0x76,0x78,0x7a,0x7c,0x7d,
+0x75,0x79,0x7c,0x7b,0x77,0x74,0x75,0x78,0x79,0x79,0x79,0x78,0x79,0x7a,0x7b,0x7c,
+0x7b,0x7a,0x7b,0x83,0x90,0x9e,0xa8,0xad,0xbd,0xb4,0xa4,0x91,0x82,0x7c,0x7e,0x82,
+0x88,0x87,0x85,0x82,0x7f,0x7a,0x77,0x75,0x7b,0x7e,0x84,0x89,0x8d,0x8e,0x8e,0x8d,
+0x88,0x89,0x8a,0x8c,0x8f,0x91,0x93,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x98,
+0x98,0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x94,0x93,0x92,0x90,0x8d,0x8b,0x89,0x88,
+0x7e,0x7d,0x7a,0x78,0x77,0x77,0x78,0x79,0x77,0x77,0x76,0x76,0x76,0x77,0x78,0x79,
+0x8a,0x9e,0xac,0xa9,0xa5,0xa9,0xac,0xaa,0xa9,0xa6,0xa3,0x9e,0x99,0x94,0x91,0x8f,
+0x8c,0x8b,0x8a,0x88,0x87,0x88,0x89,0x8a,0x8f,0x99,0xa3,0xa1,0x97,0x8f,0x8f,0x93,
+0x90,0x8b,0x85,0x83,0x84,0x85,0x85,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,
+0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x82,0x83,0x84,0x84,0x83,0x82,0x81,
+0x84,0x84,0x82,0x7f,0x7d,0x7a,0x79,0x78,0x7a,0x7b,0x7a,0x77,0x75,0x77,0x7c,0x81,
+0x7c,0x7b,0x79,0x78,0x77,0x79,0x7a,0x7c,0x7b,0x7c,0x7e,0x7e,0x7e,0x7c,0x79,0x78,
+0x76,0x77,0x78,0x78,0x76,0x76,0x79,0x7b,0x6f,0x71,0x74,0x75,0x75,0x76,0x79,0x7c,
+0x75,0x76,0x78,0x7b,0x7e,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x7c,0x79,0x77,0x79,0x7d,0x7d,0x78,0x72,0x78,0x77,0x76,0x79,0x7e,0x82,0x84,0x84,
+0x80,0x7d,0x79,0x76,0x76,0x76,0x76,0x75,0x79,0x7a,0x7c,0x7c,0x7b,0x7c,0x7e,0x81,
+0x85,0x86,0x87,0x84,0x82,0x88,0x94,0x9f,0xa2,0x9f,0x98,0x8e,0x85,0x81,0x83,0x86,
+0x86,0x86,0x85,0x84,0x81,0x7e,0x7a,0x78,0x7e,0x80,0x84,0x87,0x8a,0x8c,0x8d,0x8d,
+0x89,0x8a,0x8b,0x8d,0x8f,0x91,0x92,0x93,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x99,0x99,0x99,
+0x99,0x98,0x98,0x97,0x97,0x96,0x95,0x95,0x96,0x95,0x93,0x90,0x8e,0x8c,0x8b,0x8a,
+0x85,0x82,0x7f,0x7b,0x79,0x79,0x7a,0x7b,0x79,0x78,0x78,0x77,0x77,0x78,0x79,0x7a,
+0x88,0x9a,0xa5,0xa0,0x9c,0xa3,0xab,0xab,0xb2,0xb2,0xb1,0xae,0xa9,0xa4,0x9e,0x9b,
+0x88,0x89,0x8a,0x89,0x87,0x86,0x87,0x89,0x8c,0x98,0xa4,0xa2,0x97,0x8e,0x90,0x95,
+0x8f,0x89,0x83,0x81,0x83,0x85,0x85,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x80,0x80,0x81,0x81,0x82,0x82,0x83,0x83,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x81,0x82,0x83,0x83,0x82,0x81,0x81,
+0x82,0x81,0x7f,0x7d,0x7b,0x78,0x77,0x76,0x81,0x81,0x7e,0x78,0x73,0x72,0x75,0x79,
+0x77,0x76,0x75,0x74,0x75,0x77,0x79,0x7b,0x7f,0x7f,0x80,0x7f,0x7e,0x7c,0x7a,0x79,
+0x74,0x76,0x78,0x78,0x75,0x75,0x78,0x7b,0x7b,0x7d,0x7d,0x7a,0x75,0x73,0x74,0x76,
+0x74,0x75,0x78,0x7b,0x7d,0x7f,0x81,0x81,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x77,0x74,0x73,0x77,0x7c,0x7c,0x75,0x6e,0x79,0x77,0x77,0x7b,0x82,0x89,0x8b,0x8c,
+0x8b,0x81,0x75,0x70,0x72,0x77,0x78,0x77,0x73,0x76,0x7a,0x7b,0x7a,0x7c,0x80,0x84,
+0x91,0x95,0x94,0x89,0x7c,0x7b,0x87,0x95,0x8b,0x8c,0x8c,0x89,0x85,0x84,0x86,0x89,
+0x85,0x85,0x85,0x85,0x83,0x80,0x7e,0x7c,0x79,0x7a,0x7c,0x7e,0x81,0x83,0x85,0x86,
+0x8a,0x8b,0x8c,0x8d,0x8f,0x90,0x91,0x92,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x93,
+0x97,0x97,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x99,0x99,0x99,0x9a,
+0x99,0x99,0x98,0x98,0x97,0x96,0x96,0x96,0x97,0x96,0x94,0x91,0x8f,0x8d,0x8c,0x8b,
+0x8a,0x87,0x83,0x7f,0x7c,0x7c,0x7c,0x7d,0x7c,0x7b,0x7a,0x79,0x7a,0x7a,0x7b,0x7c,
+0x87,0x98,0xa0,0x9a,0x96,0xa0,0xaa,0xad,0xa5,0xa7,0xa8,0xa8,0xa5,0x9f,0x99,0x95,
+0x86,0x88,0x8b,0x8a,0x87,0x85,0x86,0x88,0x89,0x96,0xa2,0xa1,0x95,0x8d,0x8e,0x94,
+0x8d,0x88,0x82,0x80,0x82,0x85,0x85,0x85,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,
+0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x80,0x81,0x81,0x82,0x82,0x83,0x83,0x83,
+0x86,0x85,0x85,0x84,0x83,0x82,0x81,0x81,0x81,0x82,0x83,0x85,0x85,0x85,0x85,0x84,
+0x84,0x83,0x81,0x7e,0x7c,0x79,0x77,0x76,0x84,0x83,0x81,0x7f,0x7c,0x7a,0x78,0x77,
+0x77,0x77,0x78,0x79,0x79,0x78,0x77,0x76,0x7d,0x7d,0x7e,0x7d,0x7c,0x7a,0x79,0x77,
+0x81,0x7e,0x7a,0x7a,0x7b,0x7b,0x78,0x75,0x78,0x77,0x77,0x7a,0x7d,0x7c,0x77,0x73,
+0x76,0x77,0x78,0x7b,0x7d,0x7f,0x81,0x82,0x86,0x84,0x84,0x86,0x88,0x87,0x82,0x7e,
+0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x75,0x75,0x78,0x7f,0x8b,0x9b,0xa9,0xb2,
+0xab,0x98,0x81,0x75,0x75,0x78,0x78,0x75,0x77,0x76,0x75,0x74,0x75,0x79,0x7c,0x7e,
+0x92,0x91,0x8e,0x8b,0x88,0x85,0x83,0x81,0x82,0x82,0x82,0x82,0x82,0x83,0x83,0x83,
+0x87,0x87,0x86,0x85,0x83,0x80,0x7e,0x7c,0x7e,0x7b,0x79,0x7b,0x81,0x87,0x8a,0x8a,
+0x8e,0x8e,0x8f,0x90,0x90,0x91,0x92,0x92,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x99,0x99,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x96,0x95,0x94,0x92,0x90,0x8d,0x8c,
+0x88,0x86,0x82,0x7e,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x8e,0x94,0x9a,0x9e,0x9e,0x9f,0xa0,0xa2,0x9d,0x99,0x95,0x93,0x93,0x91,0x8d,0x89,
+0x88,0x87,0x85,0x84,0x84,0x85,0x86,0x87,0x87,0x8e,0x96,0x96,0x90,0x8a,0x8a,0x8b,
+0x8c,0x8a,0x88,0x85,0x83,0x82,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x83,0x82,0x81,0x80,0x80,0x81,0x82,0x83,
+0x80,0x80,0x81,0x82,0x83,0x84,0x84,0x85,0x83,0x82,0x82,0x81,0x81,0x82,0x83,0x84,
+0x86,0x85,0x85,0x84,0x83,0x82,0x81,0x81,0x81,0x82,0x84,0x85,0x86,0x86,0x85,0x85,
+0x85,0x84,0x81,0x7e,0x7b,0x78,0x76,0x75,0x81,0x80,0x7f,0x7d,0x7b,0x79,0x78,0x77,
+0x78,0x79,0x7a,0x7c,0x7d,0x7d,0x7c,0x7c,0x7e,0x7e,0x7f,0x7e,0x7d,0x7c,0x7a,0x79,
+0x77,0x7b,0x82,0x8b,0x90,0x8d,0x85,0x7e,0x7f,0x7c,0x7a,0x7a,0x7c,0x7b,0x78,0x74,
+0x76,0x77,0x79,0x7b,0x7d,0x7f,0x81,0x82,0x86,0x84,0x84,0x86,0x88,0x87,0x82,0x7e,
+0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x76,0x75,0x77,0x7c,0x86,0x93,0x9f,0xa6,
+0xa1,0x91,0x7e,0x75,0x75,0x78,0x77,0x74,0x77,0x76,0x75,0x74,0x75,0x77,0x7a,0x7c,
+0x89,0x88,0x86,0x84,0x82,0x80,0x7e,0x7d,0x7f,0x7f,0x7f,0x7f,0x80,0x81,0x82,0x83,
+0x87,0x87,0x86,0x85,0x83,0x80,0x7e,0x7c,0x7e,0x7b,0x79,0x7b,0x81,0x87,0x8a,0x8a,
+0x8e,0x8e,0x8f,0x90,0x91,0x91,0x92,0x92,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x99,0x99,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x95,0x95,0x94,0x92,0x90,0x8e,0x8c,
+0x89,0x87,0x83,0x7f,0x7c,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,
+0x8c,0x91,0x97,0x9a,0x9b,0x9b,0x9d,0x9f,0x99,0x91,0x86,0x7f,0x7f,0x83,0x86,0x88,
+0x87,0x87,0x85,0x85,0x85,0x86,0x87,0x88,0x8b,0x91,0x95,0x94,0x8e,0x8b,0x8b,0x8e,
+0x8a,0x88,0x86,0x84,0x82,0x82,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x81,0x82,0x83,0x83,0x84,0x83,0x82,0x81,0x81,0x81,0x81,0x82,0x83,
+0x80,0x81,0x81,0x82,0x83,0x84,0x84,0x84,0x83,0x82,0x82,0x81,0x81,0x82,0x83,0x84,
+0x86,0x85,0x85,0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x84,0x85,0x86,0x86,0x86,0x85,
+0x86,0x85,0x82,0x7f,0x7b,0x78,0x75,0x73,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x77,
+0x78,0x79,0x7b,0x7e,0x80,0x81,0x82,0x82,0x7f,0x7f,0x80,0x80,0x7f,0x7e,0x7c,0x7c,
+0x75,0x7a,0x84,0x90,0x99,0x9a,0x94,0x8e,0x89,0x84,0x7e,0x7a,0x7a,0x7a,0x78,0x76,
+0x77,0x78,0x7a,0x7b,0x7e,0x7f,0x81,0x82,0x86,0x84,0x84,0x86,0x88,0x87,0x82,0x7e,
+0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x77,0x7d,0x86,0x8f,0x94,
+0x91,0x86,0x7a,0x74,0x76,0x77,0x75,0x72,0x77,0x76,0x75,0x74,0x74,0x76,0x78,0x79,
+0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7d,0x7f,0x81,0x83,
+0x86,0x86,0x86,0x85,0x82,0x80,0x7d,0x7c,0x7d,0x7a,0x79,0x7c,0x82,0x88,0x8a,0x8a,
+0x8e,0x8e,0x8f,0x90,0x91,0x92,0x93,0x93,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x94,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x94,0x93,0x90,0x8e,0x8d,
+0x8b,0x88,0x84,0x80,0x7d,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x87,0x8c,0x92,0x94,0x94,0x94,0x96,0x99,0x94,0x87,0x77,0x6c,0x6d,0x76,0x80,0x86,
+0x87,0x86,0x86,0x86,0x87,0x88,0x89,0x8a,0x90,0x91,0x91,0x8e,0x8a,0x89,0x8c,0x90,
+0x86,0x85,0x84,0x82,0x82,0x82,0x82,0x83,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,
+0x80,0x81,0x81,0x82,0x82,0x83,0x84,0x84,0x83,0x82,0x82,0x81,0x81,0x82,0x82,0x83,
+0x81,0x81,0x82,0x82,0x83,0x84,0x84,0x84,0x83,0x82,0x82,0x81,0x82,0x83,0x84,0x85,
+0x86,0x85,0x85,0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x84,0x85,0x86,0x86,0x86,0x85,
+0x87,0x86,0x83,0x7f,0x7b,0x77,0x74,0x72,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x75,0x76,0x79,0x7d,0x7f,0x81,0x82,0x83,0x7f,0x7f,0x80,0x81,0x80,0x7f,0x7e,0x7e,
+0x83,0x83,0x85,0x8c,0x95,0x9c,0x9f,0xa0,0x90,0x89,0x80,0x7a,0x78,0x79,0x79,0x78,
+0x79,0x79,0x7b,0x7c,0x7e,0x80,0x81,0x82,0x86,0x84,0x84,0x86,0x88,0x87,0x82,0x7e,
+0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x77,0x75,0x74,0x73,0x76,0x7a,0x7f,0x82,
+0x81,0x7c,0x76,0x74,0x76,0x76,0x74,0x71,0x77,0x76,0x75,0x74,0x74,0x75,0x76,0x77,
+0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x77,0x75,0x75,0x75,0x77,0x79,0x7d,0x80,0x82,
+0x86,0x86,0x85,0x84,0x82,0x80,0x7d,0x7c,0x7c,0x7a,0x79,0x7d,0x83,0x89,0x8b,0x8a,
+0x8e,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x96,0x96,0x96,0x96,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x98,0x98,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x94,0x93,0x91,0x8f,0x8e,
+0x8c,0x89,0x85,0x81,0x7d,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,
+0x82,0x86,0x8b,0x8d,0x8c,0x8d,0x8f,0x91,0x8e,0x83,0x75,0x6d,0x6e,0x76,0x7f,0x84,
+0x86,0x86,0x87,0x87,0x88,0x89,0x8a,0x8a,0x8f,0x8d,0x89,0x85,0x83,0x85,0x89,0x8d,
+0x83,0x82,0x81,0x81,0x81,0x82,0x83,0x84,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x83,0x83,0x82,0x81,0x81,0x82,0x83,0x83,
+0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x83,0x82,0x82,0x82,0x82,0x83,0x85,0x86,
+0x86,0x85,0x85,0x84,0x83,0x82,0x81,0x81,0x81,0x82,0x83,0x85,0x85,0x85,0x85,0x84,
+0x87,0x86,0x83,0x7f,0x7b,0x77,0x74,0x72,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,
+0x70,0x72,0x75,0x78,0x7b,0x7d,0x7e,0x7f,0x7d,0x7e,0x7f,0x80,0x80,0x80,0x7f,0x7e,
+0x93,0x91,0x92,0x97,0x9e,0xa3,0xa4,0xa3,0x90,0x88,0x7f,0x78,0x77,0x79,0x79,0x79,
+0x7a,0x7a,0x7c,0x7d,0x7f,0x80,0x81,0x82,0x86,0x84,0x84,0x86,0x88,0x87,0x82,0x7e,
+0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x77,0x75,0x73,0x72,0x72,0x74,0x76,0x78,
+0x77,0x75,0x74,0x74,0x75,0x75,0x74,0x72,0x76,0x76,0x75,0x75,0x75,0x75,0x76,0x76,
+0x73,0x73,0x74,0x75,0x76,0x77,0x78,0x78,0x73,0x72,0x72,0x74,0x77,0x7b,0x7f,0x82,
+0x86,0x86,0x85,0x84,0x82,0x7f,0x7d,0x7b,0x7b,0x7a,0x7a,0x7e,0x85,0x8a,0x8b,0x8b,
+0x8d,0x8e,0x8f,0x90,0x92,0x93,0x94,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x96,0x95,0x95,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x95,0x93,0x92,0x90,0x8f,
+0x8c,0x8a,0x85,0x81,0x7d,0x7b,0x7a,0x7a,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x80,
+0x7d,0x80,0x84,0x85,0x84,0x85,0x87,0x8a,0x89,0x84,0x7e,0x7c,0x7e,0x82,0x84,0x84,
+0x86,0x87,0x87,0x88,0x89,0x89,0x89,0x89,0x8a,0x85,0x7f,0x7b,0x7c,0x80,0x85,0x88,
+0x81,0x81,0x80,0x80,0x81,0x82,0x84,0x84,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x82,0x82,0x83,0x84,
+0x83,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x86,
+0x86,0x85,0x85,0x84,0x83,0x82,0x81,0x81,0x80,0x81,0x82,0x83,0x84,0x84,0x84,0x83,
+0x86,0x85,0x82,0x7f,0x7b,0x78,0x75,0x73,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x76,
+0x6f,0x70,0x73,0x75,0x77,0x78,0x79,0x79,0x7b,0x7b,0x7d,0x7e,0x7f,0x7f,0x7e,0x7e,
+0x93,0x96,0x9d,0xa5,0xa9,0xa6,0x9d,0x96,0x89,0x82,0x7b,0x77,0x77,0x79,0x7a,0x79,
+0x7b,0x7b,0x7c,0x7e,0x7f,0x80,0x81,0x82,0x86,0x84,0x84,0x86,0x88,0x87,0x82,0x7e,
+0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x75,0x75,0x73,0x73,0x73,0x73,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,
+0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x77,0x73,0x72,0x71,0x72,0x75,0x7a,0x7f,0x82,
+0x85,0x85,0x85,0x84,0x81,0x7f,0x7c,0x7b,0x7a,0x79,0x7a,0x7f,0x86,0x8b,0x8c,0x8b,
+0x8d,0x8e,0x8f,0x90,0x92,0x94,0x95,0x96,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x96,0x95,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x95,0x94,0x92,0x90,0x8f,
+0x8c,0x89,0x85,0x80,0x7c,0x7a,0x79,0x79,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,
+0x79,0x7c,0x7f,0x7f,0x7e,0x7e,0x81,0x84,0x84,0x83,0x83,0x86,0x89,0x8a,0x87,0x83,
+0x86,0x87,0x88,0x88,0x88,0x88,0x87,0x86,0x83,0x7d,0x77,0x75,0x79,0x7f,0x82,0x83,
+0x82,0x81,0x81,0x81,0x81,0x83,0x84,0x85,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x82,0x82,0x83,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x82,0x82,0x82,0x82,0x83,0x85,0x86,0x87,
+0x86,0x85,0x85,0x84,0x83,0x82,0x81,0x81,0x7e,0x7f,0x81,0x82,0x83,0x83,0x82,0x82,
+0x85,0x84,0x81,0x7e,0x7b,0x78,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x71,0x72,0x73,0x75,0x76,0x76,0x75,0x75,0x78,0x79,0x7a,0x7c,0x7d,0x7d,0x7d,0x7c,
+0x84,0x87,0x8e,0x95,0x98,0x93,0x8a,0x82,0x7e,0x7a,0x76,0x75,0x78,0x7a,0x7a,0x78,
+0x7c,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x82,0x86,0x84,0x84,0x86,0x88,0x87,0x82,0x7e,
+0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x74,0x74,0x74,0x75,0x76,0x77,0x78,0x79,
+0x75,0x76,0x76,0x75,0x73,0x73,0x76,0x78,0x74,0x75,0x76,0x77,0x78,0x79,0x79,0x79,
+0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x73,0x72,0x72,0x75,0x7a,0x7f,0x82,
+0x85,0x85,0x85,0x83,0x81,0x7f,0x7c,0x7b,0x7a,0x79,0x7a,0x7f,0x87,0x8b,0x8c,0x8b,
+0x8d,0x8e,0x8f,0x91,0x93,0x94,0x96,0x96,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x96,0x96,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x95,0x94,0x93,0x91,0x90,
+0x8c,0x89,0x84,0x7f,0x7b,0x79,0x78,0x78,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x76,0x79,0x7b,0x7b,0x79,0x79,0x7d,0x80,0x81,0x7f,0x7e,0x80,0x84,0x86,0x85,0x83,
+0x87,0x87,0x88,0x88,0x88,0x86,0x84,0x83,0x7e,0x79,0x74,0x75,0x7c,0x82,0x83,0x82,
+0x83,0x83,0x82,0x82,0x82,0x83,0x84,0x85,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x82,0x82,0x83,0x85,0x87,0x88,
+0x86,0x85,0x85,0x84,0x83,0x82,0x81,0x81,0x7d,0x7e,0x80,0x81,0x82,0x82,0x81,0x81,
+0x84,0x83,0x81,0x7e,0x7c,0x79,0x77,0x76,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x74,
+0x74,0x74,0x75,0x76,0x76,0x75,0x74,0x73,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,
+0x76,0x74,0x72,0x73,0x77,0x78,0x77,0x75,0x77,0x74,0x73,0x74,0x78,0x7a,0x7a,0x78,
+0x7c,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,0x86,0x84,0x84,0x86,0x88,0x87,0x82,0x7e,
+0x79,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x73,0x74,0x75,0x77,0x79,0x7a,0x7b,0x7c,
+0x78,0x78,0x78,0x75,0x72,0x73,0x77,0x7b,0x74,0x74,0x76,0x78,0x79,0x7a,0x7a,0x7b,
+0x77,0x76,0x76,0x75,0x74,0x73,0x72,0x72,0x76,0x74,0x73,0x73,0x75,0x7a,0x7f,0x82,
+0x85,0x85,0x84,0x83,0x81,0x7f,0x7c,0x7b,0x79,0x79,0x7a,0x80,0x87,0x8c,0x8c,0x8b,
+0x8d,0x8e,0x8f,0x91,0x93,0x95,0x96,0x97,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x98,0x97,0x97,0x97,0x97,0x96,0x96,0x96,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,0x97,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x94,0x95,0x95,0x95,0x94,0x93,0x91,0x90,
+0x8b,0x88,0x84,0x7f,0x7b,0x78,0x77,0x77,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,
+0x75,0x77,0x79,0x79,0x77,0x77,0x7a,0x7e,0x7f,0x7a,0x76,0x76,0x7a,0x7f,0x82,0x83,
+0x87,0x88,0x88,0x88,0x87,0x85,0x82,0x81,0x7d,0x77,0x74,0x77,0x7f,0x85,0x85,0x82,
+0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x82,0x82,0x83,0x85,0x87,0x88,
+0x85,0x85,0x83,0x82,0x80,0x7f,0x7f,0x7e,0x79,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,
+0x7e,0x7d,0x7c,0x7a,0x79,0x77,0x76,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x78,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x73,0x74,0x77,0x7c,0x80,0x80,0x7c,0x78,
+0x77,0x76,0x75,0x73,0x73,0x73,0x73,0x74,0x74,0x73,0x73,0x73,0x73,0x74,0x75,0x76,
+0x78,0x7b,0x7e,0x7d,0x7b,0x7a,0x7c,0x7e,0x81,0x82,0x84,0x86,0x86,0x85,0x83,0x82,
+0x7d,0x7b,0x79,0x78,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,
+0x74,0x76,0x76,0x74,0x72,0x72,0x75,0x79,0x74,0x79,0x75,0x6d,0x70,0x7e,0x86,0x84,
+0x81,0x84,0x85,0x82,0x7d,0x78,0x76,0x76,0x75,0x7b,0x83,0x88,0x8a,0x8a,0x8b,0x8c,
+0x8d,0x8e,0x8f,0x91,0x92,0x94,0x95,0x96,0x94,0x95,0x95,0x96,0x96,0x97,0x98,0x98,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x95,0x93,0x91,0x8f,0x8e,
+0x8d,0x8a,0x85,0x7f,0x79,0x74,0x71,0x6f,0x71,0x70,0x70,0x6f,0x6e,0x6d,0x6c,0x6c,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x77,0x7a,0x7e,0x82,0x84,
+0x85,0x85,0x86,0x85,0x84,0x82,0x7f,0x7e,0x7b,0x7c,0x7f,0x81,0x83,0x84,0x85,0x85,
+0x84,0x82,0x7f,0x7d,0x7d,0x7f,0x82,0x84,0x80,0x81,0x82,0x83,0x83,0x82,0x81,0x80,
+0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x84,0x83,0x83,0x83,0x83,0x84,0x85,0x82,0x81,0x80,0x80,0x81,0x84,0x88,0x8a,
+0x85,0x84,0x82,0x81,0x7f,0x7e,0x7e,0x7e,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7b,0x7b,0x7a,0x78,0x77,0x77,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x74,0x74,0x77,0x7c,0x80,0x81,0x7d,0x79,
+0x77,0x76,0x75,0x74,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x74,0x75,0x76,0x77,
+0x79,0x7c,0x7e,0x7d,0x7b,0x79,0x7b,0x7d,0x81,0x82,0x84,0x86,0x86,0x85,0x83,0x82,
+0x7c,0x7b,0x79,0x77,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,
+0x73,0x75,0x77,0x76,0x74,0x73,0x75,0x78,0x70,0x7c,0x82,0x7f,0x81,0x88,0x86,0x7e,
+0x89,0x8a,0x8a,0x86,0x80,0x7b,0x78,0x77,0x73,0x78,0x80,0x86,0x89,0x8b,0x8d,0x8e,
+0x8e,0x8e,0x8f,0x91,0x92,0x94,0x95,0x95,0x94,0x94,0x95,0x96,0x96,0x97,0x97,0x98,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x95,0x93,0x91,0x8f,0x8e,
+0x8d,0x8a,0x85,0x7f,0x79,0x75,0x71,0x70,0x71,0x71,0x70,0x70,0x70,0x6f,0x6f,0x6f,
+0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x75,0x78,0x7c,0x80,0x83,
+0x86,0x86,0x87,0x86,0x85,0x83,0x80,0x7f,0x7d,0x7e,0x80,0x83,0x84,0x85,0x85,0x85,
+0x84,0x82,0x7f,0x7d,0x7d,0x7f,0x82,0x84,0x81,0x81,0x82,0x83,0x83,0x82,0x81,0x81,
+0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x84,0x83,0x83,0x83,0x83,0x84,0x85,0x82,0x81,0x80,0x80,0x81,0x84,0x88,0x8a,
+0x84,0x83,0x81,0x7f,0x7d,0x7d,0x7d,0x7d,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x77,0x7c,0x80,0x81,0x7d,0x7a,
+0x78,0x77,0x76,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x76,0x77,0x78,
+0x7b,0x7e,0x7f,0x7d,0x7a,0x78,0x7a,0x7c,0x82,0x83,0x85,0x86,0x86,0x85,0x83,0x82,
+0x7b,0x79,0x77,0x76,0x74,0x74,0x74,0x74,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x74,0x74,0x73,0x73,0x73,0x73,0x72,0x72,
+0x70,0x74,0x79,0x79,0x77,0x75,0x75,0x76,0x7e,0x91,0xa0,0xa2,0xa1,0x9f,0x95,0x87,
+0x8a,0x8a,0x88,0x85,0x80,0x7c,0x79,0x77,0x76,0x79,0x7f,0x84,0x89,0x8c,0x8e,0x8f,
+0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x94,0x94,0x95,0x95,0x96,0x97,0x97,0x97,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x95,0x95,0x95,0x95,0x93,0x91,0x8f,0x8e,
+0x8d,0x8a,0x85,0x7f,0x7a,0x75,0x73,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x70,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,0x72,0x73,0x74,0x77,0x7b,0x7f,0x82,
+0x86,0x86,0x86,0x86,0x84,0x82,0x80,0x7f,0x80,0x81,0x83,0x85,0x86,0x86,0x85,0x85,
+0x85,0x83,0x80,0x7d,0x7d,0x7f,0x82,0x83,0x81,0x82,0x82,0x83,0x83,0x82,0x82,0x81,
+0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x84,0x83,0x82,0x82,0x83,0x84,0x85,0x82,0x81,0x80,0x80,0x81,0x84,0x87,0x89,
+0x83,0x81,0x7e,0x7c,0x7b,0x7b,0x7b,0x7c,0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x77,0x7c,0x80,0x81,0x7e,0x7b,
+0x79,0x78,0x76,0x75,0x74,0x74,0x75,0x75,0x75,0x75,0x74,0x74,0x75,0x77,0x79,0x7a,
+0x7d,0x7f,0x7f,0x7d,0x79,0x77,0x79,0x7c,0x82,0x84,0x85,0x87,0x86,0x85,0x83,0x81,
+0x7a,0x78,0x77,0x75,0x73,0x73,0x73,0x73,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x73,0x73,0x72,0x71,0x71,
+0x6f,0x74,0x7a,0x7b,0x79,0x76,0x75,0x76,0x88,0x9d,0xad,0xad,0xa8,0xa4,0x99,0x8c,
+0x84,0x82,0x81,0x81,0x82,0x82,0x80,0x7e,0x84,0x83,0x84,0x86,0x8b,0x8d,0x8e,0x8d,
+0x8f,0x8f,0x90,0x91,0x92,0x93,0x94,0x94,0x94,0x94,0x94,0x95,0x96,0x96,0x97,0x97,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x95,0x95,0x95,0x95,0x93,0x91,0x8f,0x8e,
+0x8c,0x8a,0x85,0x80,0x7b,0x77,0x74,0x73,0x73,0x73,0x74,0x75,0x76,0x77,0x77,0x78,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x74,0x74,0x75,0x76,0x79,0x7d,0x82,0x84,
+0x84,0x84,0x83,0x82,0x81,0x7f,0x7e,0x7d,0x84,0x84,0x85,0x86,0x86,0x86,0x85,0x84,
+0x84,0x82,0x7f,0x7d,0x7d,0x7f,0x82,0x84,0x81,0x82,0x83,0x83,0x83,0x83,0x82,0x81,
+0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,0x81,0x81,0x80,0x81,0x82,0x84,0x86,0x87,
+0x81,0x7f,0x7c,0x79,0x78,0x78,0x79,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x75,
+0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x79,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x78,0x7c,0x80,0x82,0x7f,0x7c,
+0x79,0x78,0x77,0x76,0x75,0x75,0x75,0x76,0x75,0x75,0x75,0x75,0x77,0x78,0x7a,0x7b,
+0x7e,0x7f,0x7f,0x7c,0x78,0x77,0x79,0x7c,0x83,0x85,0x86,0x87,0x87,0x85,0x83,0x81,
+0x79,0x78,0x76,0x74,0x73,0x72,0x72,0x72,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x77,0x77,0x76,0x76,0x75,0x74,0x74,0x74,
+0x70,0x74,0x7a,0x7b,0x79,0x77,0x77,0x78,0x85,0x96,0x9f,0x98,0x8f,0x8d,0x8a,0x83,
+0x85,0x83,0x83,0x89,0x92,0x98,0x99,0x97,0x96,0x90,0x8b,0x8a,0x8d,0x8f,0x8d,0x8a,
+0x8f,0x90,0x90,0x91,0x92,0x93,0x93,0x94,0x93,0x94,0x94,0x95,0x95,0x96,0x97,0x97,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x95,0x95,0x95,0x95,0x93,0x91,0x8f,0x8e,
+0x8c,0x89,0x85,0x80,0x7c,0x78,0x76,0x75,0x75,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,
+0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x78,0x77,0x78,0x79,0x7c,0x81,0x85,0x87,
+0x82,0x81,0x80,0x7e,0x7d,0x7c,0x7b,0x7b,0x85,0x86,0x86,0x86,0x85,0x84,0x82,0x81,
+0x81,0x7f,0x7d,0x7c,0x7c,0x7f,0x82,0x84,0x82,0x82,0x83,0x84,0x84,0x83,0x82,0x82,
+0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x83,0x82,0x82,0x82,0x82,0x83,0x84,0x81,0x81,0x81,0x81,0x82,0x83,0x85,0x85,
+0x80,0x7e,0x7a,0x77,0x75,0x76,0x78,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x77,0x77,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x7c,0x80,0x82,0x80,0x7e,
+0x7a,0x79,0x77,0x76,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x78,0x7a,0x7b,0x7d,
+0x7d,0x7e,0x7e,0x7b,0x78,0x77,0x7b,0x7e,0x84,0x85,0x87,0x87,0x87,0x85,0x82,0x81,
+0x7a,0x78,0x77,0x75,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x78,0x77,0x77,0x77,0x77,0x76,0x76,0x76,
+0x73,0x76,0x79,0x79,0x77,0x77,0x79,0x7c,0x8c,0x9a,0x9d,0x8e,0x82,0x82,0x86,0x85,
+0x8d,0x8a,0x8c,0x96,0xa4,0xaf,0xb2,0xb1,0xa0,0x97,0x8d,0x8b,0x8e,0x90,0x8d,0x89,
+0x90,0x90,0x90,0x91,0x92,0x92,0x93,0x93,0x93,0x93,0x94,0x94,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x95,0x95,0x95,0x95,0x93,0x91,0x8f,0x8e,
+0x8b,0x89,0x85,0x81,0x7c,0x79,0x77,0x76,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7c,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x78,0x78,0x78,0x7a,0x7d,0x81,0x85,0x88,
+0x82,0x81,0x80,0x7e,0x7c,0x7c,0x7b,0x7c,0x86,0x86,0x86,0x85,0x83,0x81,0x7f,0x7e,
+0x7d,0x7c,0x7a,0x79,0x7b,0x7f,0x83,0x85,0x82,0x82,0x83,0x84,0x84,0x83,0x82,0x82,
+0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x84,0x80,0x81,0x81,0x82,0x82,0x83,0x84,0x84,
+0x7f,0x7c,0x78,0x75,0x73,0x74,0x76,0x78,0x77,0x78,0x78,0x78,0x78,0x79,0x79,0x79,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7c,0x80,0x82,0x81,0x7f,
+0x7a,0x79,0x78,0x77,0x76,0x76,0x76,0x77,0x76,0x76,0x76,0x77,0x78,0x7b,0x7d,0x7e,
+0x7c,0x7d,0x7d,0x7a,0x78,0x78,0x7c,0x80,0x85,0x86,0x87,0x88,0x87,0x85,0x82,0x81,
+0x7a,0x79,0x77,0x75,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,
+0x76,0x77,0x78,0x76,0x74,0x76,0x7b,0x80,0x94,0xa2,0xa5,0x94,0x84,0x84,0x88,0x89,
+0x8d,0x89,0x8a,0x95,0xa7,0xb4,0xb7,0xb5,0x9e,0x94,0x89,0x87,0x8c,0x91,0x8f,0x8b,
+0x90,0x90,0x91,0x91,0x92,0x92,0x93,0x93,0x93,0x93,0x94,0x94,0x95,0x95,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x93,0x91,0x8f,0x8e,
+0x8b,0x89,0x85,0x81,0x7d,0x7a,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x76,0x75,0x76,0x77,0x7a,0x7f,0x83,0x85,
+0x87,0x85,0x83,0x81,0x7f,0x7f,0x7f,0x80,0x85,0x85,0x85,0x83,0x81,0x7e,0x7b,0x7a,
+0x78,0x78,0x77,0x77,0x7a,0x7f,0x83,0x87,0x82,0x83,0x84,0x84,0x84,0x84,0x83,0x82,
+0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x84,0x80,0x80,0x81,0x82,0x82,0x83,0x83,0x83,
+0x7f,0x7c,0x77,0x74,0x72,0x73,0x76,0x78,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7b,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x79,0x79,0x7c,0x80,0x82,0x81,0x7f,
+0x7b,0x7a,0x78,0x77,0x76,0x76,0x77,0x77,0x76,0x76,0x76,0x77,0x79,0x7b,0x7d,0x7e,
+0x7c,0x7d,0x7c,0x7a,0x77,0x78,0x7d,0x82,0x85,0x86,0x87,0x88,0x87,0x85,0x82,0x81,
+0x7b,0x7a,0x78,0x76,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x72,0x72,0x73,0x73,0x74,0x75,0x75,0x75,
+0x79,0x78,0x77,0x74,0x72,0x75,0x7d,0x83,0x8d,0x9d,0xa2,0x91,0x81,0x7e,0x80,0x80,
+0x85,0x80,0x80,0x8b,0x9d,0xab,0xae,0xab,0x99,0x8e,0x82,0x82,0x8a,0x92,0x92,0x8e,
+0x90,0x90,0x91,0x91,0x92,0x92,0x92,0x93,0x93,0x93,0x93,0x94,0x95,0x95,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x93,0x91,0x8f,0x8e,
+0x8b,0x89,0x85,0x81,0x7d,0x7b,0x79,0x78,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x73,0x72,0x73,0x74,0x77,0x7c,0x80,0x82,
+0x8b,0x89,0x87,0x84,0x83,0x83,0x83,0x84,0x85,0x84,0x84,0x82,0x7f,0x7c,0x79,0x78,
+0x76,0x75,0x75,0x76,0x79,0x7f,0x84,0x87,0x82,0x83,0x84,0x84,0x84,0x84,0x83,0x82,
+0x84,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x83,0x82,0x81,0x81,0x82,0x83,0x83,0x80,0x80,0x81,0x82,0x83,0x83,0x82,0x82,
+0x80,0x7b,0x77,0x75,0x76,0x77,0x76,0x74,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x7f,0x7e,0x7c,0x7a,0x79,0x79,0x79,0x7a,0x78,0x78,0x79,0x7b,0x7d,0x7e,0x7f,0x80,
+0x80,0x7e,0x7c,0x7b,0x7a,0x7b,0x7d,0x7e,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x7f,0x7d,0x7b,0x78,0x76,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x73,0x73,0x74,0x74,0x75,0x76,0x76,0x76,0x73,0x73,0x74,0x75,0x76,0x76,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x7f,0x81,0x81,0x7d,0x7a,0x7c,0x84,0x8c,
+0x82,0x84,0x86,0x87,0x88,0x8c,0x93,0x98,0x8f,0x8e,0x8d,0x8c,0x8c,0x8d,0x8d,0x8e,
+0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x94,0x94,0x94,0x95,0x96,0x96,0x96,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x98,0x98,0x98,0x97,0x96,0x96,0x96,0x95,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x94,0x92,0x91,0x90,0x8f,0x8e,
+0x89,0x87,0x83,0x7f,0x7b,0x78,0x75,0x74,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x79,0x79,0x78,0x7a,0x7d,0x82,0x87,0x8a,
+0x86,0x87,0x88,0x88,0x88,0x87,0x86,0x85,0x81,0x81,0x81,0x81,0x7f,0x7d,0x7b,0x7a,
+0x78,0x76,0x75,0x78,0x7e,0x83,0x84,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x80,0x81,0x82,0x83,0x83,0x83,0x82,0x82,
+0x80,0x7b,0x77,0x75,0x76,0x77,0x76,0x74,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x7f,0x7e,0x7c,0x7b,0x7a,0x79,0x7a,0x7a,0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7f,0x80,
+0x7f,0x7e,0x7c,0x7a,0x7a,0x7b,0x7c,0x7d,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x7d,0x7c,0x7a,0x78,0x76,0x76,0x75,0x75,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,
+0x74,0x74,0x75,0x75,0x75,0x75,0x76,0x76,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,
+0x75,0x77,0x7a,0x7f,0x86,0x8d,0x94,0x97,0x8d,0x87,0x80,0x79,0x77,0x7b,0x82,0x87,
+0x8a,0x8b,0x8c,0x8b,0x8a,0x8b,0x8e,0x91,0x8d,0x8d,0x8c,0x8c,0x8c,0x8d,0x8e,0x8f,
+0x91,0x91,0x91,0x92,0x92,0x92,0x93,0x93,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x98,0x98,0x97,0x97,0x96,0x96,0x96,0x95,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x94,0x92,0x91,0x90,0x8f,0x8e,
+0x8a,0x88,0x84,0x7f,0x7b,0x77,0x74,0x73,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x7a,0x7d,0x80,0x84,0x87,0x88,
+0x87,0x87,0x87,0x87,0x87,0x85,0x84,0x83,0x7f,0x7f,0x7f,0x7f,0x7d,0x7b,0x7a,0x78,
+0x78,0x76,0x75,0x78,0x7e,0x83,0x84,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x81,0x81,0x83,0x84,0x84,0x84,0x83,0x82,
+0x80,0x7b,0x77,0x75,0x76,0x78,0x77,0x75,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x80,0x7f,0x7d,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,
+0x7e,0x7d,0x7b,0x79,0x79,0x7a,0x7b,0x7d,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x7c,0x7b,0x79,0x78,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,
+0x73,0x76,0x7b,0x85,0x93,0xa2,0xb0,0xb8,0xa2,0x92,0x7f,0x75,0x76,0x7c,0x81,0x82,
+0x8c,0x8b,0x8a,0x88,0x86,0x84,0x84,0x84,0x8b,0x8a,0x8a,0x8a,0x8c,0x8d,0x8f,0x90,
+0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x93,0x94,0x95,0x95,0x95,0x95,0x96,0x96,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x94,0x93,0x92,0x91,0x8f,0x8e,0x8e,
+0x8c,0x89,0x84,0x7f,0x7a,0x76,0x73,0x72,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,0x74,0x77,0x7c,0x81,0x84,0x86,0x86,0x86,
+0x87,0x87,0x87,0x86,0x84,0x82,0x80,0x7f,0x7c,0x7c,0x7c,0x7c,0x7b,0x79,0x78,0x77,
+0x77,0x75,0x75,0x78,0x7e,0x82,0x84,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x84,0x85,0x85,0x85,0x84,0x83,
+0x80,0x7b,0x77,0x75,0x77,0x78,0x77,0x76,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x80,0x7f,0x7e,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7b,0x7b,0x7d,0x7e,0x7f,0x80,0x80,
+0x7e,0x7c,0x7a,0x78,0x78,0x79,0x7b,0x7c,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x7a,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x76,0x7a,0x83,0x91,0xa2,0xb2,0xbc,0xb2,0x9b,0x80,0x74,0x78,0x80,0x83,0x81,
+0x86,0x85,0x83,0x83,0x84,0x83,0x81,0x7f,0x89,0x89,0x89,0x8a,0x8b,0x8e,0x90,0x91,
+0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x93,0x92,0x90,0x8f,0x8e,0x8e,
+0x8d,0x8a,0x84,0x7e,0x78,0x74,0x72,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x73,0x73,0x72,0x72,0x71,0x70,0x70,0x70,0x72,0x77,0x7e,0x85,0x88,0x88,0x86,0x84,
+0x88,0x87,0x87,0x85,0x82,0x7f,0x7d,0x7b,0x78,0x79,0x79,0x79,0x79,0x78,0x76,0x75,
+0x77,0x75,0x74,0x78,0x7e,0x82,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x83,0x84,0x85,0x86,0x85,0x85,0x84,
+0x7f,0x7b,0x77,0x75,0x77,0x79,0x78,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x81,0x80,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x80,
+0x7e,0x7c,0x7a,0x78,0x78,0x79,0x7b,0x7c,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x7a,0x79,0x79,0x79,0x79,0x7a,0x7c,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x77,0x77,0x77,0x76,0x76,0x75,0x75,0x75,
+0x78,0x77,0x77,0x7b,0x83,0x8f,0x9b,0xa2,0xb3,0x9c,0x82,0x77,0x7b,0x83,0x86,0x84,
+0x87,0x85,0x86,0x8a,0x90,0x93,0x90,0x8c,0x89,0x89,0x89,0x8a,0x8c,0x8e,0x91,0x92,
+0x93,0x93,0x93,0x94,0x94,0x94,0x94,0x95,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x95,0x95,0x96,0x96,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x93,0x91,0x90,0x8f,0x8e,0x8d,
+0x8d,0x8a,0x83,0x7d,0x77,0x74,0x72,0x71,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x75,0x75,0x75,0x74,0x73,0x72,0x72,0x72,0x73,0x78,0x7f,0x86,0x8a,0x89,0x86,0x84,
+0x88,0x87,0x86,0x84,0x81,0x7e,0x7b,0x79,0x76,0x77,0x78,0x78,0x78,0x77,0x76,0x75,
+0x77,0x75,0x74,0x77,0x7d,0x82,0x83,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x83,0x84,0x85,0x86,0x85,0x85,0x84,
+0x7f,0x7b,0x77,0x76,0x78,0x79,0x79,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x7f,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,
+0x7e,0x7d,0x7b,0x79,0x79,0x7a,0x7b,0x7d,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,
+0x7a,0x78,0x75,0x74,0x76,0x7b,0x81,0x85,0xa0,0x92,0x82,0x7a,0x7d,0x83,0x87,0x87,
+0x8e,0x8c,0x8e,0x98,0xa3,0xa8,0xa5,0xa0,0x8a,0x8a,0x8a,0x8b,0x8d,0x8f,0x91,0x92,
+0x93,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x94,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x93,0x92,0x91,0x90,0x8e,0x8d,0x8d,
+0x8d,0x89,0x82,0x7c,0x76,0x74,0x73,0x73,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x75,0x79,0x80,0x86,0x89,0x8a,0x88,0x87,
+0x88,0x87,0x86,0x84,0x81,0x7d,0x7a,0x78,0x75,0x76,0x77,0x78,0x79,0x78,0x77,0x77,
+0x77,0x75,0x74,0x77,0x7d,0x81,0x83,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x84,0x85,0x85,0x85,0x84,0x83,
+0x7f,0x7b,0x77,0x76,0x78,0x7a,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x7f,0x7e,0x7d,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x80,0x80,0x80,
+0x7f,0x7e,0x7c,0x7a,0x7a,0x7b,0x7c,0x7d,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7d,0x7c,0x7b,0x7a,0x79,0x77,0x76,0x76,
+0x79,0x78,0x76,0x74,0x73,0x74,0x75,0x76,0x84,0x81,0x7d,0x7b,0x7b,0x7f,0x84,0x88,
+0x8c,0x8a,0x8d,0x98,0xa6,0xad,0xa8,0xa2,0x8c,0x8c,0x8c,0x8d,0x8e,0x90,0x91,0x93,
+0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x93,0x92,0x91,0x8f,0x8e,0x8d,0x8d,
+0x8b,0x87,0x81,0x7b,0x76,0x74,0x74,0x75,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x78,0x7b,0x7f,0x84,0x87,0x89,0x8a,0x8a,
+0x87,0x87,0x86,0x84,0x81,0x7e,0x7b,0x79,0x76,0x77,0x78,0x79,0x7a,0x7a,0x79,0x79,
+0x76,0x74,0x74,0x77,0x7d,0x81,0x82,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x81,0x81,0x83,0x84,0x84,0x84,0x83,0x82,
+0x7f,0x7b,0x77,0x76,0x78,0x7a,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7e,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,
+0x80,0x7e,0x7c,0x7b,0x7a,0x7b,0x7d,0x7e,0x83,0x84,0x86,0x87,0x87,0x86,0x84,0x83,
+0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7e,0x7e,0x7c,0x7b,0x7a,0x78,0x77,0x77,
+0x77,0x77,0x77,0x77,0x76,0x76,0x75,0x75,0x6f,0x75,0x79,0x7a,0x78,0x7a,0x81,0x88,
+0x84,0x81,0x84,0x8f,0x9e,0xa4,0x9e,0x96,0x8e,0x8e,0x8d,0x8e,0x8e,0x90,0x91,0x92,
+0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x96,0x96,0x96,0x95,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x92,0x91,0x8f,0x8e,0x8d,0x8d,
+0x8a,0x86,0x80,0x7a,0x76,0x74,0x75,0x76,0x71,0x71,0x71,0x71,0x71,0x71,0x71,0x71,
+0x71,0x72,0x72,0x73,0x74,0x74,0x75,0x75,0x7b,0x7c,0x7f,0x83,0x86,0x89,0x8b,0x8c,
+0x87,0x86,0x86,0x84,0x82,0x7f,0x7c,0x7a,0x76,0x77,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,
+0x76,0x74,0x73,0x77,0x7d,0x81,0x82,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x80,0x81,0x82,0x83,0x83,0x83,0x82,0x82,
+0x7c,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x80,0x81,0x82,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7c,0x7e,0x80,0x82,0x83,0x83,0x82,0x81,
+0x7f,0x7e,0x7d,0x7d,0x7d,0x7e,0x80,0x80,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x78,0x78,0x77,0x77,0x76,0x75,0x74,0x74,0x74,0x75,0x76,0x78,0x7c,0x7f,0x82,0x84,
+0x86,0x87,0x88,0x88,0x87,0x85,0x83,0x81,0x86,0x89,0x8c,0x90,0x93,0x93,0x93,0x92,
+0x94,0x95,0x95,0x96,0x96,0x97,0x97,0x97,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x94,0x94,0x93,0x92,0x90,0x8e,0x8c,0x8a,
+0x8a,0x87,0x81,0x7b,0x76,0x74,0x74,0x74,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x72,0x72,0x73,0x74,0x76,0x77,0x79,0x7a,0x83,0x84,0x86,0x87,0x89,0x89,0x89,0x89,
+0x89,0x87,0x84,0x80,0x7e,0x7d,0x7d,0x7e,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,
+0x78,0x79,0x7a,0x7b,0x7e,0x81,0x83,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x82,0x83,0x83,0x84,0x84,0x83,0x83,0x82,
+0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x80,0x81,0x82,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7c,0x7e,0x80,0x82,0x83,0x83,0x81,0x80,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7b,0x7a,0x7a,0x79,0x78,0x77,0x77,0x76,0x75,0x75,0x76,0x79,0x7c,0x7f,0x82,0x84,
+0x86,0x88,0x8a,0x8b,0x8b,0x89,0x87,0x85,0x88,0x8a,0x8d,0x90,0x92,0x93,0x93,0x93,
+0x95,0x95,0x95,0x96,0x96,0x97,0x97,0x97,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x96,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x94,0x94,0x93,0x92,0x90,0x8e,0x8c,0x8a,
+0x8a,0x87,0x81,0x7b,0x77,0x75,0x74,0x75,0x74,0x73,0x72,0x71,0x71,0x71,0x72,0x73,
+0x73,0x73,0x73,0x75,0x76,0x78,0x7a,0x7b,0x83,0x84,0x86,0x88,0x88,0x89,0x88,0x88,
+0x88,0x86,0x83,0x7f,0x7d,0x7c,0x7d,0x7d,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,
+0x79,0x79,0x7a,0x7c,0x7e,0x81,0x83,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x84,0x83,0x83,0x83,
+0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x7e,0x7e,0x7f,0x80,0x81,0x82,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7d,0x7e,0x81,0x83,0x83,0x83,0x81,0x80,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x77,0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7e,
+0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x75,0x76,0x77,0x79,0x7c,0x80,0x83,0x85,
+0x87,0x89,0x8d,0x90,0x91,0x90,0x8e,0x8c,0x8b,0x8c,0x8e,0x90,0x92,0x93,0x93,0x93,
+0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x93,0x93,0x93,0x92,0x91,0x8e,0x8c,0x8b,
+0x8a,0x87,0x81,0x7b,0x77,0x75,0x75,0x75,0x74,0x73,0x72,0x71,0x71,0x72,0x73,0x74,
+0x74,0x74,0x74,0x75,0x77,0x79,0x7c,0x7d,0x84,0x85,0x86,0x88,0x88,0x88,0x88,0x87,
+0x87,0x85,0x81,0x7e,0x7c,0x7c,0x7c,0x7c,0x79,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,
+0x7a,0x7b,0x7b,0x7c,0x7e,0x81,0x83,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x80,0x82,0x83,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7d,0x7f,0x81,0x83,0x83,0x82,0x81,0x7f,
+0x7e,0x7d,0x7d,0x7c,0x7d,0x7e,0x7f,0x80,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7b,0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x76,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7e,
+0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x76,0x76,0x78,0x7a,0x7d,0x80,0x84,0x85,
+0x87,0x8b,0x91,0x96,0x98,0x97,0x95,0x93,0x8f,0x8f,0x8f,0x90,0x91,0x92,0x93,0x94,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x91,0x8f,0x8d,0x8b,
+0x8a,0x86,0x81,0x7b,0x77,0x76,0x76,0x76,0x74,0x73,0x73,0x72,0x72,0x73,0x74,0x75,
+0x76,0x76,0x75,0x76,0x78,0x7b,0x7e,0x80,0x85,0x86,0x87,0x88,0x88,0x88,0x87,0x86,
+0x85,0x83,0x80,0x7d,0x7b,0x7b,0x7b,0x7c,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7d,0x7f,0x81,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x83,0x83,0x84,
+0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7e,0x7d,0x7d,0x7e,0x7f,0x81,0x82,0x83,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7e,0x7f,0x81,0x83,0x83,0x82,0x80,0x7f,
+0x7e,0x7d,0x7c,0x7c,0x7c,0x7d,0x7f,0x7f,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,
+0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x77,0x77,0x78,0x7b,0x7e,0x81,0x84,0x86,
+0x87,0x8c,0x94,0x9a,0x9e,0x9d,0x9a,0x97,0x93,0x92,0x91,0x90,0x90,0x92,0x94,0x95,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x96,0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x92,0x92,0x92,0x92,0x91,0x8f,0x8d,0x8c,
+0x8a,0x86,0x81,0x7b,0x78,0x76,0x77,0x77,0x75,0x75,0x74,0x74,0x74,0x75,0x77,0x77,
+0x78,0x77,0x76,0x77,0x79,0x7d,0x80,0x83,0x86,0x87,0x88,0x88,0x88,0x87,0x86,0x85,
+0x84,0x82,0x7f,0x7d,0x7b,0x7b,0x7c,0x7c,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,
+0x7e,0x7e,0x7e,0x7e,0x7f,0x81,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x82,0x82,0x82,0x82,0x84,0x85,
+0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,
+0x79,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x81,0x83,0x84,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7e,0x80,0x82,0x83,0x83,0x82,0x80,0x7e,
+0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7a,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x77,0x78,0x79,0x7b,0x7e,0x82,0x85,0x87,
+0x87,0x8d,0x96,0x9e,0xa1,0xa0,0x9c,0x99,0x97,0x95,0x92,0x90,0x90,0x91,0x94,0x95,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x95,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x96,0x96,0x95,0x94,0x94,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x91,0x8f,0x8e,0x8c,
+0x89,0x86,0x81,0x7c,0x78,0x77,0x77,0x78,0x77,0x76,0x76,0x76,0x77,0x78,0x79,0x7a,
+0x79,0x78,0x77,0x78,0x7a,0x7e,0x83,0x86,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x84,0x82,0x7f,0x7d,0x7b,0x7b,0x7c,0x7d,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,
+0x80,0x7f,0x7f,0x7f,0x80,0x81,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x84,0x82,0x81,0x81,0x82,0x84,0x85,
+0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x7f,0x7e,0x7d,0x7c,0x7c,0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7f,0x81,0x83,0x84,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7f,0x80,0x82,0x83,0x83,0x81,0x7f,0x7e,
+0x7d,0x7c,0x7c,0x7b,0x7c,0x7d,0x7e,0x7f,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x80,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x78,0x78,0x79,0x7c,0x7f,0x82,0x85,0x87,
+0x86,0x8d,0x97,0xa0,0xa3,0xa2,0x9d,0x99,0x9a,0x97,0x93,0x90,0x8f,0x91,0x94,0x96,
+0x97,0x97,0x97,0x96,0x96,0x95,0x95,0x95,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x96,0x96,0x95,0x94,0x93,0x93,0x92,0x92,0x91,0x92,0x92,0x92,0x91,0x8f,0x8e,0x8d,
+0x89,0x86,0x81,0x7c,0x79,0x77,0x78,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7c,0x7d,
+0x7b,0x7a,0x78,0x78,0x7b,0x7f,0x84,0x88,0x88,0x88,0x89,0x88,0x88,0x86,0x84,0x83,
+0x84,0x83,0x80,0x7d,0x7c,0x7c,0x7d,0x7e,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,
+0x81,0x80,0x80,0x7f,0x80,0x81,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x81,0x81,0x81,0x82,0x82,0x82,0x83,0x83,0x86,0x84,0x82,0x80,0x80,0x82,0x84,0x86,
+0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x80,0x7f,0x7e,0x7d,0x7d,0x7e,0x7f,0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7f,0x81,0x83,0x85,
+0x83,0x82,0x80,0x7f,0x7e,0x7d,0x7e,0x7e,0x7f,0x80,0x82,0x83,0x83,0x81,0x7f,0x7e,
+0x7d,0x7c,0x7c,0x7b,0x7c,0x7d,0x7e,0x7f,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x81,0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7c,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,
+0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x76,
+0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x78,0x78,0x7a,0x7c,0x7f,0x83,0x86,0x88,
+0x86,0x8d,0x97,0xa0,0xa4,0xa2,0x9d,0x99,0x9b,0x98,0x94,0x90,0x8f,0x91,0x94,0x96,
+0x97,0x97,0x97,0x96,0x96,0x95,0x95,0x94,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x94,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x96,0x96,0x95,0x94,0x93,0x92,0x92,0x91,0x91,0x91,0x92,0x92,0x91,0x90,0x8e,0x8d,
+0x89,0x86,0x81,0x7c,0x79,0x78,0x78,0x79,0x7a,0x79,0x79,0x79,0x7a,0x7c,0x7d,0x7e,
+0x7c,0x7a,0x79,0x79,0x7b,0x80,0x85,0x89,0x89,0x89,0x89,0x89,0x87,0x86,0x84,0x83,
+0x85,0x83,0x80,0x7e,0x7d,0x7d,0x7e,0x7f,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7f,0x7f,
+0x82,0x81,0x80,0x80,0x80,0x81,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x80,0x80,0x81,0x81,0x81,0x82,0x82,0x82,0x86,0x84,0x82,0x80,0x80,0x82,0x84,0x86,
+0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x81,0x81,0x82,0x82,0x82,0x81,0x7f,0x7f,
+0x7e,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x81,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x81,0x80,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7e,
+0x7c,0x7c,0x7d,0x7d,0x7c,0x79,0x77,0x75,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7a,0x7a,0x7b,0x7b,0x7a,0x79,0x76,0x75,0x75,0x77,0x79,0x7d,0x80,0x84,0x86,0x88,
+0x8a,0x8e,0x97,0xa1,0xa8,0xa6,0x9e,0x97,0x9a,0x97,0x94,0x90,0x90,0x91,0x94,0x96,
+0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x93,0x94,0x94,0x93,0x92,0x93,0x94,0x96,0x97,
+0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x90,0x90,0x90,0x90,0x8f,0x8f,0x8f,0x8f,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,
+0x86,0x83,0x7f,0x7b,0x79,0x7a,0x7c,0x7e,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x78,0x78,0x78,0x7a,0x7d,0x81,0x86,0x88,0x88,0x89,0x8a,0x8a,0x89,0x87,0x84,0x83,
+0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7b,0x79,0x78,0x78,0x7b,0x7d,0x7f,
+0x83,0x80,0x7d,0x7e,0x81,0x83,0x83,0x81,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7f,0x82,0x84,0x83,0x80,0x80,0x82,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x82,0x84,0x86,0x86,0x85,0x84,0x83,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x81,0x81,0x82,0x82,0x82,0x80,0x7f,0x7e,
+0x7e,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x81,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x80,0x7f,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7d,0x7c,0x7b,0x79,0x77,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x7a,0x7a,0x7b,0x7b,0x7a,0x79,0x77,0x75,0x76,0x77,0x7a,0x7d,0x80,0x84,0x86,0x88,
+0x89,0x8e,0x96,0xa0,0xa6,0xa5,0x9e,0x98,0x99,0x96,0x93,0x90,0x90,0x91,0x94,0x96,
+0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x93,0x92,0x92,0x91,0x90,0x91,0x92,0x94,0x95,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x91,0x91,0x91,0x90,0x90,0x90,0x90,0x8f,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,
+0x89,0x86,0x81,0x7d,0x7b,0x7b,0x7d,0x7e,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x78,0x79,0x79,0x7b,0x7f,0x83,0x87,0x8a,0x89,0x8a,0x8a,0x8a,0x88,0x86,0x84,0x82,
+0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7b,0x7a,0x78,0x77,0x78,0x7b,0x7e,0x7f,
+0x81,0x7e,0x7c,0x7d,0x81,0x83,0x83,0x81,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7f,0x82,0x84,0x83,0x80,0x80,0x82,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x81,0x82,0x84,0x85,0x86,0x85,0x84,0x83,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x81,0x82,0x82,0x82,0x81,0x80,0x7e,0x7e,
+0x7e,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x81,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7f,0x7e,0x7c,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7b,0x79,0x78,0x77,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x76,0x76,0x78,0x7a,0x7d,0x81,0x84,0x86,0x87,
+0x89,0x8c,0x93,0x9d,0xa3,0xa3,0x9e,0x98,0x97,0x95,0x92,0x90,0x90,0x92,0x94,0x96,
+0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x93,0x91,0x90,0x90,0x90,0x90,0x91,0x92,0x93,
+0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x94,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x91,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,
+0x8b,0x88,0x83,0x7f,0x7c,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,
+0x79,0x79,0x7b,0x7e,0x82,0x86,0x89,0x8b,0x8b,0x8b,0x8b,0x89,0x87,0x85,0x83,0x81,
+0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x79,0x78,0x77,0x77,0x79,0x7b,0x7e,0x80,
+0x7e,0x7b,0x79,0x7b,0x80,0x83,0x83,0x82,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x80,0x83,0x84,0x83,0x81,0x80,0x81,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x82,0x82,0x84,0x84,0x85,0x85,0x84,0x83,
+0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x81,0x82,0x82,0x82,0x81,0x7f,0x7e,0x7d,
+0x7e,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x81,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7d,0x7d,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,
+0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x78,0x7b,0x7e,0x81,0x84,0x86,0x87,
+0x89,0x8b,0x90,0x99,0x9f,0xa1,0x9d,0x99,0x95,0x94,0x92,0x90,0x91,0x92,0x95,0x96,
+0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,0x93,0x93,0x93,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x91,0x91,0x91,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,
+0x89,0x87,0x82,0x7e,0x7b,0x79,0x79,0x7a,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x79,0x7b,0x7e,0x81,0x85,0x88,0x8b,0x8c,0x8d,0x8c,0x8a,0x88,0x86,0x83,0x81,0x80,
+0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x78,0x78,0x77,0x78,0x79,0x7c,0x7e,0x7f,
+0x7b,0x79,0x78,0x7a,0x7f,0x83,0x84,0x83,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x81,0x83,0x85,0x84,0x81,0x80,0x81,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x84,
+0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x82,0x82,0x82,0x82,0x80,0x7f,0x7d,0x7c,
+0x7e,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x81,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x79,0x7b,0x7e,0x81,0x84,0x86,0x87,
+0x88,0x89,0x8d,0x94,0x9b,0x9e,0x9c,0x99,0x96,0x95,0x93,0x92,0x92,0x93,0x94,0x96,
+0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x93,0x96,0x97,0x97,0x97,0x97,0x96,0x96,0x96,
+0x93,0x92,0x92,0x91,0x91,0x90,0x8f,0x8f,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x94,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,
+0x86,0x84,0x80,0x7c,0x79,0x77,0x76,0x76,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x7a,0x7d,0x80,0x85,0x88,0x8a,0x8a,0x8b,0x8c,0x8b,0x89,0x86,0x84,0x82,0x80,0x80,
+0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x78,0x78,0x79,0x79,0x7b,0x7c,0x7e,0x7f,
+0x7a,0x78,0x77,0x7a,0x7f,0x83,0x84,0x83,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x82,0x84,0x86,0x84,0x81,0x80,0x81,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x82,0x82,0x82,0x82,0x83,0x83,0x84,0x84,
+0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7a,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x82,0x82,0x82,0x81,0x80,0x7e,0x7c,0x7b,
+0x7e,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x81,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,
+0x7c,0x7c,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x79,0x78,0x78,0x79,0x79,0x7a,0x79,0x7a,0x7c,0x7e,0x81,0x84,0x86,0x87,
+0x88,0x88,0x8a,0x90,0x97,0x9c,0x9c,0x9a,0x98,0x97,0x96,0x94,0x93,0x94,0x94,0x95,
+0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x93,0x98,0x99,0x99,0x9a,0x99,0x98,0x97,0x97,
+0x92,0x91,0x90,0x8e,0x8d,0x8b,0x8a,0x89,0x8f,0x8f,0x90,0x91,0x92,0x93,0x94,0x94,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,
+0x84,0x82,0x7f,0x7c,0x79,0x77,0x77,0x76,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,
+0x7c,0x7e,0x83,0x87,0x89,0x8a,0x89,0x88,0x8a,0x88,0x86,0x83,0x81,0x80,0x80,0x7f,
+0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7e,
+0x7b,0x79,0x78,0x7a,0x7f,0x83,0x84,0x83,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x83,0x85,0x86,0x85,0x81,0x80,0x81,0x83,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x83,0x82,0x82,0x81,0x82,0x83,0x84,0x85,
+0x80,0x7f,0x7f,0x7d,0x7c,0x7b,0x7a,0x7a,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x82,0x82,0x82,0x81,0x80,0x7e,0x7c,0x7a,
+0x7e,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x81,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7d,0x7d,0x7c,0x7b,0x7c,0x7c,0x7d,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x79,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7a,0x7b,0x7c,0x7f,0x81,0x84,0x86,0x87,
+0x87,0x86,0x88,0x8d,0x94,0x9a,0x9b,0x9a,0x9b,0x9a,0x98,0x97,0x95,0x94,0x94,0x94,
+0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x93,0x97,0x98,0x99,0x99,0x99,0x97,0x96,0x95,
+0x91,0x90,0x8e,0x8c,0x89,0x86,0x84,0x83,0x88,0x89,0x8a,0x8c,0x8e,0x90,0x91,0x92,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x92,0x92,0x92,0x92,0x91,0x91,0x91,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,
+0x85,0x84,0x81,0x7f,0x7d,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7d,0x80,0x85,0x88,0x8a,0x89,0x86,0x84,0x87,0x85,0x83,0x81,0x7f,0x7f,0x7f,0x80,
+0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,
+0x7d,0x7a,0x79,0x7b,0x80,0x83,0x84,0x82,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x83,0x85,0x87,0x85,0x81,0x80,0x81,0x83,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x83,0x82,0x81,0x81,0x81,0x82,0x84,0x85,
+0x80,0x80,0x7f,0x7d,0x7c,0x7b,0x7a,0x7a,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,
+0x82,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x82,0x82,0x82,0x81,0x7f,0x7d,0x7b,0x7a,
+0x7e,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x81,0x86,0x86,0x87,0x88,0x87,0x86,0x85,0x84,
+0x7e,0x7d,0x7d,0x7c,0x7c,0x7d,0x7e,0x7f,0x7e,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,
+0x7c,0x7b,0x7a,0x79,0x78,0x79,0x7b,0x7c,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7a,0x79,0x78,0x77,0x77,0x79,0x7a,0x7b,0x7a,0x7b,0x7d,0x7f,0x81,0x84,0x86,0x87,
+0x87,0x86,0x87,0x8b,0x93,0x99,0x9b,0x9b,0x9d,0x9c,0x9a,0x98,0x96,0x94,0x93,0x93,
+0x97,0x97,0x96,0x96,0x95,0x94,0x94,0x93,0x95,0x96,0x97,0x97,0x97,0x95,0x93,0x92,
+0x91,0x90,0x8d,0x8a,0x86,0x83,0x81,0x7f,0x82,0x83,0x85,0x87,0x8a,0x8c,0x8e,0x8f,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,
+0x87,0x86,0x84,0x82,0x81,0x7f,0x7f,0x7e,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x7e,0x81,0x86,0x89,0x8a,0x88,0x85,0x82,0x85,0x83,0x81,0x7f,0x7e,0x7e,0x7f,0x80,
+0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7f,0x80,0x80,0x7f,0x7f,0x7e,0x7d,0x7c,
+0x7e,0x7c,0x7a,0x7c,0x80,0x83,0x83,0x82,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x84,0x86,0x87,0x85,0x82,0x80,0x81,0x83,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,0x83,0x82,0x81,0x80,0x81,0x82,0x84,0x85,
+0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,0x81,0x81,0x82,
+0x80,0x80,0x7f,0x7e,0x7e,0x7f,0x80,0x80,0x82,0x81,0x80,0x7e,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x74,0x76,0x79,0x7b,0x7d,0x7e,0x7e,0x7d,0x79,0x7b,0x7e,0x81,0x84,0x86,0x87,0x87,
+0x87,0x85,0x84,0x87,0x8f,0x95,0x99,0x9a,0x9f,0x9d,0x9b,0x98,0x96,0x94,0x93,0x93,
+0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x97,0x96,0x96,0x95,0x93,0x92,0x92,0x91,
+0x93,0x92,0x91,0x90,0x8f,0x8d,0x8c,0x8c,0x83,0x83,0x82,0x82,0x85,0x89,0x8d,0x90,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x8d,0x8e,0x90,0x92,0x94,0x95,0x95,0x95,0x93,0x92,0x91,0x90,0x90,0x91,0x91,0x92,
+0x8f,0x90,0x91,0x91,0x91,0x90,0x8f,0x8e,0x90,0x90,0x90,0x90,0x91,0x91,0x91,0x91,
+0x8e,0x8d,0x8f,0x93,0x96,0x90,0x83,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7e,0x7f,
+0x83,0x85,0x88,0x8a,0x8b,0x8b,0x8a,0x89,0x86,0x85,0x82,0x80,0x7e,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x84,
+0x84,0x84,0x84,0x83,0x83,0x82,0x82,0x81,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x86,0x85,0x84,0x83,0x83,0x83,0x84,0x85,0x83,0x82,0x81,0x81,0x81,0x82,0x83,0x84,
+0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,0x81,0x81,
+0x80,0x80,0x7f,0x7e,0x7e,0x7f,0x80,0x80,0x82,0x81,0x7f,0x7e,0x7d,0x7c,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7f,0x81,0x82,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x76,
+0x76,0x77,0x7a,0x7c,0x7d,0x7d,0x7d,0x7d,0x7a,0x7c,0x7f,0x82,0x85,0x86,0x87,0x88,
+0x86,0x84,0x83,0x86,0x8d,0x94,0x98,0x99,0x9d,0x9b,0x99,0x97,0x95,0x94,0x94,0x94,
+0x96,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x97,0x96,0x96,0x95,0x95,0x94,0x94,0x93,
+0x92,0x92,0x91,0x90,0x8f,0x8d,0x8c,0x8c,0x87,0x87,0x86,0x86,0x87,0x8b,0x8e,0x90,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x8f,0x90,0x91,0x92,0x93,0x93,0x92,0x92,0x92,0x91,0x90,0x8f,0x8f,0x90,0x90,0x91,
+0x90,0x91,0x92,0x93,0x93,0x93,0x92,0x91,0x90,0x90,0x91,0x91,0x91,0x91,0x91,0x91,
+0x8f,0x8f,0x91,0x95,0x97,0x91,0x85,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7d,0x7e,0x7f,
+0x83,0x85,0x88,0x8a,0x8b,0x8b,0x89,0x88,0x85,0x83,0x81,0x7f,0x7d,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x84,
+0x84,0x84,0x84,0x83,0x83,0x82,0x82,0x82,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x86,0x85,0x84,0x83,0x82,0x83,0x83,0x84,0x83,0x82,0x81,0x81,0x81,0x82,0x84,0x84,
+0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,
+0x81,0x80,0x7f,0x7e,0x7e,0x7f,0x80,0x81,0x82,0x81,0x7f,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7b,0x7b,0x7b,0x7d,0x7e,0x80,0x81,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,
+0x78,0x79,0x7a,0x7c,0x7c,0x7d,0x7c,0x7c,0x7b,0x7d,0x7f,0x83,0x85,0x87,0x88,0x89,
+0x85,0x82,0x81,0x84,0x8b,0x92,0x96,0x98,0x9a,0x99,0x97,0x95,0x94,0x94,0x94,0x94,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x94,0x93,0x92,0x92,0x91,0x90,0x8f,0x8f,0x8e,0x8d,0x8c,0x8b,0x8c,0x8e,0x90,0x91,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x91,0x8f,0x8e,0x8d,0x8e,0x8d,0x8c,0x8c,0x8c,0x8c,0x8d,0x8e,
+0x8f,0x90,0x92,0x94,0x95,0x95,0x95,0x94,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x91,0x92,0x94,0x97,0x97,0x91,0x86,0x7e,0x7c,0x7c,0x7b,0x7b,0x7c,0x7d,0x7f,0x80,
+0x84,0x86,0x88,0x8a,0x8b,0x8a,0x88,0x87,0x83,0x81,0x80,0x7e,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x84,
+0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x82,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x85,0x84,0x83,0x82,0x81,0x82,0x82,0x83,0x83,0x82,0x82,0x81,0x82,0x83,0x84,0x85,
+0x80,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x7f,
+0x81,0x80,0x7f,0x7f,0x7f,0x7f,0x80,0x81,0x81,0x80,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7e,0x7f,0x81,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x80,0x83,0x86,0x88,0x89,0x89,
+0x84,0x81,0x7f,0x82,0x89,0x90,0x95,0x97,0x97,0x96,0x95,0x94,0x94,0x94,0x94,0x95,
+0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x99,0x99,0x99,0x99,
+0x97,0x97,0x97,0x96,0x96,0x95,0x95,0x95,0x95,0x93,0x92,0x91,0x90,0x91,0x92,0x93,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x94,0x94,0x93,0x92,0x90,0x8d,0x8a,0x89,0x88,0x87,0x87,0x86,0x86,0x87,0x88,0x89,
+0x8c,0x8e,0x90,0x92,0x94,0x94,0x95,0x95,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x91,
+0x92,0x94,0x97,0x99,0x97,0x90,0x87,0x80,0x7e,0x7d,0x7c,0x7c,0x7c,0x7e,0x80,0x82,
+0x85,0x86,0x88,0x8a,0x8a,0x89,0x87,0x86,0x81,0x80,0x7e,0x7c,0x7c,0x7b,0x7c,0x7c,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x83,
+0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x84,0x83,0x82,0x81,0x81,0x81,0x82,0x82,0x83,0x83,0x82,0x82,0x82,0x83,0x84,0x85,
+0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7e,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x7f,
+0x81,0x81,0x80,0x7f,0x7f,0x80,0x81,0x81,0x80,0x7f,0x7e,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7b,0x7b,0x7b,0x7d,0x7e,0x80,0x81,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,
+0x79,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x80,0x83,0x86,0x88,0x89,0x89,
+0x84,0x80,0x7d,0x80,0x87,0x8f,0x94,0x96,0x96,0x95,0x94,0x93,0x93,0x94,0x95,0x95,
+0x95,0x96,0x96,0x96,0x97,0x97,0x98,0x98,0x98,0x99,0x99,0x99,0x9a,0x9a,0x9a,0x9a,
+0x9c,0x9c,0x9c,0x9c,0x9b,0x9b,0x9b,0x9b,0x99,0x98,0x97,0x95,0x94,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x95,0x95,0x94,0x92,0x90,0x8c,0x89,0x88,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x89,0x8b,0x8d,0x8f,0x91,0x92,0x93,0x93,0x93,0x93,0x92,0x92,0x91,0x91,0x91,0x90,
+0x93,0x96,0x99,0x99,0x93,0x8b,0x84,0x7f,0x7e,0x7d,0x7b,0x7b,0x7c,0x7f,0x82,0x84,
+0x86,0x87,0x89,0x8a,0x89,0x88,0x86,0x84,0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7c,0x7d,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x82,0x82,0x83,0x83,0x83,0x83,0x82,0x82,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x84,0x83,0x82,0x81,0x81,0x81,0x82,0x82,0x84,0x83,0x82,0x82,0x82,0x83,0x84,0x85,
+0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,
+0x82,0x81,0x80,0x7f,0x7f,0x80,0x81,0x82,0x80,0x7f,0x7d,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x7d,0x7c,0x7c,0x7c,0x7d,0x7f,0x81,0x82,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,
+0x77,0x77,0x77,0x77,0x77,0x79,0x7a,0x7b,0x7b,0x7d,0x7f,0x83,0x85,0x87,0x88,0x89,
+0x84,0x80,0x7d,0x7f,0x86,0x8f,0x94,0x97,0x97,0x96,0x95,0x94,0x94,0x94,0x94,0x95,
+0x95,0x96,0x96,0x97,0x97,0x98,0x98,0x99,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+0x9d,0x9d,0x9d,0x9e,0x9e,0x9e,0x9e,0x9f,0x9b,0x9a,0x99,0x98,0x97,0x95,0x95,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x95,0x95,0x94,0x93,0x90,0x8e,0x8b,0x8a,0x84,0x84,0x84,0x83,0x84,0x85,0x87,0x88,
+0x8a,0x8b,0x8d,0x8f,0x91,0x92,0x92,0x92,0x94,0x93,0x93,0x92,0x92,0x91,0x91,0x90,
+0x92,0x96,0x99,0x97,0x8e,0x84,0x7e,0x7b,0x7c,0x7b,0x79,0x79,0x7c,0x7f,0x84,0x86,
+0x86,0x87,0x89,0x8a,0x89,0x87,0x85,0x83,0x7e,0x7e,0x7d,0x7c,0x7c,0x7d,0x7e,0x7e,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x81,0x82,0x83,0x84,0x84,0x83,0x82,0x81,
+0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x85,0x84,0x83,0x82,0x81,0x82,0x82,0x83,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x7f,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,0x81,0x81,
+0x82,0x81,0x80,0x80,0x80,0x80,0x81,0x82,0x7f,0x7e,0x7c,0x7b,0x7a,0x79,0x7a,0x7a,
+0x7e,0x7e,0x7d,0x7e,0x7f,0x80,0x82,0x83,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,
+0x75,0x74,0x74,0x74,0x76,0x78,0x7a,0x7b,0x7a,0x7c,0x7f,0x82,0x85,0x86,0x87,0x88,
+0x85,0x81,0x7d,0x7f,0x86,0x8f,0x95,0x98,0x99,0x98,0x96,0x95,0x94,0x94,0x94,0x95,
+0x95,0x95,0x96,0x97,0x98,0x98,0x99,0x99,0x9b,0x9b,0x9a,0x9a,0x99,0x99,0x98,0x98,
+0x9a,0x9b,0x9b,0x9c,0x9c,0x9d,0x9d,0x9d,0x9a,0x9a,0x9a,0x99,0x98,0x96,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x94,0x94,0x94,0x93,0x92,0x90,0x8e,0x8d,0x8a,0x8a,0x89,0x89,0x8a,0x8c,0x8d,0x8e,
+0x8e,0x8f,0x91,0x93,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x92,0x91,0x90,0x90,
+0x91,0x96,0x99,0x94,0x89,0x7d,0x78,0x76,0x79,0x78,0x77,0x78,0x7b,0x80,0x85,0x88,
+0x87,0x88,0x89,0x8a,0x89,0x86,0x84,0x82,0x7e,0x7e,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x81,0x82,0x83,0x84,0x84,0x83,0x82,0x81,
+0x83,0x83,0x84,0x84,0x85,0x85,0x86,0x86,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x86,0x85,0x84,0x83,0x82,0x83,0x83,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x85,0x86,
+0x7f,0x7e,0x7d,0x7d,0x7b,0x7b,0x7a,0x79,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7f,0x7f,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,0x81,0x81,0x82,
+0x82,0x81,0x80,0x80,0x80,0x80,0x81,0x82,0x7f,0x7e,0x7c,0x7a,0x79,0x79,0x79,0x7a,
+0x7f,0x7e,0x7e,0x7e,0x7f,0x81,0x83,0x84,0x87,0x88,0x88,0x88,0x88,0x86,0x85,0x84,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,
+0x73,0x72,0x72,0x73,0x74,0x77,0x7a,0x7c,0x79,0x7b,0x7e,0x81,0x84,0x86,0x87,0x87,
+0x86,0x81,0x7d,0x7f,0x86,0x8f,0x95,0x98,0x9a,0x99,0x97,0x96,0x94,0x94,0x94,0x94,
+0x95,0x95,0x96,0x97,0x98,0x99,0x99,0x9a,0x9c,0x9b,0x9b,0x9a,0x99,0x98,0x97,0x97,
+0x97,0x97,0x98,0x99,0x99,0x9a,0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x98,0x97,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x93,0x93,0x94,0x94,0x93,0x91,0x90,0x8f,0x8f,0x8f,0x8f,0x8f,0x90,0x91,0x93,0x94,
+0x92,0x93,0x95,0x96,0x97,0x97,0x97,0x97,0x95,0x94,0x94,0x93,0x92,0x91,0x90,0x90,
+0x90,0x95,0x98,0x92,0x85,0x79,0x73,0x73,0x78,0x77,0x76,0x77,0x7a,0x80,0x86,0x8a,
+0x87,0x88,0x89,0x89,0x88,0x86,0x83,0x81,0x7e,0x7e,0x7d,0x7d,0x7d,0x7f,0x80,0x81,
+0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x83,0x84,0x81,0x82,0x83,0x84,0x84,0x83,0x82,0x81,
+0x83,0x83,0x84,0x84,0x85,0x85,0x86,0x86,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x86,0x85,0x84,0x83,0x83,0x83,0x84,0x85,0x84,0x84,0x83,0x83,0x83,0x84,0x85,0x86,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7e,0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x81,0x81,0x81,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7c,0x7d,
+0x7e,0x7d,0x7d,0x7d,0x7e,0x81,0x84,0x86,0x86,0x87,0x89,0x8a,0x89,0x87,0x85,0x84,
+0x7f,0x7f,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,0x7c,0x7c,0x7b,0x7b,0x7b,0x7d,0x7e,0x7f,
+0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x79,0x7c,0x80,0x83,0x86,0x87,0x87,0x87,
+0x84,0x7f,0x7a,0x78,0x7c,0x86,0x91,0x98,0x96,0x95,0x93,0x92,0x92,0x94,0x95,0x96,
+0x96,0x97,0x97,0x98,0x98,0x99,0x9a,0x9a,0x99,0x9a,0x9b,0x9b,0x9b,0x9a,0x99,0x98,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x98,0x97,0x97,0x97,0x97,0x96,0x96,0x96,
+0x97,0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x93,0x93,0x94,0x95,0x95,0x96,0x96,0x97,
+0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x93,0x91,0x90,0x8e,0x8d,0x8c,
+0x8f,0x90,0x91,0x92,0x93,0x94,0x95,0x96,0x96,0x95,0x93,0x91,0x90,0x90,0x91,0x91,
+0x99,0x92,0x87,0x7d,0x76,0x73,0x74,0x76,0x76,0x74,0x73,0x77,0x7d,0x83,0x85,0x85,
+0x86,0x88,0x8a,0x8b,0x89,0x84,0x7f,0x7b,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x77,
+0x7c,0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,0x7f,0x7f,0x80,0x81,0x81,0x80,0x7f,0x7f,
+0x7f,0x7f,0x7f,0x7f,0x80,0x81,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x81,0x82,0x83,0x84,0x85,0x85,0x84,0x84,
+0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x82,0x82,0x81,0x82,0x83,0x85,0x87,0x88,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x80,0x80,0x81,0x81,
+0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x7e,0x7e,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,
+0x7e,0x7d,0x7c,0x7c,0x7e,0x81,0x84,0x86,0x86,0x87,0x89,0x8a,0x89,0x87,0x85,0x83,
+0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,0x7e,
+0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x79,0x7c,0x80,0x83,0x86,0x87,0x87,0x87,
+0x83,0x7f,0x7a,0x78,0x7b,0x84,0x8f,0x96,0x95,0x94,0x93,0x92,0x93,0x94,0x95,0x96,
+0x97,0x97,0x97,0x98,0x99,0x99,0x9a,0x9a,0x9a,0x9a,0x9b,0x9b,0x9b,0x9a,0x99,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x97,0x97,0x97,0x96,0x96,0x96,0x95,0x95,
+0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x96,0x96,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x98,0x98,0x97,0x96,0x95,0x94,0x93,0x92,
+0x92,0x92,0x93,0x94,0x94,0x95,0x96,0x96,0x96,0x95,0x94,0x92,0x91,0x91,0x91,0x91,
+0x93,0x8d,0x84,0x7a,0x74,0x73,0x74,0x75,0x76,0x74,0x73,0x77,0x7e,0x83,0x86,0x86,
+0x86,0x88,0x8a,0x8a,0x88,0x83,0x7e,0x7b,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,
+0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x7c,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7c,
+0x7e,0x7e,0x7e,0x7f,0x80,0x82,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x81,0x82,0x83,0x85,0x85,0x85,0x84,0x84,
+0x82,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x82,0x82,0x82,0x82,0x83,0x85,0x87,0x88,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,0x81,0x81,
+0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7d,0x7c,0x7c,0x7c,0x7e,0x81,0x84,0x86,0x86,0x87,0x89,0x89,0x89,0x87,0x84,0x83,
+0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7c,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,
+0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x79,0x7c,0x80,0x83,0x86,0x87,0x87,0x87,
+0x83,0x7f,0x7a,0x77,0x7a,0x82,0x8c,0x92,0x94,0x93,0x93,0x93,0x93,0x94,0x95,0x96,
+0x97,0x97,0x98,0x98,0x99,0x99,0x9a,0x9a,0x9a,0x9b,0x9b,0x9c,0x9b,0x9a,0x99,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,
+0x97,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x95,0x95,0x96,0x97,0x97,0x98,0x98,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x9c,0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,0x9a,
+0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x96,0x95,0x95,0x94,0x92,0x91,0x90,0x90,
+0x8b,0x86,0x7e,0x77,0x73,0x72,0x73,0x75,0x75,0x74,0x74,0x78,0x7f,0x84,0x86,0x86,
+0x87,0x88,0x89,0x88,0x86,0x82,0x7d,0x7a,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,
+0x78,0x79,0x7a,0x7a,0x7b,0x7a,0x79,0x78,0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,
+0x7c,0x7d,0x7e,0x7f,0x81,0x82,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x82,0x83,0x84,0x85,0x85,0x85,0x84,0x84,
+0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x82,0x82,0x82,0x82,0x83,0x85,0x86,0x87,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,
+0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x81,
+0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x7d,0x7d,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x7c,0x7c,0x7b,0x7c,0x7e,0x81,0x84,0x86,0x86,0x87,0x89,0x89,0x88,0x86,0x83,0x82,
+0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7c,
+0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,
+0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x79,0x7c,0x80,0x83,0x86,0x87,0x87,0x87,
+0x83,0x7f,0x79,0x76,0x79,0x7f,0x88,0x8e,0x92,0x92,0x93,0x93,0x93,0x94,0x95,0x95,
+0x97,0x97,0x98,0x98,0x99,0x9a,0x9a,0x9b,0x9b,0x9b,0x9c,0x9c,0x9c,0x9b,0x9a,0x99,
+0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,
+0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x97,0x98,0x98,0x98,
+0x97,0x97,0x97,0x98,0x98,0x98,0x98,0x98,0x9c,0x9c,0x9c,0x9c,0x9c,0x9d,0x9d,0x9d,
+0x9a,0x9a,0x99,0x99,0x98,0x98,0x97,0x97,0x95,0x96,0x96,0x95,0x93,0x91,0x8e,0x8c,
+0x82,0x7e,0x79,0x74,0x71,0x71,0x73,0x74,0x75,0x73,0x74,0x79,0x80,0x86,0x87,0x86,
+0x87,0x87,0x87,0x86,0x83,0x80,0x7c,0x7a,0x77,0x77,0x76,0x76,0x75,0x75,0x74,0x74,
+0x76,0x76,0x78,0x78,0x79,0x78,0x77,0x77,0x7b,0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,
+0x7a,0x7b,0x7d,0x7f,0x81,0x82,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x84,0x83,
+0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x83,0x83,0x82,0x82,0x83,0x84,0x86,0x87,
+0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x80,0x80,0x80,
+0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x7f,0x7d,0x7c,0x7b,0x7a,0x79,0x7a,0x7a,0x7b,
+0x7b,0x7b,0x7a,0x7b,0x7d,0x81,0x84,0x86,0x87,0x88,0x89,0x89,0x88,0x85,0x83,0x81,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x79,0x79,0x7a,
+0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,
+0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x79,0x7c,0x80,0x83,0x86,0x87,0x87,0x87,
+0x82,0x7e,0x79,0x75,0x77,0x7c,0x84,0x89,0x91,0x91,0x92,0x93,0x94,0x94,0x95,0x95,
+0x97,0x98,0x98,0x99,0x99,0x9a,0x9b,0x9b,0x9c,0x9c,0x9d,0x9d,0x9d,0x9c,0x9b,0x9a,
+0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,
+0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,0x95,0x95,0x96,0x97,0x97,0x98,0x98,
+0x96,0x97,0x97,0x97,0x98,0x98,0x99,0x99,0x99,0x99,0x99,0x9a,0x9a,0x9b,0x9b,0x9b,
+0x9b,0x9b,0x9a,0x9a,0x99,0x98,0x97,0x97,0x96,0x97,0x97,0x96,0x93,0x8f,0x8a,0x87,
+0x7a,0x78,0x75,0x72,0x71,0x71,0x73,0x74,0x74,0x73,0x75,0x7b,0x82,0x87,0x88,0x87,
+0x88,0x87,0x85,0x83,0x80,0x7d,0x7b,0x7a,0x77,0x77,0x77,0x76,0x75,0x74,0x74,0x73,
+0x74,0x75,0x76,0x77,0x77,0x77,0x77,0x76,0x7d,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,
+0x77,0x79,0x7c,0x7f,0x81,0x82,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x83,0x83,0x82,0x82,0x83,0x84,0x85,0x86,
+0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7b,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,
+0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7a,
+0x7b,0x7a,0x7a,0x7b,0x7d,0x81,0x84,0x87,0x87,0x88,0x89,0x89,0x87,0x85,0x82,0x80,
+0x7d,0x7c,0x7b,0x7a,0x79,0x7a,0x7a,0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x79,
+0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,
+0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x79,0x7c,0x80,0x83,0x86,0x87,0x87,0x87,
+0x82,0x7e,0x78,0x75,0x75,0x79,0x80,0x84,0x8f,0x90,0x92,0x93,0x94,0x95,0x95,0x94,
+0x98,0x98,0x98,0x99,0x9a,0x9a,0x9b,0x9b,0x9c,0x9d,0x9d,0x9e,0x9d,0x9c,0x9b,0x9a,
+0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x97,0x97,0x97,0x97,0x96,0x96,0x96,0x96,
+0x96,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x94,0x94,0x95,0x96,0x96,0x97,0x97,
+0x95,0x96,0x96,0x97,0x97,0x98,0x98,0x99,0x97,0x97,0x97,0x98,0x98,0x98,0x98,0x98,
+0x9a,0x9a,0x99,0x99,0x98,0x98,0x97,0x97,0x97,0x98,0x98,0x96,0x92,0x8b,0x85,0x80,
+0x76,0x75,0x74,0x72,0x72,0x72,0x73,0x74,0x73,0x73,0x76,0x7c,0x83,0x88,0x89,0x87,
+0x89,0x87,0x84,0x81,0x7d,0x7b,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x75,0x74,0x74,
+0x73,0x74,0x75,0x76,0x77,0x77,0x76,0x76,0x7d,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7d,
+0x75,0x77,0x7b,0x7f,0x81,0x83,0x83,0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,
+0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7c,0x7b,0x7a,0x79,0x78,0x79,0x79,0x7a,
+0x7a,0x7a,0x79,0x7a,0x7d,0x81,0x84,0x87,0x87,0x88,0x89,0x89,0x87,0x84,0x81,0x7f,
+0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x77,0x76,0x76,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,
+0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x79,0x7c,0x80,0x83,0x86,0x87,0x87,0x87,
+0x81,0x7d,0x78,0x74,0x74,0x77,0x7d,0x80,0x8e,0x8f,0x92,0x94,0x95,0x95,0x94,0x94,
+0x98,0x98,0x99,0x99,0x9a,0x9b,0x9b,0x9b,0x9d,0x9d,0x9e,0x9e,0x9e,0x9d,0x9c,0x9b,
+0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x99,0x98,0x98,0x98,0x98,0x97,0x97,0x97,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x92,0x93,0x93,0x94,0x94,0x95,0x95,0x96,
+0x94,0x94,0x95,0x96,0x96,0x97,0x98,0x98,0x98,0x98,0x98,0x97,0x97,0x97,0x97,0x97,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x98,0x99,0x96,0x91,0x88,0x80,0x7a,
+0x74,0x74,0x74,0x73,0x73,0x73,0x74,0x74,0x73,0x73,0x76,0x7d,0x84,0x89,0x89,0x88,
+0x89,0x87,0x83,0x7f,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x79,0x78,0x76,0x75,0x75,0x74,
+0x72,0x73,0x75,0x76,0x77,0x77,0x77,0x76,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,
+0x73,0x76,0x7a,0x7e,0x81,0x83,0x83,0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x86,0x86,0x86,0x85,0x84,0x83,
+0x82,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x83,0x84,0x85,0x85,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,
+0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,
+0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7b,0x7a,0x79,0x78,0x78,0x78,0x79,0x7a,
+0x7a,0x79,0x79,0x7a,0x7d,0x81,0x84,0x87,0x87,0x88,0x89,0x88,0x87,0x84,0x81,0x7f,
+0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x79,0x77,0x76,0x76,0x76,0x76,0x77,
+0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,
+0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x79,0x7c,0x80,0x83,0x86,0x87,0x87,0x87,
+0x81,0x7d,0x78,0x74,0x73,0x76,0x7b,0x7e,0x8d,0x8f,0x91,0x94,0x95,0x95,0x94,0x94,
+0x98,0x98,0x99,0x99,0x9a,0x9b,0x9b,0x9c,0x9d,0x9d,0x9e,0x9f,0x9e,0x9d,0x9c,0x9b,
+0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x99,0x99,0x99,0x99,0x98,0x98,0x98,0x98,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x91,0x92,0x92,0x93,0x94,0x94,0x95,0x95,
+0x93,0x93,0x94,0x95,0x96,0x97,0x97,0x98,0x99,0x99,0x99,0x98,0x98,0x97,0x97,0x97,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x98,0x99,0x99,0x96,0x90,0x86,0x7c,0x76,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x76,0x7d,0x85,0x8a,0x8a,0x88,
+0x89,0x87,0x82,0x7e,0x7a,0x79,0x78,0x78,0x7b,0x7a,0x7a,0x78,0x77,0x76,0x75,0x75,
+0x72,0x73,0x75,0x76,0x77,0x77,0x77,0x77,0x75,0x76,0x77,0x78,0x78,0x77,0x76,0x75,
+0x72,0x75,0x7a,0x7e,0x82,0x83,0x83,0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x86,0x86,0x87,0x87,0x86,0x85,0x84,0x83,
+0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x85,0x84,0x83,0x83,0x83,0x83,0x84,0x85,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7b,0x7c,0x7d,0x7c,0x7b,0x7a,0x79,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,
+0x77,0x77,0x77,0x79,0x7c,0x80,0x84,0x87,0x89,0x8a,0x8a,0x89,0x87,0x84,0x81,0x7f,
+0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x73,
+0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7d,0x7e,0x81,0x83,0x85,0x86,0x87,0x87,
+0x7f,0x7c,0x79,0x76,0x75,0x77,0x7a,0x7c,0x8f,0x90,0x92,0x94,0x95,0x95,0x94,0x94,
+0x96,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9b,0x9d,0x9d,0x9d,0x9c,0x9c,0x9c,0x9b,0x9b,
+0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9a,0x99,0x97,0x95,0x94,0x92,0x92,
+0x93,0x93,0x94,0x94,0x95,0x96,0x97,0x97,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x95,0x95,0x96,0x96,0x96,0x96,0x95,0x95,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x9c,0x98,0x94,0x92,0x90,0x87,0x78,0x6d,
+0x73,0x73,0x72,0x72,0x72,0x73,0x74,0x75,0x72,0x75,0x7b,0x80,0x86,0x8a,0x8c,0x8d,
+0x8b,0x87,0x81,0x7b,0x78,0x78,0x7a,0x7b,0x76,0x77,0x78,0x78,0x76,0x73,0x70,0x6e,
+0x6e,0x70,0x73,0x76,0x77,0x76,0x75,0x73,0x76,0x76,0x76,0x76,0x75,0x73,0x72,0x70,
+0x71,0x74,0x7a,0x7f,0x83,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7e,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,
+0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,
+0x77,0x77,0x77,0x79,0x7c,0x80,0x84,0x87,0x89,0x89,0x8a,0x89,0x87,0x84,0x80,0x7e,
+0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x74,
+0x75,0x75,0x76,0x77,0x78,0x78,0x79,0x79,0x7c,0x7e,0x80,0x82,0x84,0x85,0x85,0x86,
+0x7f,0x7d,0x79,0x76,0x76,0x78,0x7b,0x7d,0x8d,0x8f,0x92,0x94,0x95,0x96,0x95,0x94,
+0x97,0x97,0x98,0x99,0x9a,0x9b,0x9b,0x9c,0x9d,0x9d,0x9d,0x9d,0x9c,0x9c,0x9c,0x9c,
+0x9b,0x9b,0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,0x99,0x99,0x98,0x97,0x95,0x94,0x93,0x93,
+0x93,0x94,0x94,0x95,0x96,0x97,0x97,0x98,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,
+0x95,0x95,0x96,0x96,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,
+0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x98,0x9c,0x98,0x94,0x92,0x8f,0x86,0x78,0x6d,
+0x73,0x73,0x72,0x72,0x72,0x73,0x74,0x75,0x75,0x78,0x7c,0x82,0x87,0x8a,0x8c,0x8c,
+0x8b,0x87,0x81,0x7b,0x78,0x77,0x78,0x7a,0x76,0x77,0x77,0x77,0x76,0x73,0x70,0x6e,
+0x6e,0x70,0x73,0x75,0x76,0x76,0x74,0x73,0x75,0x76,0x76,0x75,0x74,0x73,0x71,0x70,
+0x71,0x74,0x7a,0x7f,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x79,0x7c,0x80,0x84,0x87,0x88,0x89,0x89,0x89,0x87,0x83,0x80,0x7e,
+0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x78,0x77,0x76,0x75,0x74,0x74,
+0x74,0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x7b,0x7c,0x7e,0x81,0x82,0x83,0x83,0x83,
+0x7f,0x7d,0x7a,0x78,0x77,0x79,0x7b,0x7d,0x8b,0x8d,0x90,0x94,0x96,0x97,0x96,0x96,
+0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9c,0x9d,0x9e,0x9e,0x9d,0x9d,0x9d,0x9c,0x9c,0x9c,
+0x9b,0x9a,0x9a,0x9a,0x9a,0x99,0x99,0x99,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,
+0x95,0x95,0x95,0x96,0x97,0x97,0x98,0x98,0x97,0x97,0x97,0x96,0x95,0x95,0x94,0x94,
+0x94,0x95,0x95,0x96,0x97,0x98,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x9b,0x98,0x95,0x92,0x8d,0x83,0x76,0x6d,
+0x73,0x72,0x72,0x71,0x72,0x73,0x74,0x75,0x78,0x7b,0x7f,0x84,0x88,0x8a,0x8b,0x8b,
+0x8c,0x88,0x81,0x7a,0x76,0x75,0x76,0x77,0x75,0x76,0x77,0x77,0x75,0x73,0x70,0x6e,
+0x6e,0x6f,0x72,0x74,0x75,0x75,0x74,0x73,0x75,0x75,0x75,0x75,0x74,0x72,0x70,0x6f,
+0x70,0x74,0x79,0x7f,0x83,0x84,0x84,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x79,0x7c,0x80,0x84,0x87,0x88,0x88,0x89,0x88,0x86,0x83,0x7f,0x7d,
+0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x75,
+0x74,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x79,0x7a,0x7c,0x7e,0x80,0x81,0x81,0x81,
+0x7e,0x7c,0x7a,0x78,0x78,0x7a,0x7c,0x7d,0x86,0x89,0x8e,0x93,0x96,0x97,0x97,0x97,
+0x98,0x99,0x99,0x9a,0x9b,0x9c,0x9d,0x9d,0x9e,0x9e,0x9d,0x9d,0x9d,0x9c,0x9c,0x9c,
+0x9a,0x9a,0x99,0x99,0x98,0x98,0x97,0x97,0x94,0x94,0x94,0x95,0x95,0x96,0x96,0x96,
+0x95,0x96,0x96,0x96,0x97,0x97,0x98,0x98,0x98,0x98,0x98,0x97,0x96,0x95,0x95,0x94,
+0x94,0x94,0x95,0x96,0x97,0x99,0x9a,0x9c,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,
+0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x9a,0x99,0x96,0x91,0x8a,0x7f,0x74,0x6d,
+0x73,0x72,0x71,0x71,0x71,0x72,0x74,0x74,0x7b,0x7e,0x82,0x87,0x8a,0x8b,0x8a,0x8a,
+0x8c,0x87,0x80,0x79,0x75,0x73,0x74,0x75,0x74,0x75,0x76,0x76,0x75,0x73,0x70,0x6e,
+0x6d,0x6f,0x71,0x72,0x74,0x74,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x71,0x6f,0x6e,
+0x70,0x74,0x79,0x7f,0x82,0x84,0x84,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x7a,0x7a,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x77,0x77,0x77,0x79,0x7c,0x80,0x84,0x87,0x87,0x87,0x88,0x87,0x85,0x82,0x7f,0x7d,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x75,0x75,
+0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x77,0x78,0x7a,0x7c,0x7d,0x7e,0x7e,0x7e,
+0x7c,0x7b,0x7a,0x79,0x79,0x7a,0x7c,0x7d,0x81,0x85,0x8b,0x92,0x96,0x98,0x98,0x97,
+0x98,0x99,0x99,0x9a,0x9b,0x9c,0x9d,0x9d,0x9d,0x9d,0x9d,0x9c,0x9c,0x9c,0x9c,0x9b,
+0x99,0x99,0x98,0x97,0x97,0x96,0x95,0x95,0x92,0x92,0x93,0x94,0x95,0x96,0x96,0x97,
+0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x97,0x97,0x96,0x96,0x95,0x95,
+0x95,0x94,0x94,0x95,0x96,0x98,0x9a,0x9c,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,
+0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x9a,0x97,0x91,0x87,0x7b,0x72,0x6d,
+0x72,0x72,0x71,0x71,0x71,0x72,0x73,0x74,0x7c,0x7f,0x84,0x88,0x8b,0x8b,0x8a,0x88,
+0x8a,0x86,0x7f,0x78,0x73,0x72,0x73,0x74,0x73,0x74,0x75,0x75,0x74,0x72,0x70,0x6e,
+0x6d,0x6e,0x6f,0x71,0x72,0x72,0x72,0x72,0x73,0x73,0x73,0x73,0x72,0x70,0x6e,0x6d,
+0x70,0x73,0x79,0x7e,0x82,0x84,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x77,0x77,0x77,0x79,0x7c,0x80,0x84,0x87,0x86,0x87,0x87,0x87,0x85,0x81,0x7e,0x7c,
+0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x79,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x80,0x88,0x8f,0x95,0x97,0x97,0x97,
+0x97,0x98,0x99,0x9a,0x9b,0x9c,0x9c,0x9d,0x9c,0x9c,0x9b,0x9b,0x9b,0x9a,0x9a,0x9a,
+0x98,0x98,0x97,0x96,0x95,0x94,0x94,0x93,0x91,0x92,0x92,0x93,0x94,0x95,0x96,0x96,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x96,0x95,0x94,0x93,0x94,0x96,0x99,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x99,0x9a,0x99,0x91,0x84,0x78,0x70,0x6d,
+0x72,0x71,0x71,0x70,0x71,0x72,0x73,0x74,0x7b,0x7f,0x84,0x89,0x8c,0x8b,0x89,0x88,
+0x88,0x84,0x7d,0x76,0x72,0x71,0x72,0x73,0x71,0x72,0x74,0x75,0x74,0x72,0x6f,0x6e,
+0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x72,0x72,0x72,0x72,0x72,0x71,0x6f,0x6d,0x6c,
+0x6f,0x73,0x78,0x7e,0x82,0x83,0x83,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x77,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,
+0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x78,0x78,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,
+0x77,0x77,0x77,0x79,0x7c,0x80,0x84,0x87,0x86,0x86,0x87,0x86,0x84,0x81,0x7e,0x7b,
+0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x74,0x75,0x77,0x78,0x79,0x79,0x79,0x79,
+0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7b,0x77,0x7c,0x85,0x8d,0x94,0x96,0x97,0x96,
+0x97,0x97,0x98,0x99,0x9a,0x9b,0x9b,0x9c,0x9a,0x9a,0x9a,0x9a,0x99,0x99,0x99,0x99,
+0x98,0x97,0x96,0x95,0x94,0x93,0x92,0x92,0x91,0x92,0x92,0x93,0x93,0x94,0x95,0x95,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x94,0x94,0x95,0x96,0x96,0x97,
+0x96,0x95,0x93,0x92,0x92,0x94,0x97,0x98,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x98,0x9b,0x99,0x90,0x82,0x75,0x6f,0x6d,
+0x72,0x71,0x71,0x70,0x71,0x72,0x73,0x74,0x79,0x7d,0x83,0x89,0x8c,0x8b,0x89,0x87,
+0x85,0x81,0x7b,0x75,0x72,0x71,0x72,0x74,0x70,0x72,0x73,0x74,0x73,0x72,0x6f,0x6e,
+0x6d,0x6d,0x6d,0x6e,0x6f,0x70,0x71,0x72,0x71,0x71,0x71,0x71,0x70,0x6e,0x6d,0x6c,
+0x6f,0x73,0x78,0x7e,0x81,0x83,0x83,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x7d,0x7c,0x7c,0x7a,0x79,0x78,0x77,0x77,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,
+0x75,0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x79,0x7a,0x7a,0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,
+0x77,0x77,0x77,0x79,0x7c,0x80,0x84,0x87,0x86,0x86,0x87,0x86,0x84,0x81,0x7d,0x7b,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x74,0x75,0x76,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x74,0x7a,0x83,0x8c,0x93,0x96,0x96,0x96,
+0x96,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9b,0x99,0x99,0x99,0x99,0x98,0x98,0x98,0x98,
+0x97,0x97,0x96,0x95,0x94,0x92,0x92,0x91,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,
+0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x91,0x91,0x92,0x93,0x95,0x96,0x97,0x97,
+0x97,0x95,0x93,0x91,0x91,0x93,0x95,0x97,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,
+0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x9b,0x98,0x9b,0x9a,0x90,0x80,0x73,0x6e,0x6d,
+0x72,0x71,0x70,0x70,0x70,0x71,0x73,0x73,0x78,0x7c,0x83,0x89,0x8c,0x8b,0x89,0x87,
+0x84,0x80,0x7a,0x74,0x71,0x71,0x73,0x74,0x70,0x71,0x73,0x74,0x73,0x71,0x6f,0x6e,
+0x6c,0x6c,0x6d,0x6d,0x6e,0x70,0x71,0x72,0x70,0x71,0x71,0x71,0x70,0x6e,0x6c,0x6b,
+0x6f,0x72,0x78,0x7e,0x81,0x83,0x83,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,
+0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,
+0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x76,0x76,0x77,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,
+0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,
+0x76,0x77,0x78,0x7a,0x7d,0x81,0x85,0x88,0x85,0x86,0x86,0x86,0x83,0x80,0x7d,0x7b,
+0x75,0x76,0x76,0x76,0x76,0x75,0x74,0x74,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x75,0x76,0x77,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x80,0x88,0x91,0x96,0x96,0x94,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x9b,0x9b,0x9a,0x99,0x98,0x98,0x97,0x97,
+0x98,0x97,0x96,0x94,0x93,0x93,0x94,0x94,0x93,0x93,0x93,0x94,0x94,0x95,0x95,0x95,
+0x94,0x95,0x96,0x96,0x96,0x95,0x94,0x93,0x90,0x90,0x90,0x91,0x92,0x92,0x93,0x93,
+0x92,0x91,0x91,0x90,0x91,0x92,0x94,0x94,0x99,0x99,0x99,0x99,0x9a,0x9a,0x9a,0x9a,
+0x9d,0x9e,0x9e,0x9e,0x9d,0x9c,0x9b,0x9a,0x9a,0x98,0x93,0x89,0x7d,0x74,0x71,0x70,
+0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x71,0x72,0x7a,0x7d,0x82,0x88,0x8b,0x8c,0x8c,0x8b,
+0x80,0x7a,0x73,0x6f,0x6f,0x70,0x70,0x70,0x6f,0x70,0x70,0x70,0x70,0x70,0x70,0x71,
+0x70,0x6f,0x6d,0x6c,0x6b,0x6c,0x6e,0x6f,0x6e,0x70,0x72,0x73,0x72,0x70,0x6d,0x6b,
+0x6c,0x73,0x7b,0x81,0x82,0x82,0x83,0x84,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x81,0x81,0x82,0x83,0x84,0x84,0x85,0x85,
+0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,
+0x77,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x79,0x78,0x77,0x76,0x76,0x76,0x76,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,
+0x76,0x77,0x78,0x7a,0x7e,0x82,0x85,0x88,0x86,0x86,0x87,0x86,0x84,0x81,0x7d,0x7b,
+0x76,0x77,0x77,0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x75,0x75,0x76,0x77,0x78,0x78,0x79,0x7a,0x7b,0x80,0x88,0x91,0x96,0x96,0x94,
+0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x9b,0x9a,0x9a,0x99,0x98,0x97,0x97,0x96,
+0x97,0x97,0x95,0x94,0x94,0x94,0x94,0x95,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,
+0x93,0x94,0x94,0x95,0x95,0x94,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x92,0x91,0x91,0x91,0x91,0x92,0x94,0x94,0x97,0x98,0x98,0x99,0x9a,0x9a,0x9b,0x9b,
+0x9d,0x9d,0x9e,0x9e,0x9d,0x9c,0x9a,0x99,0x99,0x98,0x92,0x88,0x7c,0x74,0x71,0x71,
+0x6f,0x6f,0x6f,0x6f,0x6f,0x70,0x71,0x72,0x7c,0x7f,0x84,0x88,0x8b,0x8c,0x8b,0x8a,
+0x80,0x7a,0x72,0x6e,0x6f,0x70,0x70,0x70,0x6f,0x6f,0x6f,0x6f,0x70,0x70,0x70,0x70,
+0x70,0x6f,0x6d,0x6c,0x6c,0x6d,0x6e,0x6f,0x6f,0x70,0x72,0x73,0x72,0x70,0x6d,0x6b,
+0x6c,0x73,0x7b,0x81,0x82,0x82,0x83,0x84,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x81,0x81,0x82,0x83,0x84,0x84,0x85,0x85,
+0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x78,0x77,0x76,0x75,0x75,0x75,0x76,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x78,0x78,0x78,0x79,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,
+0x76,0x77,0x78,0x7b,0x7e,0x82,0x85,0x87,0x86,0x87,0x87,0x87,0x85,0x81,0x7e,0x7c,
+0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x75,0x76,0x76,0x77,0x77,0x7a,0x7b,0x80,0x88,0x91,0x96,0x97,0x95,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x9a,0x9a,0x99,0x98,0x98,0x97,0x97,0x96,
+0x97,0x96,0x95,0x94,0x94,0x95,0x96,0x96,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x91,
+0x93,0x93,0x94,0x95,0x95,0x94,0x94,0x93,0x95,0x95,0x94,0x94,0x93,0x93,0x92,0x92,
+0x93,0x92,0x91,0x91,0x91,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9b,0x9c,0x9c,
+0x9c,0x9d,0x9d,0x9d,0x9d,0x9b,0x9a,0x99,0x99,0x96,0x90,0x86,0x7a,0x73,0x71,0x72,
+0x6f,0x6f,0x6e,0x6e,0x6f,0x70,0x72,0x73,0x7f,0x81,0x85,0x89,0x8b,0x8a,0x89,0x87,
+0x7e,0x78,0x71,0x6e,0x6e,0x70,0x71,0x70,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,
+0x6f,0x6f,0x6e,0x6d,0x6d,0x6e,0x6f,0x6f,0x6f,0x70,0x72,0x72,0x72,0x70,0x6d,0x6c,
+0x6d,0x74,0x7c,0x81,0x82,0x82,0x83,0x84,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7a,0x77,0x77,0x76,0x75,0x75,0x75,0x76,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,
+0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x76,0x77,0x79,0x7c,0x7f,0x83,0x85,0x87,0x87,0x87,0x88,0x87,0x85,0x82,0x7e,0x7c,
+0x7a,0x79,0x78,0x78,0x77,0x77,0x78,0x78,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x73,0x73,0x74,0x74,0x75,0x75,0x75,0x76,0x7a,0x7a,0x7e,0x86,0x8f,0x96,0x97,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x99,0x98,0x98,0x98,0x97,0x97,0x96,0x96,
+0x96,0x95,0x94,0x94,0x94,0x95,0x96,0x97,0x95,0x95,0x94,0x94,0x93,0x93,0x93,0x92,
+0x96,0x96,0x97,0x98,0x99,0x98,0x97,0x97,0x99,0x98,0x97,0x96,0x95,0x94,0x93,0x92,
+0x93,0x93,0x92,0x91,0x91,0x92,0x93,0x94,0x94,0x94,0x96,0x97,0x99,0x9b,0x9c,0x9c,
+0x9c,0x9c,0x9d,0x9d,0x9c,0x9b,0x99,0x98,0x98,0x95,0x8e,0x83,0x78,0x72,0x71,0x73,
+0x70,0x6f,0x6e,0x6e,0x6e,0x70,0x73,0x74,0x82,0x84,0x87,0x8a,0x8a,0x89,0x87,0x85,
+0x7d,0x77,0x70,0x6d,0x6e,0x70,0x71,0x70,0x6f,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,0x6e,
+0x6f,0x6e,0x6e,0x6e,0x6f,0x6f,0x6f,0x70,0x70,0x71,0x72,0x72,0x71,0x70,0x6e,0x6d,
+0x6e,0x74,0x7d,0x81,0x82,0x82,0x83,0x84,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x84,
+0x86,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,
+0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x77,0x76,0x76,0x75,0x75,0x76,0x77,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x75,0x77,0x7a,0x7d,0x80,0x83,0x85,0x87,0x86,0x87,0x87,0x87,0x85,0x81,0x7e,0x7c,
+0x7b,0x7a,0x78,0x77,0x77,0x77,0x78,0x79,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x73,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x78,0x79,0x7c,0x84,0x8d,0x94,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x96,
+0x95,0x95,0x94,0x93,0x93,0x93,0x94,0x95,0x97,0x97,0x97,0x97,0x97,0x96,0x96,0x96,
+0x99,0x9a,0x9c,0x9d,0x9d,0x9d,0x9c,0x9c,0x9b,0x9b,0x9a,0x98,0x97,0x95,0x94,0x94,
+0x94,0x94,0x93,0x92,0x92,0x92,0x93,0x94,0x93,0x94,0x95,0x96,0x98,0x9a,0x9b,0x9c,
+0x9b,0x9c,0x9c,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x93,0x8b,0x80,0x75,0x70,0x71,0x74,
+0x71,0x70,0x6e,0x6e,0x6f,0x72,0x75,0x77,0x84,0x86,0x88,0x8a,0x8a,0x88,0x86,0x84,
+0x7b,0x75,0x6f,0x6c,0x6d,0x70,0x71,0x71,0x70,0x70,0x6f,0x6f,0x6f,0x6e,0x6e,0x6e,
+0x6e,0x6e,0x6f,0x70,0x70,0x70,0x70,0x70,0x71,0x72,0x72,0x72,0x71,0x70,0x6f,0x6e,
+0x6f,0x75,0x7d,0x82,0x83,0x82,0x82,0x84,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x82,0x85,0x85,0x84,0x84,0x84,0x84,0x85,0x85,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x84,0x84,
+0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x78,0x77,0x76,0x76,0x76,0x77,0x78,0x79,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,
+0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x78,
+0x75,0x77,0x7a,0x7e,0x81,0x84,0x86,0x86,0x85,0x86,0x86,0x86,0x84,0x80,0x7d,0x7b,
+0x7b,0x7a,0x78,0x76,0x76,0x77,0x78,0x7a,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x77,0x77,0x7a,0x81,0x8b,0x92,0x95,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,
+0x95,0x94,0x93,0x92,0x91,0x91,0x91,0x92,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x98,
+0x9b,0x9c,0x9d,0x9f,0x9f,0x9f,0x9f,0x9e,0x9d,0x9c,0x9b,0x9a,0x99,0x98,0x97,0x96,
+0x95,0x94,0x93,0x92,0x92,0x92,0x93,0x94,0x93,0x94,0x95,0x96,0x97,0x99,0x9a,0x9a,
+0x9a,0x9b,0x9b,0x9b,0x9b,0x99,0x98,0x97,0x96,0x91,0x89,0x7d,0x73,0x6f,0x71,0x75,
+0x72,0x71,0x6f,0x6f,0x70,0x73,0x77,0x79,0x85,0x86,0x89,0x8b,0x8b,0x88,0x85,0x83,
+0x79,0x74,0x6d,0x6b,0x6d,0x70,0x71,0x71,0x71,0x71,0x71,0x70,0x6f,0x6f,0x6e,0x6e,
+0x6d,0x6e,0x70,0x71,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x71,0x71,0x70,0x6f,0x6f,
+0x6f,0x76,0x7e,0x82,0x83,0x82,0x82,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x85,0x85,0x84,0x83,0x83,0x84,0x85,0x85,
+0x87,0x86,0x86,0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,
+0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x78,0x79,0x7a,0x7b,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,
+0x74,0x75,0x75,0x76,0x77,0x78,0x78,0x79,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x75,0x77,0x7b,0x7f,0x82,0x84,0x86,0x86,0x84,0x85,0x85,0x85,0x83,0x7f,0x7c,0x7a,
+0x7b,0x79,0x77,0x75,0x75,0x76,0x78,0x79,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x77,0x7f,0x89,0x90,0x94,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x96,
+0x96,0x94,0x92,0x90,0x8f,0x8e,0x8e,0x8e,0x92,0x92,0x93,0x94,0x95,0x96,0x97,0x98,
+0x99,0x9a,0x9b,0x9d,0x9e,0x9e,0x9d,0x9d,0x9d,0x9d,0x9c,0x9b,0x9a,0x9a,0x99,0x99,
+0x96,0x95,0x94,0x93,0x92,0x92,0x93,0x93,0x94,0x95,0x95,0x96,0x97,0x97,0x98,0x98,
+0x9a,0x9a,0x9b,0x9b,0x9a,0x99,0x97,0x97,0x95,0x90,0x87,0x7b,0x71,0x6e,0x72,0x76,
+0x74,0x73,0x71,0x70,0x71,0x75,0x79,0x7c,0x84,0x86,0x89,0x8b,0x8b,0x89,0x86,0x84,
+0x78,0x72,0x6c,0x6a,0x6d,0x70,0x72,0x72,0x73,0x73,0x72,0x71,0x71,0x70,0x6f,0x6f,
+0x6d,0x6e,0x70,0x72,0x73,0x72,0x72,0x71,0x73,0x73,0x72,0x71,0x70,0x70,0x70,0x70,
+0x70,0x76,0x7e,0x83,0x83,0x82,0x82,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x86,0x85,0x84,0x83,0x83,0x84,0x85,0x86,
+0x87,0x87,0x86,0x85,0x85,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,
+0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x7a,0x7b,0x7c,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x77,0x77,0x76,0x76,0x75,0x75,0x74,0x74,
+0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x78,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x74,0x77,0x7b,0x7f,0x83,0x85,0x86,0x86,0x83,0x84,0x84,0x84,0x82,0x7e,0x7b,0x79,
+0x7b,0x79,0x76,0x74,0x74,0x75,0x77,0x79,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x79,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x73,0x76,0x7d,0x87,0x8f,0x93,0x93,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,
+0x96,0x94,0x92,0x8f,0x8d,0x8c,0x8c,0x8c,0x8e,0x8e,0x8f,0x91,0x92,0x94,0x95,0x96,
+0x96,0x97,0x99,0x9a,0x9b,0x9b,0x9b,0x9b,0x9d,0x9d,0x9c,0x9c,0x9b,0x9b,0x9b,0x9a,
+0x96,0x95,0x94,0x93,0x92,0x92,0x93,0x93,0x95,0x95,0x96,0x96,0x96,0x96,0x97,0x97,
+0x9a,0x9a,0x9b,0x9b,0x9a,0x99,0x97,0x96,0x94,0x8f,0x86,0x7a,0x70,0x6e,0x72,0x76,
+0x75,0x74,0x71,0x70,0x72,0x76,0x7a,0x7d,0x84,0x86,0x89,0x8b,0x8b,0x89,0x86,0x84,
+0x77,0x72,0x6c,0x6a,0x6d,0x70,0x72,0x72,0x74,0x74,0x73,0x72,0x71,0x70,0x70,0x6f,
+0x6d,0x6e,0x70,0x72,0x73,0x73,0x72,0x71,0x74,0x73,0x72,0x71,0x70,0x70,0x70,0x70,
+0x70,0x77,0x7f,0x83,0x83,0x82,0x82,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x86,0x85,0x84,0x83,0x83,0x84,0x85,0x86,
+0x87,0x87,0x86,0x85,0x85,0x84,0x83,0x83,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x83,
+0x75,0x76,0x78,0x79,0x79,0x77,0x76,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x76,0x77,0x79,0x79,0x78,0x76,0x75,0x74,0x75,0x77,0x7a,0x7b,0x7c,0x7d,0x7d,
+0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x78,0x78,0x77,0x76,0x74,0x73,0x72,0x72,
+0x77,0x76,0x75,0x74,0x75,0x76,0x78,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x74,0x76,0x7a,0x7d,0x81,0x83,0x85,0x85,0x85,0x87,0x88,0x85,0x7f,0x7a,0x78,0x78,
+0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x77,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x79,
+0x79,0x78,0x78,0x78,0x77,0x76,0x76,0x76,0x75,0x75,0x76,0x77,0x77,0x77,0x76,0x75,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x79,0x79,0x78,0x77,0x76,
+0x75,0x75,0x76,0x77,0x77,0x76,0x75,0x75,0x74,0x76,0x78,0x7a,0x7d,0x85,0x90,0x98,
+0x95,0x95,0x94,0x94,0x95,0x95,0x96,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,
+0x94,0x93,0x93,0x91,0x8f,0x8d,0x8b,0x8a,0x8a,0x8c,0x8e,0x91,0x93,0x94,0x95,0x95,
+0x8f,0x90,0x91,0x92,0x94,0x96,0x97,0x97,0x9b,0x9b,0x9a,0x99,0x98,0x97,0x97,0x96,
+0x97,0x96,0x95,0x95,0x94,0x93,0x92,0x92,0x94,0x95,0x95,0x96,0x97,0x98,0x99,0x99,
+0x9d,0x99,0x96,0x96,0x98,0x99,0x97,0x94,0x93,0x89,0x7d,0x75,0x72,0x74,0x75,0x75,
+0x72,0x74,0x75,0x75,0x76,0x7a,0x81,0x87,0x89,0x88,0x87,0x89,0x8b,0x8b,0x86,0x82,
+0x74,0x73,0x71,0x6f,0x6e,0x6f,0x70,0x71,0x6f,0x70,0x70,0x70,0x70,0x71,0x71,0x71,
+0x70,0x70,0x70,0x70,0x70,0x6f,0x6e,0x6e,0x70,0x70,0x71,0x71,0x71,0x71,0x70,0x70,
+0x74,0x7a,0x80,0x83,0x82,0x81,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x83,
+0x84,0x85,0x85,0x85,0x85,0x83,0x82,0x81,0x84,0x84,0x84,0x85,0x86,0x86,0x86,0x87,
+0x75,0x76,0x77,0x78,0x78,0x77,0x75,0x74,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x74,0x75,0x77,0x78,0x78,0x77,0x76,0x75,0x75,0x77,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,
+0x77,0x76,0x75,0x74,0x75,0x76,0x78,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x75,0x77,0x7a,0x7e,0x81,0x84,0x85,0x85,0x85,0x87,0x88,0x85,0x7f,0x79,0x78,0x78,
+0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x77,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x78,
+0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x74,0x75,0x76,0x77,0x77,0x77,0x76,0x75,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x78,0x78,0x78,0x77,0x76,
+0x75,0x76,0x77,0x77,0x77,0x77,0x76,0x75,0x74,0x76,0x78,0x79,0x7c,0x84,0x8e,0x95,
+0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,
+0x93,0x93,0x92,0x92,0x91,0x90,0x8f,0x8e,0x8d,0x8e,0x90,0x92,0x93,0x94,0x94,0x93,
+0x8f,0x8f,0x90,0x90,0x91,0x92,0x92,0x93,0x93,0x93,0x92,0x92,0x91,0x90,0x90,0x90,
+0x94,0x94,0x94,0x94,0x93,0x93,0x92,0x92,0x94,0x94,0x95,0x96,0x97,0x98,0x99,0x99,
+0x9c,0x99,0x96,0x96,0x98,0x98,0x96,0x94,0x91,0x88,0x7c,0x75,0x73,0x74,0x75,0x75,
+0x73,0x75,0x76,0x76,0x76,0x7a,0x81,0x87,0x89,0x87,0x87,0x89,0x8c,0x8b,0x87,0x83,
+0x76,0x74,0x71,0x6f,0x6e,0x6e,0x6f,0x70,0x70,0x70,0x70,0x70,0x71,0x71,0x71,0x72,
+0x70,0x70,0x71,0x71,0x71,0x71,0x71,0x70,0x71,0x71,0x71,0x71,0x71,0x71,0x70,0x70,
+0x75,0x7a,0x80,0x83,0x82,0x81,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x83,
+0x84,0x85,0x85,0x85,0x85,0x83,0x82,0x81,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,
+0x76,0x76,0x77,0x77,0x76,0x76,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x76,0x76,0x77,0x77,0x76,0x76,0x78,0x79,0x7b,0x7c,0x7d,0x7e,0x7d,0x7d,
+0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x77,
+0x76,0x76,0x75,0x75,0x75,0x76,0x77,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x78,0x7b,0x7f,0x82,0x84,0x85,0x86,0x85,0x87,0x88,0x84,0x7e,0x79,0x78,0x78,
+0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x77,0x75,0x76,0x76,0x76,0x76,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x74,0x75,0x76,0x77,0x77,0x77,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x78,0x78,0x78,0x77,0x76,
+0x76,0x77,0x77,0x78,0x78,0x77,0x77,0x76,0x73,0x75,0x77,0x78,0x7a,0x81,0x8a,0x91,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,
+0x92,0x92,0x92,0x93,0x93,0x94,0x95,0x95,0x93,0x93,0x94,0x95,0x95,0x95,0x94,0x93,
+0x91,0x91,0x90,0x90,0x8f,0x8f,0x8e,0x8e,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,0x8a,0x8a,
+0x91,0x91,0x92,0x92,0x92,0x93,0x93,0x93,0x94,0x94,0x95,0x96,0x97,0x98,0x99,0x99,
+0x9b,0x98,0x96,0x96,0x98,0x98,0x95,0x92,0x8d,0x85,0x7b,0x75,0x73,0x74,0x75,0x75,
+0x75,0x77,0x78,0x77,0x77,0x7a,0x80,0x86,0x88,0x87,0x87,0x89,0x8c,0x8b,0x87,0x84,
+0x78,0x76,0x73,0x70,0x6e,0x6e,0x6f,0x6f,0x71,0x71,0x71,0x71,0x72,0x72,0x72,0x72,
+0x71,0x71,0x72,0x72,0x73,0x73,0x74,0x74,0x72,0x72,0x72,0x71,0x71,0x71,0x71,0x70,
+0x75,0x7a,0x80,0x83,0x83,0x81,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x84,0x85,0x85,0x85,0x85,0x83,0x82,0x81,0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,
+0x76,0x76,0x76,0x76,0x75,0x75,0x74,0x73,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x73,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x7b,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7d,
+0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x79,0x7c,0x80,0x83,0x85,0x86,0x86,0x86,0x87,0x87,0x83,0x7d,0x78,0x78,0x79,
+0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x77,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x74,0x75,0x76,0x78,0x78,0x78,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x79,0x79,0x78,0x77,0x77,
+0x77,0x77,0x78,0x79,0x79,0x78,0x77,0x77,0x73,0x75,0x77,0x77,0x79,0x7e,0x85,0x8c,
+0x94,0x94,0x94,0x95,0x94,0x94,0x93,0x92,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,
+0x91,0x91,0x92,0x93,0x95,0x97,0x99,0x9a,0x9b,0x9b,0x9c,0x9c,0x9b,0x9a,0x98,0x97,
+0x97,0x96,0x95,0x94,0x92,0x90,0x8f,0x8f,0x8c,0x8c,0x8c,0x8c,0x8b,0x8b,0x8a,0x8a,
+0x8f,0x8f,0x90,0x91,0x92,0x92,0x93,0x94,0x93,0x94,0x95,0x96,0x97,0x98,0x98,0x99,
+0x9a,0x98,0x95,0x96,0x97,0x97,0x93,0x90,0x89,0x82,0x7a,0x75,0x74,0x75,0x75,0x75,
+0x77,0x79,0x79,0x78,0x77,0x7a,0x80,0x86,0x88,0x87,0x87,0x89,0x8c,0x8b,0x87,0x84,
+0x79,0x77,0x74,0x71,0x6f,0x6e,0x6e,0x6f,0x71,0x72,0x72,0x72,0x73,0x73,0x73,0x73,
+0x73,0x73,0x73,0x73,0x74,0x76,0x77,0x78,0x74,0x73,0x72,0x71,0x71,0x71,0x71,0x71,
+0x75,0x7a,0x81,0x84,0x83,0x82,0x82,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x85,0x86,0x86,0x85,0x84,0x84,
+0x84,0x85,0x85,0x85,0x85,0x83,0x82,0x81,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x78,0x78,0x77,0x76,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x74,0x74,0x74,0x75,0x76,0x77,0x78,0x78,0x7d,0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x78,0x78,0x77,0x77,0x76,0x76,0x75,0x75,
+0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x79,0x7b,0x7e,0x81,0x84,0x85,0x86,0x87,0x86,0x87,0x86,0x82,0x7c,0x78,0x78,0x79,
+0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x75,0x76,0x77,0x79,0x7a,0x7a,0x79,0x79,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x78,
+0x78,0x79,0x79,0x7a,0x7a,0x79,0x79,0x78,0x74,0x76,0x77,0x77,0x77,0x7b,0x81,0x87,
+0x91,0x92,0x93,0x94,0x95,0x94,0x93,0x92,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,
+0x91,0x91,0x91,0x93,0x95,0x98,0x9b,0x9d,0xa2,0xa2,0xa3,0xa3,0xa2,0xa1,0x9f,0x9e,
+0x9e,0x9d,0x9c,0x9a,0x98,0x97,0x95,0x95,0x94,0x94,0x93,0x93,0x92,0x91,0x90,0x90,
+0x8e,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,0x93,0x93,0x94,0x95,0x96,0x97,0x98,0x98,
+0x99,0x97,0x95,0x96,0x97,0x96,0x91,0x8d,0x84,0x7f,0x78,0x75,0x75,0x76,0x76,0x75,
+0x78,0x7a,0x7a,0x79,0x78,0x7b,0x81,0x87,0x89,0x88,0x87,0x89,0x8c,0x8b,0x86,0x82,
+0x7a,0x78,0x75,0x71,0x6f,0x6f,0x6f,0x70,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,
+0x75,0x74,0x74,0x74,0x75,0x77,0x79,0x7a,0x76,0x75,0x73,0x71,0x71,0x71,0x71,0x72,
+0x75,0x7b,0x81,0x84,0x83,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x85,0x86,0x86,0x86,0x86,0x85,0x84,
+0x84,0x85,0x85,0x85,0x85,0x83,0x82,0x81,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x7a,0x79,0x78,0x76,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x75,0x75,0x75,0x76,0x78,0x79,0x7a,0x7f,0x7f,0x80,0x7f,0x7e,0x7d,0x7b,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,
+0x77,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7b,0x7c,0x7f,0x82,0x84,0x86,0x87,0x87,0x87,0x87,0x86,0x81,0x7b,0x77,0x77,0x79,
+0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x76,
+0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x76,0x77,0x79,0x7b,0x7c,0x7c,0x7c,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,
+0x79,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x79,0x76,0x77,0x79,0x78,0x77,0x79,0x7e,0x83,
+0x8e,0x8f,0x92,0x94,0x95,0x95,0x94,0x93,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,
+0x91,0x91,0x91,0x91,0x93,0x96,0x99,0x9b,0xa3,0xa4,0xa5,0xa6,0xa6,0xa5,0xa4,0xa4,
+0xa2,0xa2,0xa1,0xa0,0x9f,0x9d,0x9d,0x9c,0x9d,0x9c,0x9b,0x99,0x97,0x96,0x95,0x94,
+0x8f,0x8f,0x90,0x91,0x92,0x93,0x93,0x94,0x93,0x93,0x94,0x95,0x96,0x97,0x98,0x98,
+0x98,0x96,0x95,0x95,0x96,0x95,0x90,0x8b,0x80,0x7b,0x76,0x74,0x76,0x77,0x76,0x74,
+0x78,0x7a,0x7b,0x7a,0x7a,0x7d,0x83,0x89,0x8b,0x8a,0x89,0x8a,0x8b,0x8a,0x85,0x80,
+0x7a,0x78,0x75,0x72,0x70,0x70,0x71,0x71,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,
+0x77,0x76,0x75,0x74,0x75,0x77,0x79,0x7a,0x78,0x76,0x74,0x72,0x71,0x71,0x72,0x73,
+0x76,0x7b,0x81,0x84,0x84,0x82,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x85,0x86,0x87,0x87,0x86,0x85,0x84,
+0x84,0x85,0x85,0x85,0x85,0x83,0x82,0x81,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,
+0x7c,0x7b,0x79,0x77,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x77,0x79,0x7b,0x7c,0x80,0x80,0x80,0x7f,0x7e,0x7c,0x7a,0x78,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x79,0x7b,0x7c,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7c,0x7d,0x80,0x83,0x85,0x87,0x87,0x87,0x87,0x87,0x85,0x80,0x7a,0x77,0x77,0x7a,
+0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x77,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,
+0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x78,0x79,0x7b,0x7c,0x7e,0x7e,0x7e,0x7e,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,
+0x7a,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x7a,0x77,0x79,0x7a,0x79,0x77,0x78,0x7c,0x80,
+0x8a,0x8d,0x90,0x94,0x96,0x96,0x95,0x94,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,
+0x93,0x91,0x90,0x8f,0x90,0x93,0x96,0x98,0x9f,0xa1,0xa2,0xa4,0xa6,0xa6,0xa6,0xa6,
+0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa1,0xa1,0xa0,0x9f,0x9d,0x9a,0x98,0x95,0x94,0x93,
+0x91,0x91,0x91,0x92,0x92,0x93,0x93,0x93,0x93,0x93,0x94,0x95,0x96,0x97,0x97,0x98,
+0x97,0x95,0x94,0x95,0x96,0x94,0x8e,0x8a,0x7d,0x79,0x75,0x74,0x76,0x78,0x76,0x74,
+0x77,0x79,0x7a,0x7a,0x7b,0x7e,0x85,0x8b,0x8e,0x8c,0x8a,0x8a,0x8b,0x88,0x83,0x7e,
+0x79,0x77,0x74,0x72,0x71,0x71,0x72,0x73,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,
+0x79,0x78,0x75,0x74,0x74,0x76,0x78,0x79,0x79,0x77,0x74,0x72,0x70,0x71,0x72,0x73,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x87,0x87,0x86,0x85,0x85,
+0x84,0x85,0x85,0x85,0x85,0x83,0x82,0x81,0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x82,
+0x7e,0x7c,0x7a,0x77,0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x77,0x77,0x76,0x76,0x77,0x7a,0x7c,0x7e,0x80,0x80,0x80,0x7f,0x7d,0x7b,0x79,0x77,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x79,0x7a,0x7c,0x7d,0x7e,0x7d,0x7c,0x7b,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7d,0x7e,0x81,0x83,0x85,0x87,0x87,0x88,0x87,0x87,0x85,0x80,0x7a,0x76,0x77,0x7a,
+0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x77,0x7b,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x78,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x79,0x7a,0x7c,0x7e,0x7f,0x7f,0x7f,0x7f,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,
+0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x78,0x7a,0x7b,0x79,0x77,0x78,0x7b,0x7f,
+0x88,0x8b,0x8f,0x93,0x96,0x96,0x96,0x95,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,
+0x93,0x92,0x90,0x8e,0x8f,0x91,0x93,0x95,0x9b,0x9d,0x9f,0xa2,0xa4,0xa5,0xa6,0xa6,
+0xa1,0xa1,0xa1,0xa2,0xa2,0xa3,0xa3,0xa3,0x9f,0x9e,0x9c,0x99,0x96,0x93,0x90,0x8f,
+0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x92,0x93,0x94,0x94,0x96,0x96,0x97,0x98,
+0x97,0x95,0x94,0x95,0x96,0x93,0x8e,0x89,0x7b,0x77,0x74,0x74,0x77,0x78,0x76,0x74,
+0x77,0x79,0x7a,0x7a,0x7b,0x7f,0x87,0x8c,0x8f,0x8d,0x8b,0x8a,0x8a,0x87,0x81,0x7c,
+0x78,0x76,0x74,0x72,0x71,0x72,0x74,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,
+0x7a,0x78,0x76,0x74,0x73,0x75,0x77,0x78,0x7a,0x78,0x75,0x72,0x70,0x71,0x73,0x74,
+0x76,0x7b,0x82,0x85,0x84,0x83,0x83,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x87,0x87,0x86,0x85,0x85,
+0x84,0x85,0x85,0x85,0x85,0x83,0x82,0x81,0x85,0x85,0x84,0x84,0x83,0x83,0x82,0x82,
+0x7d,0x7e,0x7f,0x7f,0x7d,0x7a,0x77,0x75,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x77,0x77,0x77,0x78,0x7a,0x7c,0x7d,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,
+0x7a,0x7b,0x7d,0x7f,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x7e,0x7f,0x81,0x82,0x84,0x85,0x86,0x87,0x88,0x85,0x81,0x7c,0x79,0x77,0x76,0x76,
+0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x78,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7a,
+0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x7a,0x7b,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x79,0x7b,0x7e,0x80,0x80,0x7e,0x7b,0x79,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7e,0x7f,
+0x7b,0x80,0x88,0x90,0x95,0x96,0x95,0x93,0x94,0x94,0x95,0x96,0x95,0x95,0x94,0x93,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x95,0x97,0x9b,0x9e,0xa1,0xa3,0xa3,0xa3,
+0xa2,0xa3,0xa3,0xa4,0xa3,0xa1,0x9f,0x9d,0x9c,0x9b,0x98,0x94,0x91,0x8f,0x8e,0x8e,
+0x8f,0x8f,0x90,0x90,0x91,0x92,0x92,0x92,0x95,0x95,0x94,0x94,0x94,0x94,0x95,0x95,
+0x90,0x94,0x98,0x99,0x95,0x8b,0x80,0x79,0x76,0x76,0x77,0x77,0x77,0x77,0x76,0x76,
+0x77,0x76,0x76,0x77,0x7b,0x80,0x86,0x89,0x87,0x89,0x8a,0x8a,0x88,0x84,0x80,0x7e,
+0x75,0x77,0x7a,0x79,0x75,0x73,0x74,0x75,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,
+0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x77,0x76,0x75,0x74,0x73,0x73,0x74,0x74,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x87,0x87,0x86,0x86,0x85,
+0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x83,0x86,0x88,0x88,0x85,0x82,0x80,0x83,0x85,
+0x7c,0x7d,0x7e,0x7e,0x7d,0x7b,0x78,0x76,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x77,0x77,0x77,0x78,0x7a,0x7c,0x7d,0x79,0x7a,0x7a,0x7c,0x7d,0x7e,0x7f,0x7f,
+0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x79,0x7a,0x7c,0x7e,0x7e,0x7e,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,
+0x7e,0x7f,0x81,0x83,0x85,0x86,0x87,0x87,0x88,0x85,0x81,0x7d,0x79,0x77,0x77,0x77,
+0x79,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7b,
+0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,
+0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x77,0x79,0x7b,0x7d,0x7d,0x7c,0x79,0x77,0x79,0x78,0x77,0x76,0x76,0x77,0x78,0x79,
+0x78,0x7c,0x84,0x8c,0x92,0x94,0x94,0x94,0x94,0x94,0x95,0x96,0x96,0x95,0x94,0x93,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x94,0x95,0x99,0x9c,0x9e,0xa0,0xa0,0xa0,
+0x9f,0xa0,0xa1,0xa1,0xa0,0x9e,0x9c,0x9b,0x99,0x98,0x95,0x93,0x90,0x8f,0x8e,0x8e,
+0x8f,0x8f,0x90,0x90,0x91,0x92,0x92,0x92,0x95,0x94,0x94,0x94,0x95,0x95,0x96,0x96,
+0x94,0x95,0x97,0x95,0x90,0x88,0x7f,0x7a,0x76,0x76,0x77,0x77,0x77,0x77,0x76,0x76,
+0x77,0x76,0x76,0x77,0x7b,0x81,0x86,0x89,0x88,0x89,0x8a,0x8a,0x88,0x84,0x80,0x7d,
+0x75,0x77,0x7a,0x79,0x75,0x73,0x74,0x75,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x78,0x77,0x76,0x74,0x73,0x73,0x73,0x73,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x87,0x87,0x86,0x85,0x85,
+0x88,0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x86,0x87,0x88,0x85,0x82,0x80,0x83,0x86,
+0x7a,0x7b,0x7d,0x7e,0x7e,0x7c,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x77,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x78,0x79,0x7a,0x7c,0x7d,0x7f,0x80,0x81,
+0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7e,0x80,0x82,0x84,0x86,0x87,0x87,0x87,0x88,0x85,0x81,0x7d,0x7a,0x79,0x78,0x78,
+0x78,0x78,0x77,0x77,0x78,0x79,0x7b,0x7c,0x7d,0x7c,0x7b,0x7a,0x79,0x7a,0x7a,0x7b,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,0x77,0x78,0x79,0x7a,0x7b,0x7a,0x79,0x79,
+0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x76,0x78,0x79,0x7b,0x7b,0x7a,0x78,0x77,0x78,0x77,0x77,0x76,0x76,0x77,0x78,0x78,
+0x7a,0x7e,0x84,0x8b,0x90,0x93,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x95,0x93,0x93,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x93,0x95,0x98,0x9a,0x9b,0x9b,0x9c,
+0x9b,0x9b,0x9c,0x9c,0x9b,0x9a,0x99,0x98,0x95,0x94,0x92,0x90,0x8f,0x8e,0x8e,0x8e,
+0x8f,0x90,0x90,0x91,0x91,0x92,0x92,0x93,0x94,0x94,0x95,0x95,0x96,0x96,0x97,0x97,
+0x97,0x96,0x93,0x8f,0x89,0x83,0x7e,0x7b,0x77,0x77,0x77,0x76,0x76,0x77,0x77,0x77,
+0x77,0x76,0x76,0x78,0x7b,0x81,0x87,0x8a,0x88,0x89,0x8a,0x8a,0x88,0x83,0x7f,0x7c,
+0x75,0x77,0x7a,0x79,0x75,0x73,0x74,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x7a,0x79,0x77,0x75,0x73,0x72,0x72,0x72,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x87,0x87,0x86,0x85,0x84,
+0x87,0x87,0x86,0x85,0x84,0x83,0x83,0x82,0x85,0x87,0x87,0x85,0x81,0x80,0x83,0x86,
+0x79,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x78,0x79,0x7a,0x7c,0x7e,0x7f,0x81,0x81,
+0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x77,
+0x77,0x77,0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x81,0x81,0x80,0x7f,0x7e,0x7c,0x7a,0x79,
+0x7e,0x80,0x83,0x85,0x87,0x88,0x87,0x87,0x87,0x85,0x81,0x7d,0x7b,0x79,0x79,0x7a,
+0x78,0x78,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x7a,0x7b,0x7b,
+0x7a,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x7a,0x76,0x77,0x78,0x79,0x79,0x78,0x77,0x77,
+0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x78,0x78,0x77,0x77,0x77,0x77,0x78,0x78,
+0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7d,0x7f,0x81,0x84,0x86,0x87,
+0x8a,0x8b,0x8e,0x91,0x93,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x95,0x93,0x92,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x91,0x92,0x93,0x95,0x96,0x96,0x97,
+0x97,0x97,0x97,0x97,0x96,0x95,0x95,0x94,0x91,0x90,0x8f,0x8e,0x8d,0x8d,0x8e,0x8f,
+0x90,0x90,0x90,0x91,0x92,0x92,0x93,0x93,0x93,0x94,0x95,0x96,0x97,0x97,0x96,0x96,
+0x98,0x94,0x8e,0x87,0x82,0x7e,0x7c,0x7b,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x77,
+0x77,0x76,0x76,0x78,0x7c,0x82,0x87,0x8b,0x89,0x8a,0x8b,0x8a,0x87,0x82,0x7e,0x7b,
+0x75,0x77,0x7a,0x79,0x75,0x73,0x74,0x75,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,
+0x75,0x75,0x76,0x77,0x78,0x79,0x7a,0x7a,0x7c,0x7a,0x78,0x75,0x73,0x72,0x71,0x71,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x87,0x87,0x86,0x85,0x84,
+0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x82,0x84,0x86,0x87,0x84,0x81,0x80,0x83,0x86,
+0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7c,0x7b,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x79,0x7a,0x7b,0x7c,0x7e,0x7f,0x81,0x81,
+0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7c,0x7b,0x7a,0x78,0x77,0x77,
+0x77,0x77,0x77,0x77,0x78,0x79,0x7a,0x7a,0x80,0x80,0x81,0x81,0x7f,0x7d,0x7b,0x7a,
+0x7d,0x7f,0x83,0x86,0x88,0x88,0x87,0x86,0x86,0x83,0x80,0x7d,0x7a,0x7a,0x7a,0x7b,
+0x79,0x78,0x78,0x78,0x79,0x7b,0x7d,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x76,0x77,0x78,0x78,0x78,0x78,0x77,0x76,
+0x76,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x79,0x78,0x76,0x75,0x75,0x76,0x78,0x79,
+0x7b,0x7b,0x7c,0x7d,0x7e,0x80,0x81,0x82,0x83,0x85,0x89,0x8e,0x94,0x98,0x9c,0x9e,
+0x9f,0x9d,0x9b,0x99,0x97,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x96,0x95,0x93,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x90,0x90,0x90,0x90,0x91,0x92,0x93,0x93,
+0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x90,0x8f,0x8e,0x8d,0x8d,0x8e,0x8f,0x8f,
+0x90,0x90,0x91,0x91,0x92,0x93,0x93,0x93,0x93,0x94,0x95,0x96,0x96,0x96,0x94,0x94,
+0x93,0x8f,0x87,0x80,0x7c,0x7a,0x7a,0x7b,0x78,0x77,0x76,0x75,0x75,0x76,0x77,0x78,
+0x76,0x76,0x76,0x78,0x7c,0x82,0x88,0x8c,0x8a,0x8a,0x8b,0x8a,0x87,0x81,0x7c,0x79,
+0x75,0x77,0x7a,0x79,0x75,0x73,0x74,0x75,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x78,
+0x75,0x75,0x76,0x77,0x78,0x79,0x7a,0x7a,0x7c,0x7a,0x78,0x75,0x73,0x72,0x72,0x71,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x85,0x84,0x83,
+0x87,0x86,0x86,0x85,0x84,0x83,0x82,0x82,0x83,0x85,0x86,0x84,0x81,0x80,0x83,0x86,
+0x79,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x78,0x79,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x80,
+0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7f,0x7e,0x7d,0x7b,0x7a,0x78,0x77,0x76,
+0x77,0x77,0x76,0x76,0x77,0x78,0x7a,0x7b,0x7e,0x7f,0x80,0x81,0x80,0x7e,0x7c,0x7a,
+0x7b,0x7e,0x82,0x86,0x87,0x87,0x85,0x84,0x84,0x82,0x7e,0x7b,0x7a,0x79,0x7a,0x7b,
+0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7d,0x7d,0x7d,0x7d,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x78,0x79,0x79,0x7a,0x79,0x78,0x77,0x76,
+0x76,0x76,0x77,0x78,0x79,0x7a,0x7a,0x7b,0x79,0x78,0x76,0x75,0x75,0x76,0x78,0x79,
+0x7b,0x7b,0x7b,0x7c,0x7f,0x83,0x86,0x89,0x8f,0x92,0x97,0x9d,0xa3,0xa8,0xab,0xad,
+0xaa,0xa6,0xa1,0x9c,0x98,0x96,0x96,0x97,0x97,0x97,0x98,0x97,0x96,0x95,0x93,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x91,0x90,0x8f,0x8f,0x8f,0x8f,0x90,0x91,
+0x92,0x91,0x90,0x90,0x90,0x90,0x91,0x92,0x91,0x90,0x8f,0x8e,0x8e,0x8f,0x90,0x90,
+0x90,0x90,0x91,0x92,0x92,0x93,0x93,0x94,0x93,0x94,0x95,0x96,0x95,0x93,0x91,0x90,
+0x8a,0x86,0x80,0x7b,0x78,0x78,0x79,0x7b,0x79,0x78,0x76,0x74,0x74,0x76,0x78,0x79,
+0x76,0x76,0x76,0x78,0x7d,0x83,0x89,0x8d,0x8a,0x8b,0x8b,0x8a,0x86,0x81,0x7b,0x78,
+0x75,0x77,0x7a,0x79,0x75,0x73,0x74,0x75,0x74,0x75,0x75,0x76,0x76,0x77,0x77,0x78,
+0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x7b,0x7a,0x78,0x76,0x74,0x73,0x73,0x73,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x83,
+0x86,0x86,0x85,0x84,0x83,0x82,0x82,0x81,0x82,0x84,0x85,0x83,0x81,0x80,0x83,0x86,
+0x7a,0x7b,0x7d,0x7e,0x7e,0x7c,0x7a,0x79,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x78,0x7a,0x7b,0x7d,0x7d,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,
+0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x7d,0x7b,0x79,0x78,0x76,0x76,
+0x78,0x77,0x76,0x76,0x77,0x78,0x7a,0x7b,0x7b,0x7d,0x7f,0x80,0x81,0x7f,0x7d,0x7b,
+0x7a,0x7d,0x81,0x85,0x87,0x86,0x84,0x82,0x82,0x80,0x7d,0x7a,0x79,0x79,0x7a,0x7a,
+0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7c,0x7e,0x7d,0x7c,0x7b,0x7a,0x7b,0x7b,0x7c,
+0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x78,0x78,
+0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7a,0x79,0x76,0x75,0x75,0x76,0x79,0x7a,
+0x77,0x77,0x77,0x79,0x7d,0x83,0x88,0x8b,0x9c,0x9e,0xa2,0xa6,0xaa,0xad,0xae,0xae,
+0xa5,0xa2,0x9c,0x96,0x93,0x93,0x95,0x97,0x98,0x98,0x98,0x98,0x97,0x95,0x93,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x91,0x90,0x8e,0x8e,0x8e,0x8f,0x90,
+0x91,0x90,0x8f,0x8e,0x8f,0x90,0x91,0x92,0x93,0x92,0x91,0x90,0x90,0x90,0x91,0x91,
+0x90,0x91,0x91,0x92,0x93,0x93,0x94,0x94,0x93,0x94,0x95,0x96,0x94,0x91,0x8d,0x8b,
+0x80,0x7e,0x7a,0x77,0x76,0x77,0x78,0x7a,0x79,0x78,0x75,0x74,0x74,0x75,0x78,0x79,
+0x76,0x76,0x76,0x78,0x7d,0x83,0x89,0x8d,0x8b,0x8c,0x8b,0x8a,0x86,0x80,0x7a,0x77,
+0x75,0x77,0x7a,0x79,0x75,0x73,0x74,0x75,0x73,0x73,0x74,0x74,0x75,0x76,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x7a,0x79,0x77,0x75,0x74,0x74,0x74,0x75,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x86,0x85,0x83,0x82,
+0x86,0x86,0x85,0x84,0x83,0x82,0x81,0x81,0x82,0x84,0x85,0x83,0x81,0x80,0x83,0x87,
+0x7b,0x7c,0x7d,0x7e,0x7e,0x7c,0x7a,0x78,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x78,0x7a,0x7c,0x7d,0x7d,0x7c,0x7b,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
+0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7f,0x7f,0x7d,0x7b,0x79,0x78,0x76,0x75,
+0x78,0x78,0x77,0x76,0x77,0x78,0x7b,0x7c,0x79,0x7b,0x7e,0x80,0x81,0x80,0x7e,0x7c,
+0x79,0x7c,0x80,0x84,0x86,0x85,0x83,0x81,0x80,0x7e,0x7c,0x79,0x78,0x78,0x79,0x7a,
+0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7b,0x7b,0x7c,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7c,0x7b,0x79,0x79,
+0x76,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x79,0x77,0x75,0x75,0x77,0x79,0x7b,
+0x74,0x73,0x74,0x76,0x7b,0x81,0x88,0x8b,0xa4,0xa5,0xa8,0xaa,0xab,0xab,0xaa,0xa9,
+0x9d,0x99,0x94,0x8f,0x8e,0x90,0x94,0x97,0x98,0x98,0x98,0x98,0x97,0x95,0x93,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x92,0x90,0x8e,0x8e,0x8e,0x8f,0x90,
+0x91,0x90,0x8f,0x8e,0x8e,0x90,0x91,0x92,0x95,0x94,0x93,0x91,0x91,0x91,0x91,0x92,
+0x91,0x91,0x91,0x92,0x93,0x93,0x94,0x94,0x94,0x95,0x95,0x95,0x93,0x8f,0x8b,0x89,
+0x79,0x78,0x77,0x76,0x75,0x76,0x78,0x79,0x7a,0x78,0x75,0x74,0x74,0x75,0x78,0x7a,
+0x76,0x76,0x76,0x79,0x7d,0x84,0x8a,0x8e,0x8b,0x8c,0x8c,0x8a,0x85,0x7f,0x7a,0x76,
+0x75,0x77,0x7a,0x79,0x75,0x73,0x74,0x75,0x72,0x72,0x73,0x74,0x74,0x75,0x76,0x76,
+0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x79,0x78,0x77,0x75,0x75,0x75,0x75,0x76,
+0x76,0x7b,0x82,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x86,0x85,0x83,0x82,
+0x86,0x86,0x85,0x84,0x83,0x82,0x81,0x81,0x81,0x83,0x84,0x83,0x80,0x80,0x83,0x87,
+0x7d,0x7c,0x7a,0x79,0x78,0x79,0x7a,0x7b,0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x78,
+0x76,0x76,0x77,0x78,0x78,0x79,0x79,0x7a,0x77,0x78,0x7a,0x7c,0x7d,0x7d,0x7c,0x7c,
+0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x80,0x7e,0x7c,0x7b,0x79,0x78,0x77,0x78,0x78,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,
+0x79,0x7b,0x7f,0x83,0x85,0x84,0x83,0x82,0x7e,0x7d,0x7b,0x79,0x78,0x78,0x79,0x7a,
+0x7e,0x7d,0x7b,0x79,0x78,0x77,0x77,0x78,0x7a,0x7b,0x7c,0x7c,0x7d,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,
+0x7d,0x7c,0x7b,0x7a,0x78,0x76,0x75,0x75,0x78,0x77,0x77,0x77,0x76,0x76,0x75,0x75,
+0x6e,0x71,0x75,0x78,0x7d,0x85,0x90,0x97,0xa4,0xa6,0xaa,0xad,0xac,0xa9,0xa4,0xa1,
+0x93,0x93,0x94,0x94,0x95,0x96,0x97,0x97,0x96,0x97,0x97,0x97,0x98,0x98,0x98,0x98,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x91,0x90,0x90,0x90,0x90,0x8f,0x8f,0x8f,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x91,0x90,0x90,0x8f,0x8f,
+0x94,0x92,0x90,0x91,0x94,0x96,0x94,0x91,0x93,0x91,0x8e,0x8c,0x8a,0x85,0x7c,0x76,
+0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,
+0x74,0x75,0x77,0x7b,0x7f,0x84,0x87,0x89,0x8c,0x8b,0x88,0x84,0x7f,0x7a,0x75,0x73,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x73,0x73,0x74,0x75,0x75,0x75,0x75,0x75,
+0x78,0x76,0x74,0x72,0x72,0x73,0x75,0x76,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x77,
+0x7d,0x7e,0x80,0x82,0x83,0x83,0x82,0x81,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x83,
+0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x85,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x83,
+0x7d,0x7c,0x7a,0x79,0x78,0x79,0x7a,0x7a,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x76,0x78,0x7a,0x7c,0x7d,0x7d,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x78,0x78,
+0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,
+0x7a,0x7c,0x7f,0x82,0x83,0x82,0x81,0x80,0x7d,0x7c,0x7a,0x78,0x78,0x78,0x78,0x79,
+0x7d,0x7c,0x7a,0x79,0x78,0x78,0x79,0x79,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7c,0x7b,0x79,0x78,0x76,0x75,0x75,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,
+0x74,0x76,0x79,0x7b,0x80,0x8a,0x96,0x9f,0xa5,0xa8,0xac,0xaf,0xae,0xab,0xa7,0xa4,
+0x99,0x98,0x96,0x95,0x94,0x95,0x96,0x97,0x96,0x96,0x97,0x97,0x97,0x98,0x98,0x98,
+0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x90,0x8f,0x8f,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x91,0x91,0x91,0x91,0x90,0x90,0x90,
+0x94,0x92,0x90,0x92,0x96,0x97,0x96,0x93,0x91,0x8d,0x88,0x85,0x82,0x7f,0x79,0x74,
+0x76,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x73,
+0x73,0x75,0x77,0x7c,0x80,0x85,0x88,0x8a,0x8c,0x8b,0x88,0x85,0x80,0x7b,0x77,0x75,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x73,
+0x74,0x73,0x72,0x71,0x72,0x74,0x76,0x77,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,
+0x7f,0x80,0x82,0x83,0x84,0x83,0x82,0x81,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x87,0x87,0x87,0x86,0x84,0x84,
+0x84,0x84,0x83,0x82,0x83,0x83,0x85,0x85,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x83,
+0x7b,0x7b,0x7a,0x79,0x78,0x79,0x79,0x7a,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x75,0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x77,0x78,0x79,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x79,0x78,0x78,0x78,0x78,0x79,
+0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,
+0x7b,0x7c,0x7e,0x80,0x80,0x7f,0x7e,0x7d,0x7b,0x7b,0x79,0x78,0x77,0x77,0x78,0x78,
+0x7b,0x7a,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,
+0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7c,0x7b,0x7a,0x79,0x78,0x76,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x7b,0x7c,0x7d,0x7e,0x84,0x8f,0x9d,0xa8,0xa7,0xaa,0xae,0xb1,0xb1,0xaf,0xac,0xa9,
+0xa2,0x9f,0x9a,0x96,0x94,0x94,0x95,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,
+0x95,0x95,0x94,0x93,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x90,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x91,0x91,0x91,0x91,0x92,0x92,
+0x94,0x92,0x91,0x93,0x98,0x9a,0x99,0x97,0x90,0x8a,0x81,0x7b,0x79,0x77,0x75,0x73,
+0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x76,0x76,0x75,0x74,0x73,0x72,0x72,0x71,
+0x72,0x74,0x78,0x7d,0x82,0x87,0x8a,0x8c,0x8b,0x8a,0x88,0x86,0x82,0x7d,0x7a,0x78,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x75,0x75,0x74,0x73,0x72,0x72,0x71,
+0x71,0x71,0x72,0x73,0x75,0x77,0x7a,0x7b,0x7b,0x7c,0x7e,0x7f,0x80,0x80,0x80,0x80,
+0x83,0x83,0x84,0x84,0x84,0x83,0x82,0x81,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x86,0x87,0x87,0x87,0x86,0x85,
+0x84,0x84,0x83,0x83,0x83,0x84,0x85,0x86,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x83,
+0x79,0x79,0x79,0x79,0x78,0x79,0x79,0x79,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,
+0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7a,0x79,0x78,0x78,0x79,0x79,0x7a,
+0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7c,0x7d,
+0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,0x7b,0x79,0x7a,0x7a,0x79,0x78,0x78,0x78,0x78,0x78,
+0x79,0x79,0x78,0x78,0x79,0x7a,0x7c,0x7c,0x7e,0x7e,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,
+0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7b,0x7a,0x7a,0x79,0x77,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,
+0x7f,0x7f,0x7e,0x7e,0x83,0x8f,0x9e,0xa9,0xa8,0xab,0xaf,0xb2,0xb3,0xb2,0xb0,0xae,
+0xab,0xa7,0xa1,0x9a,0x96,0x94,0x95,0x96,0x96,0x96,0x96,0x96,0x97,0x97,0x97,0x98,
+0x97,0x97,0x96,0x94,0x93,0x92,0x91,0x90,0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x91,0x92,0x92,0x93,0x93,
+0x93,0x92,0x92,0x95,0x9a,0x9e,0x9e,0x9c,0x95,0x8b,0x7f,0x76,0x73,0x74,0x75,0x75,
+0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x79,0x76,0x75,0x75,0x74,0x72,0x71,0x70,0x70,
+0x72,0x75,0x79,0x7f,0x84,0x88,0x8c,0x8d,0x8a,0x8a,0x88,0x86,0x83,0x7f,0x7c,0x7a,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x77,0x77,0x75,0x74,0x73,0x72,0x72,0x72,
+0x74,0x75,0x77,0x7b,0x7e,0x80,0x82,0x83,0x84,0x85,0x88,0x8b,0x8c,0x8d,0x8c,0x8c,
+0x87,0x86,0x86,0x85,0x84,0x83,0x82,0x82,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x83,0x84,0x85,0x86,0x87,0x87,0x87,0x86,
+0x84,0x83,0x83,0x83,0x83,0x85,0x86,0x87,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x83,
+0x78,0x78,0x78,0x78,0x79,0x78,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,
+0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7c,
+0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,
+0x7d,0x7d,0x7d,0x7c,0x7c,0x7a,0x79,0x78,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,
+0x79,0x78,0x78,0x78,0x79,0x7a,0x7c,0x7d,0x7f,0x7e,0x7d,0x7c,0x7d,0x7e,0x7f,0x80,
+0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x7a,0x7a,0x79,0x78,0x77,0x76,0x76,0x75,0x75,0x75,0x76,0x77,0x78,0x79,0x79,0x7a,
+0x7f,0x7e,0x7d,0x7d,0x80,0x8a,0x98,0xa2,0xa7,0xa9,0xad,0xb1,0xb3,0xb4,0xb3,0xb2,
+0xb2,0xae,0xa8,0xa1,0x9b,0x98,0x97,0x96,0x95,0x96,0x96,0x96,0x96,0x97,0x97,0x97,
+0x98,0x97,0x96,0x95,0x94,0x92,0x91,0x91,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x91,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x90,0x90,0x91,0x91,0x92,0x93,0x93,0x93,
+0x93,0x92,0x93,0x97,0x9d,0xa2,0xa3,0xa1,0x9d,0x91,0x82,0x78,0x74,0x75,0x78,0x79,
+0x75,0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x75,0x75,0x74,0x73,0x72,0x72,0x71,0x71,
+0x74,0x76,0x7b,0x81,0x86,0x8a,0x8c,0x8d,0x8a,0x8a,0x88,0x86,0x83,0x80,0x7d,0x7b,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x79,0x77,0x76,0x75,0x74,0x75,0x76,0x76,
+0x7c,0x7e,0x82,0x86,0x89,0x8b,0x8c,0x8c,0x90,0x92,0x95,0x98,0x99,0x99,0x98,0x97,
+0x89,0x88,0x87,0x85,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x83,0x84,0x85,0x86,0x87,0x87,0x87,0x86,
+0x84,0x83,0x83,0x83,0x84,0x85,0x87,0x88,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x83,
+0x76,0x76,0x77,0x78,0x79,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7f,0x80,
+0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7e,0x7f,
+0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7c,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x79,
+0x79,0x79,0x78,0x78,0x79,0x7a,0x7c,0x7c,0x7f,0x7e,0x7c,0x7b,0x7b,0x7d,0x7f,0x80,
+0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7c,
+0x7d,0x7e,0x7d,0x7c,0x7e,0x84,0x8e,0x96,0xa4,0xa6,0xaa,0xaf,0xb2,0xb3,0xb3,0xb3,
+0xb4,0xb2,0xaf,0xaa,0xa4,0x9e,0x9a,0x97,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,
+0x97,0x97,0x96,0x95,0x94,0x94,0x93,0x92,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x91,0x91,0x92,0x92,0x92,0x92,0x93,0x93,
+0x93,0x92,0x93,0x99,0xa0,0xa6,0xa7,0xa6,0xa4,0x99,0x89,0x7d,0x78,0x78,0x79,0x7a,
+0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x77,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,
+0x76,0x79,0x7e,0x83,0x88,0x8a,0x8c,0x8c,0x8a,0x8a,0x88,0x86,0x83,0x7f,0x7c,0x7a,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x79,0x78,0x77,0x77,0x78,0x7a,0x7c,0x7e,
+0x86,0x88,0x8d,0x91,0x94,0x94,0x94,0x93,0x98,0x9a,0x9d,0x9f,0x9f,0x9e,0x9b,0x99,
+0x89,0x88,0x86,0x85,0x84,0x83,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x84,0x84,0x86,0x87,0x87,0x87,0x86,0x85,
+0x83,0x83,0x83,0x83,0x84,0x86,0x87,0x89,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x83,
+0x74,0x75,0x77,0x78,0x79,0x78,0x77,0x77,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,
+0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7d,0x7e,0x80,0x82,
+0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7f,0x80,0x81,
+0x7f,0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x7a,0x7b,0x7c,0x7d,0x7c,0x7b,0x7a,
+0x7a,0x7a,0x79,0x78,0x79,0x7a,0x7b,0x7b,0x7e,0x7d,0x7b,0x7a,0x7a,0x7c,0x7e,0x80,
+0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x78,0x7a,0x7b,0x7d,0x7e,0x7f,
+0x7d,0x7f,0x80,0x7f,0x7e,0x81,0x86,0x8b,0xa0,0xa2,0xa7,0xab,0xaf,0xb1,0xb2,0xb2,
+0xb3,0xb4,0xb4,0xb2,0xad,0xa5,0x9d,0x99,0x95,0x95,0x95,0x96,0x96,0x96,0x96,0x97,
+0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x91,
+0x92,0x92,0x94,0x9a,0xa2,0xa8,0xaa,0xaa,0xa8,0x9d,0x8d,0x81,0x7b,0x79,0x78,0x78,
+0x73,0x74,0x74,0x75,0x75,0x76,0x77,0x77,0x73,0x74,0x74,0x74,0x75,0x75,0x76,0x76,
+0x78,0x7b,0x80,0x85,0x89,0x8b,0x8b,0x8b,0x8b,0x8a,0x88,0x86,0x82,0x7e,0x7b,0x79,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x7b,0x7f,0x84,0x86,
+0x8c,0x90,0x94,0x98,0x9a,0x99,0x96,0x95,0x98,0x9a,0x9c,0x9d,0x9c,0x99,0x95,0x92,
+0x88,0x87,0x85,0x83,0x83,0x83,0x84,0x85,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x85,0x86,0x87,0x87,0x87,0x86,0x84,0x84,
+0x83,0x83,0x83,0x83,0x85,0x86,0x88,0x89,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x83,
+0x74,0x75,0x77,0x78,0x79,0x78,0x77,0x76,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7d,0x7c,0x7c,0x7d,0x7f,0x81,0x83,
+0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7e,0x80,0x82,0x83,
+0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x7b,0x7c,0x7d,0x7e,0x7d,0x7b,0x7b,
+0x7b,0x7b,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7e,0x7c,0x7a,0x79,0x79,0x7b,0x7e,0x80,
+0x7d,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x77,0x78,0x79,0x7b,0x7d,0x7e,0x80,0x80,
+0x7e,0x80,0x82,0x82,0x80,0x7f,0x82,0x85,0x9d,0xa0,0xa4,0xa9,0xad,0xb0,0xb1,0xb2,
+0xb2,0xb5,0xb7,0xb7,0xb2,0xa9,0xa0,0x9a,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x96,
+0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x94,0x94,0x93,0x93,0x92,0x91,0x91,0x91,
+0x92,0x92,0x94,0x9b,0xa3,0xaa,0xac,0xac,0xa9,0x9e,0x8f,0x83,0x7c,0x79,0x77,0x75,
+0x73,0x73,0x74,0x75,0x75,0x76,0x76,0x77,0x73,0x73,0x74,0x75,0x76,0x77,0x77,0x78,
+0x7a,0x7d,0x81,0x86,0x89,0x8a,0x8a,0x8a,0x8b,0x8a,0x88,0x85,0x81,0x7d,0x79,0x77,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x7a,0x7e,0x83,0x88,0x8b,
+0x8f,0x93,0x97,0x9b,0x9c,0x9a,0x96,0x94,0x95,0x96,0x98,0x99,0x97,0x93,0x8e,0x8b,
+0x87,0x86,0x84,0x83,0x82,0x83,0x85,0x86,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x83,
+0x83,0x83,0x83,0x83,0x85,0x87,0x88,0x8a,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x83,
+0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x7a,0x7a,0x7a,0x7b,0x7a,0x7a,0x79,0x79,
+0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7a,0x7c,0x7e,0x80,0x81,0x80,0x7f,0x7f,
+0x81,0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x81,0x80,0x7f,0x7f,0x80,0x81,0x82,
+0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,
+0x7e,0x7c,0x7a,0x78,0x77,0x79,0x7b,0x7d,0x7c,0x80,0x83,0x82,0x7f,0x7c,0x7c,0x7d,
+0x7e,0x7d,0x7a,0x79,0x78,0x78,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x77,0x79,0x7c,0x7e,0x7f,0x7d,0x7b,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x7c,0x7b,0x78,0x76,0x76,0x76,0x77,0x77,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x80,0x81,
+0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x89,0x97,0xa4,0xad,0xb1,0xb1,0xb0,
+0xb0,0xb2,0xb5,0xb6,0xb3,0xae,0xa7,0xa3,0x97,0x96,0x95,0x95,0x95,0x96,0x97,0x98,
+0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,
+0x96,0x95,0x95,0x94,0x94,0x93,0x93,0x93,0x91,0x91,0x90,0x90,0x90,0x8f,0x8f,0x8f,
+0x92,0x90,0x92,0x9a,0xa5,0xac,0xab,0xa8,0xa7,0xa8,0xa3,0x94,0x80,0x75,0x77,0x7c,
+0x78,0x77,0x76,0x76,0x76,0x77,0x78,0x79,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x77,
+0x7a,0x7e,0x84,0x87,0x86,0x86,0x88,0x8a,0x8c,0x8b,0x89,0x85,0x82,0x80,0x7e,0x7d,
+0x77,0x77,0x78,0x78,0x78,0x78,0x77,0x77,0x79,0x79,0x7a,0x7d,0x83,0x8b,0x93,0x98,
+0x95,0x96,0x97,0x98,0x98,0x98,0x97,0x97,0x94,0x94,0x94,0x93,0x91,0x8e,0x8b,0x89,
+0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x82,0x84,0x84,0x86,0x86,0x86,0x85,0x83,0x82,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x80,0x81,0x82,0x84,0x86,0x87,0x89,0x8a,0x86,0x85,0x84,0x82,0x81,0x81,0x81,0x82,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7b,0x7c,0x7e,0x80,0x80,0x80,0x80,0x7f,
+0x7f,0x7f,0x7f,0x80,0x80,0x81,0x81,0x81,0x84,0x83,0x81,0x80,0x80,0x81,0x83,0x84,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7e,0x7c,0x7a,0x78,0x78,0x79,0x7b,0x7c,0x7d,0x80,0x83,0x82,0x7f,0x7c,0x7c,0x7e,
+0x7d,0x7c,0x7a,0x79,0x78,0x78,0x79,0x79,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7f,0x80,0x81,0x7f,0x7c,0x79,0x77,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x7a,0x79,0x78,0x76,0x76,0x77,0x77,0x78,0x7d,0x7d,0x7d,0x7e,0x7f,0x80,0x80,0x81,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x82,0x85,0x8c,0x95,0x9f,0xaa,0xb2,0xb6,
+0xb5,0xb4,0xb3,0xb1,0xaf,0xad,0xab,0xa9,0x9c,0x9a,0x97,0x94,0x93,0x94,0x96,0x97,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x95,0x94,0x94,0x94,0x93,0x93,0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x90,0x8f,0x8f,
+0x92,0x90,0x92,0x99,0xa3,0xaa,0xaa,0xa7,0xa7,0xa8,0xa3,0x95,0x82,0x77,0x76,0x7a,
+0x7d,0x7d,0x7d,0x7c,0x7a,0x78,0x76,0x75,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,
+0x7a,0x7f,0x85,0x87,0x87,0x87,0x88,0x8a,0x8c,0x8b,0x88,0x85,0x82,0x80,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x7a,0x7d,0x81,0x88,0x8f,0x95,0x98,
+0x95,0x96,0x97,0x98,0x98,0x98,0x97,0x96,0x93,0x93,0x93,0x92,0x90,0x8d,0x8a,0x89,
+0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x82,0x83,0x84,0x85,0x85,0x85,0x84,0x82,0x81,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x81,0x81,0x83,0x84,0x86,0x88,0x89,0x8a,0x86,0x85,0x84,0x82,0x81,0x81,0x82,0x82,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,0x80,0x80,0x80,0x80,0x80,
+0x7d,0x7e,0x7e,0x7f,0x80,0x81,0x82,0x82,0x85,0x85,0x84,0x83,0x83,0x84,0x85,0x85,
+0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x83,
+0x7f,0x7e,0x7c,0x7a,0x7a,0x7b,0x7d,0x7e,0x7e,0x81,0x84,0x82,0x7f,0x7d,0x7d,0x7f,
+0x7d,0x7c,0x7a,0x79,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x83,0x84,0x83,0x82,0x7f,0x7b,0x77,0x75,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,
+0x78,0x78,0x77,0x77,0x77,0x78,0x79,0x7a,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x81,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x82,0x80,0x80,0x84,0x8e,0x9d,0xac,0xb6,
+0xb6,0xb5,0xb2,0xb0,0xaf,0xae,0xaf,0xb0,0xa3,0xa0,0x9a,0x95,0x92,0x92,0x94,0x96,
+0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x90,
+0x91,0x90,0x92,0x97,0xa0,0xa6,0xa7,0xa7,0xa7,0xa8,0xa4,0x97,0x86,0x79,0x76,0x78,
+0x80,0x81,0x82,0x82,0x7f,0x7a,0x75,0x71,0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x74,
+0x7b,0x80,0x85,0x88,0x87,0x87,0x89,0x8b,0x8b,0x8a,0x87,0x83,0x81,0x7f,0x7e,0x7e,
+0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x79,0x7c,0x82,0x89,0x8f,0x93,0x96,0x98,
+0x95,0x96,0x97,0x97,0x97,0x97,0x96,0x95,0x91,0x91,0x90,0x8f,0x8e,0x8b,0x89,0x88,
+0x83,0x83,0x84,0x85,0x85,0x84,0x83,0x83,0x82,0x83,0x83,0x84,0x83,0x82,0x81,0x81,
+0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x82,0x82,0x84,0x85,0x87,0x88,0x8a,0x8a,0x86,0x85,0x84,0x82,0x82,0x82,0x82,0x83,
+0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7a,
+0x7c,0x7d,0x7e,0x7f,0x7f,0x7e,0x7e,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x86,
+0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,
+0x83,0x82,0x81,0x7f,0x7f,0x80,0x81,0x81,0x7f,0x82,0x84,0x82,0x7f,0x7d,0x7e,0x80,
+0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x80,0x80,0x80,0x7f,0x7d,0x7a,0x77,0x76,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x77,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7e,0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,
+0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x7d,0x7b,0x7d,0x85,0x90,0x9d,0xa5,
+0xae,0xb0,0xb3,0xb6,0xb6,0xb5,0xb3,0xb1,0xab,0xa6,0x9f,0x97,0x93,0x92,0x94,0x95,
+0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x91,0x91,0x91,0x91,0x90,0x90,0x90,
+0x91,0x90,0x92,0x95,0x9b,0xa0,0xa4,0xa6,0xa7,0xa8,0xa4,0x9a,0x8b,0x7e,0x77,0x75,
+0x7a,0x7c,0x80,0x82,0x80,0x7b,0x75,0x71,0x77,0x77,0x76,0x75,0x74,0x73,0x73,0x72,
+0x7b,0x80,0x86,0x88,0x88,0x88,0x89,0x8c,0x8b,0x89,0x85,0x82,0x7f,0x7e,0x7e,0x7e,
+0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x81,0x88,0x90,0x95,0x98,0x98,0x97,
+0x96,0x96,0x97,0x97,0x96,0x95,0x94,0x93,0x8e,0x8e,0x8d,0x8c,0x8b,0x8a,0x88,0x88,
+0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x83,0x82,0x82,0x82,0x82,0x82,0x81,0x81,0x80,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x83,0x83,0x84,0x86,0x87,0x88,0x89,0x8a,0x86,0x85,0x84,0x83,0x82,0x82,0x83,0x84,
+0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x78,0x7a,0x7b,0x7c,
+0x80,0x81,0x82,0x83,0x82,0x82,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,
+0x82,0x82,0x83,0x84,0x85,0x85,0x86,0x86,0x84,0x84,0x84,0x85,0x85,0x84,0x84,0x84,
+0x84,0x84,0x83,0x83,0x83,0x83,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x85,
+0x86,0x86,0x85,0x84,0x84,0x84,0x84,0x85,0x80,0x82,0x83,0x81,0x7e,0x7c,0x7e,0x80,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x79,0x79,0x7a,0x7a,0x7b,0x7a,0x79,0x79,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,
+0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7d,0x7d,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,
+0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7d,0x7e,0x80,0x83,0x86,0x89,0x8b,
+0x9d,0xa5,0xb1,0xba,0xbe,0xba,0xb4,0xaf,0xb1,0xac,0xa5,0x9e,0x98,0x96,0x95,0x96,
+0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,
+0x90,0x91,0x91,0x93,0x95,0x9a,0xa0,0xa5,0xa7,0xa7,0xa5,0x9e,0x92,0x85,0x7a,0x75,
+0x70,0x73,0x79,0x7d,0x7e,0x7c,0x78,0x74,0x78,0x77,0x76,0x75,0x74,0x73,0x72,0x72,
+0x7b,0x80,0x85,0x88,0x87,0x87,0x89,0x8b,0x8a,0x87,0x84,0x80,0x7e,0x7d,0x7e,0x7e,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x82,0x87,0x8e,0x95,0x99,0x9a,0x99,0x98,
+0x96,0x96,0x97,0x96,0x96,0x94,0x92,0x91,0x8b,0x8b,0x8a,0x89,0x88,0x87,0x87,0x87,
+0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,0x82,0x82,0x82,0x81,0x81,0x81,0x81,0x81,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x83,0x83,0x84,0x85,0x87,0x88,0x89,0x89,0x86,0x85,0x84,0x83,0x83,0x83,0x84,0x84,
+0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x79,0x7b,0x7d,0x7f,
+0x85,0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x82,0x81,0x81,0x80,0x80,0x81,0x81,0x82,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x80,0x81,0x82,0x82,0x82,0x82,0x81,0x80,
+0x82,0x81,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x82,0x82,0x83,0x83,
+0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x7f,0x81,0x82,0x7f,0x7c,0x7b,0x7d,0x80,
+0x7d,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x7a,0x7a,0x7c,0x7d,0x7e,0x7f,0x7f,0x7e,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7d,0x81,0x83,0x83,0x81,0x7d,0x7b,
+0x8c,0x95,0xa4,0xb1,0xb8,0xb8,0xb3,0xaf,0xb3,0xb0,0xac,0xa7,0xa1,0x9d,0x9a,0x98,
+0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x90,0x90,0x91,0x91,0x91,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x90,
+0x8f,0x91,0x91,0x91,0x91,0x95,0x9d,0xa4,0xa6,0xa6,0xa6,0xa2,0x99,0x8c,0x7f,0x76,
+0x6c,0x6f,0x74,0x78,0x7a,0x7a,0x79,0x77,0x77,0x77,0x76,0x75,0x74,0x73,0x73,0x72,
+0x7a,0x7f,0x84,0x87,0x86,0x86,0x88,0x8a,0x89,0x86,0x82,0x7e,0x7c,0x7c,0x7d,0x7e,
+0x7c,0x7b,0x79,0x79,0x79,0x7b,0x7e,0x7f,0x8a,0x8d,0x92,0x97,0x9a,0x9a,0x99,0x98,
+0x96,0x97,0x97,0x96,0x95,0x93,0x91,0x90,0x89,0x88,0x87,0x86,0x85,0x86,0x86,0x87,
+0x84,0x84,0x85,0x86,0x86,0x85,0x84,0x84,0x83,0x83,0x82,0x81,0x80,0x81,0x81,0x82,
+0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x82,0x83,0x83,0x84,0x86,0x86,0x87,0x88,0x85,0x85,0x84,0x83,0x83,0x84,0x85,0x85,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7a,0x79,0x7a,0x7c,0x7f,0x81,
+0x8a,0x8b,0x8b,0x8c,0x8b,0x8a,0x89,0x88,0x83,0x82,0x81,0x80,0x80,0x81,0x82,0x83,
+0x81,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7c,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7c,
+0x7f,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x80,0x81,
+0x82,0x82,0x82,0x82,0x82,0x81,0x80,0x80,0x7f,0x80,0x80,0x7e,0x7a,0x79,0x7c,0x7f,
+0x7e,0x7f,0x80,0x81,0x81,0x80,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x7c,0x7d,0x7f,0x80,0x81,0x81,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7f,0x80,0x7f,0x7e,0x7d,0x7c,
+0x80,0x86,0x90,0x9c,0xa6,0xae,0xb2,0xb4,0xb2,0xb3,0xb2,0xb0,0xab,0xa4,0x9e,0x9a,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x91,0x91,0x91,0x92,0x92,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x91,
+0x8e,0x91,0x91,0x8f,0x8d,0x91,0x9a,0xa3,0xa5,0xa6,0xa6,0xa5,0x9f,0x92,0x83,0x79,
+0x73,0x74,0x75,0x76,0x77,0x78,0x78,0x78,0x76,0x76,0x76,0x75,0x74,0x74,0x74,0x73,
+0x79,0x7e,0x83,0x86,0x85,0x85,0x87,0x89,0x88,0x85,0x81,0x7d,0x7b,0x7b,0x7d,0x7f,
+0x7d,0x7c,0x7b,0x7a,0x7c,0x7f,0x83,0x85,0x92,0x93,0x95,0x97,0x98,0x99,0x99,0x99,
+0x97,0x97,0x97,0x96,0x94,0x92,0x90,0x8e,0x87,0x86,0x84,0x83,0x83,0x84,0x85,0x86,
+0x84,0x85,0x86,0x86,0x86,0x86,0x85,0x84,0x85,0x84,0x82,0x81,0x80,0x81,0x82,0x83,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x82,0x82,0x83,0x83,0x84,0x85,0x86,0x86,0x85,0x85,0x84,0x83,0x83,0x84,0x85,0x86,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7d,0x7b,0x7a,0x7b,0x7d,0x80,0x82,
+0x8d,0x8e,0x8e,0x8e,0x8e,0x8c,0x8b,0x8a,0x84,0x83,0x81,0x80,0x80,0x81,0x82,0x83,
+0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7a,0x7c,0x7d,0x7d,0x7c,0x7a,0x79,
+0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7f,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,0x7e,0x7f,0x7f,0x7d,0x79,0x79,0x7c,0x7f,
+0x7e,0x80,0x81,0x83,0x83,0x82,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x87,0x85,0x83,0x80,0x7d,0x7b,0x7a,0x79,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x7e,0x7f,0x81,0x82,0x82,0x81,0x80,0x7f,0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7e,0x7d,0x7b,0x7a,0x7b,0x7e,0x81,0x84,
+0x7b,0x7d,0x80,0x88,0x95,0xa4,0xb1,0xba,0xb1,0xb3,0xb5,0xb5,0xb1,0xa9,0xa1,0x9c,
+0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x91,0x91,0x92,0x92,0x93,0x93,0x94,0x94,0x93,0x92,0x92,0x92,0x92,0x91,0x91,0x91,
+0x8e,0x91,0x91,0x8e,0x8b,0x8e,0x99,0xa2,0xa4,0xa5,0xa7,0xa7,0xa2,0x96,0x86,0x7a,
+0x7b,0x7a,0x78,0x77,0x76,0x76,0x76,0x77,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x74,
+0x78,0x7d,0x82,0x85,0x84,0x84,0x86,0x88,0x88,0x85,0x80,0x7c,0x7a,0x7b,0x7d,0x7f,
+0x7e,0x7d,0x7d,0x7d,0x7f,0x83,0x87,0x89,0x97,0x97,0x96,0x96,0x97,0x98,0x99,0x99,
+0x97,0x97,0x97,0x96,0x94,0x91,0x8f,0x8e,0x85,0x84,0x83,0x82,0x82,0x83,0x85,0x86,
+0x84,0x85,0x86,0x86,0x86,0x86,0x85,0x84,0x85,0x84,0x82,0x81,0x81,0x82,0x83,0x84,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x81,0x81,0x82,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x84,0x83,0x84,0x84,0x86,0x86,
+0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7d,0x7e,0x80,0x81,0x81,0x80,0x80,
+0x87,0x86,0x85,0x84,0x82,0x82,0x82,0x82,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x77,0x79,0x7c,0x7e,0x7f,0x7d,0x7b,0x7a,
+0x77,0x78,0x79,0x79,0x79,0x79,0x78,0x77,0x7a,0x7b,0x7c,0x7e,0x7e,0x7e,0x7d,0x7d,
+0x7e,0x7d,0x7c,0x7b,0x7b,0x7d,0x7e,0x80,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7f,
+0x81,0x81,0x81,0x82,0x83,0x83,0x84,0x84,0x81,0x81,0x82,0x82,0x82,0x81,0x81,0x80,
+0x7e,0x7f,0x81,0x82,0x82,0x81,0x7f,0x7e,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x78,0x78,0x77,0x76,0x77,0x78,0x7a,0x7b,
+0x80,0x7e,0x7d,0x7f,0x86,0x8f,0x99,0xa0,0xb5,0xb2,0xb0,0xb0,0xb2,0xb1,0xad,0xa9,
+0xa5,0xa2,0x9e,0x98,0x95,0x92,0x92,0x92,0x93,0x94,0x96,0x96,0x96,0x93,0x91,0x8f,
+0x94,0x94,0x94,0x93,0x92,0x91,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x8f,0x8d,0x8d,0x8f,0x93,0x98,0x9b,0xa4,0xaa,0xaa,0xa4,0xa3,0xa0,0x8f,0x7a,
+0x76,0x75,0x73,0x72,0x73,0x74,0x76,0x78,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x76,0x79,0x7e,0x83,0x86,0x87,0x87,0x86,0x87,0x84,0x81,0x7e,0x7c,0x7c,0x7e,0x7f,
+0x7d,0x7b,0x79,0x79,0x7e,0x86,0x8e,0x93,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x98,
+0x99,0x97,0x95,0x95,0x95,0x92,0x8d,0x88,0x84,0x84,0x85,0x86,0x87,0x87,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x83,0x83,0x82,0x82,0x81,0x81,0x80,0x80,
+0x83,0x83,0x84,0x85,0x86,0x87,0x87,0x88,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x87,0x84,0x84,0x83,0x83,0x82,0x81,0x80,0x80,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x7d,0x7e,0x80,0x80,0x80,0x80,0x7f,
+0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,0x7e,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x79,0x7b,0x7d,0x7f,0x7f,0x7d,0x7b,0x7a,
+0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7d,0x7e,0x7e,0x7e,0x7d,0x7d,
+0x7d,0x7c,0x7b,0x7b,0x7b,0x7c,0x7e,0x7f,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7e,
+0x7f,0x7f,0x7f,0x80,0x81,0x81,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x83,0x82,0x82,
+0x7e,0x7f,0x81,0x82,0x82,0x81,0x7f,0x7e,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7a,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,
+0x7f,0x7e,0x7d,0x7e,0x81,0x87,0x8d,0x91,0x9d,0xaa,0xb7,0xb9,0xb2,0xac,0xad,0xb2,
+0xaa,0xa7,0xa2,0x9d,0x98,0x95,0x93,0x92,0x92,0x92,0x93,0x94,0x95,0x95,0x95,0x95,
+0x93,0x93,0x93,0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x8f,0x8d,0x8d,0x8f,0x93,0x97,0x9a,0xa3,0xa9,0xa9,0xa4,0xa3,0xa0,0x8f,0x7a,
+0x77,0x75,0x74,0x72,0x73,0x74,0x76,0x77,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x76,0x79,0x7d,0x82,0x85,0x86,0x86,0x86,0x86,0x84,0x81,0x7e,0x7d,0x7d,0x7e,0x7f,
+0x7d,0x7b,0x79,0x7a,0x7e,0x86,0x8e,0x94,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,
+0x99,0x97,0x95,0x95,0x95,0x92,0x8d,0x88,0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x83,0x83,0x83,0x82,0x82,0x81,0x81,
+0x83,0x84,0x84,0x85,0x86,0x87,0x87,0x88,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x85,0x85,0x84,0x83,0x83,0x82,0x81,0x81,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x80,0x7f,0x7f,0x7e,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7c,0x7e,0x7f,0x7e,0x7d,0x7b,0x7a,
+0x7d,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,0x7d,0x7b,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7c,0x7d,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,
+0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x82,0x83,0x84,0x84,0x84,0x83,0x82,0x81,
+0x7f,0x80,0x80,0x81,0x81,0x80,0x80,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x79,0x79,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,0x88,0x99,0xad,0xb5,0xb2,0xae,0xaf,0xb3,
+0xb2,0xaf,0xab,0xa5,0xa0,0x9b,0x98,0x96,0x93,0x92,0x90,0x90,0x92,0x95,0x98,0x9a,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x8f,0x8e,0x8d,0x8f,0x92,0x96,0x99,0xa0,0xa6,0xa7,0xa2,0xa2,0xa0,0x90,0x7b,
+0x77,0x76,0x74,0x72,0x72,0x74,0x76,0x77,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,
+0x76,0x79,0x7c,0x80,0x83,0x84,0x84,0x84,0x86,0x84,0x81,0x7e,0x7d,0x7d,0x7e,0x7f,
+0x7c,0x7b,0x79,0x7b,0x80,0x87,0x8f,0x95,0x95,0x95,0x96,0x96,0x96,0x97,0x97,0x97,
+0x99,0x96,0x95,0x95,0x95,0x93,0x8d,0x88,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,
+0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x88,0x86,0x86,0x85,0x85,0x84,0x84,0x83,0x83,
+0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7d,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7d,
+0x76,0x76,0x77,0x78,0x78,0x78,0x78,0x77,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7e,0x7c,0x7b,0x7a,
+0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7b,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7f,0x80,0x81,0x80,0x7e,0x7d,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7e,0x7d,0x7b,0x7a,0x79,0x78,0x78,
+0x77,0x78,0x7a,0x7c,0x7c,0x7b,0x7a,0x79,0x83,0x87,0x91,0x9e,0xaa,0xb0,0xaf,0xac,
+0xb8,0xb6,0xb3,0xaf,0xaa,0xa5,0xa1,0x9f,0x99,0x96,0x92,0x8e,0x8e,0x90,0x94,0x97,
+0x90,0x90,0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x8f,0x8e,0x8e,0x8f,0x92,0x95,0x97,0x9d,0xa4,0xa5,0xa1,0xa2,0xa1,0x91,0x7c,
+0x78,0x76,0x74,0x73,0x72,0x73,0x75,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,
+0x76,0x78,0x7b,0x7e,0x80,0x82,0x82,0x82,0x84,0x82,0x80,0x7e,0x7d,0x7d,0x7d,0x7e,
+0x7b,0x7a,0x7a,0x7c,0x81,0x89,0x91,0x96,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x96,
+0x98,0x96,0x94,0x95,0x95,0x93,0x8e,0x89,0x86,0x85,0x85,0x84,0x84,0x85,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x87,0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7c,0x7b,
+0x77,0x78,0x79,0x7a,0x7b,0x7a,0x79,0x78,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,
+0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7d,0x7c,0x7c,0x7b,0x7a,
+0x79,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,
+0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x76,0x78,0x7b,0x7d,0x7e,0x7e,0x7c,0x7b,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7d,0x7c,0x7a,0x79,0x78,
+0x73,0x76,0x79,0x7c,0x7e,0x7e,0x7d,0x7b,0x7f,0x7e,0x7f,0x86,0x93,0x9f,0xa6,0xa9,
+0xb7,0xb7,0xb6,0xb5,0xb2,0xae,0xab,0xa9,0xa3,0x9f,0x98,0x92,0x8e,0x8e,0x8f,0x90,
+0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+0x91,0x90,0x8f,0x8e,0x8f,0x91,0x93,0x95,0x9b,0xa2,0xa4,0xa1,0xa2,0xa2,0x93,0x7f,
+0x78,0x77,0x74,0x73,0x72,0x73,0x75,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,
+0x77,0x78,0x7a,0x7c,0x7e,0x7f,0x80,0x80,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,
+0x7a,0x7a,0x7a,0x7d,0x83,0x8b,0x92,0x97,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x96,
+0x97,0x95,0x94,0x95,0x95,0x93,0x8e,0x89,0x87,0x86,0x84,0x83,0x83,0x84,0x85,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x88,0x88,0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,
+0x78,0x79,0x7a,0x7b,0x7c,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7e,0x7d,0x7b,0x7a,
+0x79,0x7a,0x7c,0x7d,0x7d,0x7c,0x7a,0x79,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x77,0x77,0x78,0x79,0x79,0x78,0x77,0x77,0x79,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x77,
+0x77,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,
+0x76,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x76,0x79,0x7d,0x81,0x83,0x84,0x83,0x82,
+0x81,0x80,0x80,0x7f,0x7f,0x80,0x80,0x81,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7e,0x7c,0x7a,0x79,
+0x75,0x76,0x79,0x7b,0x7d,0x7f,0x7f,0x7f,0x77,0x7d,0x80,0x7e,0x7c,0x84,0x96,0xa5,
+0xab,0xad,0xb1,0xb4,0xb5,0xb4,0xb2,0xb0,0xad,0xaa,0xa3,0x9d,0x97,0x93,0x92,0x91,
+0x94,0x94,0x93,0x92,0x92,0x91,0x91,0x90,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+0x91,0x90,0x8f,0x8f,0x8f,0x90,0x92,0x93,0x9a,0xa1,0xa3,0xa1,0xa3,0xa4,0x95,0x81,
+0x79,0x77,0x75,0x73,0x72,0x73,0x74,0x75,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,
+0x77,0x77,0x78,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7a,
+0x79,0x79,0x7a,0x7e,0x84,0x8c,0x93,0x98,0x95,0x95,0x96,0x96,0x96,0x97,0x97,0x97,
+0x97,0x95,0x94,0x95,0x96,0x94,0x8f,0x8a,0x87,0x86,0x84,0x82,0x82,0x83,0x85,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x88,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x78,0x78,0x79,0x7b,0x7c,0x7e,0x7f,0x7f,0x80,0x80,0x80,0x7f,0x7e,0x7c,0x7a,0x79,
+0x7a,0x7c,0x7d,0x7e,0x7e,0x7c,0x79,0x77,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x75,
+0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x79,0x7a,0x7c,0x7c,
+0x78,0x78,0x79,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x78,0x78,0x78,0x77,0x75,0x75,
+0x76,0x77,0x78,0x7a,0x7a,0x79,0x78,0x77,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x79,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,
+0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7d,0x81,0x86,0x8c,0x90,0x91,0x90,0x8f,
+0x82,0x81,0x7f,0x7e,0x7e,0x7f,0x81,0x82,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x80,0x80,0x81,0x80,0x7e,0x7c,0x7b,
+0x7a,0x7a,0x79,0x79,0x79,0x7a,0x7c,0x7c,0x78,0x7e,0x82,0x7e,0x78,0x7a,0x86,0x92,
+0x9a,0x9e,0xa5,0xac,0xb1,0xb3,0xb3,0xb3,0xb3,0xb2,0xaf,0xaa,0xa5,0xa1,0x9d,0x9b,
+0x97,0x96,0x95,0x94,0x93,0x91,0x90,0x90,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+0x91,0x90,0x90,0x8f,0x8f,0x90,0x91,0x91,0x99,0xa0,0xa3,0xa2,0xa5,0xa6,0x98,0x84,
+0x79,0x77,0x75,0x73,0x72,0x73,0x74,0x75,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,
+0x77,0x77,0x77,0x78,0x79,0x7b,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,
+0x78,0x79,0x7b,0x7f,0x85,0x8d,0x94,0x99,0x96,0x96,0x96,0x97,0x97,0x97,0x98,0x98,
+0x96,0x95,0x93,0x94,0x96,0x94,0x8f,0x8a,0x88,0x86,0x84,0x82,0x81,0x82,0x84,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x87,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x78,0x78,0x79,0x7b,0x7c,0x7e,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7e,0x7c,0x7a,0x78,
+0x7a,0x7b,0x7d,0x7e,0x7d,0x7a,0x77,0x75,0x79,0x79,0x78,0x77,0x76,0x75,0x74,0x74,
+0x74,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x75,0x76,0x77,0x78,0x7a,0x7c,0x7d,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,0x76,0x76,0x77,0x77,0x77,0x75,0x74,0x73,
+0x75,0x76,0x78,0x79,0x7a,0x79,0x78,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,
+0x78,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x85,0x89,0x8f,0x96,0x9a,0x9c,0x9c,0x9b,
+0x82,0x81,0x7f,0x7e,0x7e,0x7f,0x81,0x82,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x81,0x81,0x81,0x7f,0x7d,0x7c,
+0x7f,0x7d,0x7a,0x77,0x75,0x75,0x77,0x78,0x80,0x7e,0x7d,0x7e,0x81,0x81,0x7e,0x7a,
+0x8d,0x92,0x9c,0xa5,0xad,0xb1,0xb3,0xb3,0xb6,0xb6,0xb6,0xb4,0xb1,0xac,0xa8,0xa5,
+0x99,0x98,0x97,0x95,0x93,0x91,0x90,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+0x91,0x90,0x90,0x90,0x8f,0x90,0x90,0x90,0x99,0xa0,0xa4,0xa2,0xa5,0xa7,0x99,0x86,
+0x79,0x78,0x75,0x73,0x72,0x72,0x74,0x75,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,
+0x77,0x77,0x77,0x77,0x78,0x7a,0x7b,0x7b,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x78,0x77,
+0x77,0x78,0x7b,0x7f,0x86,0x8e,0x95,0x99,0x97,0x97,0x97,0x97,0x98,0x98,0x98,0x98,
+0x96,0x94,0x93,0x94,0x96,0x94,0x8f,0x8b,0x89,0x87,0x84,0x81,0x81,0x82,0x84,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,
+0x88,0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x87,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x7f,0x7f,0x7f,0x7e,0x7c,0x79,0x77,0x76,
+0x7c,0x7a,0x78,0x75,0x73,0x72,0x72,0x72,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,
+0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x77,0x76,0x75,0x75,0x75,0x77,0x79,0x7a,
+0x72,0x73,0x74,0x76,0x78,0x7a,0x7b,0x7c,0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,
+0x73,0x75,0x77,0x7a,0x7a,0x7a,0x78,0x77,0x73,0x75,0x78,0x7a,0x7b,0x7a,0x79,0x77,
+0x76,0x77,0x79,0x7a,0x7a,0x79,0x78,0x77,0x79,0x79,0x7a,0x7a,0x79,0x77,0x75,0x74,
+0x78,0x78,0x78,0x78,0x7a,0x7c,0x7e,0x80,0x96,0x9a,0xa1,0xa6,0xa9,0xa8,0xa6,0xa3,
+0x9e,0x96,0x8c,0x84,0x82,0x81,0x80,0x7e,0x82,0x80,0x7f,0x81,0x83,0x83,0x7f,0x7b,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7e,0x7d,0x7b,0x79,0x78,0x76,0x76,0x77,0x77,0x79,0x7a,0x7c,0x7e,0x7f,0x80,
+0x79,0x7c,0x82,0x8b,0x98,0xa5,0xb0,0xb6,0xad,0xb1,0xb6,0xb9,0xba,0xb6,0xb1,0xae,
+0xaa,0xa8,0xa5,0xa1,0x9d,0x9a,0x97,0x96,0x98,0x96,0x93,0x8f,0x8d,0x8c,0x8b,0x8b,
+0x8c,0x8d,0x8e,0x8f,0x90,0x92,0x92,0x93,0x9a,0xa0,0xa2,0xa0,0xa5,0xa9,0x9d,0x8c,
+0x7b,0x79,0x76,0x73,0x72,0x73,0x75,0x76,0x78,0x78,0x77,0x76,0x75,0x76,0x77,0x77,
+0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,
+0x7b,0x7a,0x7b,0x81,0x8a,0x92,0x95,0x96,0x97,0x97,0x97,0x96,0x96,0x96,0x95,0x95,
+0x92,0x94,0x95,0x95,0x94,0x91,0x8d,0x8b,0x89,0x88,0x86,0x85,0x84,0x83,0x83,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x85,0x86,0x86,0x86,0x86,0x85,0x84,
+0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x79,0x79,0x7a,0x7b,0x7c,0x7e,0x7e,0x7f,0x80,0x80,0x80,0x7f,0x7d,0x7b,0x79,0x77,
+0x7a,0x79,0x76,0x74,0x72,0x71,0x71,0x71,0x74,0x74,0x74,0x73,0x73,0x73,0x72,0x72,
+0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x77,0x76,0x75,0x75,0x75,0x76,0x78,0x79,
+0x73,0x73,0x74,0x76,0x77,0x79,0x7a,0x7a,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x75,0x76,0x78,0x79,0x79,0x79,0x77,0x76,0x73,0x75,0x77,0x7a,0x7b,0x7a,0x78,0x77,
+0x77,0x78,0x79,0x7a,0x7a,0x79,0x77,0x76,0x77,0x78,0x79,0x79,0x78,0x76,0x74,0x73,
+0x7e,0x7b,0x78,0x77,0x7b,0x83,0x8c,0x92,0x9d,0xa0,0xa4,0xa8,0xaa,0xaa,0xa9,0xa8,
+0xa7,0xa0,0x96,0x8e,0x89,0x85,0x80,0x7c,0x80,0x7e,0x7d,0x7f,0x82,0x82,0x7f,0x7c,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x7f,0x7e,0x7c,0x7b,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,
+0x7b,0x7d,0x80,0x86,0x8e,0x96,0x9e,0xa3,0xb4,0xb3,0xb1,0xb1,0xb2,0xb4,0xb6,0xb8,
+0xb1,0xb0,0xae,0xac,0xaa,0xa8,0xa7,0xa7,0xa0,0x9e,0x9b,0x98,0x96,0x95,0x94,0x94,
+0x94,0x94,0x95,0x95,0x96,0x97,0x97,0x98,0x9c,0xa2,0xa4,0xa2,0xa5,0xa9,0x9d,0x8b,
+0x7a,0x78,0x76,0x73,0x72,0x73,0x75,0x76,0x77,0x77,0x76,0x75,0x76,0x76,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x7b,0x7a,0x7b,0x81,0x8a,0x92,0x95,0x96,0x97,0x97,0x96,0x96,0x96,0x95,0x95,0x95,
+0x92,0x93,0x95,0x95,0x93,0x90,0x8d,0x8b,0x88,0x87,0x86,0x84,0x84,0x84,0x84,0x85,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x85,0x85,0x86,0x87,0x87,0x86,0x85,0x85,
+0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,
+0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x7f,0x81,0x81,0x81,0x80,0x7f,0x7d,0x7b,0x7a,
+0x79,0x78,0x76,0x74,0x72,0x71,0x71,0x71,0x74,0x73,0x73,0x73,0x72,0x72,0x72,0x72,
+0x72,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x76,0x75,0x75,0x74,0x75,0x76,0x77,0x77,
+0x74,0x74,0x74,0x75,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x77,0x77,0x78,0x78,0x78,0x77,0x76,0x75,0x73,0x75,0x77,0x79,0x7a,0x79,0x78,0x77,
+0x79,0x79,0x7a,0x7a,0x79,0x78,0x77,0x76,0x76,0x76,0x77,0x77,0x76,0x75,0x73,0x72,
+0x80,0x7d,0x79,0x79,0x81,0x8e,0x9c,0xa6,0xa6,0xa7,0xa7,0xa8,0xaa,0xab,0xad,0xad,
+0xb1,0xac,0xa4,0x9c,0x96,0x8e,0x85,0x7f,0x7f,0x7c,0x7b,0x7c,0x80,0x82,0x81,0x7f,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x7f,0x7e,0x7c,0x7b,0x7a,0x7a,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,
+0x7d,0x7d,0x7d,0x7e,0x81,0x85,0x88,0x8b,0xa8,0xa9,0xab,0xae,0xb2,0xb5,0xb7,0xb9,
+0xb4,0xb3,0xb3,0xb3,0xb2,0xb1,0xb1,0xb1,0xaa,0xa9,0xa7,0xa4,0xa2,0xa1,0xa0,0xa0,
+0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0xa0,0xa6,0xa7,0xa3,0xa6,0xa8,0x9c,0x89,
+0x79,0x78,0x75,0x73,0x73,0x73,0x75,0x76,0x75,0x75,0x75,0x75,0x76,0x78,0x79,0x7a,
+0x79,0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,
+0x7a,0x79,0x7b,0x81,0x8a,0x92,0x95,0x95,0x97,0x96,0x96,0x96,0x96,0x95,0x95,0x95,
+0x93,0x93,0x94,0x93,0x92,0x8f,0x8c,0x8a,0x86,0x85,0x84,0x84,0x84,0x84,0x85,0x86,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x85,0x86,0x87,0x88,0x88,0x87,0x86,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,
+0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x7f,0x80,0x81,0x81,0x82,0x82,0x81,0x7f,0x7e,0x7d,
+0x7b,0x7a,0x78,0x76,0x75,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x72,0x72,0x72,0x72,
+0x72,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x77,0x77,0x77,0x78,0x78,0x79,0x79,
+0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x75,0x74,0x75,0x77,0x78,0x79,0x78,0x77,0x77,
+0x7a,0x7a,0x7a,0x79,0x78,0x77,0x77,0x76,0x75,0x75,0x75,0x75,0x74,0x74,0x73,0x73,
+0x7a,0x7b,0x7d,0x84,0x8e,0x9a,0xa6,0xad,0xab,0xaa,0xa8,0xa6,0xa7,0xaa,0xad,0xaf,
+0xb5,0xb1,0xad,0xa8,0xa3,0x9b,0x91,0x8a,0x82,0x7e,0x7b,0x7b,0x7e,0x81,0x82,0x81,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7c,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,
+0x7c,0x7c,0x7a,0x7a,0x7a,0x7b,0x7c,0x7d,0x89,0x92,0xa0,0xad,0xb4,0xb5,0xb2,0xae,
+0xb1,0xb1,0xb1,0xb1,0xb0,0xaf,0xad,0xad,0xb1,0xb0,0xae,0xad,0xab,0xaa,0xa9,0xa9,
+0xa9,0xa9,0xa9,0xa8,0xa8,0xa7,0xa7,0xa6,0xa4,0xaa,0xa9,0xa4,0xa6,0xa6,0x99,0x86,
+0x78,0x77,0x75,0x74,0x73,0x74,0x75,0x75,0x74,0x74,0x74,0x75,0x76,0x78,0x7b,0x7c,
+0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x74,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,
+0x7a,0x79,0x7b,0x81,0x8a,0x91,0x95,0x95,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,
+0x93,0x93,0x93,0x92,0x90,0x8d,0x8b,0x89,0x85,0x84,0x84,0x83,0x84,0x85,0x86,0x87,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x87,0x88,0x88,0x87,0x86,0x86,
+0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,
+0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x82,0x82,0x82,0x82,0x81,0x80,0x7f,
+0x7f,0x7d,0x7c,0x7a,0x78,0x78,0x78,0x78,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x72,
+0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x77,0x77,0x78,0x78,0x78,0x78,0x79,0x79,
+0x7a,0x79,0x77,0x75,0x74,0x75,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x78,0x78,0x77,
+0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x77,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,
+0x72,0x79,0x85,0x92,0x9d,0xa4,0xa7,0xa8,0xab,0xa9,0xa6,0xa4,0xa5,0xa7,0xab,0xae,
+0xb2,0xb0,0xaf,0xae,0xad,0xa8,0xa0,0x9a,0x8b,0x85,0x7f,0x7c,0x7e,0x81,0x82,0x81,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x77,
+0x79,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x75,0x7e,0x8d,0x9c,0xa6,0xaa,0xaa,0xa8,
+0xb1,0xb2,0xb2,0xb2,0xb0,0xae,0xac,0xaa,0xb2,0xb1,0xb1,0xb0,0xaf,0xad,0xac,0xac,
+0xaf,0xaf,0xae,0xad,0xad,0xac,0xab,0xab,0xa7,0xac,0xaa,0xa4,0xa4,0xa3,0x94,0x81,
+0x76,0x75,0x75,0x74,0x74,0x74,0x74,0x75,0x73,0x73,0x73,0x75,0x76,0x79,0x7b,0x7c,
+0x7c,0x7b,0x7a,0x79,0x77,0x76,0x75,0x74,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,
+0x7a,0x79,0x7a,0x80,0x89,0x91,0x94,0x95,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,
+0x93,0x93,0x92,0x90,0x8e,0x8c,0x89,0x88,0x84,0x84,0x83,0x83,0x83,0x84,0x85,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x86,0x87,0x88,0x88,0x87,0x86,0x85,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x81,0x82,0x82,0x82,0x82,0x81,0x80,
+0x7f,0x7e,0x7d,0x7b,0x7a,0x7a,0x7a,0x7a,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x74,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x77,0x78,0x78,0x77,0x77,0x76,0x75,
+0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,
+0x7a,0x78,0x75,0x73,0x73,0x74,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x79,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,0x77,0x77,0x76,0x75,0x75,0x76,0x77,0x77,
+0x74,0x7e,0x8e,0x9d,0xa6,0xa9,0xa6,0xa3,0xa8,0xa7,0xa5,0xa5,0xa5,0xa8,0xaa,0xac,
+0xaf,0xae,0xad,0xaf,0xb1,0xaf,0xab,0xa6,0x98,0x91,0x87,0x80,0x7f,0x81,0x81,0x81,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7e,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,
+0x78,0x78,0x79,0x7a,0x7b,0x7d,0x7e,0x7e,0x77,0x78,0x7b,0x81,0x8a,0x95,0x9f,0xa5,
+0xb0,0xb1,0xb3,0xb4,0xb4,0xb3,0xb1,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xae,0xad,0xac,
+0xaf,0xaf,0xaf,0xae,0xae,0xad,0xad,0xac,0xa9,0xad,0xaa,0xa3,0xa1,0x9f,0x8f,0x7b,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x76,0x79,0x7b,0x7c,
+0x7c,0x7c,0x7b,0x7a,0x78,0x77,0x76,0x76,0x75,0x75,0x76,0x76,0x76,0x77,0x77,0x77,
+0x79,0x79,0x7a,0x80,0x89,0x91,0x94,0x94,0x96,0x95,0x95,0x95,0x95,0x94,0x94,0x94,
+0x93,0x93,0x91,0x8f,0x8c,0x8a,0x88,0x87,0x85,0x84,0x83,0x83,0x83,0x83,0x84,0x85,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x87,0x87,0x86,0x85,0x84,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x88,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,
+0x80,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x7f,0x80,0x81,0x82,0x82,0x82,0x81,0x81,
+0x7d,0x7c,0x7a,0x79,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,
+0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x7a,0x79,0x78,0x76,0x75,
+0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x76,0x76,
+0x79,0x77,0x74,0x72,0x72,0x75,0x78,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x78,0x77,0x77,0x77,0x77,0x79,0x7b,0x7c,0x79,0x79,0x77,0x77,0x77,0x78,0x79,0x7a,
+0x84,0x8b,0x96,0xa1,0xa8,0xaa,0xa8,0xa6,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xac,
+0xb0,0xad,0xab,0xac,0xaf,0xb0,0xae,0xab,0xa6,0x9c,0x8f,0x85,0x81,0x81,0x81,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x81,0x80,0x80,0x80,0x7f,0x7e,0x7e,0x7d,0x7d,
+0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7e,0x7a,0x77,0x76,0x7b,0x84,0x8e,0x94,
+0x9f,0xa2,0xa7,0xac,0xb0,0xb2,0xb3,0xb3,0xaf,0xaf,0xb0,0xb1,0xb0,0xaf,0xae,0xad,
+0xac,0xac,0xac,0xac,0xac,0xac,0xab,0xab,0xa9,0xad,0xa9,0xa1,0x9e,0x9b,0x8a,0x75,
+0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x74,0x74,0x75,0x76,0x78,0x7a,0x7b,
+0x7c,0x7b,0x7b,0x7a,0x79,0x78,0x77,0x77,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x79,0x78,0x7a,0x80,0x89,0x90,0x94,0x94,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,
+0x94,0x92,0x90,0x8e,0x8b,0x89,0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x82,0x83,0x83,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x86,0x86,0x85,0x84,0x83,
+0x84,0x84,0x85,0x86,0x87,0x87,0x88,0x88,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x88,0x88,0x88,0x89,0x89,0x89,0x8a,0x8a,0x87,0x87,0x87,0x88,0x88,0x88,0x88,0x89,
+0x80,0x80,0x81,0x81,0x81,0x81,0x81,0x81,0x7f,0x7f,0x81,0x82,0x82,0x82,0x81,0x81,
+0x7a,0x79,0x77,0x76,0x75,0x75,0x75,0x76,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,
+0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,0x7b,0x7a,0x79,0x77,0x75,
+0x75,0x75,0x76,0x77,0x78,0x78,0x79,0x79,0x7d,0x7c,0x7b,0x7a,0x78,0x76,0x75,0x75,
+0x79,0x76,0x73,0x71,0x71,0x75,0x79,0x7c,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x77,0x76,0x76,0x76,0x77,0x7a,0x7c,0x7e,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7b,0x7c,
+0x93,0x96,0x9b,0xa0,0xa5,0xa9,0xab,0xac,0xa6,0xa7,0xaa,0xad,0xae,0xae,0xae,0xae,
+0xb2,0xaf,0xab,0xaa,0xac,0xae,0xad,0xab,0xaf,0xa4,0x94,0x88,0x82,0x81,0x80,0x7f,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x81,0x81,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x7f,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x7d,0x7d,0x7c,0x7b,0x7c,0x7d,0x7e,0x7e,
+0x8a,0x8e,0x96,0x9f,0xa6,0xab,0xae,0xaf,0xaf,0xb0,0xb1,0xb2,0xb1,0xb0,0xaf,0xad,
+0xa9,0xa9,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xa9,0xac,0xa8,0x9f,0x9b,0x98,0x87,0x72,
+0x73,0x73,0x74,0x74,0x75,0x74,0x74,0x74,0x76,0x75,0x75,0x75,0x76,0x77,0x79,0x7a,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,
+0x79,0x78,0x7a,0x80,0x89,0x90,0x94,0x94,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,
+0x94,0x92,0x90,0x8d,0x8a,0x88,0x87,0x86,0x87,0x86,0x85,0x83,0x82,0x82,0x82,0x82,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x82,0x83,0x84,0x85,0x85,0x84,0x83,0x82,
+0x84,0x84,0x85,0x86,0x87,0x88,0x88,0x89,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x89,0x89,0x89,0x8a,0x8a,0x8a,0x8a,0x8b,0x87,0x87,0x87,0x88,0x88,0x88,0x89,0x89,
+0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7e,0x7f,0x80,0x81,0x81,0x7f,0x7d,0x7c,
+0x7f,0x7e,0x7b,0x79,0x78,0x78,0x79,0x7a,0x7a,0x79,0x77,0x76,0x76,0x77,0x7a,0x7b,
+0x7a,0x79,0x76,0x75,0x74,0x75,0x77,0x78,0x78,0x78,0x77,0x76,0x76,0x75,0x74,0x74,
+0x73,0x74,0x76,0x77,0x78,0x79,0x78,0x78,0x77,0x78,0x79,0x79,0x78,0x77,0x76,0x75,
+0x73,0x72,0x71,0x70,0x71,0x72,0x74,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,
+0x75,0x75,0x75,0x75,0x76,0x77,0x79,0x79,0x7a,0x77,0x74,0x72,0x75,0x7c,0x84,0x8a,
+0xa1,0xa3,0xa5,0xa8,0xa9,0xaa,0xa9,0xa9,0xa6,0xa6,0xa7,0xa9,0xaa,0xab,0xac,0xad,
+0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xa8,0xb0,0xb3,0xa4,0x8b,0x7a,0x7a,0x81,
+0x80,0x82,0x82,0x80,0x7e,0x7e,0x81,0x84,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7e,0x7e,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x7d,0x7f,0x82,0x87,0x8f,0x97,0x9f,0xa4,0xaa,0xac,0xaf,0xb1,0xb2,0xb1,0xaf,0xad,
+0xad,0xad,0xad,0xac,0xab,0xab,0xaa,0xaa,0xb0,0xab,0xa2,0x97,0x8b,0x81,0x7a,0x76,
+0x72,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,
+0x79,0x7a,0x7c,0x7c,0x7c,0x7a,0x78,0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,
+0x74,0x77,0x7d,0x83,0x8a,0x8f,0x93,0x95,0x93,0x93,0x94,0x94,0x93,0x92,0x90,0x8f,
+0x91,0x90,0x8f,0x8d,0x8b,0x89,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x82,0x82,0x82,0x82,0x81,0x81,0x81,0x81,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x84,0x83,0x81,0x7f,0x80,0x82,0x84,0x86,
+0x87,0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x89,0x88,0x88,0x87,0x87,0x86,0x86,0x86,
+0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x80,0x81,0x81,0x7f,0x7e,0x7d,
+0x7e,0x7d,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7a,0x78,0x76,0x76,0x77,0x79,0x7a,
+0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x78,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x75,
+0x74,0x75,0x77,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x79,0x77,0x76,0x75,
+0x71,0x70,0x6f,0x6f,0x70,0x71,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,
+0x75,0x75,0x75,0x76,0x76,0x77,0x78,0x79,0x7d,0x7a,0x76,0x75,0x7a,0x83,0x8c,0x93,
+0xa4,0xa5,0xa7,0xa8,0xa9,0xa9,0xa9,0xa8,0xa6,0xa7,0xa8,0xa9,0xaa,0xac,0xad,0xad,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xaa,0xaf,0xb0,0xa6,0x93,0x85,0x80,0x81,
+0x7e,0x7f,0x81,0x80,0x7f,0x7f,0x81,0x83,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x7e,0x7d,0x7c,0x7c,0x7b,0x7b,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7b,0x7b,
+0x79,0x79,0x79,0x7c,0x7f,0x85,0x8a,0x8d,0x90,0x93,0x99,0x9f,0xa3,0xa6,0xa7,0xa7,
+0xa7,0xa7,0xa6,0xa6,0xa5,0xa4,0xa4,0xa4,0x9f,0x9b,0x94,0x8b,0x81,0x7a,0x74,0x72,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,
+0x79,0x7a,0x7b,0x7c,0x7c,0x7a,0x78,0x76,0x76,0x77,0x77,0x78,0x79,0x7a,0x7a,0x7a,
+0x78,0x7b,0x80,0x86,0x8b,0x90,0x93,0x94,0x93,0x93,0x94,0x94,0x93,0x92,0x90,0x8f,
+0x91,0x90,0x8e,0x8c,0x8a,0x89,0x87,0x86,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x85,0x83,0x81,0x80,0x80,0x82,0x85,0x86,
+0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x84,0x84,0x83,0x83,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7f,0x80,0x80,0x81,0x80,0x7f,0x7e,0x7e,
+0x7c,0x7c,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,
+0x7a,0x7c,0x7e,0x7f,0x7e,0x7d,0x7a,0x78,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x76,
+0x77,0x78,0x79,0x7b,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7c,0x7b,0x7a,0x78,0x76,0x75,
+0x6f,0x6e,0x6f,0x6f,0x71,0x72,0x74,0x75,0x72,0x72,0x72,0x72,0x72,0x72,0x72,0x72,
+0x75,0x75,0x76,0x77,0x77,0x78,0x78,0x79,0x7f,0x7c,0x79,0x7a,0x80,0x8c,0x98,0xa0,
+0xa8,0xa8,0xa9,0xaa,0xaa,0xa9,0xa8,0xa8,0xa7,0xa7,0xa8,0xa9,0xab,0xac,0xad,0xae,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xad,0xad,0xac,0xa8,0xa0,0x95,0x8b,0x84,
+0x7b,0x7d,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x7f,0x7f,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7a,0x78,0x77,0x77,0x78,0x7a,0x7b,0x7d,0x80,0x84,0x8a,0x8e,0x90,0x91,0x92,
+0x93,0x93,0x93,0x92,0x91,0x91,0x90,0x90,0x88,0x86,0x81,0x7c,0x76,0x72,0x70,0x6e,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,
+0x78,0x79,0x7b,0x7c,0x7c,0x7a,0x78,0x77,0x76,0x76,0x76,0x77,0x78,0x79,0x79,0x7a,
+0x7f,0x81,0x85,0x8a,0x8e,0x91,0x93,0x93,0x93,0x93,0x94,0x94,0x93,0x92,0x90,0x8f,
+0x90,0x8f,0x8e,0x8c,0x8a,0x88,0x87,0x86,0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x85,0x84,0x82,0x81,0x82,0x83,0x85,0x87,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,
+0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7e,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7c,0x79,0x77,0x76,0x77,0x78,0x79,
+0x7b,0x7e,0x81,0x84,0x84,0x80,0x7c,0x79,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,
+0x79,0x7a,0x7c,0x7d,0x7e,0x7e,0x7e,0x7e,0x7d,0x7e,0x7d,0x7d,0x7b,0x79,0x77,0x76,
+0x70,0x71,0x72,0x73,0x75,0x77,0x78,0x79,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x74,
+0x76,0x77,0x78,0x79,0x79,0x79,0x79,0x79,0x7d,0x7c,0x7b,0x7e,0x87,0x94,0xa1,0xa9,
+0xab,0xab,0xab,0xaa,0xaa,0xa9,0xa8,0xa7,0xa7,0xa8,0xa9,0xaa,0xab,0xad,0xae,0xae,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xb0,0xac,0xa9,0xab,0xac,0xa5,0x96,0x8a,
+0x7d,0x7d,0x7d,0x7f,0x81,0x82,0x80,0x7e,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,
+0x83,0x81,0x7f,0x7c,0x7b,0x7a,0x7a,0x7a,0x7c,0x7c,0x7d,0x7d,0x7d,0x7b,0x79,0x78,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x79,0x78,0x76,0x73,0x72,0x71,0x71,0x71,
+0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x75,
+0x78,0x79,0x7b,0x7c,0x7c,0x7b,0x79,0x77,0x76,0x76,0x76,0x77,0x78,0x7a,0x7b,0x7c,
+0x87,0x88,0x8b,0x8e,0x90,0x92,0x93,0x93,0x93,0x93,0x94,0x94,0x93,0x92,0x90,0x8f,
+0x90,0x8f,0x8d,0x8b,0x89,0x87,0x86,0x85,0x83,0x83,0x84,0x85,0x86,0x87,0x88,0x88,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x85,0x84,0x83,0x83,0x83,0x84,0x86,0x87,
+0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x83,0x83,0x83,
+0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,0x7b,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7e,0x7e,
+0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7c,0x79,0x77,0x77,0x77,0x79,0x7a,
+0x7d,0x7f,0x83,0x86,0x85,0x82,0x7e,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7a,0x7c,0x7d,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x7d,0x7b,0x79,0x78,
+0x75,0x76,0x78,0x79,0x7b,0x7d,0x7e,0x7e,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x78,0x79,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,0x7b,0x7b,0x7e,0x84,0x8e,0x9a,0xa6,0xad,
+0xae,0xad,0xac,0xaa,0xa9,0xa8,0xa7,0xa7,0xa8,0xa9,0xa9,0xab,0xac,0xad,0xae,0xaf,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xb1,0xac,0xa9,0xad,0xb2,0xaf,0xa1,0x93,
+0x85,0x81,0x7d,0x7e,0x81,0x83,0x80,0x7d,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x80,0x7f,0x7e,0x7d,0x7d,0x7c,0x7d,0x7d,0x7a,0x7a,0x7a,0x79,0x78,0x76,0x74,0x74,
+0x74,0x74,0x74,0x73,0x72,0x72,0x71,0x71,0x74,0x74,0x73,0x73,0x74,0x75,0x76,0x77,
+0x73,0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x73,0x73,0x73,0x74,0x74,0x74,0x75,0x75,
+0x77,0x79,0x7b,0x7c,0x7c,0x7b,0x79,0x78,0x78,0x78,0x78,0x79,0x7b,0x7e,0x81,0x83,
+0x8d,0x8e,0x90,0x92,0x93,0x93,0x93,0x92,0x93,0x93,0x94,0x94,0x93,0x92,0x90,0x8f,
+0x8f,0x8e,0x8d,0x8b,0x89,0x87,0x85,0x84,0x83,0x83,0x84,0x85,0x86,0x87,0x88,0x88,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x85,0x85,0x85,0x85,0x85,0x86,0x87,0x87,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,
+0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x7e,0x7e,0x7d,0x7c,0x7b,0x7c,0x7c,0x7d,
+0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7b,0x7c,0x7a,0x79,0x77,0x77,0x79,0x7b,0x7c,
+0x7f,0x81,0x82,0x84,0x83,0x81,0x7f,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7c,0x7e,0x80,0x81,0x81,0x81,0x81,0x7f,0x7f,0x7f,0x80,0x7f,0x7e,0x7c,0x7b,
+0x79,0x7a,0x7c,0x7e,0x7f,0x80,0x80,0x80,0x81,0x81,0x80,0x7f,0x7f,0x7e,0x7e,0x7d,
+0x7b,0x7c,0x7e,0x7f,0x7f,0x7e,0x7c,0x7b,0x79,0x7d,0x84,0x8d,0x97,0xa1,0xaa,0xae,
+0xae,0xad,0xab,0xa9,0xa8,0xa7,0xa7,0xa7,0xa9,0xa9,0xaa,0xab,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xb1,0xad,0xaa,0xae,0xb2,0xb1,0xa8,0x9f,
+0x92,0x89,0x7f,0x7c,0x80,0x83,0x81,0x7d,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,
+0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x79,0x73,0x74,0x76,0x78,0x7a,0x7c,0x7d,0x7e,
+0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x75,0x75,0x75,0x75,0x77,0x78,0x79,
+0x74,0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,
+0x77,0x78,0x7a,0x7c,0x7c,0x7b,0x79,0x78,0x7a,0x7a,0x7b,0x7d,0x80,0x84,0x89,0x8b,
+0x92,0x92,0x93,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x94,0x94,0x93,0x92,0x90,0x8f,
+0x8e,0x8d,0x8c,0x8a,0x88,0x86,0x85,0x84,0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x87,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x87,0x87,0x87,0x86,0x85,0x85,0x84,0x84,0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x88,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x7d,0x7c,0x7b,0x79,0x79,0x7a,0x7b,0x7b,
+0x7c,0x7d,0x7e,0x7e,0x7e,0x7c,0x7a,0x79,0x7a,0x79,0x78,0x77,0x78,0x7a,0x7c,0x7e,
+0x81,0x81,0x81,0x80,0x80,0x80,0x80,0x80,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7c,0x7d,0x7e,0x80,0x81,0x81,0x81,0x81,0x7e,0x7f,0x80,0x80,0x80,0x80,0x7f,0x7e,
+0x7a,0x7b,0x7d,0x7f,0x80,0x7f,0x7f,0x7e,0x83,0x83,0x82,0x81,0x81,0x80,0x7f,0x7f,
+0x7d,0x7e,0x81,0x82,0x82,0x80,0x7e,0x7c,0x7b,0x82,0x8c,0x98,0xa3,0xaa,0xad,0xaf,
+0xad,0xac,0xaa,0xa8,0xa7,0xa7,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xaf,0xb0,0xb0,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xb0,0xae,0xad,0xae,0xae,0xae,0xac,0xab,
+0xa0,0x92,0x82,0x7b,0x7e,0x82,0x82,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,
+0x78,0x78,0x79,0x79,0x79,0x78,0x78,0x78,0x75,0x75,0x76,0x77,0x79,0x7b,0x7c,0x7d,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x76,0x76,0x74,0x74,0x73,0x74,0x74,0x75,
+0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,
+0x76,0x78,0x7a,0x7c,0x7c,0x7b,0x7a,0x79,0x7c,0x7d,0x7e,0x80,0x85,0x8b,0x91,0x94,
+0x94,0x94,0x95,0x96,0x96,0x95,0x94,0x93,0x93,0x93,0x94,0x94,0x93,0x92,0x90,0x8f,
+0x8e,0x8d,0x8b,0x8a,0x87,0x86,0x84,0x83,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x84,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x87,0x87,0x88,0x88,0x88,0x88,
+0x89,0x88,0x88,0x87,0x86,0x86,0x85,0x85,0x84,0x84,0x85,0x85,0x86,0x86,0x87,0x87,
+0x7d,0x7c,0x7c,0x7b,0x7a,0x79,0x79,0x78,0x7c,0x7b,0x79,0x78,0x78,0x78,0x7a,0x7b,
+0x7d,0x7e,0x7f,0x7f,0x7e,0x7c,0x79,0x78,0x79,0x78,0x77,0x77,0x78,0x7b,0x7e,0x80,
+0x83,0x81,0x7f,0x7d,0x7d,0x7e,0x80,0x81,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7c,0x7d,0x7e,0x80,0x81,0x81,0x81,0x81,0x7d,0x7e,0x80,0x81,0x81,0x81,0x81,0x80,
+0x7a,0x7b,0x7c,0x7e,0x7e,0x7d,0x7c,0x7b,0x83,0x83,0x82,0x81,0x80,0x80,0x7f,0x7f,
+0x7e,0x80,0x82,0x84,0x84,0x82,0x7f,0x7d,0x7e,0x86,0x93,0xa1,0xab,0xaf,0xb0,0xb0,
+0xac,0xab,0xa9,0xa7,0xa6,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xae,0xaf,0xb0,0xb0,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xb0,0xaf,0xad,0xab,0xab,0xae,0xb1,
+0xa9,0x97,0x83,0x7a,0x7c,0x82,0x82,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
+0x82,0x82,0x81,0x80,0x7f,0x7e,0x7c,0x7b,0x7f,0x7d,0x7b,0x78,0x75,0x73,0x72,0x71,
+0x75,0x75,0x75,0x74,0x73,0x73,0x72,0x72,0x76,0x75,0x73,0x71,0x70,0x6f,0x70,0x70,
+0x74,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x72,0x73,0x73,0x73,0x73,0x74,0x74,0x74,
+0x76,0x78,0x7a,0x7c,0x7c,0x7c,0x7a,0x79,0x7e,0x7e,0x80,0x83,0x88,0x8f,0x95,0x99,
+0x95,0x95,0x96,0x96,0x96,0x95,0x94,0x93,0x93,0x93,0x94,0x94,0x93,0x92,0x90,0x8f,
+0x8d,0x8d,0x8b,0x89,0x87,0x85,0x84,0x83,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,
+0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x87,0x87,0x88,0x88,0x88,0x88,0x88,
+0x8a,0x89,0x89,0x88,0x87,0x86,0x85,0x85,0x81,0x82,0x82,0x83,0x83,0x84,0x84,0x84,
+0x7c,0x7b,0x79,0x77,0x77,0x77,0x78,0x79,0x7a,0x79,0x77,0x76,0x76,0x76,0x78,0x78,
+0x7a,0x7c,0x7f,0x82,0x83,0x82,0x80,0x7f,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,
+0x7a,0x7b,0x7b,0x7d,0x7e,0x7f,0x80,0x80,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x7a,0x7b,0x7d,0x7e,0x7f,0x7f,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7b,0x7b,0x7b,0x7c,0x7d,0x7f,0x82,0x83,0x83,0x83,0x84,0x83,0x82,0x81,0x7f,0x7e,
+0x7c,0x7f,0x82,0x82,0x80,0x7e,0x7f,0x81,0x84,0x8c,0x99,0xa6,0xaf,0xb1,0xb0,0xae,
+0xab,0xaa,0xa9,0xa8,0xa8,0xa8,0xa9,0xa9,0xaa,0xab,0xac,0xac,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0xb2,0xa4,0x92,0x86,0x82,0x81,0x7f,0x7d,0x82,0x81,0x81,0x81,0x80,0x7f,0x7f,0x7f,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x78,0x77,0x77,0x76,0x75,0x75,0x74,0x74,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x7a,0x78,0x7c,0x84,0x8b,0x91,0x93,0x94,0x93,
+0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x94,0x94,0x93,0x92,0x91,0x90,0x8f,0x8f,
+0x8d,0x8c,0x8a,0x88,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x83,0x83,0x82,0x82,
+0x85,0x86,0x86,0x87,0x86,0x85,0x83,0x83,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,
+0x88,0x88,0x88,0x87,0x86,0x83,0x81,0x80,0x82,0x82,0x84,0x85,0x85,0x85,0x84,0x83,
+0x7b,0x79,0x78,0x77,0x76,0x77,0x77,0x78,0x79,0x78,0x77,0x76,0x75,0x76,0x77,0x78,
+0x7a,0x7c,0x7f,0x81,0x82,0x81,0x7f,0x7e,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,
+0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x7c,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,
+0x79,0x7a,0x7c,0x7d,0x7e,0x7e,0x7d,0x7d,0x7e,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,
+0x7b,0x7b,0x7b,0x7b,0x7c,0x7e,0x80,0x81,0x82,0x83,0x83,0x83,0x82,0x81,0x7f,0x7e,
+0x7c,0x7f,0x82,0x82,0x7f,0x7e,0x7f,0x81,0x83,0x8c,0x99,0xa6,0xae,0xb1,0xb0,0xae,
+0xaa,0xa9,0xa8,0xa8,0xa8,0xa8,0xa9,0xa9,0xaa,0xab,0xac,0xac,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0xb0,0xa7,0x9a,0x8c,0x83,0x7f,0x7f,0x80,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x78,0x78,0x78,0x77,0x76,0x76,0x75,0x75,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x76,0x77,0x79,0x7b,0x7c,0x7c,0x7c,0x7b,0x80,0x83,0x8a,0x90,0x94,0x96,0x96,0x95,
+0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x92,0x91,0x90,0x8f,0x8e,
+0x8c,0x8b,0x89,0x87,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,
+0x85,0x86,0x87,0x87,0x86,0x85,0x84,0x83,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,
+0x87,0x87,0x88,0x87,0x86,0x84,0x83,0x82,0x82,0x83,0x84,0x85,0x85,0x85,0x84,0x84,
+0x78,0x78,0x77,0x76,0x75,0x76,0x76,0x77,0x78,0x77,0x76,0x75,0x75,0x75,0x76,0x76,
+0x7a,0x7b,0x7d,0x7f,0x80,0x7f,0x7e,0x7d,0x83,0x82,0x81,0x7f,0x7e,0x7c,0x7b,0x7a,
+0x79,0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7e,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,
+0x7c,0x7b,0x7b,0x7a,0x7b,0x7c,0x7d,0x7e,0x82,0x82,0x82,0x82,0x82,0x80,0x7f,0x7e,
+0x7c,0x7f,0x82,0x82,0x7f,0x7d,0x7e,0x80,0x82,0x8a,0x98,0xa6,0xae,0xb1,0xaf,0xad,
+0xaa,0xa9,0xa8,0xa7,0xa7,0xa8,0xa9,0xaa,0xaa,0xab,0xac,0xac,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0xae,0xad,0xa5,0x97,0x86,0x7d,0x7e,0x83,0x81,0x81,0x80,0x80,0x80,0x7f,0x7f,0x7f,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x77,0x77,0x76,0x76,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x75,0x77,0x79,0x7b,0x7d,0x7e,0x7e,0x7e,0x89,0x8c,0x91,0x95,0x97,0x98,0x97,0x96,
+0x96,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8e,
+0x8b,0x8a,0x88,0x86,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x86,0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x86,0x86,0x87,0x87,0x87,0x86,0x84,0x84,0x83,0x84,0x85,0x86,0x86,0x86,0x85,0x84,
+0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x76,0x76,0x75,0x75,0x75,0x75,
+0x79,0x7a,0x7c,0x7d,0x7e,0x7d,0x7c,0x7c,0x82,0x81,0x80,0x7e,0x7c,0x7a,0x78,0x78,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x79,0x79,0x77,0x76,0x76,0x76,0x76,0x76,
+0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7e,
+0x7c,0x7c,0x7b,0x7a,0x79,0x7a,0x7b,0x7b,0x80,0x81,0x81,0x82,0x81,0x80,0x7f,0x7e,
+0x7c,0x7f,0x82,0x81,0x7e,0x7c,0x7d,0x7f,0x80,0x89,0x97,0xa5,0xae,0xb0,0xaf,0xac,
+0xa9,0xa8,0xa7,0xa7,0xa7,0xa8,0xa9,0xaa,0xaa,0xab,0xac,0xac,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+0xac,0xb1,0xb0,0xa1,0x8c,0x7e,0x7f,0x85,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,
+0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x75,0x74,0x74,0x74,0x74,0x74,0x73,0x73,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x74,0x76,0x79,0x7d,0x7f,0x81,0x83,0x83,0x90,0x92,0x95,0x97,0x97,0x97,0x95,0x94,
+0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x92,0x91,0x90,0x8f,0x8e,0x8e,0x8d,
+0x89,0x88,0x86,0x85,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x87,0x88,0x88,0x88,
+0x86,0x86,0x87,0x88,0x88,0x87,0x86,0x85,0x88,0x88,0x88,0x87,0x87,0x87,0x87,0x87,
+0x84,0x85,0x86,0x87,0x87,0x87,0x86,0x86,0x84,0x85,0x86,0x87,0x87,0x87,0x86,0x85,
+0x75,0x75,0x75,0x76,0x76,0x76,0x75,0x75,0x77,0x77,0x77,0x77,0x76,0x76,0x75,0x75,
+0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x7a,0x7e,0x7d,0x7c,0x7a,0x78,0x76,0x74,0x74,
+0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x76,0x74,0x73,0x73,0x74,0x75,
+0x76,0x77,0x78,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7d,0x7c,0x7b,0x79,0x79,0x79,0x7a,0x7a,0x7f,0x80,0x80,0x81,0x81,0x80,0x7f,0x7e,
+0x7c,0x7f,0x81,0x81,0x7d,0x7b,0x7c,0x7e,0x7d,0x87,0x96,0xa5,0xae,0xb0,0xae,0xab,
+0xa8,0xa7,0xa7,0xa6,0xa7,0xa8,0xa9,0xaa,0xaa,0xab,0xac,0xac,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+0xac,0xb4,0xb6,0xaa,0x94,0x84,0x80,0x84,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,
+0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x73,0x73,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x74,0x77,0x7a,0x7f,0x83,0x86,0x88,0x89,0x92,0x93,0x94,0x95,0x95,0x94,0x92,0x91,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x92,0x91,0x91,0x90,0x8f,0x8e,0x8d,0x8d,
+0x88,0x87,0x86,0x84,0x83,0x83,0x83,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x89,
+0x86,0x86,0x88,0x88,0x88,0x88,0x87,0x86,0x89,0x89,0x88,0x88,0x87,0x87,0x87,0x87,
+0x84,0x85,0x86,0x87,0x88,0x88,0x87,0x87,0x85,0x86,0x87,0x88,0x88,0x88,0x87,0x86,
+0x74,0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x77,0x78,0x78,0x78,0x78,0x77,0x76,0x75,
+0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x78,0x7a,0x79,0x78,0x77,0x75,0x73,0x72,0x72,
+0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x77,0x75,0x73,0x72,0x72,0x73,0x74,
+0x76,0x77,0x78,0x7a,0x7a,0x7a,0x7a,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7c,0x7c,0x7b,0x7a,0x79,0x7a,0x7b,0x7b,0x7e,0x7f,0x7f,0x80,0x80,0x7f,0x7e,0x7e,
+0x7c,0x7f,0x81,0x80,0x7d,0x7a,0x7b,0x7c,0x7b,0x85,0x95,0xa4,0xae,0xb0,0xad,0xaa,
+0xa7,0xa7,0xa6,0xa6,0xa7,0xa8,0xa9,0xaa,0xaa,0xab,0xac,0xac,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+0xae,0xb4,0xb6,0xae,0x9d,0x8c,0x83,0x80,0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x80,0x80,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x75,0x74,0x74,0x73,0x73,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x75,0x78,0x7c,0x81,0x86,0x8b,0x8d,0x8e,0x91,0x92,0x93,0x93,0x93,0x92,0x91,0x90,
+0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x91,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8c,
+0x88,0x87,0x86,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x86,0x87,0x88,0x89,0x89,0x89,0x88,0x88,0x8a,0x89,0x89,0x88,0x88,0x87,0x87,0x86,
+0x85,0x86,0x87,0x88,0x88,0x88,0x87,0x86,0x86,0x86,0x88,0x89,0x89,0x89,0x88,0x87,
+0x74,0x75,0x76,0x78,0x78,0x78,0x77,0x76,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x77,0x76,
+0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x79,0x78,0x77,0x76,0x75,0x74,0x74,0x73,
+0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x7a,0x78,0x75,0x72,0x71,0x71,0x73,0x74,
+0x76,0x77,0x79,0x7a,0x7b,0x7b,0x7a,0x7a,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,
+0x7c,0x7b,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7d,0x7e,0x7f,0x80,0x80,0x7f,0x7e,0x7e,
+0x7c,0x7e,0x81,0x80,0x7c,0x79,0x7a,0x7b,0x79,0x84,0x94,0xa4,0xae,0xaf,0xac,0xa9,
+0xa6,0xa6,0xa6,0xa6,0xa7,0xa8,0xa9,0xaa,0xaa,0xab,0xac,0xac,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,
+0xb0,0xb2,0xb3,0xaf,0xa5,0x96,0x85,0x7b,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x80,0x80,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x77,0x77,0x76,
+0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x77,0x77,0x76,0x75,0x74,0x74,0x73,0x73,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x76,0x79,0x7e,0x84,0x8a,0x8f,0x92,0x93,0x91,0x92,0x93,0x94,0x94,0x94,0x93,0x93,
+0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,0x91,0x90,0x90,0x8f,0x8e,0x8d,0x8c,0x8c,
+0x88,0x88,0x86,0x85,0x85,0x85,0x85,0x86,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x86,0x87,0x88,0x89,0x8a,0x8a,0x89,0x88,0x8a,0x8a,0x89,0x89,0x88,0x87,0x86,0x86,
+0x86,0x87,0x88,0x88,0x88,0x87,0x86,0x85,0x86,0x87,0x88,0x89,0x8a,0x89,0x89,0x88,
+0x74,0x75,0x77,0x78,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x78,0x77,
+0x78,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x7a,0x78,0x75,0x72,0x70,0x71,0x73,0x74,
+0x77,0x78,0x79,0x7b,0x7b,0x7b,0x7b,0x7a,0x7b,0x7b,0x7a,0x79,0x78,0x76,0x75,0x75,
+0x7c,0x7b,0x7b,0x7a,0x7b,0x7c,0x7d,0x7e,0x7d,0x7d,0x7e,0x7f,0x80,0x7f,0x7e,0x7e,
+0x7b,0x7e,0x81,0x7f,0x7c,0x79,0x79,0x7b,0x79,0x83,0x94,0xa4,0xae,0xaf,0xac,0xa9,
+0xa6,0xa6,0xa5,0xa6,0xa6,0xa8,0xaa,0xab,0xaa,0xab,0xac,0xac,0xad,0xae,0xaf,0xb0,
+0xaf,0xaf,0xaf,0xae,0xae,0xae,0xad,0xad,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,
+0xb2,0xb1,0xb0,0xaf,0xaa,0x9c,0x87,0x77,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x80,
+0x7e,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7f,0x7e,0x7e,0x7d,0x7d,0x7c,0x7b,0x7b,0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x77,0x77,0x76,0x75,0x75,0x74,0x73,0x73,
+0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,
+0x76,0x7a,0x7f,0x85,0x8c,0x91,0x94,0x96,0x92,0x93,0x94,0x95,0x96,0x96,0x96,0x96,
+0x95,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x90,0x90,0x8f,0x8e,0x8d,0x8c,0x8c,0x8b,
+0x89,0x88,0x87,0x86,0x85,0x85,0x86,0x87,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x86,0x86,0x85,0x84,0x84,0x84,
+0x86,0x87,0x88,0x89,0x8a,0x8a,0x89,0x89,0x8b,0x8a,0x8a,0x89,0x88,0x87,0x86,0x86,
+0x87,0x88,0x88,0x89,0x88,0x87,0x86,0x85,0x87,0x88,0x89,0x8a,0x8a,0x8a,0x89,0x89,
+0x78,0x79,0x7b,0x7c,0x7b,0x78,0x75,0x73,0x78,0x79,0x7a,0x7b,0x7b,0x79,0x77,0x75,
+0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,
+0x75,0x76,0x78,0x7a,0x7a,0x79,0x78,0x77,0x78,0x78,0x78,0x78,0x77,0x76,0x75,0x74,
+0x76,0x77,0x78,0x79,0x79,0x78,0x78,0x77,0x79,0x7b,0x7d,0x7e,0x7d,0x7a,0x77,0x75,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7a,0x7b,0x7d,0x7f,0x80,0x81,0x81,0x80,
+0x7a,0x7b,0x7d,0x7f,0x7f,0x7e,0x7d,0x7c,0x79,0x7b,0x8d,0xa7,0xb3,0xac,0xa4,0xa4,
+0xa7,0xa7,0xa8,0xa8,0xa9,0xa9,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0xac,0xac,0xad,0xad,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xaf,0xb0,0xb1,0xb2,0xb2,0xb3,
+0xae,0xb4,0xb4,0xae,0xab,0xa6,0x93,0x7c,0x7b,0x7b,0x7c,0x7c,0x7e,0x7f,0x80,0x81,
+0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7d,0x7e,0x7f,0x80,0x80,0x80,0x7f,0x7e,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x7a,0x7a,0x79,0x79,0x78,0x77,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x73,0x73,
+0x74,0x7c,0x87,0x8f,0x91,0x92,0x92,0x93,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,
+0x93,0x93,0x93,0x92,0x91,0x91,0x90,0x90,0x91,0x90,0x8f,0x8d,0x8c,0x8b,0x8b,0x8b,
+0x89,0x85,0x83,0x83,0x86,0x88,0x87,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x87,0x87,0x87,0x85,0x83,0x82,
+0x87,0x87,0x87,0x88,0x88,0x88,0x89,0x89,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x85,0x86,0x86,0x87,0x88,0x89,0x8a,0x8a,0x89,0x89,0x88,0x88,0x87,0x87,0x86,0x86,
+0x77,0x78,0x7a,0x7a,0x7a,0x77,0x74,0x73,0x78,0x79,0x7a,0x7b,0x7b,0x79,0x77,0x75,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,
+0x75,0x76,0x78,0x79,0x7a,0x79,0x78,0x77,0x79,0x79,0x78,0x78,0x77,0x76,0x75,0x75,
+0x76,0x77,0x78,0x79,0x79,0x78,0x78,0x77,0x7a,0x7b,0x7d,0x7e,0x7d,0x7b,0x78,0x76,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7a,0x7b,0x7d,0x7e,0x80,0x80,0x80,0x80,
+0x7a,0x7b,0x7d,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7c,0x8b,0xa3,0xaf,0xaa,0xa4,0xa5,
+0xa7,0xa7,0xa8,0xa8,0xa9,0xa9,0xaa,0xaa,0xaa,0xaa,0xab,0xab,0xac,0xad,0xad,0xad,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xaf,0xb0,0xb1,0xb1,0xb2,0xb2,
+0xae,0xb4,0xb4,0xae,0xac,0xa8,0x95,0x7f,0x7c,0x7c,0x7c,0x7c,0x7d,0x7f,0x80,0x81,
+0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x7e,0x7e,0x7f,0x80,0x80,0x80,0x7f,0x7e,0x7f,0x7f,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x76,0x7e,0x89,0x90,0x92,0x92,0x93,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x93,0x93,0x93,0x92,0x91,0x91,0x90,0x90,0x90,0x90,0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,
+0x88,0x85,0x82,0x83,0x86,0x88,0x87,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x87,0x87,0x87,0x85,0x84,0x83,
+0x88,0x88,0x88,0x88,0x88,0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x85,0x86,0x86,0x87,0x88,0x89,0x89,0x8a,0x88,0x88,0x88,0x87,0x87,0x86,0x86,0x86,
+0x75,0x76,0x78,0x78,0x78,0x76,0x74,0x72,0x77,0x78,0x7a,0x7b,0x7a,0x79,0x77,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,
+0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x76,
+0x77,0x78,0x78,0x79,0x79,0x78,0x77,0x77,0x7b,0x7c,0x7d,0x7e,0x7d,0x7b,0x79,0x77,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x79,0x7a,0x7c,0x7e,0x7f,0x7f,0x7f,0x7e,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7c,0x7e,0x7c,0x88,0x9e,0xaa,0xa7,0xa5,0xa8,
+0xa8,0xa8,0xa8,0xa9,0xa9,0xa9,0xa9,0xaa,0xaa,0xaa,0xab,0xac,0xac,0xad,0xad,0xae,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xaf,0xaf,0xb0,0xb0,0xb1,0xb1,0xb2,
+0xaf,0xb5,0xb5,0xaf,0xae,0xab,0x9a,0x85,0x7d,0x7d,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,
+0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x7e,0x7f,0x80,0x81,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7d,0x7c,0x7b,0x7a,0x7a,0x79,
+0x7c,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x75,
+0x7a,0x82,0x8b,0x92,0x93,0x93,0x93,0x94,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x93,0x93,0x92,0x92,0x91,0x90,0x90,0x90,0x8f,0x8f,0x8e,0x8d,0x8b,0x8a,0x89,0x88,
+0x86,0x83,0x81,0x82,0x85,0x87,0x87,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x86,0x85,0x84,
+0x89,0x89,0x88,0x88,0x87,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x86,0x86,0x86,0x87,0x88,0x88,0x89,0x89,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x74,0x75,0x76,0x76,0x76,0x75,0x73,0x72,0x76,0x77,0x79,0x7a,0x7a,0x79,0x77,0x75,
+0x74,0x74,0x74,0x74,0x74,0x73,0x73,0x73,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,
+0x77,0x77,0x78,0x78,0x78,0x79,0x78,0x78,0x7a,0x79,0x78,0x78,0x77,0x77,0x77,0x78,
+0x78,0x78,0x79,0x7a,0x79,0x78,0x77,0x77,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7a,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7b,0x7b,0x80,0x7d,0x85,0x9a,0xa6,0xa5,0xa5,0xab,
+0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xaa,0xab,0xab,0xac,0xad,0xad,0xae,0xae,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xae,0xaf,0xaf,0xaf,0xb0,0xb0,0xb1,0xb1,
+0xb0,0xb5,0xb4,0xaf,0xaf,0xae,0x9f,0x8c,0x7f,0x7e,0x7c,0x7b,0x7c,0x7d,0x7f,0x80,
+0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7f,0x80,0x80,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,0x77,0x76,0x76,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x79,0x78,0x78,0x78,0x77,0x77,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x75,0x76,0x77,0x78,
+0x7f,0x86,0x8e,0x93,0x94,0x93,0x94,0x95,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x93,0x93,0x92,0x91,0x91,0x90,0x90,0x8f,0x8e,0x8e,0x8e,0x8d,0x8b,0x89,0x87,0x86,
+0x83,0x81,0x7f,0x80,0x84,0x87,0x87,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,
+0x8a,0x89,0x89,0x88,0x86,0x86,0x85,0x84,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x86,0x86,0x86,0x87,0x87,0x88,0x88,0x88,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,
+0x74,0x74,0x75,0x75,0x75,0x74,0x73,0x73,0x75,0x77,0x78,0x7a,0x7a,0x79,0x77,0x76,
+0x75,0x74,0x74,0x74,0x73,0x73,0x72,0x72,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,
+0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x7b,0x7a,0x79,0x77,0x77,0x78,0x79,0x7a,
+0x79,0x79,0x7a,0x7a,0x7a,0x78,0x77,0x76,0x7b,0x7b,0x7c,0x7c,0x7c,0x7b,0x7b,0x7a,
+0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,
+0x79,0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x81,0x7d,0x84,0x98,0xa4,0xa4,0xa5,0xac,
+0xaa,0xaa,0xaa,0xa9,0xa9,0xa9,0xa9,0xa9,0xab,0xab,0xac,0xac,0xad,0xae,0xae,0xae,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xb0,0xb0,0xb0,
+0xaf,0xb4,0xb4,0xaf,0xb0,0xb2,0xa5,0x92,0x81,0x7f,0x7d,0x7b,0x7b,0x7c,0x7e,0x80,
+0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7f,0x7f,0x80,0x80,0x80,0x7f,0x7d,0x7d,0x7b,0x7b,0x7a,0x78,0x77,0x76,0x75,0x74,
+0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x73,0x74,0x75,0x77,0x79,0x7a,
+0x83,0x89,0x91,0x94,0x94,0x93,0x94,0x95,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
+0x92,0x92,0x92,0x91,0x90,0x90,0x8f,0x8f,0x8d,0x8d,0x8d,0x8d,0x8b,0x88,0x86,0x84,
+0x81,0x7e,0x7d,0x7e,0x83,0x86,0x86,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,
+0x89,0x89,0x88,0x87,0x86,0x85,0x84,0x84,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x76,0x78,0x79,0x7a,0x79,0x77,0x76,
+0x75,0x75,0x75,0x74,0x73,0x73,0x72,0x72,0x74,0x74,0x75,0x75,0x75,0x76,0x76,0x76,
+0x78,0x78,0x77,0x77,0x77,0x78,0x79,0x7a,0x7c,0x7a,0x79,0x77,0x77,0x79,0x7a,0x7c,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x78,0x77,0x76,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,
+0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x79,
+0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7b,0x81,0x7d,0x85,0x99,0xa5,0xa5,0xa5,0xab,
+0xab,0xaa,0xaa,0xaa,0xaa,0xa9,0xa9,0xa9,0xab,0xab,0xac,0xac,0xad,0xae,0xae,0xaf,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+0xae,0xb3,0xb2,0xae,0xb0,0xb4,0xa9,0x98,0x82,0x80,0x7d,0x7a,0x7a,0x7b,0x7d,0x7f,
+0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x74,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x73,0x73,0x75,0x78,0x7b,0x7d,
+0x87,0x8c,0x92,0x95,0x94,0x92,0x93,0x94,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x92,0x92,0x91,0x91,0x90,0x8f,0x8f,0x8f,0x8c,0x8d,0x8d,0x8c,0x8a,0x87,0x84,0x82,
+0x7f,0x7c,0x7b,0x7d,0x82,0x85,0x86,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x87,0x86,0x86,0x86,0x86,0x87,0x88,0x89,
+0x88,0x88,0x87,0x87,0x86,0x85,0x85,0x85,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x74,0x75,0x77,0x79,0x7a,0x79,0x77,0x76,
+0x77,0x76,0x76,0x75,0x74,0x73,0x73,0x72,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x78,
+0x79,0x78,0x77,0x76,0x76,0x78,0x79,0x7a,0x7c,0x7b,0x79,0x77,0x77,0x79,0x7b,0x7d,
+0x7a,0x7b,0x7b,0x7b,0x7a,0x78,0x77,0x76,0x79,0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,
+0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x77,
+0x79,0x78,0x77,0x76,0x77,0x78,0x7a,0x7b,0x7f,0x7d,0x87,0x9c,0xa8,0xa6,0xa5,0xaa,
+0xab,0xab,0xab,0xaa,0xaa,0xa9,0xa9,0xa9,0xab,0xac,0xac,0xad,0xad,0xae,0xaf,0xaf,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xae,0xae,
+0xad,0xb2,0xb1,0xac,0xb0,0xb5,0xac,0x9b,0x84,0x81,0x7d,0x7a,0x79,0x7b,0x7d,0x7f,
+0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7d,0x7d,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x76,0x76,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x73,0x73,0x75,0x79,0x7c,0x7f,
+0x89,0x8e,0x93,0x95,0x93,0x91,0x92,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x92,0x92,0x91,0x90,0x90,0x8f,0x8f,0x8e,0x8b,0x8c,0x8d,0x8c,0x8a,0x86,0x83,0x80,
+0x7d,0x7b,0x79,0x7c,0x81,0x85,0x86,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x87,0x87,0x86,0x85,0x86,0x87,0x89,0x8a,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x87,
+0x75,0x75,0x74,0x74,0x74,0x75,0x76,0x76,0x73,0x75,0x77,0x79,0x7a,0x79,0x77,0x76,
+0x77,0x77,0x76,0x75,0x75,0x74,0x73,0x73,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x79,
+0x79,0x78,0x77,0x76,0x76,0x78,0x79,0x7b,0x7d,0x7b,0x79,0x77,0x77,0x79,0x7c,0x7e,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x77,0x76,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x7a,
+0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,0x76,0x77,0x78,0x79,0x79,0x78,0x77,0x77,
+0x79,0x78,0x77,0x76,0x76,0x77,0x79,0x7a,0x7e,0x7d,0x88,0x9e,0xaa,0xa7,0xa5,0xa9,
+0xac,0xab,0xab,0xaa,0xaa,0xa9,0xa9,0xa9,0xab,0xac,0xac,0xad,0xae,0xae,0xaf,0xaf,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xaf,0xae,0xae,0xae,0xae,
+0xad,0xb1,0xb0,0xac,0xb0,0xb5,0xad,0x9d,0x84,0x82,0x7d,0x7a,0x79,0x7a,0x7d,0x7f,
+0x7e,0x7e,0x7e,0x7f,0x7f,0x7f,0x7f,0x80,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7d,0x7d,0x7d,0x7c,0x7a,0x79,0x78,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x73,0x75,0x74,0x73,0x73,0x75,0x79,0x7d,0x80,
+0x8a,0x8e,0x93,0x94,0x92,0x91,0x91,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
+0x92,0x91,0x91,0x90,0x90,0x8f,0x8f,0x8e,0x8b,0x8c,0x8c,0x8c,0x8a,0x86,0x82,0x7f,
+0x7c,0x7a,0x79,0x7b,0x80,0x85,0x85,0x84,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x87,0x87,0x86,0x85,0x86,0x87,0x89,0x8a,
+0x85,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x87,
+0x74,0x75,0x76,0x77,0x78,0x77,0x75,0x74,0x76,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,
+0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x79,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,
+0x7c,0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x78,0x77,0x76,0x76,0x76,0x77,0x78,0x78,0x73,0x75,0x78,0x7b,0x7c,0x7c,0x7a,0x79,
+0x76,0x77,0x79,0x7b,0x7c,0x7b,0x7b,0x7a,0x7a,0x88,0x99,0xa4,0xa7,0xa8,0xab,0xae,
+0xab,0xab,0xaa,0xaa,0xa9,0xa9,0xa8,0xa8,0xaa,0xab,0xab,0xac,0xad,0xae,0xaf,0xaf,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,
+0xad,0xaf,0xb2,0xb3,0xb2,0xaf,0xab,0xa8,0x94,0x82,0x76,0x7a,0x7d,0x79,0x7a,0x80,
+0x7c,0x7d,0x7f,0x81,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,
+0x7d,0x7d,0x7c,0x7b,0x79,0x78,0x77,0x77,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x77,0x77,0x77,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x72,0x73,0x74,0x73,0x74,0x79,0x81,0x87,
+0x8e,0x8f,0x91,0x92,0x93,0x93,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x91,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8c,0x8e,0x8d,0x8b,0x88,0x85,0x81,0x7e,0x7c,
+0x77,0x79,0x7c,0x80,0x83,0x85,0x87,0x87,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x89,0x89,0x88,0x88,0x87,0x86,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x74,0x75,0x76,0x77,0x78,0x77,0x76,0x75,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,
+0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x77,0x78,0x7a,0x7b,0x7c,0x7b,0x7a,0x7a,
+0x7a,0x7a,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,
+0x7b,0x7a,0x7a,0x79,0x78,0x78,0x78,0x78,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,
+0x79,0x78,0x77,0x76,0x76,0x77,0x78,0x78,0x74,0x76,0x79,0x7b,0x7c,0x7b,0x7a,0x79,
+0x77,0x78,0x7a,0x7b,0x7b,0x7b,0x7a,0x79,0x7d,0x8a,0x9a,0xa5,0xa7,0xa8,0xaa,0xad,
+0xaa,0xaa,0xa9,0xa9,0xa9,0xa9,0xa9,0xa9,0xab,0xab,0xac,0xac,0xad,0xae,0xaf,0xaf,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,
+0xad,0xaf,0xb2,0xb3,0xb2,0xaf,0xac,0xa9,0x95,0x83,0x77,0x79,0x7c,0x79,0x79,0x7f,
+0x7e,0x7f,0x80,0x81,0x81,0x80,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x77,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x72,0x73,0x74,0x73,0x74,0x79,0x81,0x88,
+0x8e,0x8f,0x91,0x92,0x93,0x93,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x91,0x91,0x90,0x8f,0x8e,0x8d,0x8d,0x8c,0x8d,0x8c,0x89,0x86,0x83,0x7f,0x7c,0x7b,
+0x78,0x79,0x7d,0x80,0x83,0x85,0x86,0x87,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x89,0x89,0x88,0x87,0x87,0x86,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,
+0x74,0x75,0x76,0x77,0x77,0x77,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,
+0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,0x76,0x77,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,
+0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7a,0x7a,
+0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7b,0x7a,0x79,0x78,0x77,0x77,0x78,0x78,0x75,0x77,0x79,0x7b,0x7c,0x7b,0x7a,0x79,
+0x79,0x79,0x7a,0x7b,0x7b,0x7a,0x7a,0x79,0x81,0x8d,0x9d,0xa6,0xa7,0xa7,0xaa,0xad,
+0xa7,0xa8,0xa8,0xa9,0xa9,0xaa,0xab,0xab,0xab,0xac,0xac,0xad,0xad,0xae,0xaf,0xaf,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,
+0xad,0xaf,0xb1,0xb3,0xb2,0xaf,0xac,0xaa,0x97,0x84,0x77,0x79,0x7c,0x78,0x79,0x7f,
+0x80,0x80,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,
+0x7a,0x7a,0x79,0x78,0x77,0x76,0x76,0x75,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x74,0x74,0x74,0x75,0x79,0x82,0x88,
+0x8e,0x8f,0x90,0x91,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,0x91,
+0x92,0x91,0x91,0x90,0x8f,0x8e,0x8d,0x8c,0x8b,0x8a,0x87,0x84,0x80,0x7d,0x7a,0x79,
+0x79,0x7b,0x7d,0x81,0x83,0x85,0x86,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x88,0x88,0x88,0x87,0x86,0x86,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,
+0x75,0x75,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x75,0x76,0x77,0x79,0x7a,0x7b,0x7b,0x7b,
+0x77,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x79,
+0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,
+0x7d,0x7c,0x7a,0x79,0x78,0x78,0x78,0x79,0x77,0x78,0x7a,0x7b,0x7b,0x7b,0x79,0x79,
+0x7a,0x7a,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x86,0x92,0xa0,0xa7,0xa8,0xa7,0xa9,0xac,
+0xa6,0xa6,0xa7,0xa8,0xa9,0xab,0xac,0xac,0xac,0xac,0xad,0xad,0xae,0xae,0xae,0xaf,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,
+0xad,0xaf,0xb1,0xb2,0xb1,0xaf,0xad,0xab,0x9a,0x87,0x79,0x7a,0x7c,0x78,0x79,0x7f,
+0x81,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x78,0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x73,0x74,0x75,0x74,0x75,0x7a,0x82,0x89,
+0x8d,0x8e,0x8f,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x91,0x91,0x90,0x8f,0x8e,0x8d,0x8d,0x8c,0x89,0x87,0x84,0x80,0x7d,0x7a,0x78,0x77,
+0x7b,0x7c,0x7f,0x82,0x84,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x88,0x87,0x87,0x87,0x86,0x86,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,
+0x75,0x75,0x75,0x76,0x77,0x78,0x79,0x79,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,
+0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x76,0x76,0x77,0x77,0x78,0x79,0x7a,0x7b,
+0x77,0x78,0x7a,0x7b,0x7b,0x7b,0x79,0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,
+0x75,0x76,0x78,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,0x7d,0x7d,0x7e,0x7e,0x7e,
+0x7e,0x7d,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7a,0x7a,0x7b,0x7b,0x7b,0x7a,0x79,0x79,
+0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x8c,0x97,0xa3,0xa9,0xa8,0xa6,0xa8,0xab,
+0xa5,0xa5,0xa6,0xa8,0xa9,0xab,0xac,0xac,0xad,0xad,0xad,0xae,0xae,0xae,0xae,0xae,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,
+0xae,0xaf,0xb0,0xb1,0xb1,0xaf,0xae,0xac,0x9e,0x8a,0x7b,0x7b,0x7c,0x78,0x79,0x7f,
+0x81,0x81,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,
+0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x74,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x76,0x75,0x76,0x7b,0x83,0x89,
+0x8c,0x8d,0x8f,0x90,0x91,0x91,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x90,0x90,0x8f,0x8e,0x8d,0x8c,0x8c,0x8b,0x86,0x84,0x81,0x7d,0x7a,0x79,0x78,0x78,
+0x7c,0x7e,0x80,0x82,0x84,0x85,0x86,0x86,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,
+0x76,0x75,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x78,
+0x79,0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x78,0x77,0x77,0x76,0x77,0x78,0x79,0x79,
+0x77,0x79,0x7b,0x7c,0x7d,0x7c,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7a,0x79,0x78,0x77,
+0x75,0x76,0x79,0x7b,0x7c,0x7b,0x7a,0x79,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x7f,
+0x7d,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x78,
+0x7a,0x7a,0x79,0x79,0x7a,0x7b,0x7d,0x7e,0x92,0x9b,0xa6,0xab,0xa8,0xa6,0xa7,0xaa,
+0xa5,0xa5,0xa6,0xa7,0xa9,0xaa,0xab,0xab,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,
+0xae,0xae,0xaf,0xb0,0xb0,0xaf,0xae,0xae,0xa3,0x8e,0x7e,0x7d,0x7e,0x79,0x7a,0x81,
+0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7c,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x79,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x76,0x76,0x76,0x76,0x7b,0x83,0x8a,
+0x8c,0x8d,0x8e,0x8f,0x90,0x90,0x90,0x8f,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x8f,0x8e,0x8e,0x8d,0x8c,0x8b,0x8a,0x8a,0x82,0x81,0x7e,0x7b,0x79,0x79,0x79,0x7a,
+0x7e,0x7f,0x81,0x83,0x85,0x85,0x85,0x85,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,
+0x76,0x75,0x75,0x75,0x76,0x78,0x7a,0x7c,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7a,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x77,0x76,0x75,0x76,0x77,0x77,
+0x78,0x7a,0x7c,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x77,
+0x75,0x77,0x79,0x7c,0x7c,0x7b,0x79,0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x79,0x78,
+0x79,0x79,0x78,0x79,0x7a,0x7d,0x7f,0x80,0x96,0x9f,0xa9,0xac,0xa8,0xa5,0xa6,0xa9,
+0xa6,0xa6,0xa7,0xa7,0xa8,0xa9,0xaa,0xaa,0xaf,0xaf,0xaf,0xae,0xae,0xae,0xae,0xae,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,
+0xae,0xae,0xaf,0xb0,0xb0,0xaf,0xaf,0xae,0xa7,0x92,0x81,0x7f,0x7f,0x7b,0x7c,0x82,
+0x7c,0x7c,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x74,0x74,0x74,0x73,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x76,0x77,0x76,0x77,0x7c,0x84,0x8b,
+0x8b,0x8c,0x8e,0x8f,0x90,0x90,0x8f,0x8f,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
+0x8d,0x8d,0x8c,0x8b,0x8a,0x89,0x88,0x88,0x80,0x7e,0x7b,0x79,0x78,0x79,0x7b,0x7c,
+0x7f,0x81,0x82,0x84,0x85,0x85,0x85,0x85,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x88,
+0x76,0x76,0x75,0x75,0x76,0x79,0x7b,0x7c,0x81,0x81,0x80,0x7e,0x7d,0x7b,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x77,0x75,0x74,0x75,0x75,0x76,
+0x79,0x7a,0x7d,0x7f,0x80,0x7e,0x7c,0x7a,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x77,0x76,
+0x76,0x77,0x7a,0x7c,0x7c,0x7b,0x78,0x77,0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7a,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7f,0x81,0x82,0x7e,0x7d,0x7c,0x7b,0x79,0x79,0x78,0x78,
+0x78,0x78,0x78,0x78,0x7a,0x7d,0x80,0x82,0x98,0xa1,0xaa,0xac,0xa9,0xa5,0xa6,0xa9,
+0xa6,0xa7,0xa7,0xa7,0xa8,0xa9,0xa9,0xa9,0xaf,0xaf,0xaf,0xaf,0xae,0xae,0xae,0xae,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xaf,0xaf,0xaf,0xae,0xae,0xae,
+0xae,0xae,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xa9,0x94,0x83,0x80,0x80,0x7c,0x7d,0x83,
+0x7b,0x7a,0x78,0x78,0x78,0x7a,0x7b,0x7d,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x75,
+0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x79,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x74,0x74,0x73,0x73,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x74,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x75,0x76,0x77,0x77,0x77,0x7c,0x84,0x8b,
+0x8b,0x8c,0x8d,0x8f,0x8f,0x8f,0x8f,0x8e,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,
+0x8c,0x8c,0x8b,0x8a,0x89,0x88,0x87,0x87,0x7e,0x7c,0x7a,0x78,0x78,0x7a,0x7d,0x7e,
+0x80,0x81,0x83,0x84,0x85,0x85,0x85,0x85,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x87,0x88,0x88,0x88,0x88,0x89,0x89,0x89,
+0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7f,0x7e,0x7e,0x7d,0x7c,0x7b,0x7b,0x7a,
+0x75,0x76,0x76,0x77,0x78,0x79,0x79,0x7a,0x76,0x76,0x77,0x77,0x76,0x75,0x74,0x73,
+0x72,0x73,0x75,0x77,0x78,0x79,0x79,0x79,0x76,0x77,0x77,0x78,0x78,0x77,0x77,0x76,
+0x72,0x74,0x77,0x79,0x7a,0x79,0x77,0x75,0x74,0x75,0x76,0x78,0x79,0x7a,0x7a,0x7b,
+0x77,0x78,0x7a,0x7c,0x7d,0x7d,0x7c,0x7b,0x79,0x7a,0x7c,0x7d,0x7c,0x79,0x76,0x74,
+0x71,0x78,0x7e,0x7c,0x78,0x7b,0x86,0x91,0xa6,0xa6,0xa8,0xa8,0xa8,0xa7,0xa5,0xa4,
+0xa5,0xa6,0xa7,0xa8,0xaa,0xac,0xad,0xae,0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+0xb0,0xb0,0xb1,0xb1,0xb1,0xb0,0xaf,0xae,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xaf,0xa6,0x98,0x88,0x7f,0x7d,0x7e,0x7d,0x7b,
+0x78,0x79,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x77,0x77,0x77,0x76,0x75,0x75,0x74,0x74,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x78,0x75,0x72,0x71,0x72,0x72,0x6f,0x6c,
+0x77,0x74,0x70,0x70,0x74,0x77,0x77,0x76,0x71,0x72,0x72,0x73,0x74,0x74,0x74,0x74,
+0x78,0x70,0x6e,0x75,0x76,0x71,0x73,0x7c,0x79,0x78,0x77,0x78,0x7b,0x80,0x85,0x88,
+0x8c,0x8d,0x8e,0x8f,0x8f,0x8f,0x8e,0x8d,0x91,0x90,0x90,0x8f,0x8e,0x8e,0x8d,0x8d,
+0x8b,0x8c,0x8b,0x8a,0x88,0x85,0x81,0x7f,0x75,0x76,0x77,0x79,0x7a,0x7b,0x7c,0x7c,
+0x7a,0x7c,0x80,0x84,0x86,0x86,0x85,0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x86,0x88,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x8a,0x89,0x89,0x88,0x87,0x86,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x87,0x88,0x89,0x89,0x8a,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,
+0x75,0x76,0x76,0x77,0x78,0x79,0x79,0x79,0x75,0x76,0x76,0x76,0x76,0x75,0x73,0x73,
+0x72,0x73,0x75,0x77,0x78,0x78,0x78,0x78,0x75,0x76,0x77,0x77,0x77,0x77,0x76,0x75,
+0x72,0x74,0x77,0x79,0x7a,0x79,0x77,0x76,0x73,0x74,0x75,0x77,0x78,0x79,0x7a,0x7a,
+0x76,0x78,0x7a,0x7b,0x7c,0x7c,0x7b,0x7b,0x79,0x7a,0x7c,0x7d,0x7c,0x7a,0x77,0x76,
+0x74,0x79,0x7d,0x7b,0x78,0x7d,0x89,0x95,0xa6,0xa7,0xa8,0xa9,0xa8,0xa7,0xa6,0xa5,
+0xa6,0xa6,0xa8,0xa9,0xab,0xac,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0xaf,0xb0,0xb1,0xb1,0xb1,0xb0,0xaf,0xaf,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xae,0xae,0xae,0xae,0xae,0xaf,0xaf,0xaf,0xa6,0x99,0x89,0x7f,0x7e,0x7f,0x7e,0x7b,
+0x7a,0x7b,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x74,0x77,0x74,0x72,0x73,0x76,0x79,0x78,0x76,
+0x75,0x75,0x76,0x79,0x7c,0x7c,0x7a,0x78,0x7f,0x80,0x81,0x81,0x81,0x81,0x80,0x80,
+0x7d,0x73,0x71,0x77,0x78,0x72,0x74,0x7c,0x7a,0x79,0x78,0x78,0x7b,0x80,0x84,0x88,
+0x8c,0x8d,0x8e,0x8f,0x8f,0x8f,0x8e,0x8d,0x90,0x90,0x90,0x8f,0x8e,0x8e,0x8d,0x8d,
+0x8c,0x8c,0x8b,0x89,0x87,0x83,0x80,0x7e,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7b,
+0x7a,0x7d,0x80,0x83,0x85,0x86,0x85,0x84,0x85,0x84,0x83,0x83,0x83,0x84,0x86,0x87,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x89,0x88,0x88,0x87,0x86,0x86,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x87,0x88,0x88,0x89,
+0x7a,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x7f,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,0x78,
+0x75,0x76,0x76,0x77,0x77,0x78,0x79,0x79,0x74,0x75,0x75,0x76,0x76,0x75,0x73,0x73,
+0x72,0x73,0x75,0x76,0x77,0x78,0x77,0x77,0x73,0x74,0x75,0x76,0x76,0x75,0x74,0x73,
+0x73,0x74,0x77,0x78,0x79,0x79,0x77,0x76,0x73,0x73,0x74,0x75,0x77,0x78,0x79,0x7a,
+0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x7a,0x79,0x7a,0x7c,0x7d,0x7d,0x7c,0x7a,0x79,
+0x78,0x7b,0x7c,0x79,0x79,0x80,0x8f,0x9b,0xa8,0xa8,0xa9,0xa9,0xa9,0xa8,0xa7,0xa6,
+0xa7,0xa7,0xa8,0xaa,0xac,0xad,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+0xaf,0xb0,0xb1,0xb1,0xb1,0xb1,0xb0,0xaf,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xad,0xad,0xae,0xae,0xae,0xaf,0xaf,0xaf,0xa7,0x9a,0x8a,0x80,0x7f,0x80,0x7f,0x7c,
+0x7e,0x7f,0x7f,0x7f,0x7e,0x7d,0x7c,0x7b,0x74,0x75,0x75,0x76,0x76,0x77,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x73,0x72,0x76,0x7c,0x83,0x86,0x87,
+0x82,0x84,0x87,0x8a,0x8c,0x8c,0x8a,0x89,0x93,0x93,0x94,0x95,0x94,0x93,0x92,0x91,
+0x85,0x79,0x74,0x79,0x7a,0x75,0x76,0x7d,0x7c,0x7b,0x79,0x79,0x7b,0x7f,0x84,0x86,
+0x8c,0x8d,0x8e,0x8f,0x8f,0x8f,0x8e,0x8d,0x90,0x90,0x8f,0x8e,0x8e,0x8d,0x8d,0x8c,
+0x8c,0x8b,0x8a,0x87,0x84,0x80,0x7d,0x7b,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,
+0x7c,0x7d,0x80,0x83,0x85,0x85,0x85,0x84,0x86,0x86,0x84,0x84,0x83,0x84,0x84,0x85,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x87,0x87,0x87,0x86,0x85,0x85,0x84,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,
+0x88,0x88,0x88,0x87,0x86,0x86,0x85,0x85,0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x87,
+0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x79,0x78,0x78,0x78,0x77,0x77,0x76,0x76,
+0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x74,0x74,0x75,0x76,0x76,0x75,0x74,0x73,
+0x73,0x74,0x75,0x76,0x77,0x77,0x77,0x77,0x72,0x73,0x74,0x74,0x74,0x74,0x73,0x72,
+0x73,0x75,0x76,0x78,0x78,0x78,0x77,0x77,0x73,0x73,0x73,0x74,0x75,0x77,0x79,0x7a,
+0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x7a,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,
+0x7c,0x7c,0x7b,0x79,0x7b,0x86,0x96,0xa2,0xa9,0xa9,0xa9,0xa9,0xa8,0xa8,0xa7,0xa7,
+0xa7,0xa8,0xa9,0xab,0xac,0xae,0xaf,0xb0,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+0xae,0xaf,0xb0,0xb1,0xb1,0xb1,0xb0,0xb0,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xad,0xad,0xad,0xae,0xaf,0xaf,0xaf,0xb0,0xa8,0x9b,0x8a,0x81,0x7f,0x80,0x7f,0x7d,
+0x81,0x81,0x81,0x81,0x7f,0x7d,0x7b,0x7a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x75,0x73,0x72,0x78,0x82,0x8d,0x95,0x98,
+0x9c,0x9c,0x9a,0x97,0x96,0x99,0x9e,0xa3,0xa2,0xa3,0xa4,0xa4,0xa4,0xa2,0xa0,0x9f,
+0x8e,0x7f,0x76,0x7a,0x7d,0x78,0x77,0x7d,0x7e,0x7c,0x7b,0x7a,0x7c,0x7f,0x83,0x86,
+0x8c,0x8d,0x8e,0x8f,0x8f,0x8f,0x8e,0x8d,0x8f,0x8f,0x8e,0x8e,0x8d,0x8c,0x8c,0x8c,
+0x8c,0x8a,0x88,0x85,0x81,0x7d,0x7a,0x78,0x7a,0x79,0x79,0x78,0x78,0x79,0x79,0x7a,
+0x7d,0x7f,0x81,0x83,0x85,0x85,0x85,0x85,0x87,0x87,0x86,0x85,0x84,0x84,0x83,0x83,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x88,0x88,0x88,0x88,
+0x89,0x89,0x89,0x88,0x87,0x86,0x86,0x85,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,
+0x74,0x74,0x75,0x76,0x77,0x78,0x78,0x79,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x75,
+0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x74,0x74,0x75,0x76,0x76,0x76,0x75,0x74,
+0x74,0x75,0x76,0x77,0x78,0x78,0x77,0x77,0x71,0x72,0x73,0x74,0x74,0x73,0x72,0x71,
+0x74,0x75,0x76,0x77,0x78,0x78,0x78,0x78,0x74,0x73,0x73,0x73,0x75,0x77,0x79,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7e,0x7d,0x7a,0x7b,0x80,0x8d,0x9c,0xa6,0xa9,0xa9,0xa8,0xa8,0xa7,0xa7,0xa7,0xa7,
+0xa7,0xa8,0xa9,0xab,0xac,0xae,0xaf,0xb0,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+0xae,0xaf,0xb0,0xb1,0xb1,0xb1,0xb1,0xb0,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xac,0xad,0xad,0xae,0xaf,0xaf,0xb0,0xb0,0xa8,0x9b,0x8a,0x81,0x7f,0x80,0x7f,0x7d,
+0x82,0x82,0x82,0x80,0x7f,0x7c,0x7a,0x78,0x73,0x74,0x75,0x76,0x78,0x79,0x7a,0x7b,
+0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x75,0x73,0x72,0x79,0x86,0x95,0xa0,0xa5,
+0xad,0xa8,0x9e,0x93,0x8e,0x94,0xa1,0xad,0xa7,0xa8,0xaa,0xac,0xab,0xaa,0xa7,0xa6,
+0x95,0x83,0x77,0x7a,0x7e,0x7a,0x79,0x7d,0x7e,0x7d,0x7b,0x7b,0x7c,0x80,0x84,0x87,
+0x8c,0x8d,0x8e,0x8f,0x8f,0x8f,0x8e,0x8d,0x8e,0x8e,0x8e,0x8d,0x8c,0x8c,0x8b,0x8b,
+0x8a,0x88,0x85,0x82,0x7e,0x7a,0x78,0x77,0x7b,0x7a,0x79,0x78,0x78,0x78,0x7a,0x7b,
+0x7f,0x80,0x81,0x83,0x84,0x85,0x85,0x85,0x87,0x87,0x86,0x86,0x85,0x84,0x83,0x83,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,
+0x89,0x89,0x88,0x88,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,
+0x70,0x71,0x71,0x72,0x73,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x77,0x77,0x78,0x77,0x77,0x76,
+0x76,0x76,0x78,0x79,0x79,0x79,0x78,0x78,0x72,0x72,0x73,0x74,0x74,0x73,0x72,0x72,
+0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x78,0x75,0x74,0x73,0x73,0x75,0x77,0x7a,0x7c,
+0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7c,0x7b,0x7e,0x87,0x94,0xa1,0xa9,0xa9,0xa8,0xa7,0xa6,0xa6,0xa6,0xa6,0xa7,
+0xa7,0xa7,0xa8,0xaa,0xac,0xad,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,
+0xad,0xae,0xb0,0xb1,0xb2,0xb2,0xb1,0xb1,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xac,0xac,0xad,0xae,0xaf,0xb0,0xb0,0xb1,0xa7,0x9a,0x8a,0x80,0x7f,0x80,0x7f,0x7c,
+0x81,0x80,0x80,0x7f,0x7d,0x7a,0x78,0x77,0x74,0x74,0x75,0x76,0x78,0x79,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,
+0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x77,0x73,0x72,0x79,0x87,0x97,0xa5,0xac,
+0xad,0xa7,0x9a,0x89,0x7f,0x83,0x92,0x9f,0xa5,0xa7,0xaa,0xac,0xad,0xab,0xa8,0xa7,
+0x99,0x84,0x75,0x79,0x7e,0x7c,0x7a,0x7d,0x7e,0x7d,0x7b,0x7b,0x7d,0x81,0x86,0x88,
+0x8c,0x8d,0x8e,0x8f,0x8f,0x8f,0x8e,0x8d,0x8e,0x8e,0x8d,0x8c,0x8c,0x8b,0x8b,0x8a,
+0x87,0x85,0x82,0x7e,0x7b,0x79,0x77,0x76,0x7a,0x79,0x78,0x77,0x77,0x79,0x7b,0x7c,
+0x80,0x81,0x82,0x83,0x84,0x85,0x85,0x86,0x85,0x86,0x86,0x87,0x86,0x85,0x84,0x84,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x70,0x70,0x71,0x72,0x73,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x78,0x79,0x79,0x79,0x78,0x78,
+0x78,0x78,0x79,0x7a,0x7a,0x7a,0x79,0x79,0x72,0x73,0x74,0x74,0x74,0x74,0x73,0x72,
+0x75,0x75,0x75,0x76,0x77,0x77,0x78,0x79,0x76,0x75,0x74,0x74,0x75,0x78,0x7b,0x7d,
+0x7d,0x7c,0x7b,0x7a,0x7a,0x7b,0x7c,0x7d,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x79,
+0x7d,0x7c,0x7c,0x83,0x8e,0x9a,0xa4,0xa9,0xa8,0xa7,0xa5,0xa4,0xa4,0xa4,0xa5,0xa6,
+0xa6,0xa6,0xa8,0xa9,0xab,0xac,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,
+0xad,0xae,0xaf,0xb1,0xb2,0xb2,0xb1,0xb1,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb1,0xa6,0x99,0x89,0x7f,0x7e,0x7f,0x7e,0x7b,
+0x7e,0x7e,0x7d,0x7d,0x7b,0x79,0x76,0x75,0x75,0x75,0x76,0x77,0x78,0x79,0x79,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x74,0x72,0x77,0x85,0x97,0xa6,0xae,
+0xaa,0xa8,0x9f,0x8f,0x80,0x7c,0x85,0x8e,0xa0,0xa3,0xa7,0xaa,0xac,0xaa,0xa8,0xa6,
+0x9a,0x83,0x73,0x76,0x7e,0x7d,0x7b,0x7d,0x7d,0x7c,0x7b,0x7b,0x7e,0x83,0x87,0x8a,
+0x8c,0x8d,0x8e,0x8f,0x8f,0x8f,0x8e,0x8d,0x8d,0x8d,0x8d,0x8c,0x8b,0x8b,0x8a,0x8a,
+0x85,0x83,0x7f,0x7c,0x79,0x77,0x77,0x77,0x79,0x78,0x77,0x76,0x77,0x79,0x7c,0x7e,
+0x81,0x81,0x82,0x82,0x83,0x84,0x85,0x86,0x83,0x84,0x86,0x87,0x87,0x87,0x86,0x85,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,
+0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x88,0x87,0x87,0x87,0x87,0x87,0x87,0x86,0x86,
+0x71,0x72,0x72,0x73,0x74,0x75,0x76,0x76,0x75,0x75,0x75,0x75,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x77,0x79,0x7a,0x7a,0x7a,0x7a,0x79,
+0x79,0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x79,0x72,0x73,0x74,0x75,0x75,0x74,0x73,0x72,
+0x76,0x75,0x75,0x76,0x76,0x77,0x78,0x79,0x77,0x76,0x75,0x74,0x75,0x78,0x7c,0x7e,
+0x7f,0x7e,0x7c,0x7b,0x7a,0x7b,0x7d,0x7e,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x77,0x77,
+0x7c,0x7b,0x7d,0x85,0x92,0x9e,0xa6,0xa9,0xa7,0xa6,0xa4,0xa3,0xa3,0xa3,0xa5,0xa6,
+0xa5,0xa6,0xa7,0xa8,0xaa,0xac,0xad,0xae,0xad,0xad,0xad,0xad,0xad,0xad,0xad,0xad,
+0xad,0xae,0xaf,0xb1,0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xab,0xac,0xac,0xae,0xaf,0xb0,0xb1,0xb1,0xa6,0x98,0x88,0x7f,0x7d,0x7e,0x7d,0x7b,
+0x7c,0x7c,0x7c,0x7b,0x7a,0x77,0x75,0x74,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x79,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7a,0x7a,0x75,0x72,0x76,0x84,0x96,0xa5,0xad,
+0xac,0xaf,0xac,0x9f,0x8d,0x82,0x82,0x87,0x9e,0xa1,0xa5,0xa9,0xab,0xaa,0xa8,0xa6,
+0x9b,0x83,0x71,0x75,0x7d,0x7d,0x7b,0x7d,0x7c,0x7b,0x7b,0x7b,0x7f,0x84,0x89,0x8c,
+0x8c,0x8d,0x8e,0x8f,0x8f,0x8f,0x8e,0x8d,0x8d,0x8d,0x8c,0x8c,0x8b,0x8a,0x8a,0x8a,
+0x83,0x81,0x7e,0x7b,0x78,0x77,0x77,0x77,0x79,0x77,0x76,0x75,0x77,0x7a,0x7d,0x80,
+0x82,0x82,0x82,0x82,0x83,0x84,0x85,0x86,0x82,0x84,0x86,0x87,0x88,0x88,0x87,0x86,
+0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x87,0x87,0x87,0x87,0x87,0x88,0x88,0x88,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,
+0x82,0x82,0x83,0x84,0x86,0x87,0x88,0x88,0x88,0x88,0x88,0x87,0x87,0x87,0x87,0x87,
+0x72,0x73,0x75,0x77,0x78,0x78,0x78,0x78,0x7c,0x7a,0x78,0x76,0x76,0x78,0x7a,0x7c,
+0x7d,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,0x75,0x75,0x75,0x75,0x76,0x78,0x7a,0x7b,
+0x77,0x77,0x78,0x79,0x79,0x7a,0x7b,0x7b,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x76,0x76,0x77,0x78,0x79,0x7a,0x79,0x77,0x75,0x73,0x74,0x78,0x7c,0x7f,
+0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7b,0x7c,0x82,0x8f,0xa0,0xaa,0xac,0xaa,0xab,0xaa,0xa9,0xa8,0xa8,0xaa,0xac,0xad,
+0xa8,0xa8,0xa8,0xa7,0xa8,0xa8,0xa9,0xaa,0xab,0xac,0xac,0xad,0xad,0xae,0xaf,0xaf,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb3,0xb2,0xb2,0xb1,0xb1,0xb0,0xaf,0xaf,
+0xaf,0xad,0xab,0xac,0xb0,0xb2,0xb1,0xaf,0xa7,0x99,0x87,0x7d,0x7c,0x7e,0x7f,0x7e,
+0x80,0x7e,0x7c,0x79,0x77,0x76,0x75,0x75,0x79,0x78,0x76,0x75,0x75,0x75,0x75,0x76,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7d,0x7c,0x7a,0x79,0x79,0x7a,0x7c,0x7d,
+0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xac,0xa8,0x9f,0x92,0x85,0x7c,0x7a,0x7b,0x8a,0x95,0xa3,0xad,0xaf,0xac,0xa8,0xa6,
+0x99,0x84,0x74,0x77,0x7d,0x7b,0x7b,0x7f,0x7b,0x7c,0x7e,0x81,0x84,0x88,0x8b,0x8c,
+0x90,0x90,0x8f,0x8f,0x8e,0x8d,0x8d,0x8d,0x8a,0x8a,0x8a,0x89,0x88,0x88,0x87,0x87,
+0x80,0x7e,0x7c,0x7a,0x78,0x78,0x77,0x77,0x75,0x75,0x74,0x74,0x76,0x79,0x7c,0x7e,
+0x80,0x81,0x82,0x84,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x86,0x86,0x87,
+0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x84,0x84,0x85,0x86,0x86,0x87,0x87,0x88,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x85,0x85,0x86,0x86,0x87,0x87,0x88,0x88,0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,
+0x72,0x73,0x75,0x77,0x79,0x79,0x7a,0x7a,0x7c,0x7b,0x78,0x77,0x77,0x78,0x7b,0x7c,
+0x7d,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,0x75,0x75,0x74,0x75,0x76,0x77,0x79,0x7a,
+0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,
+0x78,0x77,0x77,0x76,0x77,0x78,0x79,0x7a,0x7a,0x78,0x75,0x74,0x74,0x77,0x7b,0x7d,
+0x7c,0x7c,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x79,0x7c,0x84,0x92,0xa2,0xaa,0xaa,0xa7,0xaa,0xa9,0xa8,0xa7,0xa7,0xa8,0xaa,0xab,
+0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xaa,0xab,0xaa,0xab,0xab,0xac,0xad,0xad,0xae,0xae,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xb3,0xb2,0xb2,0xb1,0xb0,0xb0,0xaf,0xaf,
+0xaf,0xac,0xab,0xad,0xb0,0xb3,0xb2,0xb0,0xa4,0x97,0x86,0x7c,0x7b,0x7e,0x7e,0x7c,
+0x7f,0x7e,0x7c,0x79,0x77,0x76,0x75,0x75,0x78,0x77,0x76,0x75,0x75,0x75,0x75,0x76,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7d,0x7c,0x7a,0x7a,0x7a,0x7a,0x7c,0x7d,
+0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x79,0x78,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xab,0xa5,0x9a,0x8c,0x80,0x7b,0x7e,0x82,0x90,0x99,0xa5,0xac,0xad,0xaa,0xa7,0xa6,
+0x9a,0x84,0x75,0x77,0x7d,0x7b,0x7b,0x7f,0x7c,0x7d,0x7f,0x82,0x85,0x89,0x8b,0x8d,
+0x90,0x90,0x8f,0x8e,0x8e,0x8d,0x8d,0x8c,0x8b,0x8b,0x8a,0x89,0x88,0x87,0x86,0x86,
+0x80,0x7e,0x7c,0x7a,0x79,0x78,0x78,0x78,0x77,0x77,0x75,0x75,0x76,0x79,0x7b,0x7d,
+0x80,0x81,0x82,0x84,0x85,0x85,0x85,0x84,0x83,0x84,0x84,0x84,0x85,0x85,0x86,0x86,
+0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x86,0x86,0x86,0x87,0x87,0x88,0x88,0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,
+0x72,0x73,0x75,0x78,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x79,0x78,0x78,0x79,0x7b,0x7c,
+0x7d,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,0x75,0x75,0x74,0x74,0x75,0x76,0x78,0x79,
+0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7a,0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,
+0x78,0x78,0x77,0x77,0x77,0x78,0x79,0x7a,0x7b,0x79,0x76,0x75,0x75,0x77,0x79,0x7b,
+0x7e,0x7d,0x7b,0x7a,0x79,0x78,0x79,0x79,0x78,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,
+0x76,0x7c,0x88,0x98,0xa5,0xaa,0xa8,0xa4,0xa9,0xa8,0xa7,0xa6,0xa6,0xa6,0xa7,0xa7,
+0xac,0xac,0xac,0xac,0xab,0xab,0xab,0xab,0xaa,0xaa,0xaa,0xab,0xac,0xac,0xad,0xad,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xb2,0xb2,0xb2,0xb1,0xb0,0xb0,0xaf,0xaf,
+0xad,0xac,0xab,0xad,0xb1,0xb3,0xb2,0xb0,0xa2,0x95,0x86,0x7d,0x7d,0x7f,0x7e,0x7c,
+0x7e,0x7d,0x7b,0x79,0x77,0x76,0x76,0x76,0x78,0x77,0x76,0x75,0x75,0x75,0x76,0x76,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x7a,0x7a,0x7b,0x7c,0x7b,0x7a,0x79,0x78,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xaa,0xa1,0x92,0x82,0x79,0x7a,0x83,0x8c,0x9b,0xa1,0xa9,0xac,0xab,0xa9,0xa8,0xa8,
+0x9a,0x85,0x75,0x77,0x7d,0x7b,0x7a,0x7e,0x7c,0x7e,0x80,0x83,0x87,0x8a,0x8c,0x8e,
+0x8f,0x8f,0x8e,0x8e,0x8d,0x8c,0x8c,0x8c,0x8c,0x8b,0x8a,0x88,0x87,0x85,0x84,0x83,
+0x80,0x7f,0x7d,0x7b,0x79,0x79,0x79,0x79,0x7a,0x79,0x77,0x76,0x77,0x79,0x7b,0x7c,
+0x7f,0x80,0x82,0x84,0x85,0x85,0x85,0x85,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x85,
+0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x84,0x85,0x85,0x86,0x86,0x87,0x88,0x88,
+0x72,0x73,0x76,0x78,0x7b,0x7c,0x7d,0x7d,0x7b,0x7b,0x79,0x78,0x78,0x79,0x7b,0x7b,
+0x7d,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,0x76,0x76,0x75,0x74,0x75,0x76,0x77,0x77,
+0x76,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x78,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,
+0x79,0x79,0x78,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7a,0x77,0x75,0x75,0x76,0x78,0x7a,
+0x7f,0x7e,0x7c,0x7a,0x79,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,
+0x76,0x7f,0x8e,0x9d,0xa7,0xa9,0xa6,0xa2,0xa8,0xa7,0xa7,0xa6,0xa6,0xa5,0xa5,0xa5,
+0xaa,0xab,0xab,0xab,0xab,0xab,0xaa,0xa9,0xaa,0xaa,0xaa,0xab,0xac,0xac,0xad,0xad,
+0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xb2,0xb2,0xb1,0xb1,0xb0,0xaf,0xaf,0xaf,
+0xac,0xab,0xaa,0xad,0xb1,0xb3,0xb1,0xaf,0xa0,0x95,0x88,0x81,0x82,0x83,0x81,0x7e,
+0x7d,0x7c,0x7a,0x78,0x77,0x76,0x76,0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x76,0x77,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x79,0x7a,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xa9,0x9e,0x8d,0x7c,0x74,0x79,0x87,0x92,0xa6,0xaa,0xae,0xae,0xab,0xa9,0xa9,0xaa,
+0x9b,0x86,0x76,0x78,0x7c,0x7a,0x79,0x7d,0x7d,0x7e,0x81,0x85,0x88,0x8b,0x8d,0x8e,
+0x8e,0x8e,0x8d,0x8d,0x8c,0x8b,0x8b,0x8b,0x8b,0x8b,0x89,0x87,0x85,0x83,0x82,0x81,
+0x7f,0x7e,0x7c,0x7b,0x7a,0x79,0x79,0x79,0x7d,0x7b,0x79,0x77,0x77,0x78,0x7a,0x7b,
+0x7f,0x80,0x82,0x84,0x85,0x85,0x85,0x85,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,
+0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x85,0x85,0x84,0x83,0x83,0x82,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x88,
+0x72,0x74,0x76,0x79,0x7b,0x7c,0x7c,0x7c,0x7a,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7a,
+0x7d,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,0x78,0x77,0x76,0x75,0x75,0x76,0x76,0x77,
+0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,
+0x7a,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7b,0x79,0x78,0x76,0x76,0x77,0x78,0x79,
+0x7f,0x7e,0x7c,0x7a,0x79,0x78,0x78,0x78,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7b,
+0x78,0x83,0x93,0xa1,0xa8,0xa9,0xa5,0xa2,0xa7,0xa7,0xa7,0xa7,0xa7,0xa6,0xa6,0xa5,
+0xa8,0xa9,0xaa,0xab,0xab,0xaa,0xa9,0xa9,0xab,0xab,0xac,0xac,0xad,0xae,0xae,0xae,
+0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xaf,0xb2,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,
+0xab,0xaa,0xaa,0xad,0xb0,0xb1,0xae,0xab,0x9f,0x96,0x8b,0x86,0x87,0x88,0x84,0x80,
+0x7b,0x7b,0x79,0x78,0x77,0x77,0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x76,0x77,0x77,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7a,0x7a,0x7a,
+0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x79,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xa9,0x9f,0x8d,0x7c,0x74,0x79,0x86,0x92,0xaa,0xad,0xb0,0xaf,0xac,0xa9,0xa9,0xaa,
+0x9d,0x87,0x76,0x78,0x7c,0x79,0x78,0x7c,0x7c,0x7e,0x82,0x86,0x8a,0x8c,0x8d,0x8d,
+0x8d,0x8d,0x8c,0x8c,0x8b,0x8a,0x8a,0x8a,0x89,0x88,0x87,0x85,0x83,0x81,0x7f,0x7e,
+0x7e,0x7d,0x7b,0x7a,0x79,0x79,0x79,0x79,0x7d,0x7c,0x79,0x78,0x77,0x78,0x7a,0x7b,
+0x7e,0x7f,0x81,0x84,0x85,0x86,0x86,0x86,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x84,0x83,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x85,0x86,0x86,0x87,0x87,
+0x73,0x74,0x76,0x78,0x7a,0x7a,0x7a,0x7a,0x78,0x78,0x78,0x78,0x78,0x78,0x78,0x78,
+0x7d,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,0x7b,0x7a,0x78,0x77,0x76,0x76,0x77,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,
+0x7b,0x7a,0x79,0x78,0x78,0x78,0x79,0x79,0x79,0x78,0x77,0x77,0x77,0x77,0x78,0x79,
+0x7e,0x7d,0x7b,0x7a,0x79,0x78,0x79,0x79,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,
+0x7c,0x88,0x98,0xa4,0xa8,0xa8,0xa6,0xa6,0xa6,0xa7,0xa8,0xa9,0xa9,0xa9,0xa9,0xa8,
+0xa7,0xa8,0xab,0xad,0xae,0xae,0xad,0xac,0xae,0xae,0xae,0xaf,0xb0,0xb0,0xb1,0xb1,
+0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb0,0xb1,0xb1,0xb1,0xb0,0xaf,0xaf,0xae,0xae,
+0xab,0xa9,0xa9,0xac,0xae,0xae,0xaa,0xa7,0x9b,0x93,0x8a,0x87,0x89,0x89,0x85,0x80,
+0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x78,0x76,0x76,0x75,0x75,0x75,0x76,0x77,0x78,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x79,
+0x77,0x78,0x79,0x7a,0x7b,0x7a,0x79,0x79,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xab,0xa2,0x93,0x83,0x79,0x79,0x82,0x8a,0xa4,0xa9,0xad,0xad,0xa9,0xa5,0xa4,0xa4,
+0x9e,0x87,0x77,0x78,0x7c,0x79,0x77,0x7b,0x7b,0x7e,0x82,0x86,0x8a,0x8c,0x8c,0x8c,
+0x8c,0x8c,0x8b,0x8b,0x8a,0x89,0x89,0x89,0x85,0x84,0x83,0x82,0x80,0x7e,0x7d,0x7d,
+0x7c,0x7b,0x7a,0x78,0x78,0x78,0x78,0x79,0x7c,0x7a,0x78,0x77,0x77,0x78,0x79,0x7b,
+0x7e,0x7f,0x81,0x83,0x85,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,
+0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x86,0x87,0x87,
+0x74,0x75,0x76,0x78,0x78,0x78,0x78,0x77,0x76,0x76,0x77,0x77,0x77,0x77,0x76,0x76,
+0x7d,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x78,0x78,
+0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7c,
+0x7c,0x7b,0x79,0x78,0x78,0x78,0x79,0x79,0x77,0x77,0x77,0x77,0x77,0x78,0x7a,0x7a,
+0x7c,0x7c,0x7a,0x79,0x79,0x79,0x7a,0x7b,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,
+0x82,0x8d,0x9c,0xa5,0xa7,0xa7,0xa8,0xaa,0xa6,0xa7,0xa9,0xab,0xac,0xad,0xac,0xac,
+0xa9,0xab,0xaf,0xb2,0xb4,0xb4,0xb4,0xb3,0xb0,0xb1,0xb1,0xb2,0xb2,0xb3,0xb4,0xb4,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xab,0xa9,0xa9,0xab,0xad,0xab,0xa6,0xa2,0x95,0x8e,0x87,0x85,0x87,0x87,0x81,0x7c,
+0x79,0x78,0x77,0x77,0x77,0x77,0x78,0x79,0x76,0x75,0x75,0x75,0x75,0x76,0x77,0x78,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,
+0x77,0x77,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xad,0xa7,0x9b,0x8c,0x7f,0x7a,0x7c,0x80,0x98,0x9e,0xa4,0xa6,0xa3,0x9e,0x9b,0x9b,
+0x9e,0x88,0x77,0x78,0x7c,0x78,0x77,0x7a,0x7a,0x7d,0x81,0x86,0x8a,0x8b,0x8b,0x8b,
+0x8b,0x8b,0x8b,0x8a,0x89,0x89,0x88,0x88,0x81,0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,
+0x7a,0x79,0x78,0x77,0x76,0x77,0x77,0x78,0x7a,0x79,0x77,0x76,0x76,0x77,0x79,0x7b,
+0x7d,0x7f,0x81,0x83,0x85,0x86,0x87,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,
+0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x88,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x83,0x83,0x83,0x82,0x82,0x81,0x81,0x83,0x83,0x84,0x85,0x85,0x86,0x86,0x87,
+0x75,0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x75,
+0x7d,0x7b,0x79,0x77,0x76,0x77,0x78,0x79,0x7e,0x7d,0x7b,0x7a,0x78,0x78,0x78,0x78,
+0x76,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x76,0x76,0x77,0x78,0x7a,0x7b,0x7c,0x7c,
+0x7c,0x7b,0x7a,0x78,0x78,0x78,0x79,0x79,0x76,0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,
+0x7b,0x7b,0x7a,0x79,0x79,0x7a,0x7b,0x7c,0x79,0x7a,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,
+0x85,0x90,0x9e,0xa5,0xa6,0xa6,0xa9,0xad,0xa6,0xa8,0xaa,0xad,0xae,0xaf,0xae,0xae,
+0xac,0xae,0xb3,0xb7,0xb9,0xba,0xb9,0xb9,0xb2,0xb3,0xb3,0xb4,0xb4,0xb5,0xb5,0xb6,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xad,
+0xab,0xa9,0xa9,0xaa,0xab,0xa9,0xa4,0x9f,0x8f,0x89,0x83,0x82,0x84,0x83,0x7e,0x77,
+0x78,0x78,0x77,0x76,0x77,0x77,0x78,0x79,0x76,0x75,0x75,0x75,0x75,0x76,0x78,0x79,
+0x78,0x79,0x7a,0x7b,0x7c,0x7b,0x7b,0x7a,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,
+0x76,0x77,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xaf,0xab,0xa1,0x92,0x84,0x7b,0x78,0x78,0x8e,0x95,0x9d,0xa1,0x9e,0x99,0x95,0x93,
+0x9f,0x88,0x78,0x78,0x7c,0x78,0x76,0x7a,0x79,0x7c,0x81,0x86,0x89,0x8b,0x8b,0x8a,
+0x8b,0x8b,0x8a,0x8a,0x89,0x88,0x88,0x88,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7b,0x7b,
+0x79,0x78,0x77,0x76,0x75,0x76,0x76,0x77,0x78,0x77,0x76,0x75,0x75,0x77,0x79,0x7b,
+0x7d,0x7e,0x81,0x83,0x85,0x86,0x87,0x87,0x88,0x88,0x88,0x87,0x87,0x86,0x86,0x86,
+0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x86,0x86,0x87,0x87,0x88,0x89,0x89,0x89,
+0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x82,0x82,0x82,0x81,0x80,0x80,0x80,0x83,0x83,0x84,0x84,0x85,0x86,0x86,0x86,
+0x74,0x75,0x75,0x75,0x75,0x73,0x72,0x71,0x74,0x75,0x77,0x78,0x78,0x78,0x76,0x76,
+0x7b,0x7c,0x7d,0x7a,0x76,0x75,0x77,0x7a,0x7a,0x77,0x75,0x76,0x79,0x7a,0x77,0x75,
+0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,
+0x7b,0x7a,0x7a,0x79,0x78,0x77,0x76,0x76,0x75,0x76,0x77,0x79,0x79,0x79,0x79,0x78,
+0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,0x78,0x79,0x7a,0x7b,
+0x8d,0x95,0xa0,0xa7,0xa9,0xa9,0xa9,0xaa,0xa4,0xa4,0xa5,0xa7,0xa9,0xac,0xaf,0xb1,
+0xaa,0xab,0xad,0xaf,0xb1,0xb3,0xb4,0xb5,0xbb,0xbb,0xbb,0xba,0xb9,0xb6,0xb4,0xb3,
+0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb1,0xb1,0xb1,0xb0,0xaf,0xaf,0xae,0xae,
+0xad,0xac,0xab,0xac,0xac,0xa8,0xa0,0x9a,0x91,0x8e,0x8a,0x84,0x7f,0x7b,0x78,0x77,
+0x76,0x77,0x78,0x79,0x79,0x78,0x77,0x76,0x74,0x74,0x73,0x73,0x74,0x75,0x76,0x77,
+0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x79,0x7c,0x7e,0x7d,0x7a,0x78,0x7a,0x7c,
+0x77,0x73,0x6f,0x6f,0x74,0x79,0x7c,0x7c,0x73,0x77,0x76,0x75,0x84,0x9c,0xaa,0xaa,
+0xa6,0xaa,0xa9,0x9e,0x8c,0x7b,0x71,0x6e,0x71,0x7a,0x7e,0x7e,0x88,0x9c,0xa6,0xa5,
+0x9c,0x8d,0x7c,0x74,0x77,0x7b,0x7a,0x76,0x7b,0x80,0x87,0x8a,0x8a,0x89,0x8a,0x8c,
+0x89,0x8a,0x8c,0x8c,0x8a,0x85,0x7f,0x7c,0x7d,0x7c,0x7c,0x7b,0x7a,0x7a,0x79,0x79,
+0x79,0x78,0x77,0x76,0x75,0x75,0x75,0x76,0x77,0x77,0x76,0x76,0x76,0x77,0x78,0x79,
+0x7e,0x80,0x83,0x86,0x88,0x87,0x85,0x84,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x87,0x88,0x88,0x89,
+0x88,0x88,0x87,0x87,0x86,0x86,0x85,0x85,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x85,
+0x75,0x75,0x75,0x75,0x75,0x73,0x72,0x71,0x74,0x75,0x76,0x78,0x78,0x77,0x76,0x76,
+0x7b,0x7c,0x7d,0x7a,0x77,0x75,0x78,0x7b,0x7b,0x78,0x76,0x77,0x7a,0x7b,0x79,0x76,
+0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,
+0x7a,0x7a,0x79,0x78,0x78,0x77,0x76,0x76,0x75,0x76,0x77,0x78,0x79,0x79,0x78,0x78,
+0x75,0x76,0x76,0x78,0x79,0x7a,0x7b,0x7b,0x7e,0x7d,0x7c,0x7b,0x7b,0x7c,0x7d,0x7e,
+0x92,0x9b,0xa5,0xac,0xac,0xaa,0xa8,0xa7,0xa5,0xa5,0xa6,0xa7,0xa8,0xaa,0xad,0xae,
+0xaf,0xaf,0xaf,0xb0,0xb0,0xb0,0xb0,0xb0,0xb2,0xb3,0xb4,0xb5,0xb6,0xb6,0xb5,0xb4,
+0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb3,0xb1,0xb1,0xb1,0xb0,0xaf,0xaf,0xae,0xae,
+0xac,0xab,0xab,0xac,0xab,0xa7,0x9f,0x98,0x8e,0x8c,0x87,0x83,0x7e,0x7b,0x78,0x77,
+0x77,0x77,0x78,0x79,0x79,0x78,0x77,0x77,0x74,0x74,0x73,0x73,0x74,0x75,0x77,0x78,
+0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x7f,0x81,0x7f,0x7b,0x79,0x7a,0x7c,
+0x76,0x71,0x6d,0x6e,0x72,0x77,0x79,0x7a,0x73,0x77,0x76,0x75,0x84,0x9c,0xaa,0xaa,
+0xab,0xad,0xab,0x9f,0x8e,0x7e,0x76,0x75,0x72,0x79,0x7c,0x7b,0x87,0x9c,0xa8,0xa7,
+0x9d,0x8d,0x7c,0x74,0x77,0x7c,0x7a,0x76,0x7b,0x80,0x87,0x8b,0x8b,0x8a,0x8b,0x8c,
+0x8a,0x8a,0x89,0x88,0x85,0x81,0x7d,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x78,0x78,
+0x79,0x78,0x77,0x76,0x75,0x75,0x76,0x76,0x77,0x76,0x76,0x75,0x76,0x77,0x78,0x79,
+0x7e,0x80,0x83,0x86,0x87,0x86,0x85,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x87,0x87,0x88,0x88,
+0x88,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x86,
+0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,
+0x75,0x75,0x76,0x76,0x75,0x74,0x72,0x71,0x74,0x75,0x76,0x77,0x77,0x77,0x76,0x76,
+0x7b,0x7c,0x7d,0x7a,0x77,0x76,0x78,0x7b,0x7c,0x79,0x77,0x78,0x7b,0x7c,0x7a,0x78,
+0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x7a,0x7a,0x79,0x79,0x78,0x77,0x77,0x77,
+0x79,0x79,0x79,0x78,0x77,0x77,0x76,0x76,0x74,0x75,0x76,0x78,0x78,0x78,0x78,0x78,
+0x76,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x80,0x7f,0x7e,0x7e,0x7e,0x7e,0x7f,0x80,
+0x95,0x9e,0xaa,0xb1,0xb1,0xad,0xa9,0xa7,0xa8,0xa7,0xa6,0xa6,0xa6,0xa7,0xa8,0xa9,
+0xb2,0xb2,0xb1,0xb0,0xae,0xad,0xad,0xac,0xa9,0xab,0xad,0xb0,0xb3,0xb4,0xb5,0xb5,
+0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xae,
+0xac,0xab,0xaa,0xaa,0xa9,0xa4,0x9b,0x95,0x89,0x87,0x84,0x80,0x7d,0x7a,0x79,0x78,
+0x77,0x78,0x78,0x79,0x79,0x78,0x78,0x77,0x74,0x74,0x73,0x73,0x74,0x75,0x77,0x78,
+0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x81,0x82,0x83,0x80,0x7b,0x78,0x79,0x7a,
+0x75,0x71,0x6d,0x6d,0x72,0x76,0x78,0x77,0x73,0x77,0x76,0x75,0x84,0x9c,0xaa,0xaa,
+0xaf,0xb0,0xad,0xa0,0x8f,0x81,0x7c,0x7c,0x74,0x78,0x78,0x78,0x86,0x9e,0xab,0xab,
+0x9e,0x8e,0x7c,0x74,0x77,0x7c,0x7b,0x77,0x7c,0x81,0x88,0x8b,0x8b,0x8b,0x8c,0x8d,
+0x8b,0x89,0x85,0x81,0x7d,0x7b,0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x7a,0x79,0x77,0x76,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x75,0x76,0x77,0x79,0x7a,
+0x7e,0x80,0x82,0x84,0x85,0x85,0x84,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,
+0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x89,0x89,0x88,0x87,0x86,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x75,0x76,0x76,0x76,0x75,0x74,0x73,0x72,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,
+0x7a,0x7b,0x7c,0x7a,0x77,0x76,0x79,0x7c,0x7d,0x7a,0x78,0x7a,0x7d,0x7e,0x7c,0x7a,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x7b,0x7a,0x7a,0x79,0x77,0x77,0x76,0x75,
+0x78,0x78,0x78,0x77,0x77,0x76,0x76,0x76,0x73,0x74,0x76,0x77,0x78,0x78,0x77,0x77,
+0x77,0x77,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7e,0x7e,0x7e,0x7d,0x7d,0x7e,0x7e,0x7e,
+0x91,0x9a,0xa7,0xb0,0xb2,0xaf,0xad,0xac,0xaa,0xa9,0xa7,0xa5,0xa4,0xa4,0xa4,0xa4,
+0xae,0xae,0xad,0xad,0xad,0xad,0xad,0xad,0xa9,0xab,0xad,0xaf,0xb1,0xb2,0xb3,0xb3,
+0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb1,0xb0,0xb0,0xaf,0xaf,0xae,0xae,0xad,
+0xac,0xab,0xa9,0xa8,0xa7,0xa1,0x97,0x90,0x85,0x83,0x81,0x7e,0x7b,0x7a,0x79,0x79,
+0x77,0x78,0x79,0x79,0x79,0x79,0x78,0x77,0x75,0x74,0x74,0x74,0x74,0x76,0x77,0x78,
+0x7a,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7c,0x82,0x83,0x82,0x7e,0x78,0x74,0x75,0x76,
+0x78,0x74,0x70,0x71,0x74,0x78,0x79,0x78,0x73,0x77,0x76,0x75,0x84,0x9c,0xaa,0xaa,
+0xb0,0xb0,0xac,0x9f,0x8e,0x82,0x7e,0x7f,0x76,0x78,0x76,0x75,0x86,0xa0,0xae,0xad,
+0x9f,0x8f,0x7c,0x74,0x77,0x7c,0x7c,0x79,0x7d,0x83,0x89,0x8c,0x8b,0x8a,0x8b,0x8c,
+0x8a,0x86,0x80,0x7a,0x76,0x76,0x77,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x7a,0x79,0x78,0x76,0x76,0x76,0x76,0x76,0x76,0x75,0x75,0x76,0x77,0x78,0x7a,0x7b,
+0x7f,0x80,0x82,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,0x89,0x89,
+0x8b,0x8a,0x8a,0x88,0x87,0x86,0x85,0x85,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,
+0x75,0x76,0x76,0x76,0x76,0x74,0x73,0x72,0x74,0x74,0x74,0x74,0x74,0x75,0x75,0x76,
+0x78,0x7a,0x7b,0x79,0x76,0x75,0x78,0x7b,0x7d,0x7a,0x79,0x7a,0x7d,0x7f,0x7d,0x7b,
+0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,
+0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,0x73,0x74,0x75,0x76,0x77,0x77,0x77,0x76,
+0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,
+0x85,0x8f,0x9c,0xa7,0xac,0xae,0xaf,0xb1,0xab,0xa9,0xa7,0xa4,0xa2,0xa0,0xa0,0x9f,
+0xa4,0xa5,0xa7,0xa9,0xab,0xad,0xaf,0xaf,0xaf,0xaf,0xb0,0xb1,0xb1,0xb1,0xb0,0xaf,
+0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb0,0xb0,0xb0,0xaf,0xae,0xae,0xad,0xad,
+0xac,0xaa,0xa8,0xa7,0xa4,0x9d,0x93,0x8c,0x82,0x80,0x7e,0x7c,0x7a,0x79,0x79,0x79,
+0x78,0x78,0x79,0x7a,0x7a,0x79,0x78,0x78,0x75,0x75,0x74,0x74,0x75,0x76,0x77,0x78,
+0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7c,0x81,0x82,0x80,0x7a,0x73,0x70,0x70,0x72,
+0x7c,0x79,0x75,0x76,0x79,0x7c,0x7c,0x7a,0x73,0x77,0x76,0x75,0x84,0x9c,0xaa,0xaa,
+0xad,0xae,0xaa,0x9d,0x8c,0x80,0x7b,0x7c,0x77,0x78,0x75,0x76,0x89,0xa4,0xb0,0xad,
+0xa1,0x90,0x7d,0x74,0x77,0x7d,0x7d,0x7a,0x7f,0x84,0x8a,0x8c,0x8b,0x89,0x89,0x8a,
+0x86,0x82,0x7c,0x76,0x73,0x74,0x76,0x78,0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x78,
+0x7a,0x79,0x78,0x77,0x76,0x76,0x76,0x77,0x76,0x76,0x76,0x77,0x78,0x7a,0x7d,0x7e,
+0x81,0x81,0x82,0x83,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,
+0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,0x89,0x89,
+0x8a,0x8a,0x89,0x88,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,
+0x76,0x76,0x77,0x77,0x76,0x75,0x73,0x72,0x74,0x73,0x73,0x73,0x73,0x74,0x75,0x76,
+0x76,0x78,0x79,0x77,0x74,0x74,0x77,0x7a,0x7c,0x7a,0x78,0x7a,0x7e,0x7f,0x7e,0x7b,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x72,0x73,0x74,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x77,0x78,0x78,0x78,0x79,0x79,0x77,0x78,0x78,0x79,0x79,0x78,0x78,0x77,
+0x7b,0x83,0x8e,0x98,0x9f,0xa5,0xac,0xb0,0xab,0xa9,0xa6,0xa3,0xa0,0x9e,0x9d,0x9c,
+0x9d,0x9e,0xa1,0xa4,0xa7,0xaa,0xac,0xae,0xb0,0xb0,0xb1,0xb1,0xb1,0xb0,0xaf,0xaf,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,0xb0,0xaf,0xaf,0xae,0xad,0xad,0xad,
+0xac,0xaa,0xa7,0xa5,0xa1,0x99,0x8f,0x87,0x81,0x7f,0x7d,0x7b,0x7a,0x79,0x79,0x79,
+0x78,0x78,0x79,0x7a,0x7a,0x79,0x78,0x78,0x75,0x75,0x74,0x74,0x75,0x76,0x78,0x79,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x82,0x82,0x7f,0x79,0x72,0x6f,0x6f,0x72,
+0x7f,0x7c,0x79,0x79,0x7c,0x7e,0x7d,0x7b,0x73,0x77,0x76,0x75,0x84,0x9c,0xaa,0xaa,
+0xaa,0xac,0xaa,0x9f,0x8e,0x7f,0x78,0x77,0x78,0x79,0x77,0x7a,0x8f,0xa9,0xb1,0xaa,
+0xa2,0x91,0x7d,0x74,0x77,0x7d,0x7e,0x7c,0x81,0x86,0x8b,0x8c,0x89,0x86,0x85,0x86,
+0x7f,0x7c,0x79,0x75,0x74,0x76,0x78,0x7a,0x74,0x74,0x75,0x76,0x77,0x78,0x79,0x79,
+0x7b,0x7a,0x78,0x77,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x78,0x7a,0x7d,0x7f,0x81,
+0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x76,0x76,0x77,0x77,0x76,0x75,0x74,0x73,0x74,0x73,0x72,0x72,0x72,0x73,0x75,0x76,
+0x74,0x76,0x77,0x75,0x73,0x72,0x75,0x79,0x7b,0x79,0x78,0x7a,0x7d,0x7f,0x7e,0x7b,
+0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x76,0x72,0x73,0x74,0x75,0x76,0x76,0x76,0x75,
+0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x79,0x7a,0x7a,0x79,0x78,0x77,
+0x77,0x7c,0x83,0x8a,0x90,0x98,0xa2,0xa9,0xaa,0xa8,0xa5,0xa2,0x9e,0x9c,0x9b,0x9a,
+0x9c,0x9d,0x9e,0xa0,0xa2,0xa4,0xa5,0xa6,0xa9,0xaa,0xac,0xae,0xb0,0xb1,0xb1,0xb1,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,0xb0,0xaf,0xae,0xae,0xad,0xad,0xac,
+0xac,0xa9,0xa6,0xa3,0x9f,0x97,0x8c,0x84,0x81,0x80,0x7d,0x7b,0x7a,0x79,0x79,0x79,
+0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x78,0x76,0x75,0x75,0x75,0x75,0x77,0x78,0x79,
+0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x85,0x84,0x81,0x7b,0x74,0x71,0x73,0x75,
+0x7e,0x7b,0x78,0x79,0x7b,0x7c,0x7b,0x79,0x73,0x77,0x76,0x75,0x84,0x9c,0xaa,0xaa,
+0xaa,0xae,0xae,0xa5,0x93,0x81,0x77,0x74,0x79,0x7a,0x79,0x7f,0x95,0xad,0xb1,0xa6,
+0xa3,0x92,0x7d,0x74,0x77,0x7d,0x7f,0x7d,0x83,0x87,0x8b,0x8b,0x87,0x83,0x81,0x81,
+0x78,0x77,0x77,0x77,0x78,0x79,0x7b,0x7c,0x74,0x74,0x75,0x76,0x78,0x79,0x7a,0x7a,
+0x7b,0x7a,0x78,0x77,0x76,0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x7d,0x7f,0x82,0x84,
+0x85,0x85,0x84,0x84,0x85,0x85,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x86,
+0x84,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,
+0x76,0x77,0x77,0x77,0x76,0x75,0x74,0x73,0x74,0x73,0x72,0x71,0x71,0x73,0x75,0x76,
+0x73,0x75,0x76,0x74,0x72,0x72,0x75,0x78,0x7b,0x79,0x77,0x79,0x7d,0x7f,0x7d,0x7b,
+0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x78,
+0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x75,0x71,0x72,0x74,0x75,0x76,0x76,0x75,0x75,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x78,0x79,0x7b,0x7c,0x7c,0x7b,0x79,0x78,
+0x77,0x7a,0x7e,0x81,0x86,0x8e,0x99,0xa1,0xaa,0xa8,0xa5,0xa1,0x9e,0x9c,0x9a,0x9a,
+0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0x9e,0xa1,0xa3,0xa7,0xab,0xaf,0xb1,0xb3,0xb4,
+0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb0,0xaf,0xaf,0xae,0xae,0xad,0xad,0xac,
+0xac,0xa9,0xa6,0xa3,0x9e,0x95,0x8a,0x82,0x81,0x80,0x7e,0x7c,0x7a,0x79,0x79,0x79,
+0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x79,0x78,0x76,0x75,0x75,0x75,0x75,0x77,0x78,0x79,
+0x7c,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7a,0x88,0x87,0x84,0x7e,0x77,0x74,0x76,0x79,
+0x7c,0x79,0x77,0x77,0x79,0x7a,0x78,0x76,0x73,0x77,0x76,0x75,0x84,0x9c,0xaa,0xaa,
+0xaa,0xb0,0xb2,0xa9,0x97,0x84,0x77,0x72,0x79,0x7b,0x7b,0x82,0x99,0xaf,0xb0,0xa3,
+0xa3,0x92,0x7e,0x74,0x77,0x7d,0x7f,0x7d,0x84,0x88,0x8c,0x8b,0x86,0x81,0x7f,0x7e,
+0x73,0x74,0x76,0x78,0x7b,0x7c,0x7d,0x7d,0x74,0x74,0x75,0x77,0x78,0x79,0x7a,0x7b,
+0x7b,0x7a,0x79,0x77,0x77,0x77,0x77,0x78,0x79,0x79,0x7a,0x7b,0x7e,0x81,0x84,0x85,
+0x86,0x86,0x85,0x85,0x85,0x86,0x86,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,
+0x83,0x84,0x84,0x84,0x85,0x86,0x86,0x86,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x84,
+0x81,0x81,0x82,0x83,0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x88,0x88,0x88,0x88,
+0x77,0x78,0x78,0x78,0x77,0x75,0x74,0x72,0x71,0x72,0x73,0x74,0x75,0x76,0x77,0x77,
+0x74,0x74,0x75,0x76,0x78,0x79,0x7a,0x7a,0x78,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,
+0x7b,0x7a,0x79,0x77,0x77,0x78,0x79,0x7a,0x7b,0x79,0x77,0x75,0x74,0x74,0x75,0x75,
+0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x74,0x72,0x73,0x73,0x74,0x75,0x76,0x77,0x78,
+0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x72,0x74,0x78,0x7b,0x7c,0x7c,0x7b,0x7a,
+0x76,0x79,0x7c,0x7b,0x79,0x78,0x7b,0x7d,0x98,0x97,0x96,0x98,0x9b,0x9b,0x97,0x94,
+0x99,0x99,0x9a,0x9b,0x9c,0x9e,0x9e,0x9f,0xa2,0xa3,0xa4,0xa5,0xa7,0xa8,0xa9,0xaa,
+0xad,0xaf,0xb0,0xb1,0xb2,0xb1,0xaf,0xae,0xaf,0xb0,0xb0,0xaf,0xae,0xad,0xab,0xaa,
+0xa9,0xa7,0xa4,0x9f,0x99,0x92,0x8b,0x88,0x85,0x82,0x7d,0x79,0x77,0x77,0x79,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x77,0x76,0x75,0x74,0x74,0x74,0x75,0x75,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x81,0x81,0x80,0x7f,0x7c,0x7a,0x78,0x77,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xaa,0xad,0xaf,0xaa,0x9e,0x91,0x87,0x82,0x8d,0x8b,0x8c,0x91,0x9c,0xa6,0xad,0xb0,
+0xa4,0x92,0x7c,0x72,0x76,0x7d,0x7f,0x7e,0x84,0x82,0x80,0x7e,0x7c,0x7c,0x7b,0x7b,
+0x75,0x76,0x78,0x7a,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x78,0x77,0x77,0x77,0x77,0x78,
+0x74,0x75,0x77,0x79,0x7a,0x7c,0x7c,0x7d,0x7f,0x80,0x81,0x82,0x84,0x86,0x87,0x87,
+0x86,0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x84,0x85,0x87,0x88,0x88,0x88,0x87,0x86,
+0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x84,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,
+0x88,0x87,0x87,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x74,0x75,0x75,0x76,0x75,0x74,0x73,0x72,0x72,0x72,0x73,0x74,0x75,0x76,0x77,0x77,
+0x75,0x75,0x76,0x76,0x77,0x78,0x78,0x79,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,
+0x7c,0x7b,0x79,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7a,0x78,0x76,0x75,0x75,0x76,0x76,
+0x74,0x74,0x74,0x75,0x75,0x75,0x75,0x75,0x74,0x74,0x74,0x75,0x75,0x76,0x77,0x77,
+0x76,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x73,0x75,0x78,0x7b,0x7c,0x7c,0x7a,0x79,
+0x75,0x78,0x7a,0x7a,0x78,0x77,0x79,0x7c,0x89,0x89,0x8a,0x90,0x96,0x99,0x98,0x96,
+0x98,0x98,0x99,0x9a,0x9b,0x9c,0x9d,0x9d,0xa0,0xa0,0xa1,0xa2,0xa4,0xa5,0xa6,0xa6,
+0xab,0xac,0xae,0xb0,0xb1,0xb1,0xb0,0xb0,0xae,0xaf,0xaf,0xae,0xad,0xac,0xaa,0xa9,
+0xa9,0xa7,0xa4,0x9f,0x98,0x91,0x8b,0x88,0x85,0x82,0x7d,0x79,0x77,0x77,0x79,0x7a,
+0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,0x79,0x77,0x76,0x75,0x74,0x74,0x75,0x76,0x76,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7c,0x7d,0x87,0x85,0x81,0x7e,0x7c,0x7b,0x7c,0x7d,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xab,0xae,0xaf,0xa9,0x9e,0x90,0x87,0x82,0x8b,0x89,0x89,0x8f,0x9a,0xa4,0xab,0xae,
+0xa5,0x93,0x7e,0x74,0x77,0x7d,0x7f,0x7e,0x82,0x81,0x7f,0x7d,0x7b,0x7b,0x7a,0x7a,
+0x75,0x76,0x78,0x7a,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x77,0x77,
+0x76,0x78,0x7a,0x7c,0x7e,0x80,0x81,0x81,0x81,0x81,0x82,0x83,0x84,0x85,0x86,0x86,
+0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x85,0x86,0x87,0x88,0x88,0x87,0x86,0x85,
+0x87,0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x85,0x85,0x85,0x86,0x87,0x87,0x88,0x88,
+0x88,0x88,0x87,0x87,0x86,0x86,0x86,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x72,0x72,0x74,0x75,0x75,0x74,0x74,0x73,0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x77,
+0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,0x7a,0x7b,0x7b,
+0x7c,0x7b,0x7b,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7b,0x7a,0x78,0x77,0x77,0x77,0x77,
+0x73,0x74,0x74,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x77,0x77,0x77,0x78,0x78,0x74,0x75,0x78,0x7a,0x7b,0x7b,0x7a,0x79,
+0x74,0x77,0x79,0x78,0x76,0x75,0x77,0x7a,0x78,0x79,0x7d,0x85,0x8f,0x95,0x98,0x97,
+0x96,0x96,0x97,0x98,0x99,0x9a,0x9b,0x9b,0x9c,0x9d,0x9d,0x9e,0x9f,0xa0,0xa1,0xa1,
+0xa5,0xa6,0xa9,0xab,0xad,0xae,0xaf,0xaf,0xae,0xae,0xae,0xae,0xad,0xac,0xaa,0xa9,
+0xa9,0xa7,0xa3,0x9d,0x97,0x90,0x8b,0x88,0x83,0x80,0x7d,0x79,0x77,0x78,0x79,0x7b,
+0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x77,0x76,0x75,0x75,0x76,0x77,0x78,
+0x79,0x79,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,0x8b,0x86,0x7e,0x78,0x76,0x78,0x7d,0x81,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xad,0xaf,0xaf,0xa9,0x9d,0x91,0x88,0x84,0x89,0x88,0x88,0x8e,0x99,0xa3,0xa9,0xac,
+0xa6,0x95,0x7f,0x75,0x78,0x7e,0x7f,0x7d,0x80,0x7f,0x7d,0x7b,0x79,0x79,0x79,0x79,
+0x76,0x76,0x78,0x79,0x7a,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,
+0x78,0x7a,0x7d,0x80,0x83,0x85,0x85,0x86,0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x87,0x87,0x87,0x87,0x87,0x86,0x84,0x83,
+0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x87,0x88,0x88,0x89,
+0x88,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x72,0x73,0x75,0x76,0x77,0x77,0x77,0x77,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,
+0x78,0x77,0x77,0x76,0x76,0x75,0x75,0x75,0x78,0x78,0x78,0x79,0x79,0x79,0x7a,0x7a,
+0x7c,0x7c,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x78,
+0x73,0x73,0x74,0x75,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,0x75,0x75,
+0x76,0x76,0x76,0x76,0x77,0x77,0x77,0x77,0x75,0x76,0x78,0x79,0x7a,0x79,0x79,0x78,
+0x74,0x76,0x78,0x77,0x75,0x74,0x76,0x78,0x72,0x73,0x77,0x7f,0x8a,0x92,0x95,0x95,
+0x95,0x95,0x96,0x96,0x97,0x98,0x98,0x99,0x99,0x99,0x99,0x9a,0x9b,0x9b,0x9c,0x9c,
+0x9c,0x9d,0x9f,0xa2,0xa5,0xa7,0xa8,0xa9,0xac,0xad,0xae,0xae,0xae,0xad,0xac,0xab,
+0xa8,0xa5,0xa1,0x9b,0x95,0x8e,0x89,0x87,0x81,0x7f,0x7c,0x79,0x78,0x78,0x7a,0x7b,
+0x7a,0x79,0x79,0x79,0x78,0x77,0x77,0x77,0x78,0x77,0x76,0x76,0x76,0x77,0x78,0x79,
+0x79,0x79,0x79,0x7a,0x7a,0x7b,0x7b,0x7b,0x89,0x81,0x75,0x6c,0x6a,0x6f,0x78,0x7e,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xae,0xb0,0xb0,0xa9,0x9e,0x93,0x8b,0x88,0x8d,0x8c,0x8c,0x92,0x9c,0xa5,0xaa,0xab,
+0xa6,0x95,0x80,0x76,0x78,0x7e,0x7e,0x7c,0x7d,0x7c,0x7a,0x79,0x78,0x77,0x77,0x78,
+0x77,0x77,0x78,0x78,0x79,0x79,0x79,0x79,0x78,0x78,0x79,0x79,0x78,0x78,0x77,0x76,
+0x77,0x79,0x7d,0x81,0x84,0x86,0x87,0x87,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x88,0x88,0x87,0x87,0x86,0x84,0x83,0x83,
+0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x87,0x88,0x88,0x89,
+0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x75,0x76,0x77,0x79,0x7a,0x7b,0x7b,0x7b,0x77,0x77,0x77,0x76,0x76,0x76,0x76,0x76,
+0x78,0x78,0x77,0x76,0x75,0x75,0x74,0x74,0x78,0x78,0x78,0x78,0x78,0x78,0x79,0x79,
+0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,
+0x74,0x74,0x75,0x75,0x76,0x76,0x77,0x77,0x78,0x78,0x77,0x77,0x77,0x76,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x78,0x78,0x77,
+0x75,0x77,0x79,0x78,0x75,0x74,0x76,0x78,0x77,0x77,0x79,0x80,0x89,0x8f,0x92,0x92,
+0x94,0x94,0x94,0x95,0x96,0x96,0x96,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,0x97,
+0x94,0x94,0x96,0x98,0x9a,0x9c,0x9e,0xa0,0xa8,0xa9,0xaa,0xac,0xad,0xad,0xac,0xac,
+0xa6,0xa3,0x9e,0x98,0x92,0x8c,0x87,0x85,0x7f,0x7d,0x7b,0x79,0x78,0x79,0x7a,0x7b,
+0x7a,0x79,0x79,0x78,0x77,0x76,0x76,0x75,0x77,0x77,0x76,0x76,0x76,0x77,0x79,0x79,
+0x79,0x79,0x79,0x79,0x7a,0x7a,0x7a,0x7a,0x81,0x77,0x69,0x5e,0x5c,0x63,0x6e,0x77,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xae,0xb0,0xaf,0xa9,0xa0,0x97,0x92,0x90,0x96,0x94,0x94,0x99,0xa1,0xa8,0xab,0xab,
+0xa4,0x93,0x7f,0x75,0x78,0x7d,0x7d,0x7a,0x7b,0x7a,0x79,0x77,0x76,0x76,0x76,0x77,
+0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x77,0x78,0x79,0x7a,0x79,0x78,0x76,0x75,
+0x74,0x77,0x7c,0x80,0x83,0x85,0x85,0x84,0x87,0x86,0x86,0x86,0x85,0x85,0x84,0x84,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x88,0x88,0x87,0x86,0x85,0x84,0x83,0x83,
+0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,
+0x86,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x76,0x77,0x78,0x7a,0x7b,0x7b,0x7b,0x7b,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x75,
+0x77,0x77,0x76,0x76,0x75,0x75,0x74,0x74,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x79,0x7a,0x7b,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7a,0x78,0x77,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x78,
+0x79,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x76,
+0x77,0x79,0x7b,0x7a,0x77,0x75,0x77,0x79,0x7e,0x7d,0x7d,0x82,0x89,0x8f,0x91,0x91,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x96,0x96,0x96,0x95,0x95,0x95,0x95,0x94,0x94,
+0x90,0x90,0x90,0x91,0x92,0x94,0x96,0x97,0x9d,0x9f,0xa2,0xa4,0xa7,0xa8,0xa9,0xa9,
+0xa4,0xa1,0x9b,0x95,0x8e,0x89,0x85,0x83,0x7d,0x7c,0x7b,0x79,0x79,0x79,0x7a,0x7b,
+0x79,0x79,0x78,0x77,0x76,0x75,0x75,0x74,0x76,0x76,0x75,0x75,0x76,0x77,0x78,0x79,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7b,0x71,0x63,0x57,0x55,0x5d,0x68,0x71,
+0x7c,0x7c,0x7b,0x7b,0x7a,0x79,0x79,0x79,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xad,0xae,0xae,0xaa,0xa2,0x9c,0x9a,0x9a,0xa0,0x9e,0x9c,0x9f,0xa4,0xa8,0xa9,0xa8,
+0x9f,0x8f,0x7b,0x73,0x76,0x7b,0x7b,0x79,0x7a,0x79,0x78,0x77,0x76,0x76,0x76,0x77,
+0x78,0x78,0x77,0x76,0x76,0x77,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,0x78,0x76,0x75,
+0x74,0x77,0x7c,0x80,0x83,0x83,0x83,0x82,0x87,0x87,0x86,0x86,0x86,0x86,0x85,0x85,
+0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x88,0x87,0x86,0x84,0x84,0x84,0x84,0x85,
+0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,
+0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x74,0x75,0x76,0x78,0x78,0x78,0x77,0x77,0x7a,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,
+0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x78,0x79,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,0x7b,0x7c,0x7c,0x7c,0x7b,0x79,0x77,0x76,
+0x78,0x78,0x77,0x76,0x76,0x75,0x74,0x74,0x76,0x77,0x77,0x78,0x78,0x79,0x79,0x7a,
+0x7a,0x7a,0x7a,0x79,0x79,0x78,0x78,0x78,0x79,0x79,0x78,0x77,0x76,0x76,0x76,0x76,
+0x79,0x7c,0x7d,0x7c,0x79,0x77,0x79,0x7b,0x80,0x7e,0x7e,0x83,0x8a,0x90,0x92,0x93,
+0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x95,0x95,0x94,0x94,0x93,0x93,
+0x92,0x91,0x90,0x8f,0x8f,0x90,0x91,0x92,0x90,0x92,0x96,0x9a,0x9e,0xa1,0xa2,0xa3,
+0xa2,0x9e,0x98,0x91,0x8b,0x86,0x82,0x81,0x7b,0x7b,0x7a,0x7a,0x79,0x7a,0x7a,0x7b,
+0x79,0x79,0x78,0x77,0x76,0x75,0x74,0x73,0x75,0x74,0x74,0x74,0x75,0x76,0x78,0x79,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x7b,0x72,0x64,0x59,0x57,0x5e,0x69,0x71,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xaa,0xac,0xad,0xaa,0xa5,0xa2,0xa2,0xa4,0xa6,0xa3,0xa1,0xa1,0xa4,0xa6,0xa4,0xa2,
+0x9a,0x8a,0x78,0x70,0x74,0x7a,0x7a,0x77,0x7a,0x79,0x78,0x76,0x76,0x76,0x77,0x77,
+0x79,0x78,0x77,0x76,0x76,0x76,0x77,0x78,0x76,0x77,0x79,0x7b,0x7a,0x78,0x76,0x74,
+0x77,0x7a,0x7f,0x83,0x85,0x85,0x83,0x81,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x87,
+0x84,0x85,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x86,0x84,0x83,0x83,0x84,0x85,0x86,
+0x86,0x86,0x86,0x87,0x87,0x88,0x88,0x88,0x89,0x89,0x88,0x87,0x86,0x84,0x84,0x83,
+0x82,0x83,0x83,0x83,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x72,0x73,0x74,0x75,0x75,0x74,0x74,0x73,0x7b,0x7a,0x79,0x78,0x77,0x76,0x75,0x75,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x76,0x76,0x76,
+0x77,0x78,0x7a,0x7c,0x7d,0x7d,0x7c,0x7b,0x7a,0x7b,0x7c,0x7c,0x7b,0x79,0x77,0x75,
+0x7a,0x79,0x78,0x77,0x76,0x74,0x73,0x73,0x76,0x76,0x77,0x78,0x79,0x7a,0x7b,0x7b,
+0x7b,0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x78,0x7a,0x79,0x78,0x77,0x76,0x76,0x76,0x76,
+0x7b,0x7d,0x7f,0x7d,0x7a,0x78,0x7a,0x7c,0x7e,0x7c,0x7d,0x82,0x8a,0x91,0x94,0x95,
+0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x96,0x95,0x94,0x93,0x93,0x92,
+0x95,0x94,0x92,0x90,0x8f,0x8f,0x90,0x90,0x86,0x89,0x8d,0x92,0x97,0x9a,0x9c,0x9e,
+0xa0,0x9d,0x97,0x8f,0x89,0x84,0x81,0x7f,0x7a,0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,
+0x79,0x79,0x78,0x77,0x75,0x74,0x73,0x73,0x74,0x73,0x73,0x73,0x74,0x76,0x77,0x78,
+0x79,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x7e,0x75,0x68,0x5e,0x5c,0x62,0x6c,0x74,
+0x79,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x75,0x78,0x76,0x74,0x82,0x9b,0xa9,0xaa,
+0xa9,0xab,0xac,0xab,0xa7,0xa5,0xa7,0xa9,0xa9,0xa6,0xa2,0xa1,0xa3,0xa3,0xa0,0x9d,
+0x96,0x87,0x75,0x6f,0x73,0x79,0x79,0x76,0x7a,0x79,0x78,0x76,0x76,0x76,0x77,0x77,
+0x79,0x78,0x77,0x75,0x75,0x76,0x77,0x78,0x76,0x77,0x7a,0x7b,0x7b,0x79,0x76,0x74,
+0x7a,0x7d,0x82,0x86,0x87,0x86,0x84,0x82,0x85,0x86,0x86,0x86,0x87,0x87,0x88,0x88,
+0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x86,0x85,0x83,0x83,0x83,0x85,0x86,0x88,
+0x86,0x86,0x87,0x87,0x88,0x88,0x89,0x89,0x8b,0x8a,0x89,0x87,0x85,0x84,0x82,0x82,
+0x81,0x82,0x82,0x82,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x79,0x78,0x77,0x77,0x75,0x74,0x74,0x73,0x7c,0x7c,0x7d,0x7d,0x7c,0x79,0x76,0x74,
+0x75,0x74,0x73,0x73,0x74,0x76,0x78,0x7a,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x76,0x77,0x78,0x79,0x7a,0x7b,0x7c,0x7c,0x7c,0x7b,0x79,0x77,0x77,0x77,0x78,0x79,
+0x7c,0x7b,0x79,0x78,0x76,0x76,0x76,0x76,0x77,0x77,0x78,0x79,0x7a,0x7b,0x7b,0x7c,
+0x7d,0x7c,0x7b,0x7a,0x78,0x76,0x75,0x75,0x7c,0x7b,0x78,0x76,0x76,0x77,0x79,0x7b,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7b,0x7c,0x7d,0x80,0x85,0x8b,0x91,0x94,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x8f,0x8f,0x8f,
+0x93,0x91,0x8d,0x89,0x85,0x81,0x7e,0x7d,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,
+0x78,0x78,0x78,0x78,0x77,0x75,0x73,0x72,0x72,0x73,0x74,0x76,0x76,0x76,0x75,0x75,
+0x78,0x75,0x70,0x6c,0x6c,0x70,0x74,0x78,0x75,0x72,0x6e,0x6b,0x6c,0x71,0x78,0x7c,
+0x77,0x77,0x79,0x7a,0x7a,0x7a,0x79,0x78,0x76,0x74,0x74,0x78,0x83,0x93,0xa2,0xac,
+0xaa,0xa8,0xa6,0xa3,0x9f,0x9c,0x9a,0x98,0x97,0x96,0x94,0x8d,0x86,0x82,0x82,0x84,
+0x78,0x77,0x75,0x73,0x74,0x76,0x79,0x7b,0x7c,0x7c,0x7b,0x7a,0x7a,0x7a,0x7b,0x7c,
+0x81,0x7e,0x7b,0x78,0x77,0x78,0x7b,0x7c,0x78,0x78,0x78,0x78,0x79,0x7a,0x7c,0x7d,
+0x7f,0x80,0x83,0x85,0x87,0x88,0x89,0x89,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x84,0x84,0x83,0x84,0x85,0x86,0x88,0x89,0x88,0x88,0x87,0x86,0x85,0x85,0x84,0x84,
+0x83,0x83,0x82,0x82,0x81,0x81,0x80,0x80,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x86,0x86,0x85,0x85,0x84,0x84,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x78,0x77,0x77,0x76,0x76,0x75,0x75,0x74,0x7a,0x7b,0x7c,0x7d,0x7c,0x79,0x77,0x75,
+0x75,0x75,0x74,0x74,0x75,0x76,0x78,0x79,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x78,0x79,0x79,0x7a,0x7b,0x7c,0x7d,0x7d,0x7a,0x79,0x78,0x77,0x77,0x77,0x79,0x7a,
+0x7b,0x7a,0x78,0x77,0x76,0x76,0x76,0x77,0x78,0x78,0x79,0x7a,0x7b,0x7b,0x7c,0x7c,
+0x7d,0x7d,0x7c,0x7b,0x7a,0x79,0x78,0x78,0x7d,0x7b,0x79,0x77,0x77,0x78,0x7a,0x7b,
+0x7d,0x7d,0x7d,0x7e,0x7e,0x7e,0x7f,0x7f,0x7c,0x7d,0x7e,0x82,0x86,0x8c,0x91,0x94,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x92,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x8f,0x8f,
+0x92,0x8f,0x8c,0x87,0x83,0x80,0x7d,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,0x79,0x79,
+0x78,0x78,0x78,0x78,0x77,0x75,0x73,0x72,0x72,0x73,0x74,0x75,0x76,0x76,0x75,0x75,
+0x77,0x74,0x70,0x6d,0x6e,0x71,0x76,0x79,0x78,0x75,0x73,0x71,0x72,0x75,0x79,0x7c,
+0x76,0x77,0x78,0x79,0x79,0x79,0x78,0x78,0x77,0x75,0x74,0x77,0x7e,0x88,0x92,0x99,
+0x91,0x90,0x8e,0x8b,0x88,0x86,0x84,0x83,0x7c,0x7c,0x7a,0x76,0x72,0x70,0x71,0x72,
+0x76,0x74,0x72,0x70,0x71,0x75,0x7a,0x7e,0x80,0x7f,0x7e,0x7d,0x7d,0x7e,0x7f,0x7f,
+0x81,0x7f,0x7c,0x79,0x78,0x79,0x7b,0x7d,0x7b,0x7a,0x7a,0x79,0x7a,0x7b,0x7c,0x7d,
+0x7e,0x80,0x82,0x84,0x86,0x87,0x88,0x88,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,
+0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x84,
+0x84,0x83,0x83,0x83,0x84,0x85,0x87,0x88,0x88,0x87,0x87,0x86,0x85,0x85,0x84,0x84,
+0x84,0x83,0x83,0x83,0x82,0x82,0x81,0x81,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x86,0x85,0x85,0x85,0x84,0x84,0x83,0x83,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x79,0x7b,0x7c,0x7c,0x7b,0x79,0x77,
+0x76,0x75,0x75,0x75,0x76,0x77,0x78,0x79,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7a,0x7b,0x7b,0x7c,0x7d,0x7d,0x7d,0x77,0x77,0x76,0x76,0x77,0x78,0x79,0x7a,
+0x78,0x78,0x77,0x76,0x76,0x77,0x78,0x78,0x7a,0x7a,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,
+0x7e,0x7e,0x7e,0x7d,0x7d,0x7c,0x7c,0x7c,0x7e,0x7d,0x7b,0x79,0x79,0x7a,0x7b,0x7d,
+0x7d,0x7d,0x7e,0x7f,0x80,0x81,0x82,0x82,0x7f,0x7f,0x80,0x83,0x88,0x8d,0x92,0x95,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x90,
+0x8f,0x8d,0x89,0x85,0x81,0x7d,0x7c,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x79,
+0x77,0x78,0x78,0x78,0x77,0x75,0x73,0x72,0x71,0x72,0x73,0x75,0x75,0x75,0x75,0x74,
+0x76,0x74,0x71,0x6f,0x70,0x74,0x78,0x7b,0x79,0x78,0x78,0x78,0x78,0x78,0x79,0x79,
+0x75,0x75,0x77,0x78,0x78,0x78,0x77,0x76,0x77,0x76,0x75,0x75,0x78,0x7b,0x7f,0x82,
+0x7b,0x7b,0x7a,0x78,0x76,0x75,0x74,0x73,0x76,0x75,0x74,0x73,0x72,0x72,0x73,0x73,
+0x71,0x73,0x75,0x75,0x75,0x78,0x7d,0x82,0x84,0x83,0x82,0x81,0x81,0x81,0x82,0x82,
+0x82,0x80,0x7c,0x7a,0x79,0x7a,0x7d,0x7e,0x7f,0x7e,0x7d,0x7c,0x7b,0x7c,0x7c,0x7d,
+0x7e,0x7f,0x81,0x84,0x85,0x86,0x86,0x86,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x84,
+0x83,0x83,0x83,0x83,0x83,0x85,0x86,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x84,0x84,
+0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x88,
+0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x77,0x75,0x77,0x79,0x7b,0x7c,0x7b,0x7a,0x79,
+0x76,0x76,0x76,0x76,0x77,0x77,0x78,0x78,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7a,0x7a,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x75,0x75,0x76,0x77,0x78,0x7a,0x7b,0x7b,
+0x77,0x77,0x76,0x76,0x77,0x78,0x79,0x7a,0x7d,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x7f,
+0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,0x81,0x80,0x7f,0x7d,0x7c,0x7c,0x7c,0x7d,0x7e,
+0x7e,0x7e,0x7f,0x81,0x82,0x83,0x84,0x85,0x81,0x81,0x82,0x85,0x89,0x8e,0x92,0x95,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x92,0x91,0x91,0x91,0x91,0x90,0x90,0x90,
+0x8d,0x8b,0x86,0x82,0x7e,0x7b,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x78,
+0x77,0x77,0x78,0x78,0x77,0x75,0x74,0x73,0x70,0x71,0x72,0x74,0x75,0x75,0x75,0x74,
+0x75,0x73,0x72,0x71,0x73,0x76,0x79,0x7c,0x77,0x78,0x7a,0x7a,0x7a,0x78,0x76,0x74,
+0x74,0x74,0x76,0x77,0x77,0x77,0x76,0x75,0x74,0x75,0x75,0x76,0x76,0x76,0x75,0x75,
+0x78,0x78,0x77,0x77,0x76,0x75,0x75,0x75,0x7b,0x79,0x77,0x78,0x79,0x7a,0x79,0x78,
+0x6d,0x77,0x83,0x88,0x87,0x83,0x82,0x83,0x85,0x84,0x83,0x81,0x81,0x81,0x81,0x82,
+0x82,0x80,0x7d,0x7a,0x7a,0x7b,0x7e,0x80,0x82,0x81,0x7f,0x7e,0x7d,0x7d,0x7d,0x7d,
+0x7e,0x7f,0x81,0x83,0x84,0x85,0x85,0x85,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,
+0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x83,
+0x84,0x83,0x83,0x82,0x83,0x84,0x85,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x85,
+0x75,0x75,0x75,0x76,0x76,0x77,0x77,0x77,0x73,0x75,0x78,0x7b,0x7c,0x7c,0x7b,0x7a,
+0x77,0x77,0x77,0x78,0x78,0x78,0x78,0x78,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,0x75,0x76,0x78,0x79,0x7b,0x7c,0x7d,0x7d,
+0x79,0x78,0x78,0x78,0x79,0x7a,0x7c,0x7d,0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x81,
+0x81,0x81,0x82,0x82,0x83,0x83,0x83,0x84,0x82,0x81,0x80,0x7f,0x7f,0x7f,0x80,0x80,
+0x7f,0x7f,0x80,0x82,0x83,0x84,0x85,0x86,0x83,0x83,0x84,0x86,0x89,0x8e,0x92,0x95,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,
+0x8c,0x89,0x84,0x7f,0x7b,0x7a,0x79,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x77,0x77,
+0x76,0x77,0x77,0x77,0x77,0x76,0x74,0x73,0x6e,0x70,0x71,0x73,0x74,0x75,0x74,0x74,
+0x73,0x73,0x73,0x73,0x75,0x77,0x79,0x7b,0x74,0x76,0x77,0x78,0x78,0x75,0x72,0x70,
+0x73,0x74,0x75,0x76,0x77,0x76,0x76,0x75,0x72,0x73,0x75,0x77,0x77,0x77,0x75,0x74,
+0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x79,0x74,0x71,0x6e,0x70,0x74,0x75,0x72,0x6e,
+0x6d,0x7f,0x94,0x9e,0x9a,0x8e,0x85,0x81,0x83,0x82,0x81,0x7f,0x7f,0x7e,0x7f,0x7f,
+0x81,0x7f,0x7c,0x7a,0x7a,0x7c,0x7e,0x80,0x84,0x83,0x81,0x7f,0x7e,0x7e,0x7e,0x7e,
+0x7e,0x7f,0x81,0x83,0x84,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,
+0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x84,
+0x85,0x84,0x83,0x83,0x83,0x84,0x85,0x86,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,
+0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x82,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x73,0x75,0x78,0x7a,0x7c,0x7b,0x7a,0x7a,
+0x77,0x78,0x79,0x79,0x79,0x79,0x78,0x77,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x7b,0x7b,0x7b,0x7a,0x79,0x79,0x78,0x78,0x78,0x79,0x7b,0x7d,0x7e,0x7f,0x7f,0x7f,
+0x7d,0x7c,0x7c,0x7c,0x7c,0x7d,0x7f,0x80,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,
+0x80,0x80,0x81,0x82,0x83,0x84,0x85,0x85,0x84,0x84,0x84,0x86,0x89,0x8d,0x91,0x94,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x90,
+0x8b,0x88,0x83,0x7d,0x7a,0x79,0x79,0x7a,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,
+0x76,0x76,0x77,0x77,0x77,0x76,0x75,0x74,0x6d,0x6f,0x70,0x72,0x74,0x74,0x74,0x74,
+0x73,0x73,0x74,0x74,0x75,0x76,0x77,0x78,0x74,0x74,0x75,0x75,0x74,0x73,0x72,0x70,
+0x74,0x74,0x76,0x77,0x77,0x77,0x76,0x75,0x73,0x74,0x76,0x77,0x78,0x78,0x78,0x77,
+0x74,0x75,0x75,0x75,0x75,0x75,0x76,0x76,0x73,0x6f,0x6e,0x72,0x7a,0x7e,0x7a,0x75,
+0x74,0x87,0x9e,0xa6,0x9d,0x8e,0x84,0x81,0x83,0x82,0x80,0x7e,0x7d,0x7d,0x7d,0x7e,
+0x80,0x7e,0x7b,0x79,0x79,0x7b,0x7e,0x80,0x84,0x83,0x81,0x80,0x7f,0x7f,0x7f,0x7f,
+0x7f,0x81,0x82,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x82,0x82,0x82,
+0x84,0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x86,0x85,0x85,0x84,0x84,0x85,0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,
+0x85,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x7f,0x7f,0x7f,0x80,0x80,0x80,0x81,0x81,
+0x78,0x77,0x77,0x76,0x76,0x75,0x75,0x74,0x74,0x75,0x78,0x7a,0x7b,0x7b,0x7a,0x79,
+0x78,0x78,0x7a,0x7a,0x7a,0x79,0x78,0x77,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x81,0x80,0x80,0x7f,0x7e,0x7d,0x7c,0x7c,0x7c,0x7d,0x7f,0x81,0x82,0x81,0x81,0x80,
+0x81,0x80,0x80,0x7f,0x7f,0x80,0x81,0x82,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,
+0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x85,0x84,0x84,0x84,0x83,0x83,
+0x81,0x81,0x82,0x82,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x88,0x8c,0x90,0x92,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x96,0x95,0x95,0x95,0x95,0x94,0x94,0x94,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x91,
+0x8b,0x87,0x82,0x7c,0x79,0x78,0x79,0x7a,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,
+0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x74,0x6c,0x6e,0x70,0x72,0x73,0x74,0x74,0x74,
+0x73,0x73,0x74,0x75,0x75,0x75,0x75,0x75,0x76,0x75,0x74,0x73,0x73,0x74,0x74,0x75,
+0x74,0x75,0x76,0x77,0x78,0x77,0x77,0x76,0x77,0x77,0x76,0x76,0x75,0x76,0x76,0x76,
+0x73,0x73,0x73,0x74,0x74,0x74,0x74,0x74,0x7a,0x76,0x77,0x81,0x8e,0x96,0x94,0x8f,
+0x7f,0x8d,0x9b,0x9b,0x8e,0x82,0x7f,0x81,0x85,0x83,0x82,0x80,0x7f,0x7e,0x7e,0x7f,
+0x7f,0x7d,0x7a,0x78,0x78,0x7b,0x7d,0x80,0x83,0x82,0x81,0x80,0x7f,0x7f,0x80,0x80,
+0x81,0x82,0x83,0x85,0x86,0x86,0x86,0x85,0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,
+0x84,0x84,0x85,0x85,0x86,0x87,0x87,0x88,0x88,0x88,0x87,0x87,0x87,0x86,0x86,0x86,
+0x88,0x87,0x86,0x85,0x85,0x86,0x86,0x87,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,
+0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x83,0x83,0x84,0x84,0x85,0x85,0x85,0x86,0x81,0x82,0x82,0x82,0x82,0x83,0x83,0x83,
+0x79,0x78,0x77,0x77,0x75,0x74,0x74,0x73,0x74,0x76,0x78,0x7a,0x7b,0x7a,0x79,0x78,
+0x78,0x79,0x7a,0x7b,0x7b,0x79,0x78,0x77,0x79,0x78,0x78,0x77,0x78,0x79,0x7a,0x7a,
+0x85,0x85,0x84,0x83,0x82,0x81,0x80,0x80,0x7e,0x80,0x82,0x83,0x84,0x83,0x82,0x81,
+0x84,0x83,0x82,0x81,0x81,0x82,0x83,0x83,0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x85,0x85,0x84,0x83,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x84,0x84,0x84,0x85,0x88,0x8c,0x8f,0x92,
+0x94,0x94,0x94,0x94,0x95,0x95,0x95,0x95,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,
+0x93,0x93,0x93,0x92,0x92,0x92,0x91,0x91,0x93,0x92,0x92,0x92,0x92,0x91,0x91,0x91,
+0x8b,0x87,0x82,0x7c,0x79,0x78,0x7a,0x7b,0x78,0x77,0x77,0x77,0x77,0x76,0x76,0x76,
+0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x75,0x6c,0x6d,0x6f,0x71,0x73,0x74,0x74,0x74,
+0x73,0x73,0x74,0x75,0x75,0x74,0x73,0x72,0x79,0x77,0x75,0x73,0x73,0x75,0x78,0x7a,
+0x75,0x76,0x77,0x78,0x78,0x78,0x77,0x77,0x7c,0x7a,0x77,0x74,0x72,0x72,0x73,0x73,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x75,0x78,0x85,0x98,0xa3,0xa3,0x9e,
+0x87,0x90,0x94,0x8c,0x7d,0x75,0x7a,0x83,0x87,0x86,0x84,0x82,0x81,0x80,0x80,0x81,
+0x7e,0x7c,0x79,0x78,0x78,0x7a,0x7d,0x7f,0x82,0x81,0x80,0x7f,0x7f,0x80,0x80,0x81,
+0x82,0x83,0x84,0x86,0x86,0x86,0x86,0x86,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x81,
+0x84,0x84,0x85,0x85,0x86,0x87,0x88,0x88,0x88,0x88,0x88,0x88,0x87,0x87,0x87,0x87,
+0x89,0x88,0x87,0x86,0x86,0x86,0x87,0x88,0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x88,0x88,0x88,0x88,0x88,0x88,0x88,0x88,
+0x83,0x83,0x84,0x84,0x85,0x85,0x86,0x86,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,
+0x78,0x78,0x79,0x7a,0x7a,0x79,0x78,0x78,0x79,0x7b,0x7d,0x7e,0x7f,0x7f,0x7e,0x7d,
+0x79,0x79,0x79,0x78,0x78,0x77,0x77,0x76,0x76,0x77,0x79,0x7b,0x7d,0x7f,0x80,0x81,
+0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x81,0x81,0x82,0x82,0x83,0x84,0x84,0x84,
+0x84,0x84,0x83,0x82,0x81,0x82,0x83,0x83,0x80,0x81,0x83,0x84,0x83,0x82,0x80,0x7f,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,
+0x81,0x81,0x81,0x82,0x83,0x83,0x84,0x84,0x82,0x80,0x7e,0x7e,0x82,0x89,0x90,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,0x93,
+0x92,0x92,0x92,0x91,0x91,0x91,0x90,0x90,0x93,0x91,0x8f,0x90,0x92,0x92,0x90,0x8d,
+0x86,0x84,0x80,0x7d,0x7a,0x7a,0x7a,0x7a,0x7a,0x79,0x79,0x78,0x77,0x76,0x75,0x75,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x72,0x72,0x71,0x70,0x6f,0x6f,0x6e,0x6e,
+0x6c,0x6d,0x70,0x72,0x74,0x75,0x75,0x75,0x71,0x7a,0x71,0x6e,0x7d,0x78,0x6d,0x77,
+0x75,0x74,0x72,0x71,0x75,0x7a,0x78,0x71,0x6d,0x7b,0x7f,0x75,0x6f,0x75,0x7c,0x7c,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x78,0x82,0x93,0xa2,0xa4,0x92,0x7e,
+0x7b,0x98,0x9a,0x89,0x81,0x7c,0x7c,0x88,0x81,0x81,0x81,0x80,0x81,0x81,0x82,0x82,
+0x7e,0x7c,0x79,0x77,0x77,0x7a,0x7d,0x80,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7e,
+0x80,0x82,0x85,0x87,0x88,0x87,0x85,0x84,0x84,0x83,0x83,0x81,0x80,0x7f,0x7e,0x7e,
+0x82,0x83,0x85,0x86,0x87,0x87,0x86,0x86,0x88,0x88,0x88,0x87,0x87,0x86,0x86,0x86,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x87,0x87,0x88,0x87,0x86,0x85,0x83,0x82,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x89,0x89,0x89,0x88,0x87,0x86,0x86,0x86,
+0x78,0x79,0x7a,0x7a,0x7a,0x7a,0x79,0x78,0x79,0x7a,0x7c,0x7d,0x7e,0x7e,0x7d,0x7c,
+0x7b,0x7b,0x7a,0x7a,0x79,0x79,0x79,0x78,0x78,0x79,0x7a,0x7c,0x7e,0x80,0x81,0x82,
+0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x80,0x81,0x81,0x82,0x83,0x83,0x84,0x84,
+0x84,0x84,0x83,0x82,0x82,0x82,0x83,0x84,0x81,0x82,0x83,0x84,0x84,0x83,0x81,0x80,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,
+0x80,0x81,0x81,0x82,0x82,0x83,0x84,0x84,0x82,0x80,0x7e,0x7e,0x82,0x89,0x90,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,
+0x93,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x93,0x91,0x8f,0x90,0x93,0x93,0x90,0x8d,
+0x85,0x83,0x80,0x7c,0x7a,0x79,0x7a,0x7a,0x79,0x79,0x78,0x78,0x77,0x76,0x75,0x75,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x73,0x73,0x72,0x71,0x70,0x6e,0x6e,0x6d,
+0x6b,0x6c,0x6f,0x71,0x73,0x75,0x75,0x75,0x75,0x7a,0x72,0x70,0x79,0x71,0x6c,0x7c,
+0x75,0x7b,0x7f,0x7c,0x77,0x75,0x76,0x78,0x74,0x7a,0x78,0x70,0x70,0x77,0x77,0x6f,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x71,0x72,0x7d,0x8e,0x98,0x92,0x84,0x7b,
+0x92,0xaa,0xa9,0x93,0x88,0x7f,0x7a,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7f,0x80,0x80,
+0x7f,0x7c,0x79,0x77,0x77,0x79,0x7c,0x7e,0x7f,0x7f,0x7f,0x7e,0x7e,0x7d,0x7d,0x7d,
+0x80,0x82,0x84,0x87,0x88,0x87,0x85,0x84,0x84,0x84,0x83,0x82,0x80,0x7f,0x7f,0x7e,
+0x82,0x83,0x85,0x86,0x87,0x87,0x86,0x86,0x87,0x87,0x87,0x86,0x86,0x86,0x85,0x85,
+0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x84,0x85,0x85,0x85,0x84,0x83,0x81,0x80,
+0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x87,0x87,0x87,0x87,0x86,0x86,0x86,0x86,
+0x79,0x7a,0x7b,0x7b,0x7b,0x7b,0x7a,0x79,0x78,0x79,0x7b,0x7c,0x7d,0x7d,0x7c,0x7c,
+0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7b,0x7c,0x7d,0x7e,0x80,0x82,0x83,0x83,
+0x84,0x84,0x83,0x83,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x81,0x82,0x82,0x83,0x83,
+0x84,0x84,0x83,0x82,0x82,0x83,0x84,0x84,0x82,0x82,0x83,0x84,0x84,0x83,0x82,0x82,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x82,0x82,0x82,0x81,0x81,0x81,0x80,0x80,
+0x80,0x80,0x81,0x81,0x82,0x83,0x83,0x83,0x82,0x80,0x7e,0x7e,0x82,0x89,0x90,0x95,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,
+0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x94,0x91,0x90,0x91,0x93,0x93,0x8f,0x8c,
+0x84,0x82,0x7e,0x7b,0x79,0x78,0x79,0x79,0x79,0x79,0x78,0x78,0x77,0x76,0x76,0x76,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x74,0x73,0x71,0x70,0x6e,0x6d,0x6c,
+0x6a,0x6b,0x6e,0x71,0x73,0x75,0x75,0x75,0x79,0x78,0x73,0x74,0x76,0x6b,0x70,0x8b,
+0x8e,0x96,0x9c,0x96,0x84,0x75,0x74,0x7b,0x75,0x77,0x73,0x6e,0x74,0x7d,0x79,0x6c,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x71,0x7d,0x92,0x93,0x82,0x79,0x7f,
+0xa7,0xbb,0xb5,0x9c,0x90,0x83,0x79,0x7b,0x7f,0x7f,0x7f,0x7e,0x7d,0x7d,0x7c,0x7c,
+0x7f,0x7d,0x7a,0x77,0x76,0x78,0x7a,0x7c,0x7e,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,
+0x7f,0x81,0x83,0x86,0x87,0x86,0x85,0x85,0x84,0x84,0x83,0x82,0x81,0x80,0x7f,0x7f,
+0x82,0x83,0x84,0x86,0x86,0x86,0x86,0x85,0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,
+0x83,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x82,0x82,0x81,0x81,0x81,0x80,0x80,0x80,0x82,0x82,0x83,0x83,0x82,0x81,0x7f,0x7e,
+0x81,0x81,0x81,0x81,0x82,0x82,0x82,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,
+0x7b,0x7c,0x7d,0x7d,0x7d,0x7d,0x7c,0x7b,0x79,0x7a,0x7a,0x7b,0x7c,0x7c,0x7c,0x7c,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7f,0x7e,0x7f,0x80,0x81,0x82,0x83,0x84,0x85,
+0x84,0x84,0x83,0x82,0x80,0x7f,0x7f,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x81,0x82,0x82,
+0x83,0x83,0x82,0x82,0x82,0x83,0x84,0x85,0x82,0x83,0x83,0x83,0x84,0x84,0x84,0x83,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x81,0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,
+0x7f,0x7f,0x80,0x81,0x81,0x82,0x82,0x83,0x81,0x7f,0x7d,0x7e,0x81,0x88,0x90,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,
+0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,0x93,0x91,0x90,0x92,0x93,0x93,0x8e,0x8a,
+0x82,0x80,0x7d,0x7a,0x78,0x77,0x78,0x79,0x78,0x78,0x78,0x77,0x77,0x77,0x76,0x76,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x75,0x74,0x72,0x70,0x6f,0x6d,0x6d,
+0x6a,0x6b,0x6e,0x71,0x73,0x75,0x75,0x75,0x7a,0x74,0x73,0x79,0x77,0x71,0x81,0x9f,
+0xb1,0xb2,0xb3,0xae,0x98,0x7f,0x75,0x77,0x76,0x7e,0x80,0x79,0x7a,0x80,0x7f,0x76,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x7d,0x77,0x83,0x99,0x95,0x7c,0x76,0x86,
+0xa7,0xb8,0xb0,0x9b,0x93,0x89,0x7c,0x7b,0x7d,0x7d,0x7d,0x7d,0x7c,0x7a,0x79,0x78,
+0x7f,0x7d,0x7a,0x77,0x76,0x77,0x78,0x79,0x7c,0x7c,0x7c,0x7c,0x7b,0x7b,0x7b,0x7b,
+0x7f,0x80,0x82,0x84,0x86,0x86,0x86,0x85,0x84,0x84,0x83,0x83,0x82,0x81,0x80,0x80,
+0x82,0x83,0x84,0x85,0x86,0x86,0x86,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x83,0x83,0x83,0x82,0x82,0x82,0x81,0x81,0x82,0x83,0x83,0x84,0x83,0x82,0x81,0x80,
+0x80,0x80,0x80,0x80,0x81,0x81,0x81,0x82,0x81,0x82,0x82,0x83,0x83,0x84,0x85,0x85,
+0x7e,0x7e,0x7f,0x80,0x80,0x7f,0x7e,0x7e,0x7b,0x7b,0x7b,0x7c,0x7d,0x7d,0x7e,0x7f,
+0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x83,0x81,0x82,0x82,0x83,0x84,0x84,0x85,0x85,
+0x84,0x84,0x83,0x81,0x80,0x7e,0x7d,0x7c,0x7e,0x7e,0x7e,0x7f,0x80,0x80,0x81,0x81,
+0x82,0x81,0x81,0x80,0x81,0x82,0x83,0x84,0x82,0x82,0x82,0x82,0x83,0x83,0x84,0x84,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x81,0x81,0x80,0x80,0x7f,0x7e,0x7d,0x7d,
+0x7f,0x7f,0x7f,0x80,0x81,0x81,0x82,0x82,0x81,0x7f,0x7d,0x7d,0x81,0x88,0x8f,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x93,0x93,
+0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x90,0x90,0x91,0x93,0x91,0x8d,0x88,
+0x80,0x7e,0x7b,0x78,0x77,0x76,0x77,0x78,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x75,0x74,0x73,0x71,0x70,0x6e,0x6e,
+0x6c,0x6d,0x6f,0x72,0x74,0x75,0x75,0x75,0x78,0x71,0x73,0x7a,0x7b,0x82,0x99,0xb0,
+0xb1,0xa8,0xa8,0xae,0xa4,0x8a,0x77,0x74,0x85,0x96,0x9d,0x8d,0x7c,0x78,0x7a,0x79,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x7a,0x74,0x82,0x98,0x93,0x79,0x73,0x82,
+0x95,0xa5,0x9e,0x90,0x93,0x90,0x83,0x80,0x7a,0x7a,0x7b,0x7b,0x7b,0x79,0x78,0x77,
+0x7d,0x7c,0x79,0x77,0x76,0x76,0x77,0x78,0x7a,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,0x7b,
+0x7e,0x7f,0x81,0x83,0x84,0x85,0x86,0x86,0x84,0x84,0x84,0x83,0x83,0x82,0x82,0x81,
+0x81,0x82,0x84,0x85,0x86,0x86,0x85,0x85,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x85,0x85,0x86,0x86,0x86,0x85,0x84,0x83,
+0x80,0x80,0x81,0x81,0x81,0x81,0x82,0x82,0x80,0x81,0x81,0x82,0x82,0x83,0x84,0x84,
+0x81,0x82,0x83,0x83,0x83,0x83,0x82,0x81,0x7e,0x7e,0x7e,0x7e,0x7e,0x80,0x81,0x82,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,
+0x85,0x85,0x83,0x81,0x7f,0x7e,0x7c,0x7b,0x7d,0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x80,
+0x80,0x7f,0x7f,0x7f,0x7f,0x81,0x82,0x83,0x81,0x81,0x80,0x80,0x81,0x82,0x84,0x85,
+0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x82,0x81,0x81,0x80,0x7f,0x7e,0x7d,0x7d,
+0x7e,0x7e,0x7f,0x7f,0x80,0x81,0x81,0x81,0x81,0x7f,0x7d,0x7d,0x81,0x88,0x8f,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,
+0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x91,0x90,0x8f,0x8f,0x91,0x92,0x90,0x8a,0x85,
+0x7e,0x7c,0x79,0x77,0x75,0x75,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x75,0x75,0x74,0x73,0x72,0x71,0x70,0x70,
+0x6f,0x70,0x72,0x73,0x74,0x75,0x74,0x74,0x77,0x70,0x73,0x78,0x7d,0x94,0xac,0xb0,
+0x90,0x84,0x8a,0x9f,0xa1,0x8a,0x78,0x77,0x95,0xaa,0xb1,0x9a,0x7d,0x70,0x70,0x71,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x70,0x6e,0x7b,0x90,0x91,0x7e,0x73,0x77,
+0x85,0x94,0x8e,0x87,0x92,0x94,0x87,0x81,0x76,0x78,0x7a,0x7b,0x7b,0x7a,0x78,0x77,
+0x7b,0x7a,0x79,0x77,0x77,0x77,0x77,0x78,0x7a,0x7a,0x7a,0x7b,0x7b,0x7b,0x7b,0x7c,
+0x7e,0x7e,0x80,0x81,0x83,0x85,0x86,0x86,0x84,0x84,0x84,0x84,0x83,0x83,0x83,0x83,
+0x81,0x82,0x83,0x85,0x85,0x85,0x85,0x84,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x85,
+0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x88,0x87,0x87,0x87,0x86,0x86,0x86,0x86,0x85,0x86,0x87,0x87,0x87,0x87,0x86,0x85,
+0x82,0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x81,0x81,0x81,0x82,0x82,0x82,0x82,0x83,
+0x84,0x85,0x86,0x86,0x86,0x86,0x85,0x84,0x82,0x81,0x80,0x80,0x81,0x82,0x84,0x85,
+0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x87,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,
+0x87,0x86,0x84,0x82,0x80,0x7e,0x7c,0x7b,0x7c,0x7c,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,
+0x7e,0x7d,0x7d,0x7d,0x7e,0x7f,0x81,0x82,0x80,0x80,0x7f,0x7f,0x80,0x81,0x83,0x84,
+0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7d,
+0x7d,0x7e,0x7e,0x7f,0x7f,0x80,0x81,0x81,0x80,0x7f,0x7c,0x7d,0x80,0x87,0x8f,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x92,0x92,0x92,0x92,0x91,0x91,0x91,0x91,
+0x91,0x91,0x91,0x90,0x90,0x90,0x90,0x8f,0x8e,0x8d,0x8e,0x90,0x91,0x8e,0x88,0x83,
+0x7d,0x7b,0x78,0x76,0x75,0x75,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x78,0x78,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x74,0x74,0x73,0x73,0x73,0x73,0x73,0x72,
+0x73,0x73,0x74,0x75,0x75,0x75,0x74,0x73,0x78,0x72,0x73,0x72,0x7c,0xa1,0xb5,0xa2,
+0x7a,0x74,0x83,0x9d,0x9c,0x81,0x74,0x7c,0x8e,0xa0,0xa7,0x95,0x81,0x78,0x76,0x72,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x70,0x73,0x80,0x92,0x9b,0x92,0x81,0x76,
+0x85,0x91,0x8a,0x84,0x93,0x96,0x86,0x7e,0x74,0x76,0x78,0x7b,0x7b,0x7b,0x79,0x78,
+0x78,0x78,0x77,0x77,0x77,0x77,0x78,0x78,0x7a,0x7a,0x7b,0x7b,0x7b,0x7c,0x7c,0x7c,
+0x7d,0x7e,0x7f,0x80,0x82,0x84,0x86,0x87,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x83,
+0x81,0x82,0x83,0x84,0x85,0x85,0x85,0x84,0x83,0x84,0x84,0x84,0x85,0x85,0x86,0x86,
+0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x86,0x86,0x85,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x84,0x85,0x85,0x85,0x84,0x83,
+0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x83,0x83,0x82,0x82,0x82,0x82,0x81,0x81,
+0x86,0x86,0x87,0x88,0x88,0x87,0x86,0x86,0x84,0x83,0x82,0x82,0x82,0x84,0x86,0x87,
+0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,
+0x88,0x87,0x85,0x83,0x80,0x7e,0x7c,0x7b,0x7c,0x7c,0x7c,0x7d,0x7e,0x7e,0x7f,0x7f,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x80,0x81,0x7f,0x7f,0x7e,0x7e,0x7f,0x80,0x83,0x84,
+0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x83,0x83,0x82,0x81,0x7f,0x7e,0x7d,0x7d,
+0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x80,0x81,0x80,0x7e,0x7c,0x7d,0x80,0x87,0x8f,0x93,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x91,0x91,0x91,0x91,0x90,0x90,0x90,0x90,
+0x90,0x90,0x90,0x90,0x8f,0x8f,0x8f,0x8f,0x8d,0x8c,0x8d,0x8f,0x90,0x8d,0x87,0x81,
+0x7c,0x7a,0x78,0x75,0x74,0x74,0x75,0x76,0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x78,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x73,0x73,0x73,0x73,0x73,0x74,0x74,0x74,
+0x75,0x76,0x76,0x77,0x76,0x75,0x74,0x73,0x79,0x75,0x73,0x6d,0x79,0xa6,0xb5,0x94,
+0x7d,0x7e,0x92,0xa8,0x9b,0x79,0x6e,0x7e,0x7a,0x89,0x90,0x8a,0x85,0x87,0x84,0x7d,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x79,0x7f,0x8b,0x9d,0xab,0xa9,0x94,0x7e,
+0x8c,0x96,0x8d,0x86,0x94,0x96,0x84,0x79,0x72,0x74,0x78,0x7b,0x7c,0x7b,0x7a,0x79,
+0x77,0x77,0x77,0x77,0x77,0x78,0x78,0x79,0x7a,0x7a,0x7b,0x7b,0x7c,0x7c,0x7d,0x7d,
+0x7d,0x7d,0x7e,0x80,0x82,0x84,0x86,0x87,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x81,0x82,0x83,0x84,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x85,0x86,0x86,0x86,0x87,
+0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x83,0x83,0x83,0x83,0x82,0x82,0x82,0x82,0x80,0x81,0x82,0x83,0x83,0x82,0x82,0x81,
+0x85,0x86,0x86,0x86,0x86,0x87,0x87,0x87,0x84,0x84,0x83,0x83,0x82,0x81,0x81,0x80,
+0x88,0x88,0x89,0x8a,0x8a,0x89,0x88,0x88,0x83,0x84,0x85,0x87,0x87,0x88,0x87,0x87,
+0x83,0x84,0x85,0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x82,0x81,0x81,0x81,0x82,0x83,
+0x83,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7b,0x7b,0x79,0x78,0x79,0x7a,0x7c,0x7d,
+0x7c,0x7c,0x7c,0x7c,0x7d,0x7e,0x7f,0x80,0x7f,0x7e,0x7c,0x7c,0x7c,0x7d,0x7f,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x7b,0x7c,0x7d,0x7f,0x80,0x81,0x81,0x81,0x80,0x7e,0x7c,0x7d,0x81,0x89,0x90,0x95,
+0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x92,0x92,0x92,0x92,0x91,
+0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x8f,0x90,0x8e,0x8d,0x8e,0x8f,0x8b,0x85,0x80,
+0x7b,0x7a,0x78,0x77,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x75,0x74,0x74,0x77,0x81,0x94,0xaa,0xb9,
+0x92,0x92,0xa8,0xb3,0x99,0x7f,0x76,0x6f,0x78,0x7b,0x74,0x93,0xa6,0x8e,0x8d,0x99,
+0xa6,0x8d,0x79,0x76,0x75,0x71,0x74,0x7e,0x74,0x8a,0xa5,0xb6,0xbb,0xb1,0x96,0x7c,
+0x89,0x96,0x8c,0x81,0x89,0x8a,0x7e,0x7a,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x75,
+0x73,0x74,0x75,0x76,0x77,0x77,0x76,0x76,0x77,0x78,0x79,0x7a,0x7c,0x7d,0x7f,0x7f,
+0x78,0x79,0x7c,0x7f,0x82,0x84,0x86,0x87,0x88,0x87,0x86,0x85,0x84,0x83,0x82,0x81,
+0x7f,0x81,0x84,0x86,0x86,0x85,0x83,0x82,0x81,0x82,0x82,0x82,0x83,0x83,0x83,0x83,
+0x83,0x83,0x84,0x85,0x85,0x86,0x87,0x87,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x84,0x85,0x85,0x86,0x86,0x87,0x87,0x87,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x88,0x88,0x89,0x8a,0x8a,0x89,0x88,0x88,0x84,0x85,0x86,0x87,0x87,0x87,0x86,0x85,
+0x83,0x84,0x85,0x86,0x87,0x86,0x86,0x85,0x85,0x84,0x83,0x82,0x82,0x82,0x83,0x83,
+0x82,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7c,0x7a,0x79,0x77,0x76,0x76,0x77,0x78,0x78,
+0x7a,0x7b,0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x7f,0x7e,0x7d,0x7c,0x7d,0x7e,0x7f,0x80,
+0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7b,0x7c,0x7d,0x7e,0x7f,0x80,0x80,0x80,0x81,0x7f,0x7d,0x7e,0x82,0x89,0x90,0x95,
+0x95,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x93,0x93,0x93,0x93,0x92,0x92,0x92,0x92,
+0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x91,0x8f,0x8e,0x8f,0x8f,0x8b,0x84,0x7f,
+0x7b,0x7a,0x78,0x77,0x76,0x76,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x77,0x77,0x76,0x77,0x7d,0x8a,0x9b,0xa7,
+0xb6,0xb0,0xbb,0xbb,0x9a,0x7e,0x77,0x73,0x83,0x9f,0x9e,0xaa,0xb2,0xa5,0xab,0xb1,
+0xb7,0xa5,0x8c,0x7b,0x79,0x7e,0x7e,0x7a,0x7c,0x87,0x9c,0xb0,0xb4,0xa2,0x88,0x76,
+0x87,0x95,0x8d,0x82,0x8b,0x8b,0x7e,0x79,0x75,0x75,0x76,0x76,0x76,0x76,0x75,0x75,
+0x73,0x74,0x75,0x77,0x78,0x78,0x78,0x77,0x76,0x77,0x77,0x78,0x7a,0x7b,0x7b,0x7c,
+0x78,0x7a,0x7c,0x80,0x82,0x85,0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x81,
+0x80,0x82,0x84,0x86,0x87,0x86,0x84,0x82,0x82,0x82,0x83,0x83,0x83,0x84,0x84,0x84,
+0x84,0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x84,0x84,0x85,0x85,0x86,0x86,0x86,0x87,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x88,0x88,0x89,0x8a,0x8a,0x89,0x88,0x88,0x86,0x86,0x87,0x87,0x86,0x85,0x84,0x83,
+0x84,0x85,0x86,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x83,0x82,0x82,0x82,0x83,0x84,
+0x82,0x82,0x81,0x80,0x7f,0x7e,0x7d,0x7d,0x79,0x78,0x76,0x75,0x74,0x73,0x74,0x74,
+0x77,0x78,0x79,0x7b,0x7d,0x7e,0x7f,0x80,0x7f,0x7e,0x7d,0x7d,0x7e,0x7e,0x80,0x80,
+0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7c,0x7d,0x7d,0x7d,0x7e,0x7f,0x7f,0x80,0x83,0x81,0x7e,0x7e,0x82,0x88,0x90,0x94,
+0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x95,0x94,0x94,0x93,0x93,0x93,0x93,0x92,0x92,
+0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x93,0x91,0x8f,0x8f,0x8e,0x8a,0x83,0x7d,
+0x7b,0x7a,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x78,0x78,0x78,0x76,0x77,0x7d,0x86,0x8e,
+0x9f,0x99,0xa4,0xa6,0x8b,0x78,0x7c,0x80,0x95,0xbb,0xb6,0xb3,0xbb,0xba,0xbc,0xb1,
+0xa0,0x9b,0x8c,0x80,0x8b,0xa1,0xa4,0x98,0x88,0x82,0x8e,0xa8,0xaa,0x90,0x78,0x73,
+0x86,0x94,0x8e,0x84,0x8d,0x8d,0x7f,0x79,0x74,0x75,0x76,0x77,0x77,0x76,0x75,0x74,
+0x73,0x74,0x76,0x78,0x79,0x79,0x79,0x79,0x77,0x77,0x77,0x77,0x78,0x78,0x78,0x78,
+0x79,0x7b,0x7e,0x81,0x84,0x85,0x86,0x87,0x87,0x87,0x86,0x85,0x84,0x83,0x82,0x82,
+0x82,0x83,0x85,0x87,0x87,0x86,0x85,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x86,0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,
+0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x88,0x88,0x89,0x8a,0x8a,0x89,0x88,0x88,0x88,0x88,0x88,0x87,0x86,0x83,0x81,0x80,
+0x84,0x85,0x86,0x87,0x87,0x87,0x86,0x86,0x85,0x85,0x83,0x82,0x82,0x82,0x83,0x84,
+0x81,0x81,0x80,0x80,0x7f,0x7e,0x7e,0x7d,0x7b,0x7a,0x79,0x77,0x76,0x74,0x73,0x73,
+0x75,0x76,0x78,0x7b,0x7d,0x7e,0x7f,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x7f,0x80,0x80,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,0x7c,
+0x7d,0x7d,0x7d,0x7c,0x7d,0x7d,0x7e,0x7f,0x83,0x81,0x7f,0x7e,0x82,0x88,0x8f,0x94,
+0x94,0x95,0x95,0x95,0x95,0x95,0x96,0x96,0x95,0x94,0x94,0x94,0x93,0x93,0x93,0x93,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x92,0x90,0x90,0x8f,0x8a,0x83,0x7d,
+0x7b,0x7a,0x79,0x78,0x77,0x77,0x77,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x76,0x77,0x75,0x73,0x74,0x78,0x7c,
+0x75,0x75,0x8a,0x95,0x80,0x75,0x80,0x88,0xa6,0xb8,0xa5,0xa6,0xb8,0xb6,0xa9,0x90,
+0x7b,0x7f,0x83,0x8d,0xa2,0xb7,0xba,0xb1,0x90,0x7b,0x80,0xa0,0xa5,0x86,0x72,0x79,
+0x85,0x94,0x8d,0x84,0x8c,0x8c,0x7e,0x78,0x73,0x75,0x76,0x77,0x77,0x76,0x75,0x73,
+0x73,0x74,0x76,0x78,0x7a,0x7a,0x7b,0x7a,0x79,0x79,0x79,0x79,0x78,0x78,0x78,0x78,
+0x79,0x7b,0x7e,0x82,0x84,0x86,0x86,0x86,0x86,0x86,0x85,0x85,0x84,0x83,0x83,0x82,
+0x84,0x85,0x86,0x87,0x87,0x86,0x85,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x87,0x87,0x86,0x85,0x84,0x84,0x83,0x83,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x84,0x84,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x88,0x88,0x89,0x8a,0x8a,0x89,0x88,0x88,0x89,0x89,0x88,0x87,0x85,0x82,0x80,0x7f,
+0x83,0x84,0x85,0x86,0x86,0x86,0x85,0x85,0x85,0x84,0x83,0x82,0x81,0x82,0x82,0x83,
+0x81,0x81,0x80,0x80,0x7f,0x7f,0x7e,0x7e,0x7f,0x7e,0x7d,0x7c,0x7a,0x78,0x76,0x75,
+0x74,0x76,0x79,0x7c,0x7e,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,0x80,0x80,0x80,0x80,0x80,
+0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,
+0x7f,0x7e,0x7c,0x7b,0x7b,0x7c,0x7d,0x7d,0x82,0x80,0x7e,0x7e,0x81,0x88,0x8f,0x94,
+0x94,0x94,0x95,0x95,0x96,0x96,0x96,0x97,0x95,0x95,0x95,0x94,0x94,0x94,0x94,0x93,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x92,0x90,0x90,0x8f,0x8a,0x83,0x7d,
+0x7c,0x7b,0x79,0x78,0x77,0x77,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x74,0x70,0x73,0x75,0x75,0x72,0x72,0x74,0x76,
+0x78,0x7d,0x98,0xa4,0x8b,0x7a,0x80,0x86,0xb0,0xac,0x91,0x9e,0xb0,0x9a,0x86,0x76,
+0x73,0x78,0x89,0xa0,0xab,0xa7,0xa1,0xa1,0x95,0x77,0x77,0x9b,0xa3,0x85,0x76,0x82,
+0x86,0x93,0x8b,0x80,0x88,0x89,0x7c,0x77,0x73,0x74,0x76,0x78,0x78,0x76,0x74,0x73,
+0x73,0x75,0x76,0x78,0x7a,0x7a,0x7a,0x7a,0x7c,0x7c,0x7b,0x7b,0x7a,0x7a,0x7a,0x79,
+0x79,0x7b,0x7f,0x82,0x85,0x85,0x85,0x84,0x86,0x86,0x85,0x85,0x84,0x84,0x83,0x83,
+0x85,0x85,0x86,0x86,0x86,0x86,0x85,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x87,
+0x88,0x87,0x87,0x86,0x84,0x83,0x82,0x82,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x85,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x88,0x88,0x89,0x8a,0x8a,0x89,0x88,0x88,0x88,0x88,0x88,0x87,0x85,0x82,0x80,0x7e,
+0x82,0x83,0x84,0x85,0x85,0x85,0x84,0x84,0x83,0x83,0x81,0x80,0x80,0x80,0x81,0x82,
+0x80,0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7e,0x80,0x80,0x80,0x7f,0x7d,0x7b,0x79,0x78,
+0x75,0x77,0x7a,0x7d,0x7f,0x7f,0x7e,0x7e,0x7e,0x7f,0x80,0x81,0x82,0x81,0x81,0x80,
+0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,0x7e,
+0x80,0x7e,0x7c,0x7a,0x79,0x7a,0x7b,0x7c,0x7f,0x7d,0x7c,0x7c,0x80,0x87,0x8f,0x94,
+0x94,0x94,0x95,0x95,0x96,0x97,0x97,0x97,0x96,0x96,0x95,0x95,0x95,0x94,0x94,0x94,
+0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x94,0x92,0x90,0x90,0x8f,0x8b,0x84,0x7e,
+0x7c,0x7b,0x79,0x78,0x77,0x78,0x78,0x78,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x75,0x72,0x75,0x77,0x76,0x74,0x73,0x75,0x77,
+0x7b,0x83,0xa0,0xab,0x91,0x7d,0x83,0x8a,0xb3,0xa7,0x90,0xa6,0xad,0x83,0x73,0x77,
+0x72,0x7b,0x92,0xa7,0xa2,0x8e,0x89,0x93,0x96,0x77,0x75,0x97,0xa2,0x89,0x7b,0x85,
+0x89,0x94,0x87,0x79,0x80,0x82,0x79,0x76,0x72,0x74,0x77,0x79,0x79,0x77,0x74,0x72,
+0x74,0x75,0x77,0x78,0x79,0x79,0x78,0x78,0x7b,0x7b,0x7b,0x7b,0x7a,0x7a,0x7a,0x7a,
+0x77,0x7a,0x7e,0x82,0x84,0x84,0x83,0x82,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x83,
+0x86,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x86,0x86,0x86,0x86,
+0x87,0x87,0x86,0x85,0x84,0x84,0x83,0x83,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x82,0x82,0x82,0x82,0x82,0x82,0x82,0x82,
+0x86,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x88,0x88,0x89,0x8a,0x8a,0x89,0x88,0x88,0x87,0x87,0x87,0x86,0x85,0x82,0x80,0x7f,
+0x80,0x81,0x82,0x83,0x84,0x83,0x83,0x82,0x82,0x81,0x80,0x7f,0x7f,0x7f,0x80,0x80,
+0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7e,0x7f,0x7f,0x7f,0x7e,0x7c,0x7a,0x78,
+0x77,0x79,0x7c,0x7f,0x80,0x7f,0x7e,0x7d,0x7e,0x7f,0x81,0x82,0x83,0x82,0x81,0x80,
+0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,
+0x81,0x7f,0x7c,0x79,0x78,0x79,0x7a,0x7c,0x7c,0x7a,0x79,0x7a,0x7f,0x87,0x8f,0x95,
+0x94,0x94,0x95,0x96,0x96,0x97,0x98,0x98,0x96,0x96,0x96,0x96,0x95,0x95,0x95,0x95,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x92,0x91,0x90,0x90,0x90,0x8c,0x86,0x80,
+0x7c,0x7b,0x7a,0x78,0x78,0x78,0x78,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x7b,0x7c,0x7c,0x79,0x75,0x74,0x76,0x79,
+0x71,0x78,0x94,0xa0,0x88,0x7b,0x8b,0x98,0xb5,0xa4,0x8b,0xa6,0xb1,0x87,0x75,0x79,
+0x70,0x86,0x9d,0x9e,0x8c,0x7f,0x87,0x96,0x98,0x7c,0x78,0x93,0x9f,0x8b,0x7b,0x7e,
+0x8d,0x94,0x83,0x71,0x78,0x7c,0x75,0x75,0x72,0x74,0x77,0x79,0x79,0x77,0x74,0x72,
+0x75,0x76,0x77,0x77,0x77,0x76,0x75,0x75,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x76,0x79,0x7e,0x82,0x84,0x83,0x81,0x80,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x84,0x84,0x83,0x83,0x83,0x83,0x84,0x84,0x84,0x84,0x85,0x85,0x85,0x85,
+0x86,0x86,0x86,0x85,0x85,0x84,0x84,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,
+0x88,0x88,0x88,0x87,0x87,0x86,0x86,0x86,0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x85,
+0x88,0x88,0x89,0x8a,0x8a,0x89,0x88,0x88,0x87,0x87,0x87,0x86,0x85,0x83,0x81,0x7f,
+0x7f,0x80,0x81,0x82,0x83,0x82,0x82,0x81,0x81,0x80,0x7f,0x7e,0x7e,0x7e,0x7f,0x7f,
+0x80,0x80,0x80,0x7f,0x7f,0x7f,0x7f,0x7f,0x7c,0x7d,0x7d,0x7e,0x7d,0x7b,0x79,0x77,
+0x79,0x7b,0x7e,0x80,0x81,0x80,0x7e,0x7c,0x7e,0x80,0x81,0x83,0x83,0x82,0x81,0x80,
+0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x7d,0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x80,
+0x81,0x7f,0x7c,0x79,0x78,0x78,0x7a,0x7b,0x7a,0x78,0x77,0x79,0x7e,0x87,0x8f,0x95,
+0x94,0x94,0x95,0x96,0x97,0x97,0x98,0x98,0x97,0x96,0x96,0x96,0x96,0x95,0x95,0x95,
+0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x91,0x90,0x8f,0x90,0x90,0x8d,0x87,0x81,
+0x7c,0x7b,0x7a,0x79,0x78,0x78,0x78,0x79,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,
+0x77,0x77,0x76,0x76,0x76,0x75,0x75,0x75,0x76,0x76,0x76,0x76,0x76,0x76,0x76,0x76,
+0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x77,0x84,0x84,0x81,0x7c,0x76,0x74,0x76,0x79,
+0x7b,0x7e,0x94,0x9b,0x82,0x7a,0x90,0xa3,0xb7,0x9e,0x7e,0x9b,0xb6,0x96,0x7c,0x71,
+0x7a,0x9a,0xab,0x95,0x78,0x74,0x85,0x94,0x9a,0x81,0x7b,0x91,0x9b,0x8a,0x78,0x76,
+0x8f,0x95,0x81,0x6c,0x72,0x78,0x73,0x74,0x71,0x74,0x77,0x79,0x79,0x77,0x74,0x71,
+0x76,0x76,0x77,0x77,0x76,0x75,0x74,0x73,0x72,0x72,0x73,0x73,0x74,0x74,0x75,0x75,
+0x75,0x78,0x7d,0x81,0x83,0x82,0x80,0x7f,0x85,0x85,0x85,0x84,0x84,0x84,0x84,0x84,
+0x85,0x85,0x84,0x83,0x82,0x82,0x82,0x82,0x83,0x83,0x84,0x84,0x84,0x85,0x85,0x85,
+0x85,0x85,0x85,0x85,0x85,0x85,0x85,0x84,0x83,0x83,0x83,0x83,0x83,0x83,0x83,0x83,
+0x83,0x84,0x84,0x84,0x85,0x85,0x85,0x85,0x86,0x86,0x86,0x86,0x86,0x86,0x86,0x86,
+0x89,0x89,0x88,0x88,0x87,0x87,0x86,0x86,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84
+};
+
+#endif
+
+
+
+    
+
diff --git a/examples/thirdparty/libva/test/putsurface/Android.mk b/examples/thirdparty/libva/test/putsurface/Android.mk
new file mode 100644
index 0000000..03edb61
--- /dev/null
+++ b/examples/thirdparty/libva/test/putsurface/Android.mk
@@ -0,0 +1,24 @@
+# For putsurface
+# =====================================================
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+  putsurface_android.cpp
+  #putsurface_x11.c
+
+LOCAL_CFLAGS += \
+    -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(TARGET_OUT_HEADERS)/libva
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := putsurface
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libgui
+
+include $(BUILD_EXECUTABLE)
+
diff --git a/examples/thirdparty/libva/test/putsurface/Makefile.am b/examples/thirdparty/libva/test/putsurface/Makefile.am
new file mode 100644
index 0000000..8ffe255
--- /dev/null
+++ b/examples/thirdparty/libva/test/putsurface/Makefile.am
@@ -0,0 +1,59 @@
+# Copyright (c) 2007 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.
+
+bin_PROGRAMS = putsurface
+
+AM_CPPFLAGS = \
+	-I$(top_srcdir)		\
+	-I$(top_builddir)	\
+	$(NULL)
+
+TEST_CFLAGS = \
+	-DIN_LIBVA		\
+	$(NULL)
+
+TEST_LIBS = \
+	$(top_builddir)/va/libva.la \
+	-lpthread		\
+	$(NULL)
+
+putsurface_SOURCES		= putsurface_x11.c
+putsurface_CFLAGS		= $(X11_CFLAGS) $(TEST_CFLAGS)
+putsurface_LDADD		= $(X11_LIBS) $(TEST_LIBS)	\
+	$(top_builddir)/va/libva-x11.la			\
+	$(NULL)
+
+if USE_WAYLAND
+bin_PROGRAMS			+= putsurface_wayland
+putsurface_wayland_SOURCES	= putsurface_wayland.c
+putsurface_wayland_CFLAGS	= $(WAYLAND_CFLAGS) $(TEST_CFLAGS)
+putsurface_wayland_LDADD	= $(WAYLAND_LIBS) $(TEST_LIBS)	\
+	$(top_builddir)/va/libva-wayland.la			\
+	$(NULL)
+endif
+
+EXTRA_DIST = putsurface_common.c
+
+valgrind:	$(bin_PROGRAMS)
+	for a in $(bin_PROGRAMS); do \
+		valgrind --leak-check=full --show-reachable=yes .libs/$$a; \
+	done
diff --git a/examples/thirdparty/libva/test/putsurface/putsurface_android.cpp b/examples/thirdparty/libva/test/putsurface/putsurface_android.cpp
new file mode 100644
index 0000000..b4e0a92
--- /dev/null
+++ b/examples/thirdparty/libva/test/putsurface/putsurface_android.cpp
@@ -0,0 +1,124 @@
+/*
+ * Copyright (c) 2008-2009 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 <stdio.h>
+#include <va/va.h>
+#include <va/va_android.h>
+#include <gui/Surface.h>
+#include <gui/SurfaceComposerClient.h>
+#include <gui/ISurfaceComposer.h>
+#include <assert.h>
+#include <pthread.h>
+
+using namespace android;
+
+static  int android_display=0;
+
+static sp<SurfaceComposerClient> client0 = NULL;
+static sp<SurfaceControl> surface_ctrl0 = NULL;
+static sp<ANativeWindow> anw0 = NULL;
+
+static sp<SurfaceComposerClient> client1 = NULL;
+static sp<SurfaceControl> surface_ctrl1 = NULL;
+static sp<ANativeWindow> anw1 = NULL;
+
+static void *open_display(void);
+static void close_display(void *win_display);
+static int create_window(void *win_display, int x, int y, int width, int height);
+static int check_window_event(void *x11_display, void *win, int *width, int *height, int *quit);
+
+#define CAST_DRAWABLE(a)  static_cast<ANativeWindow *>((void *)(*(unsigned int *)a))
+#include "putsurface_common.c"
+
+static void *open_display()
+{
+    return &android_display;
+}
+
+static void close_display(void *win_display)
+{
+    return;
+}
+
+static int create_window(void *win_display, int x, int y, int width, int height)
+{
+    client0 = new SurfaceComposerClient();
+    
+    surface_ctrl0 = client1->createSurface(
+        String8("Test Surface"),
+        width, height,
+        PIXEL_FORMAT_RGB_888, 0);
+
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctrl0->setLayer(0x7FFFFFFF);
+    surface_ctrl0->show();
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctrl0->setPosition(x, y);
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctrl0->setSize(width, height);
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    anw0 = surface_ctrl0->getSurface();
+
+    drawable_thread0 = static_cast<void*>(&anw0);
+    if (multi_thread == 0)
+        return 0;
+
+    printf("Create window1 for thread1\n");
+    client1 = new SurfaceComposerClient();
+    
+    surface_ctrl1 = client1->createSurface(
+        String8("Test Surface"),
+        width, height,
+        PIXEL_FORMAT_RGB_888, 0);
+
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctrl1->setLayer(0x7FFFFFFF);
+    surface_ctrl1->show();
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctrl1->setPosition(x*2, y*2);
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    SurfaceComposerClient::openGlobalTransaction();
+    surface_ctrl1->setSize(width, height);
+    SurfaceComposerClient::closeGlobalTransaction();
+    
+    anw1 = surface_ctrl1->getSurface();
+
+    drawable_thread1 = static_cast<void *>(&anw1);
+    
+    return 0;
+}
+
+int check_window_event(void *win_display, void *drawble, int *width, int *height, int *quit)
+{
+    return 0;
+}
+
+
diff --git a/examples/thirdparty/libva/test/putsurface/putsurface_common.c b/examples/thirdparty/libva/test/putsurface/putsurface_common.c
new file mode 100755
index 0000000..3806bbc
--- /dev/null
+++ b/examples/thirdparty/libva/test/putsurface/putsurface_common.c
@@ -0,0 +1,688 @@
+/*
+ * Copyright (c) 2008-2009 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 <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <getopt.h>
+
+#include <sys/time.h>
+
+#include <unistd.h>
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <assert.h>
+#include <pthread.h>
+
+/*currently, if XCheckWindowEvent was called  in more than one thread, it would cause
+ * XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
+ *       after 87 requests (83 known processed) with 0 events remaining.
+ *
+ *       X Error of failed request:  BadGC (invalid GC parameter)
+ *       Major opcode of failed request:  60 (X_FreeGC)
+ *       Resource id in failed request:  0x600034
+ *       Serial number of failed request:  398
+ *       Current serial number in output stream:  399
+ * The root cause is unknown. */
+
+#define CHECK_VASTATUS(va_status,func)                                  \
+if (va_status != VA_STATUS_SUCCESS) {                                   \
+    fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \
+    exit(1);                                                            \
+}
+#include "../loadsurface.h"
+
+#define SURFACE_NUM 16
+
+static  void *win_display;
+static  VADisplay va_dpy;
+static  VAImageFormat *va_image_formats;
+static  int va_num_image_formats = -1;
+static  VAConfigID vpp_config_id = VA_INVALID_ID;
+static  VASurfaceAttrib *va_surface_attribs;
+static  int va_num_surface_attribs = -1;
+static  VASurfaceID surface_id[SURFACE_NUM];
+static  pthread_mutex_t surface_mutex[SURFACE_NUM];
+
+static  void *drawable_thread0, *drawable_thread1;
+static  int surface_width = 352, surface_height = 288;
+static  int win_x = 0, win_y = 0;
+static  int win_width = 352, win_height = 288;
+static  int frame_rate = 0;
+static  unsigned long long frame_num_total = ~0;
+static  int check_event = 1;
+static  int put_pixmap = 0;
+static  int test_clip = 0;
+static  int display_field = VA_FRAME_PICTURE;
+static  pthread_mutex_t gmutex;
+static  int box_width = 32;
+static  int multi_thread = 0;
+static  int verbose = 0;
+static  int test_color_conversion = 0;
+static  int csc_src_fourcc = 0, csc_dst_fourcc = 0;
+static  VAImage csc_dst_fourcc_image;
+static  VASurfaceID csc_render_surface;
+
+
+typedef struct {
+    char* fmt_str;
+    unsigned int fourcc;
+} fourcc_map;
+fourcc_map va_fourcc_map[] = {
+    {"YUYV", VA_FOURCC_YUY2},
+    {"YUY2", VA_FOURCC_YUY2},
+    {"NV12", VA_FOURCC_NV12},
+    {"YV12", VA_FOURCC_YV12},
+    {"BGRA", VA_FOURCC_BGRA},
+    {"RGBA", VA_FOURCC_RGBA},
+    {"BGRX", VA_FOURCC_BGRX},
+    {"RGBX", VA_FOURCC_RGBX},
+};
+unsigned int map_str_to_vafourcc (char * str)
+{
+    int i;
+    for (i=0; i< sizeof(va_fourcc_map)/sizeof(fourcc_map); i++) {
+        if (!strcmp(va_fourcc_map[i].fmt_str, str)) {
+            return va_fourcc_map[i].fourcc;
+        }
+    }
+
+    return 0;
+
+}
+char* map_vafourcc_to_str (unsigned int format)
+{
+    static char unknown_format[] = "unknown-format";
+    int i;
+    for (i=0; i< sizeof(va_fourcc_map)/sizeof(fourcc_map); i++) {
+        if (va_fourcc_map[i].fourcc == format) {
+            return va_fourcc_map[i].fmt_str;
+        }
+    }
+
+    return unknown_format;
+
+}
+
+static int
+va_value_equals(const VAGenericValue *v1, const VAGenericValue *v2)
+{
+    if (v1->type != v2->type)
+        return 0;
+
+    switch (v1->type) {
+    case VAGenericValueTypeInteger:
+        return v1->value.i == v2->value.i;
+    case VAGenericValueTypeFloat:
+        return v1->value.f == v2->value.f;
+    case VAGenericValueTypePointer:
+        return v1->value.p == v2->value.p;
+    case VAGenericValueTypeFunc:
+        return v1->value.fn == v2->value.fn;
+    }
+    return 0;
+}
+
+static int
+ensure_image_formats(void)
+{
+    VAStatus va_status;
+    VAImageFormat *image_formats;
+    int num_image_formats;
+
+    if (va_num_image_formats >= 0)
+        return va_num_image_formats;
+
+    num_image_formats = vaMaxNumImageFormats(va_dpy);
+    if (num_image_formats == 0)
+        return 0;
+
+    image_formats = malloc(num_image_formats * sizeof(*image_formats));
+    if (!image_formats)
+        return 0;
+
+    va_status = vaQueryImageFormats(va_dpy, image_formats, &num_image_formats);
+    CHECK_VASTATUS(va_status, "vaQuerySurfaceAttributes()");
+
+    va_image_formats = image_formats;
+    va_num_image_formats = num_image_formats;
+    return num_image_formats;
+}
+
+static const VAImageFormat *
+lookup_image_format(uint32_t fourcc)
+{
+    int i;
+
+    if (!ensure_image_formats())
+        return NULL;
+
+    for (i = 0; i < va_num_image_formats; i++) {
+        const VAImageFormat * const image_format = &va_image_formats[i];
+        if (image_format->fourcc == fourcc)
+            return image_format;
+    }
+    return NULL;
+}
+
+static int
+ensure_surface_attribs(void)
+{
+    VAStatus va_status;
+    VASurfaceAttrib *surface_attribs;
+    unsigned int num_image_formats, num_surface_attribs;
+
+    if (va_num_surface_attribs >= 0)
+        return va_num_surface_attribs;
+
+    num_image_formats = vaMaxNumImageFormats(va_dpy);
+    if (num_image_formats == 0)
+        return 0;
+
+    va_status = vaCreateConfig(va_dpy, VAProfileNone, VAEntrypointVideoProc,
+        NULL, 0, &vpp_config_id);
+    CHECK_VASTATUS(va_status, "vaCreateConfig()");
+
+    /* Guess the number of surface attributes, thus including any
+       pixel-format supported by the VA driver */
+    num_surface_attribs = VASurfaceAttribCount + num_image_formats;
+    surface_attribs = malloc(num_surface_attribs * sizeof(*surface_attribs));
+    if (!surface_attribs)
+        return 0;
+
+    va_status = vaQuerySurfaceAttributes(va_dpy, vpp_config_id,
+        surface_attribs, &num_surface_attribs);
+    if (va_status == VA_STATUS_SUCCESS)
+        va_surface_attribs =  surface_attribs;
+    else if (va_status == VA_STATUS_ERROR_MAX_NUM_EXCEEDED) {
+        va_surface_attribs = realloc(surface_attribs,
+            num_surface_attribs * sizeof(*va_surface_attribs));
+        if (!va_surface_attribs) {
+            free(surface_attribs);
+            return 0;
+        }
+        va_status = vaQuerySurfaceAttributes(va_dpy, vpp_config_id,
+            va_surface_attribs, &num_surface_attribs);
+    }
+    CHECK_VASTATUS(va_status, "vaQuerySurfaceAttributes()");
+    va_num_surface_attribs = num_surface_attribs;
+    return num_surface_attribs;
+}
+
+static const VASurfaceAttrib *
+lookup_surface_attrib(VASurfaceAttribType type, const VAGenericValue *value)
+{
+    int i;
+
+    if (!ensure_surface_attribs())
+        return NULL;
+
+    for (i = 0; i < va_num_surface_attribs; i++) {
+        const VASurfaceAttrib * const surface_attrib = &va_surface_attribs[i];
+        if (surface_attrib->type != type)
+            continue;
+        if (!(surface_attrib->flags & VA_SURFACE_ATTRIB_SETTABLE))
+            continue;
+        if (va_value_equals(&surface_attrib->value, value))
+            return surface_attrib;
+    }
+    return NULL;
+}
+
+int csc_preparation ()
+{
+    VAStatus va_status;
+    
+    // 1. make sure dst fourcc is supported for vaImage
+    if (!lookup_image_format(csc_dst_fourcc)) {
+        test_color_conversion = 0;
+        printf("VA driver doesn't support %s image, skip additional color conversion\n",  map_vafourcc_to_str(csc_dst_fourcc));
+        goto cleanup;
+    }
+
+    // 2. make sure src_fourcc is supported for vaSurface
+    VASurfaceAttrib surface_attribs[1], * const s_attrib = &surface_attribs[0];
+    s_attrib->type = VASurfaceAttribPixelFormat;
+    s_attrib->flags = VA_SURFACE_ATTRIB_SETTABLE;
+    s_attrib->value.type = VAGenericValueTypeInteger;
+    s_attrib->value.value.i = csc_src_fourcc;
+
+    if (!lookup_surface_attrib(VASurfaceAttribPixelFormat, &s_attrib->value)) {
+        printf("VA driver doesn't support %s surface, skip additional color conversion\n",  map_vafourcc_to_str(csc_src_fourcc));
+        test_color_conversion = 0;
+        goto cleanup;
+    }
+
+    // 3 create all objs required by csc
+    // 3.1 vaSurface with src fourcc
+    va_status = vaCreateSurfaces(
+        va_dpy,
+        VA_RT_FORMAT_YUV420, surface_width, surface_height,
+        &surface_id[0], SURFACE_NUM,
+        surface_attribs, 1
+    );
+    CHECK_VASTATUS(va_status,"vaCreateSurfaces");
+
+    // 3.2 vaImage with dst fourcc
+    VAImageFormat image_format;
+    image_format.fourcc = csc_dst_fourcc;
+    image_format.byte_order = VA_LSB_FIRST;
+    image_format.bits_per_pixel = 16;
+    
+    va_status = vaCreateImage(va_dpy, &image_format,
+                    surface_width, surface_height,
+                    &csc_dst_fourcc_image);
+    CHECK_VASTATUS(va_status,"vaCreateImage");
+    
+
+    // 3.3 create a temp VASurface for final rendering(vaPutSurface)
+    s_attrib->value.value.i = VA_FOURCC_NV12;
+    va_status = vaCreateSurfaces(va_dpy, VA_RT_FORMAT_YUV420, 
+                                 surface_width, surface_height,
+                                 &csc_render_surface, 1, 
+                                 surface_attribs, 1);
+    CHECK_VASTATUS(va_status,"vaCreateSurfaces");
+
+
+cleanup:
+    return test_color_conversion;
+}
+
+static VASurfaceID get_next_free_surface(int *index)
+{
+    VASurfaceStatus surface_status;
+    int i;
+
+    assert(index);
+
+    if (multi_thread == 0) {
+        i = *index;
+        i++;
+        if (i == SURFACE_NUM)
+            i = 0;
+        *index = i;
+
+        return surface_id[i];
+    }
+    
+    for (i=0; i<SURFACE_NUM; i++) {
+        surface_status = (VASurfaceStatus)0;
+        vaQuerySurfaceStatus(va_dpy, surface_id[i], &surface_status);
+        if (surface_status == VASurfaceReady)
+        {
+            if (0 == pthread_mutex_trylock(&surface_mutex[i]))
+            {
+                *index = i;
+                break;
+            }
+        }
+    }
+
+    if (i==SURFACE_NUM)
+        return VA_INVALID_SURFACE;
+    else
+        return surface_id[i];
+}
+
+static int upload_source_YUV_once_for_all()
+{
+    VAImage surface_image;
+    void *surface_p=NULL, *U_start,*V_start;
+    VAStatus va_status;
+    int box_width_loc=8;
+    int row_shift_loc=0;
+    int i;
+    
+    for (i=0; i<SURFACE_NUM; i++) {
+        printf("\rLoading data into surface %d.....", i);
+        upload_surface(va_dpy, surface_id[i], box_width_loc, row_shift_loc, 0);
+        
+        row_shift_loc++;
+        if (row_shift_loc==(2*box_width_loc)) row_shift_loc= 0;
+    }
+    printf("\n");
+
+    return 0;
+}
+
+/*
+ * Helper function for profiling purposes
+ */
+static unsigned long get_tick_count(void)
+{
+    struct timeval tv;
+    if (gettimeofday(&tv, NULL))
+        return 0;
+    return tv.tv_usec/1000+tv.tv_sec*1000;
+}
+
+static void update_clipbox(VARectangle *cliprects, int width, int height)
+{
+    if (test_clip == 0)
+        return;
+            
+    srand((unsigned)time(NULL));
+                
+    cliprects[0].x = (rand() % width);
+    cliprects[0].y = (rand() % height);
+    cliprects[0].width = (rand() % (width - cliprects[0].x));
+    cliprects[0].height = (rand() % (height - cliprects[0].y));
+
+    cliprects[1].x = (rand() % width);
+    cliprects[1].y = (rand() % height);
+    cliprects[1].width = (rand() % (width - cliprects[1].x));
+    cliprects[1].height = (rand() % (height - cliprects[1].y));
+    printf("\nTest clip (%d,%d, %d x %d) and (%d,%d, %d x %d) \n",
+           cliprects[0].x, cliprects[0].y, cliprects[0].width, cliprects[0].height,
+           cliprects[1].x, cliprects[1].y, cliprects[1].width, cliprects[1].height);
+}
+
+static void* putsurface_thread(void *data)
+{
+    int width=win_width, height=win_height;
+    void *drawable = data;
+    int quit = 0;
+    VAStatus vaStatus;
+    int row_shift = 0;
+    int index = 0;
+    unsigned int frame_num=0, start_time, putsurface_time;
+    VARectangle cliprects[2]; /* client supplied clip list */
+    int continue_display = 0;
+    
+    if (drawable == drawable_thread0)
+        printf("Enter into thread0\n\n");
+    if (drawable == drawable_thread1)
+        printf("Enter into thread1\n\n");
+    
+    putsurface_time = 0;
+    while (!quit) {
+        VASurfaceID surface_id = VA_INVALID_SURFACE;
+        
+        while (surface_id == VA_INVALID_SURFACE)
+            surface_id = get_next_free_surface(&index);
+
+        if (verbose) printf("Thread: %p Display surface 0x%x,\n", drawable, surface_id);
+
+        if (multi_thread)
+            upload_surface(va_dpy, surface_id, box_width, row_shift, display_field);
+
+        if (check_event)
+            pthread_mutex_lock(&gmutex);
+        
+        start_time = get_tick_count();
+	if ((continue_display == 0) && getenv("FRAME_STOP")) {
+            char c;
+            printf("Press any key to display frame %d...(c/C to continue)\n", frame_num);
+            c = getchar();
+            if (c == 'c' || c == 'C')
+                continue_display = 1;
+        }
+        if (test_color_conversion) {
+            static int _put_surface_count = 0;
+            if (_put_surface_count++ %50 == 0) {
+                printf("do additional colorcoversion from %s to %s\n", map_vafourcc_to_str(csc_src_fourcc), map_vafourcc_to_str(csc_dst_fourcc));
+            }
+            // get image from surface, csc_src_fourcc to csc_dst_fourcc conversion happens
+            vaStatus = vaGetImage(va_dpy, surface_id, 0, 0, 
+                surface_width, surface_height, csc_dst_fourcc_image.image_id);
+            CHECK_VASTATUS(vaStatus,"vaGetImage");
+            
+            // render csc_dst_fourcc image to temp surface
+            vaStatus = vaPutImage(va_dpy, csc_render_surface, csc_dst_fourcc_image.image_id,
+                                    0, 0, surface_width, surface_height, 
+                                    0, 0, surface_width, surface_height);
+            CHECK_VASTATUS(vaStatus,"vaPutImage");
+            
+            // render the temp surface, it should be same with original surface without color conversion test
+            vaStatus = vaPutSurface(va_dpy, csc_render_surface, CAST_DRAWABLE(drawable),
+                                    0,0,surface_width,surface_height,
+                                    0,0,width,height,
+                                    (test_clip==0)?NULL:&cliprects[0],
+                                    (test_clip==0)?0:2,
+                                    display_field);
+            CHECK_VASTATUS(vaStatus,"vaPutSurface");
+    
+        }
+        else {
+            vaStatus = vaPutSurface(va_dpy, surface_id, CAST_DRAWABLE(drawable),
+                                    0,0,surface_width,surface_height,
+                                    0,0,width,height,
+                                    (test_clip==0)?NULL:&cliprects[0],
+                                    (test_clip==0)?0:2,
+                                    display_field);
+            CHECK_VASTATUS(vaStatus,"vaPutSurface");
+        }
+    
+        putsurface_time += (get_tick_count() - start_time);
+        
+        if (check_event)
+            pthread_mutex_unlock(&gmutex);
+        
+        pthread_mutex_unlock(&surface_mutex[index]); /* locked in get_next_free_surface */
+        
+        if ((frame_num % 0xff) == 0) {
+            fprintf(stderr, "%.2f FPS             \r", 256000.0 / (float)putsurface_time);
+            putsurface_time = 0;
+            update_clipbox(cliprects, width, height);
+        }
+        
+        if (check_event)
+            check_window_event(win_display, drawable, &width, &height, &quit);
+
+        if (multi_thread) { /* reload surface content */
+            row_shift++;
+            if (row_shift==(2*box_width)) row_shift= 0;
+        }
+        
+        if (frame_rate != 0) /* rough framerate control */
+            usleep(1000/frame_rate*1000);
+
+        frame_num++;
+        if (frame_num >= frame_num_total)
+            quit = 1;
+    }
+    
+    if (drawable == drawable_thread1)    
+        pthread_exit(NULL);
+    
+    return 0;
+}
+int main(int argc,char **argv)
+{
+    int major_ver, minor_ver;
+    VAStatus va_status;
+    pthread_t thread1;
+    int ret;
+    char c;
+    int i;
+    char str_src_fmt[5], str_dst_fmt[5];
+
+    static struct option long_options[] =
+                 {
+                   {"fmt1",  required_argument,       NULL, '1'},
+                   {"fmt2",  required_argument,       NULL, '2'},
+                   {0, 0, 0, 0}
+                 };
+
+    while ((c =getopt_long(argc,argv,"w:h:g:r:d:f:tcep?n:1:2:v", long_options, NULL)) != EOF) {
+        switch (c) {
+            case '?':
+                printf("putsurface <options>\n");
+                printf("           -g <widthxheight+x_location+y_location> window geometry\n");
+                printf("           -w/-h resolution of surface\n");
+                printf("           -r <framerate>\n");
+                printf("           -d the dimension of black/write square box, default is 32\n");
+                printf("           -t multi-threads\n");
+                printf("           -c test clipbox\n");
+                printf("           -f <1/2> top field, or bottom field\n");
+                printf("           -1 source format (fourcc) for color conversion test\n");
+                printf("           -2 dest   format (fourcc) for color conversion test\n");
+                printf("           --fmt1 same to -1\n");
+                printf("           --fmt2 same to -2\n");
+                printf("           -v verbose output\n");
+                exit(0);
+                break;
+            case 'g':
+                ret = sscanf(optarg, "%dx%d+%d+%d", &win_width, &win_height, &win_x, &win_y);
+                if (ret != 4) {
+                    printf("invalid window geometry, must be widthxheight+x_location+y_location\n");
+                    exit(0);
+                } else
+                    printf("Create window at (%d, %d), width = %d, height = %d\n",
+                           win_x, win_y, win_width, win_height);
+                break;
+            case 'r':
+                frame_rate = atoi(optarg);
+                break;
+            case 'w':
+                surface_width = atoi(optarg);
+                break;
+            case 'h':
+                surface_height = atoi(optarg);
+                break;
+            case 'n':
+                frame_num_total = atoi(optarg);
+                break;
+            case 'd':
+                box_width = atoi(optarg);
+                break;
+            case 't':
+                multi_thread = 1;
+                printf("Two threads to do vaPutSurface\n");
+                break;
+            case 'e':
+                check_event = 0;
+                break;
+            case 'p':
+                put_pixmap = 1;
+                break;
+            case 'c':
+                test_clip = 1;
+                break;
+            case 'f':
+                if (atoi(optarg) == 1) {
+                    printf("Display TOP field\n");
+                    display_field = VA_TOP_FIELD;
+                } else if (atoi(optarg) == 2) {
+                    printf("Display BOTTOM field\n");
+                    display_field = VA_BOTTOM_FIELD;
+                } else
+                    printf("The validate input for -f is: 1(top field)/2(bottom field)\n");
+                break;
+            case '1':
+                sscanf(optarg, "%s", str_src_fmt);
+                csc_src_fourcc = map_str_to_vafourcc (str_src_fmt);
+                
+				if (!csc_src_fourcc) {
+                    printf("invalid fmt1: %s\n", str_src_fmt );
+                    exit(0);
+                }
+                break;
+            case '2':
+                sscanf(optarg, "%s", str_dst_fmt);
+                csc_dst_fourcc = map_str_to_vafourcc (str_dst_fmt);
+                
+				if (!csc_dst_fourcc) {
+                    printf("invalid fmt1: %s\n", str_dst_fmt );
+                    exit(0);
+                }
+                break;
+            case 'v':
+                verbose = 1;
+                printf("Enable verbose output\n");
+                break;
+        }
+    }
+
+    if (csc_src_fourcc && csc_dst_fourcc) {
+        test_color_conversion = 1;
+    }
+    
+    win_display = (void *)open_display();
+    if (win_display == NULL) {
+        fprintf(stderr, "Can't open the connection of display!\n");
+        exit(-1);
+    }
+    create_window(win_display, win_x, win_y, win_width, win_height);
+
+    va_dpy = vaGetDisplay(win_display);
+    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+    CHECK_VASTATUS(va_status, "vaInitialize");
+
+    if (test_color_conversion) {
+        ret = csc_preparation();
+    }
+    if (!test_color_conversion || !ret ) {
+        va_status = vaCreateSurfaces(
+            va_dpy,
+            VA_RT_FORMAT_YUV420, surface_width, surface_height,
+            &surface_id[0], SURFACE_NUM,
+            NULL, 0
+        );
+	}
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+    if (multi_thread == 0) /* upload the content for all surfaces */
+        upload_source_YUV_once_for_all();
+    
+    if (check_event)
+        pthread_mutex_init(&gmutex, NULL);
+   
+    for(i = 0; i< SURFACE_NUM; i++)
+        pthread_mutex_init(&surface_mutex[i], NULL);
+    
+    if (multi_thread == 1) 
+        ret = pthread_create(&thread1, NULL, putsurface_thread, (void*)drawable_thread1);
+
+    putsurface_thread((void *)drawable_thread0);
+
+    if (multi_thread == 1) 
+        pthread_join(thread1, (void **)&ret);
+    printf("thread1 is free\n");
+
+    if (test_color_conversion) {
+        // destroy temp surface/image
+        va_status = vaDestroySurfaces(va_dpy, &csc_render_surface, 1);
+        CHECK_VASTATUS(va_status,"vaDestroySurfaces");
+        
+        va_status = vaDestroyImage(va_dpy, csc_dst_fourcc_image.image_id);
+        CHECK_VASTATUS(va_status,"vaDestroyImage");
+    }
+
+    if (vpp_config_id != VA_INVALID_ID) {
+        vaDestroyConfig (va_dpy, vpp_config_id);
+        vpp_config_id = VA_INVALID_ID;
+    }
+
+    vaDestroySurfaces(va_dpy,&surface_id[0],SURFACE_NUM);    
+    vaTerminate(va_dpy);
+
+    free(va_image_formats);
+    free(va_surface_attribs);
+    close_display(win_display);
+    
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/putsurface/putsurface_wayland.c b/examples/thirdparty/libva/test/putsurface/putsurface_wayland.c
new file mode 100644
index 0000000..b93334d
--- /dev/null
+++ b/examples/thirdparty/libva/test/putsurface/putsurface_wayland.c
@@ -0,0 +1,332 @@
+/*
+ * 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 <stddef.h>
+#include <errno.h>
+#include <sys/select.h>
+#ifdef IN_LIBVA
+# include "va/wayland/va_wayland.h"
+#else
+# include <va/va_wayland.h>
+#endif
+#include <wayland-server.h>
+
+static void *open_display(void);
+static void close_display(void *win_display);
+static int create_window(void *win_display,
+             int x, int y, int width, int height);
+static int check_window_event(void *win_display, void *drawable,
+                  int *width, int *height, int *quit);
+
+struct display;
+struct drawable;
+
+static VAStatus
+va_put_surface(
+    VADisplay           dpy,
+    struct drawable    *wl_drawable,
+    VASurfaceID         va_surface,
+    const VARectangle  *src_rect,
+    const VARectangle  *dst_rect,
+    const VARectangle  *cliprects,
+    unsigned int        num_cliprects,
+    unsigned int        flags
+);
+
+/* Glue code for the current PutSurface test design */
+#define CAST_DRAWABLE(a)  (struct drawable *)(a)
+
+static inline VADisplay
+vaGetDisplay(VANativeDisplay native_dpy)
+{
+    return vaGetDisplayWl(native_dpy);
+}
+
+static VAStatus
+vaPutSurface(
+    VADisplay           dpy,
+    VASurfaceID         surface,
+    struct drawable    *wl_drawable,
+    short               src_x,
+    short               src_y,
+    unsigned short      src_w,
+    unsigned short      src_h,
+    short               dst_x,
+    short               dst_y,
+    unsigned short      dst_w,
+    unsigned short      dst_h,
+    const VARectangle  *cliprects,
+    unsigned int        num_cliprects,
+    unsigned int        flags
+)
+{
+    VARectangle src_rect, dst_rect;
+
+    src_rect.x      = src_x;
+    src_rect.y      = src_y;
+    src_rect.width  = src_w;
+    src_rect.height = src_h;
+
+    dst_rect.x      = src_x;
+    dst_rect.y      = src_y;
+    dst_rect.width  = src_w;
+    dst_rect.height = src_h;
+    return va_put_surface(dpy, wl_drawable, surface, &src_rect, &dst_rect,
+                          cliprects, num_cliprects, flags);
+}
+
+#include "putsurface_common.c"
+
+struct display {
+    struct wl_display  *display;
+    struct wl_compositor *compositor;
+    struct wl_shell    *shell;
+    struct wl_registry *registry;
+    int                 event_fd;
+};
+
+struct drawable {
+    struct wl_display  *display;
+    struct wl_surface  *surface;
+    unsigned int        redraw_pending  : 1;
+};
+
+static void
+frame_redraw_callback(void *data, struct wl_callback *callback, uint32_t time)
+{
+    struct drawable * const drawable = data;
+
+    drawable->redraw_pending = 0;
+    wl_callback_destroy(callback);
+}
+
+static const struct wl_callback_listener frame_callback_listener = {
+    frame_redraw_callback
+};
+
+static VAStatus
+va_put_surface(
+    VADisplay           dpy,
+    struct drawable    *wl_drawable,
+    VASurfaceID         va_surface,
+    const VARectangle  *src_rect,
+    const VARectangle  *dst_rect,
+    const VARectangle  *cliprects,
+    unsigned int        num_cliprects,
+    unsigned int        flags
+)
+{
+    struct display *d;
+    struct wl_callback *callback;
+    VAStatus va_status;
+    struct wl_buffer *buffer;
+
+    if (!wl_drawable)
+        return VA_STATUS_ERROR_INVALID_SURFACE;
+
+    d = wl_display_get_user_data(wl_drawable->display);
+    if (!d)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+
+    /* Wait for the previous frame to complete redraw */
+    if (wl_drawable->redraw_pending) {
+        wl_display_flush(d->display);
+        while (wl_drawable->redraw_pending)
+            wl_display_dispatch(wl_drawable->display);
+    }
+
+    va_status = vaGetSurfaceBufferWl(va_dpy, va_surface, VA_FRAME_PICTURE, &buffer);
+    if (va_status != VA_STATUS_SUCCESS)
+        return va_status;
+
+    wl_surface_attach(wl_drawable->surface, buffer, 0, 0);
+    wl_surface_damage(
+        wl_drawable->surface,
+        dst_rect->x, dst_rect->y, dst_rect->width, dst_rect->height
+    );
+
+    wl_display_flush(d->display);
+    wl_drawable->redraw_pending = 1;
+    callback = wl_surface_frame(wl_drawable->surface);
+    wl_surface_commit(wl_drawable->surface);
+    wl_callback_add_listener(callback, &frame_callback_listener, wl_drawable);
+    return VA_STATUS_SUCCESS;
+}
+
+static void
+registry_handle_global(
+    void               *data,
+    struct wl_registry *registry,
+    uint32_t            id,
+    const char         *interface,
+    uint32_t            version
+)
+{
+    struct display * const d = data;
+
+    if (strcmp(interface, "wl_compositor") == 0)
+        d->compositor =
+            wl_registry_bind(registry, id, &wl_compositor_interface, 1);
+    else if (strcmp(interface, "wl_shell") == 0)
+        d->shell = wl_registry_bind(registry, id, &wl_shell_interface, 1);
+}
+
+static const struct wl_registry_listener registry_listener = {
+    registry_handle_global,
+    NULL,
+};
+
+static void *
+open_display(void)
+{
+    struct display *d;
+
+    d = calloc(1, sizeof *d);
+    if (!d)
+        return NULL;
+
+    d->display = wl_display_connect(NULL);
+    if (!d->display)
+        return NULL;
+
+    wl_display_set_user_data(d->display, d);
+    d->registry = wl_display_get_registry(d->display);
+    wl_registry_add_listener(d->registry, &registry_listener, d);
+    d->event_fd = wl_display_get_fd(d->display);
+    wl_display_dispatch(d->display);
+    return d->display;
+}
+
+static void
+close_display(void *win_display)
+{
+    struct display * const d = wl_display_get_user_data(win_display);
+
+    if (d->shell) {
+        wl_shell_destroy(d->shell);
+        d->shell = NULL;
+    }
+
+    if (d->compositor) {
+        wl_compositor_destroy(d->compositor);
+        d->compositor = NULL;
+    }
+
+    if (d->display) {
+        wl_display_disconnect(d->display);
+        d->display = NULL;
+    }
+    free(d);
+}
+
+static int
+create_window(void *win_display, int x, int y, int width, int height)
+{
+    struct wl_display * const display = win_display;
+    struct display * const d = wl_display_get_user_data(display);
+    struct wl_surface *surface1, *surface2;
+    struct wl_shell_surface *shell_surface;
+    struct wl_shell_surface *shell_surface_2;
+    struct drawable *drawable1, *drawable2;
+
+    surface1 = wl_compositor_create_surface(d->compositor);
+    shell_surface = wl_shell_get_shell_surface(d->shell, surface1);
+    wl_shell_surface_set_toplevel(shell_surface);
+
+    drawable1 = malloc(sizeof(*drawable1));
+    drawable1->display          = display;
+    drawable1->surface          = surface1;
+    drawable1->redraw_pending   = 0;
+
+    /* global out */
+    drawable_thread0 = drawable1;
+
+    if (multi_thread == 0)
+        return 0;
+
+    surface2 = wl_compositor_create_surface(d->compositor);
+    shell_surface_2 = wl_shell_get_shell_surface(d->shell, surface2);
+    wl_shell_surface_set_toplevel(shell_surface_2);
+
+    drawable2 = malloc(sizeof(*drawable2));
+    drawable2->display          = display;
+    drawable1->surface          = surface2;
+    drawable2->redraw_pending   = 0;
+
+    /* global out */
+    drawable_thread1 = drawable2;
+    return 0;
+}
+
+static int
+check_window_event(
+    void *win_display,
+    void *drawable,
+    int  *width,
+    int  *height,
+    int  *quit
+)
+{
+    struct wl_display * const display = win_display;
+    struct display * const d = wl_display_get_user_data(display);
+    struct timeval tv;
+    fd_set rfds;
+    int retval;
+
+    if (check_event == 0)
+        return 0;
+
+    tv.tv_sec  = 0;
+    tv.tv_usec = 0;
+    do {
+        FD_ZERO(&rfds);
+        FD_SET(d->event_fd, &rfds);
+
+        retval = select(d->event_fd + 1, &rfds, NULL, NULL, &tv);
+        if (retval < 0) {
+            perror("select");
+            break;
+        }
+        if (retval == 1)
+            wl_display_dispatch(d->display);
+    } while (retval > 0);
+
+#if 0
+    /* bail on any focused key press */
+    if(event.type == KeyPress) {  
+        *quit = 1;
+        return 0;
+    }
+#endif
+
+#if 0
+    /* rescale the video to fit the window */
+    if(event.type == ConfigureNotify) { 
+        *width = event.xconfigure.width;
+        *height = event.xconfigure.height;
+        printf("Scale window to %dx%d\n", width, height);
+    }
+#endif
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/putsurface/putsurface_x11.c b/examples/thirdparty/libva/test/putsurface/putsurface_x11.c
new file mode 100644
index 0000000..db765af
--- /dev/null
+++ b/examples/thirdparty/libva/test/putsurface/putsurface_x11.c
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2008-2009 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 <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <va/va_x11.h>
+
+static  Window window_thread0, window_thread1;
+static  GC context_thread0, context_thread1;
+static  pthread_mutex_t gmutex;
+
+static void *open_display(void);
+static void close_display(void *win_display);
+static int create_window(void *win_display, int x, int y, int width, int height);
+static int check_window_event(void *x11_display, void *drawable, int *width, int *height, int *quit);
+
+#define CAST_DRAWABLE(a)  (Drawable)(a)
+
+#include "putsurface_common.c"
+
+static void *open_display(void)
+{
+    return XOpenDisplay(NULL);
+}
+
+static void close_display(void *win_display)
+{
+    XCloseDisplay(win_display);
+}
+
+static Pixmap create_pixmap(void *win_display, int width, int height)
+{
+    Display *x11_display = (Display *)win_display;
+    int screen = DefaultScreen(x11_display);
+    Window root;
+    Pixmap pixmap;
+    XWindowAttributes attr;
+    
+    root = RootWindow(x11_display, screen);
+
+    XGetWindowAttributes (x11_display, root, &attr);
+    
+    printf("Create a pixmap from ROOT window %dx%d, pixmap size %dx%d\n\n", attr.width, attr.height, width, height);
+    pixmap = XCreatePixmap(x11_display, root, width, height,
+                           DefaultDepth(x11_display, DefaultScreen(x11_display)));
+
+    return pixmap;
+}
+
+static int create_window(void *win_display, int x, int y, int width, int height)
+{
+    Display *x11_display = (Display *)win_display;
+    int screen = DefaultScreen(x11_display);
+    Window root, win;
+
+    root = RootWindow(x11_display, screen);
+
+    printf("Create window0 for thread0\n");
+    drawable_thread0 = (void *)XCreateSimpleWindow(x11_display, root, x, y, width, height,
+                                           0, 0, WhitePixel(x11_display, 0));
+
+    win = (Window)drawable_thread0;
+    if (drawable_thread0) {
+        XSizeHints sizehints;
+        sizehints.width  = width;
+        sizehints.height = height;
+        sizehints.flags = USSize;
+        XSetNormalHints(x11_display, win, &sizehints);
+        XSetStandardProperties(x11_display, win, "Thread 0", "Thread 0",
+                               None, (char **)NULL, 0, &sizehints);
+
+        XMapWindow(x11_display, win);
+    }
+    context_thread0 = XCreateGC(x11_display, win, 0, 0);
+    XSelectInput(x11_display, win, KeyPressMask | StructureNotifyMask);
+    XSync(x11_display, False);
+
+    if (put_pixmap) {
+        window_thread0 = (Window)drawable_thread0;
+        drawable_thread0 = (void *)create_pixmap(x11_display, width, height);
+    }
+    
+    if (multi_thread == 0)
+        return 0;
+
+    printf("Create window1 for thread1\n");
+    
+    drawable_thread1 = (void *)XCreateSimpleWindow(x11_display, root, width, 0, width, height,
+                                            0, 0, WhitePixel(x11_display, 0));
+    win = (Window)drawable_thread1;
+    if (drawable_thread1) {
+        XSizeHints sizehints;
+        sizehints.width  = width;
+        sizehints.height = height;
+        sizehints.flags = USSize;
+        XSetNormalHints(x11_display, win, &sizehints);
+        XSetStandardProperties(x11_display, win, "Thread 1", "Thread 1",
+                               None, (char **)NULL, 0, &sizehints);
+
+        XMapWindow(x11_display, win);
+    }
+    if (put_pixmap) {
+        window_thread1 = (Window)drawable_thread1;
+        drawable_thread1 = (void *)create_pixmap(x11_display, width, height);
+    }
+
+    context_thread1 = XCreateGC(x11_display, win, 0, 0);
+    XSelectInput(x11_display, win, KeyPressMask | StructureNotifyMask);
+    XSync(x11_display, False);
+    
+    return 0;
+}
+
+static int check_window_event(void *win_display, void *drawable, int *width, int *height, int *quit)
+{
+    int is_event = 0;
+    XEvent event;
+    Window win = (Window)drawable;
+    Display *x11_display = (Display *)win_display;
+    
+    
+    if (check_event == 0)
+        return 0;
+
+    pthread_mutex_lock(&gmutex);
+    is_event = XCheckWindowEvent(x11_display, win, StructureNotifyMask|KeyPressMask,&event);
+    pthread_mutex_unlock(&gmutex);
+    
+    if (is_event == 0)
+        return 0;
+
+    /* bail on any focused key press */
+    if(event.type == KeyPress) {  
+        *quit = 1;
+        return 0;
+    }
+    
+#if 0
+    /* rescale the video to fit the window */
+    if(event.type == ConfigureNotify) { 
+        *width = event.xconfigure.width;
+        *height = event.xconfigure.height;
+        printf("Scale window to %dx%d\n", width, height);
+    }
+#endif
+
+    return 0;
+}
+
+
+
diff --git a/examples/thirdparty/libva/test/v4l_h264/Makefile.am b/examples/thirdparty/libva/test/v4l_h264/Makefile.am
new file mode 100644
index 0000000..377850a
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/Makefile.am
@@ -0,0 +1,27 @@
+# Copyright (c) 2012 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 NONINFRINGEMENT. 
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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.
+
+SUBDIRS = encode decode
+
+EXTRA_DIST = \
+	README.txt		\
+	$(NULL)
diff --git a/examples/thirdparty/libva/test/v4l_h264/README.txt b/examples/thirdparty/libva/test/v4l_h264/README.txt
new file mode 100644
index 0000000..cbb0f10
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/README.txt
@@ -0,0 +1,23 @@
+V4L-H264
+========
+The goal of the sample code is to demonstrate the H264 encoding and decoding capabilities of Intel GPU, Sandy Bridge and successor, using libva API under X11.
+
+Encoder part is based on http://cgit.freedesktop.org/libva/tree/test/encode/avcenc.c
+V4L-Capture part is based on http://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html 
+
+
+Running it locally: It's mandatory to start the `decode' first.
+./decode -> will wait for a connection
+./encode -> will try to open /dev/video0, configure it and stream it out
+
+Specifying the port, ip and video input parameters
+
+Window A (first):
+./decode -p 9999
+
+Window B (second):
+./encode -p 9999 -I 192.168.1.144 -d /dev/video0 -W 1280 -H 960
+
+For more info:
+./encode -? 
+./decode -?
diff --git a/examples/thirdparty/libva/test/v4l_h264/decode/Makefile.am b/examples/thirdparty/libva/test/v4l_h264/decode/Makefile.am
new file mode 100644
index 0000000..4e77dd5
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/decode/Makefile.am
@@ -0,0 +1,39 @@
+# Copyright (c) 2012 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 NONINFRINGEMENT. 
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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.
+
+noinst_PROGRAMS = decode
+
+decode_SOURCES	= decode_x11.cpp TCPSocketServer.cpp
+decode_CFLAGS	= -I$(top_srcdir) $(X11_CFLAGS)
+decode_LDADD	= \
+	$(top_builddir)/va/libva.la \
+	$(top_builddir)/va/libva-x11.la \
+	$(X11_LIBS)
+
+valgrind:   $(bin_PROGRAMS)
+	for a in $(bin_PROGRAMS); do \
+		valgrind --leak-check=full --show-reachable=yes .libs/$$a; \
+	done
+
+EXTRA_DIST = \
+	TCPSocketServer.h	\
+	$(NULL)
diff --git a/examples/thirdparty/libva/test/v4l_h264/decode/TCPSocketServer.cpp b/examples/thirdparty/libva/test/v4l_h264/decode/TCPSocketServer.cpp
new file mode 100644
index 0000000..ad33d77
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/decode/TCPSocketServer.cpp
@@ -0,0 +1,192 @@
+/*
+ * Copyright (c) 2012 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 NONINFRINGEMENT. 
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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.
+ */
+
+/*
+* C++ wrapper around an TCP socket
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>  // for data types
+#include <sys/socket.h> // for socket(), connect(), send(), recv()
+#include <netinet/in.h> // for IPPROTO_TCP, sockadd_in
+#include <arpa/inet.h>  // for inet_ntoa()
+#include <unistd.h> // for close()
+#include <netdb.h>  // for hostent, gethostbyname()
+#include <fcntl.h>  // for fcntl()
+#include <errno.h>
+
+#include <cstring>  // for memset
+
+#include "TCPSocketServer.h"
+
+using std::string;
+
+
+TCPSocketServer::TCPSocketServer(unsigned short localPort) throw(std::runtime_error) :
+sockDesc(-1),
+    connSockDesc(-1)
+{
+    // create new socket
+    if ((sockDesc = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
+        throw std::runtime_error("Socket creation failed (socket())");
+    }
+
+    ::memset(&sockAddr, 0, sizeof(sockAddr));
+    ::memset(&connSockAddr, 0, sizeof(connSockAddr));
+
+    sockAddr.sin_family = AF_INET;
+    sockAddr.sin_addr.s_addr = htonl(INADDR_ANY);
+    sockAddr.sin_port = htons(localPort);
+
+    if (bind(sockDesc, (sockaddr *) &sockAddr, sizeof(sockAddr)) < 0)
+    {
+        throw std::runtime_error("Bind to local port failed (bind())");
+    }
+
+    if (listen(sockDesc, 2) < 0)
+    {
+        throw std::runtime_error("Socket initialization failed (listen())");
+    }
+}
+
+
+/* Destructor */
+TCPSocketServer::~TCPSocketServer()
+{
+    if (connSockDesc > 0) {
+        ::close(connSockDesc);
+    }
+
+    ::close(sockDesc);
+}
+
+
+/* Listen for an incoming connection */
+void TCPSocketServer::accept(string &remoteAddr, unsigned short &remotePort) throw (std::runtime_error)
+{
+    if (connSockDesc > 0) {
+        throw std::runtime_error("accept() called, but socket is already connected");
+    }
+
+    socklen_t connSockLen = sizeof(connSockAddr);
+    if ((connSockDesc = ::accept(sockDesc, (sockaddr *) &connSockAddr, &connSockLen)) < 0) {
+        throw std::runtime_error("Connection accept failed (accept())");
+    }
+
+    remoteAddr = inet_ntoa(connSockAddr.sin_addr);
+    remotePort = ntohs(connSockAddr.sin_port);
+}
+
+
+/* Communication over socket */
+/* Receive data */
+ssize_t TCPSocketServer::recv(void *buffer, const size_t &bufferLen) throw (std::runtime_error)
+{
+    if (connSockDesc <= 0) {
+        throw std::runtime_error("recv() called, but socket is not connected. Call accept() first");
+    }
+
+    int rval = ::read(connSockDesc, buffer, bufferLen);
+
+    if (rval <= 0) {
+        // EOF (connection closed by remote host) or error:
+        // reset state, so a new accept() call will succeed
+        connSockDesc = -1;
+        ::memset(&connSockAddr, 0, sizeof(connSockAddr));
+    }
+
+    if (rval == -1) {
+        throw std::runtime_error("Error reading from socket (read())");
+    }
+
+    return rval;
+}
+
+
+/* Send data */
+ssize_t TCPSocketServer::send(const void *buffer, const int &bufferLen) throw (std::runtime_error)
+{
+    if (connSockDesc <= 0) {
+        throw std::runtime_error("send() called, but socket is not connected. Call accept() first");
+    }
+
+    int rval = ::write(connSockDesc, buffer, bufferLen);
+
+    if (rval <= 0) {
+        // EOF (connection closed by remote host) or error:
+        // reset state, so a new accept() call will succeed
+        connSockDesc = -1;
+        ::memset(&connSockAddr, 0, sizeof(connSockAddr));
+    }
+
+    if (rval == -1) {
+        throw std::runtime_error("Error reading from socket (read())");
+    }
+
+    return rval;
+}
+
+ssize_t TCPSocketServer::send(const string &message) throw (std::runtime_error)
+{
+    send(message.c_str(), message.length());
+}
+
+
+int TCPSocketServer::recv_data(unsigned char *data, int size)
+{
+    int total = 0;
+    try {
+        int pos = 0;
+        int recvMsgSize;
+        for (;;) {
+            // try to receive a message
+            recvMsgSize = recv(&data[pos], size);
+            if ((recvMsgSize < 0) && (errno == EWOULDBLOCK)) {
+                // no data received on non-blocking socket
+                usleep(100);
+            } else {
+                total += recvMsgSize;
+                if (recvMsgSize != size) {
+                    pos += recvMsgSize;
+                    size -= recvMsgSize;
+                } else {
+                    break;
+                }
+            }
+        }
+    }
+    catch (const std::exception& e) {
+        printf("%s\n", e.what());
+        exit(1);
+    }
+    return total;
+}
+
+unsigned int TCPSocketServer::recv_uint32()
+{
+    unsigned int buffer;
+    recv_data((unsigned char*)&buffer, 4);
+    return buffer;
+}
diff --git a/examples/thirdparty/libva/test/v4l_h264/decode/TCPSocketServer.h b/examples/thirdparty/libva/test/v4l_h264/decode/TCPSocketServer.h
new file mode 100644
index 0000000..6ed2d6c
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/decode/TCPSocketServer.h
@@ -0,0 +1,128 @@
+/*
+ * Copyright (c) 2012 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 NONINFRINGEMENT. 
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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.
+ */
+
+/*
+* C++ wrapper around an TCP socket
+*/
+
+#ifndef __TCP_SOCKET_H__
+#define __TCP_SOCKET_H__
+
+#include <stdexcept>
+
+#include <netinet/in.h> // for IPPROTO_TCP, sockadd_in
+
+#ifndef SERVER_ADDR
+#define SERVER_ADDR "localhost"
+#endif
+#ifndef SERVER_PORT
+#define SERVER_PORT 8888
+#endif
+
+
+class TCPSocketServer
+{
+public:
+    /* Constructors */
+    /**
+    * Construct generic TCPSocket
+    * XXX: Don't use, use the constructor with explicit port specification instead
+    **/
+    //TCPSocketServer() throw(std::runtime_error);
+
+    /**
+    * Construct TCPSocket that binds to the given local port
+    * parameters:
+    * - localPort: port to bind to
+    **/
+    TCPSocketServer(unsigned short localPort) throw(std::runtime_error);
+
+
+    /* Destructor */
+    ~TCPSocketServer();
+
+
+    /* Handle incoming connections */
+    /**
+    * Listen for an incoming connection.
+    * This call blocks until a connection with a remote peer has been established.
+    * parameters:
+    * - remoteAddr: (OUT) contains address of peer
+    * - remotePort: (OUT) contains port of peer
+    * return value:
+    *   none
+    **/
+    void accept(std::string &remoteAddr, unsigned short &remotePort) throw(std::runtime_error);
+
+
+    /* Communication over socket */
+    /**
+    * Receive data from remote peer.
+    * parameters:
+    * - buffer: buffer to receive data
+    * - bufferLen: maximum number of bytes to receive
+    * return value:
+    *   number of bytes received, 0 means connection closed by peer
+    **/
+    ssize_t recv(void *buffer, const size_t &bufferLen) throw (std::runtime_error);
+
+    /**
+    * Send data to remote peer.
+    * parameters:
+    * - buffer:     buffer to send
+    * - bufferLen:  number of bytes in buffer
+    * return value:
+    *   number of bytes actually written
+    **/
+    ssize_t send(const void *buffer, const int &bufferLen) throw (std::runtime_error);
+
+    /**
+    * Sends the given string over the TCP connection.
+    * This is a convenience method which calls the previous method with the correct
+    * length parameter.
+    * parameters:
+    * - message:    message to send
+    * return value:
+    *   number of bytes actually written
+    **/
+    ssize_t send(const std::string &message) throw (std::runtime_error);
+
+
+    int recv_data(unsigned char *data, int size);
+    unsigned int recv_uint32();
+
+
+private:
+    // don't allow value semantics on this object
+    TCPSocketServer(const TCPSocketServer &sock);
+    void operator=(const TCPSocketServer &sock);
+
+    int sockDesc;       // listening socket descriptor
+    sockaddr_in sockAddr; // structure keeping IP and port of peer
+
+    int connSockDesc;   // connected socket descriptor
+    sockaddr_in connSockAddr;
+};
+
+#endif // __TCP_SOCKET_H__
diff --git a/examples/thirdparty/libva/test/v4l_h264/decode/decode_x11.cpp b/examples/thirdparty/libva/test/v4l_h264/decode/decode_x11.cpp
new file mode 100644
index 0000000..418cf00
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/decode/decode_x11.cpp
@@ -0,0 +1,704 @@
+/*
+ * Copyright (c) 2012 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 NONINFRINGEMENT. 
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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 XT_DEBUG
+
+#include <cstdio>
+#include <getopt.h>
+#include <csignal>
+#include <cstring>
+#include <cstdarg>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+#include <cassert>
+#include <va/va_x11.h>
+#include <iostream>
+#include <cstdlib>
+
+#include "TCPSocketServer.h"
+using std::string;
+
+#define MYPROF  VAProfileH264High
+
+int   g_Debug = 0;
+int   ip_port = 8888;
+TCPSocketServer *sock_ptr = NULL;
+#define SURFACE_NUM 7
+static  Display *win_display;
+static  VADisplay va_dpy;
+Window  win;
+int g_PX = 50;
+int g_PY = 0;
+bool g_LiveView = true;
+int pwm;
+int phm;
+VAContextID context_id;
+VASurfaceID surface_id[SURFACE_NUM];
+int win_width = 0, win_height = 0;
+int surface_width = 0, surface_height = 0;
+static int time_to_quit = 0;
+
+static void SignalHandler(int a_Signal)
+{
+    time_to_quit = 1;
+    signal(SIGINT, SIG_DFL);
+}
+
+
+void InitSock()
+{
+    try {
+    sock_ptr = new TCPSocketServer(ip_port);
+    }
+    catch (const std::exception& e)
+    {
+    std::cerr << e.what() << '\n';
+    exit(1);
+    }
+}
+
+
+
+
+/*currently, if XCheckWindowEvent was called  in more than one thread, it would cause
+* XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
+*   after 87 requests (83 known processed) with 0 events remaining.
+*
+*   X Error of failed request:  BadGC (invalid GC parameter)
+*   Major opcode of failed request:  60 (X_FreeGC)
+*   Resource id in failed request:  0x600034
+*   Serial number of failed request:  398
+*   Current serial number in output stream:  399
+* The root cause is unknown. */
+
+VAStatus gva_status;
+VASurfaceStatus gsurface_status;
+#define CHECK_SURF(X) \
+    gva_status = vaQuerySurfaceStatus(va_dpy, X, &gsurface_status); \
+    if (gsurface_status != 4) printf("ss: %d\n", gsurface_status);
+
+
+
+#define CHECK_VASTATUS(va_status,func)                  \
+    if (va_status != VA_STATUS_SUCCESS) {                   \
+    fprintf(stderr,"%s:%s (%d) failed,exit\n", __func__, func, __LINE__); \
+    exit(1);                                \
+    } else  { \
+    /*    fprintf(stderr,">> SUCCESS for: %s:%s (%d)\n", __func__, func, __LINE__); */ \
+    }
+
+void SetWindowTitle(const char* title, ...)
+{
+    char buf[256];
+    va_list args;
+    va_start(args, title);
+    vsprintf(buf, title, args);
+    va_end(args);
+    XSetStandardProperties(win_display,win, buf, buf, None, NULL, 0, NULL);
+}
+
+
+#ifdef XT_DEBUG
+static inline void PrintFlagIfNotZero(
+    const char *name,   /* in */
+    unsigned int flag   /* in */
+    )
+{
+    if (flag != 0) {
+    printf("%s = %x\n", name, flag);
+    }
+}
+
+void DumpVAPictureH264(VAPictureH264 *p, char *s)
+{
+    printf("%s:\n", s);
+    printf(" picture_id=0x%x\n", p->picture_id);
+    printf(" frame_idx=%d\n", p->frame_idx);
+    printf(" flags=%d\n", p->flags);
+    printf(" TopFieldOrderCnt=%d\n", p->TopFieldOrderCnt);
+    printf(" BottomFieldOrderCnt=%d\n", p->BottomFieldOrderCnt);
+}
+
+
+void DumpVAPictureParameterBufferH264(VAPictureParameterBufferH264 *p)
+{
+    int i;
+    printf("VAPictureParameterBufferH264\n");
+    printf("\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
+    printf("\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx);
+    printf("\tCurrPic.flags = %d\n", p->CurrPic.flags);
+    printf("\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
+    printf("\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
+    printf("\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx:\n");
+    for (i = 0; i < 16; i++) {
+    if (p->ReferenceFrames[i].flags != VA_PICTURE_H264_INVALID) {
+        printf("\t\t%d-%d-0x%08x-%d\n",
+        p->ReferenceFrames[i].TopFieldOrderCnt,
+        p->ReferenceFrames[i].BottomFieldOrderCnt,
+        p->ReferenceFrames[i].picture_id,
+        p->ReferenceFrames[i].frame_idx);
+    } else {
+#ifdef EXTRA_LOGS
+        printf("\t\tinv-inv-inv-inv\n");
+#endif
+    }
+    }
+    printf("\n");
+    printf("\tpicture_width_in_mbs_minus1 = %d\n", p->picture_width_in_mbs_minus1);
+    printf("\tpicture_height_in_mbs_minus1 = %d\n", p->picture_height_in_mbs_minus1);
+    printf("\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
+    printf("\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
+    printf("\tnum_ref_frames = %d\n", p->num_ref_frames);
+    printf("\tseq fields = %d\n", p->seq_fields.value);
+    printf("\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
+    printf("\tresidual_colour_transform_flag = %d\n", p->seq_fields.bits.residual_colour_transform_flag);
+    printf("\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
+    printf("\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
+    printf("\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
+    printf("\tMinLumaBiPredSize8x8 = %d\n", p->seq_fields.bits.MinLumaBiPredSize8x8);
+    printf("\tnum_slice_groups_minus1 = %d\n", p->num_slice_groups_minus1);
+    printf("\tslice_group_map_type = %d\n", p->slice_group_map_type);
+    printf("\tslice_group_change_rate_minus1 = %d\n", p->slice_group_change_rate_minus1);
+    printf("\tpic_init_qp_minus26 = %d\n", p->pic_init_qp_minus26);
+    printf("\tpic_init_qs_minus26 = %d\n", p->pic_init_qs_minus26);
+    printf("\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
+    printf("\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
+    printf("\tpic_fields = 0x%03x\n", p->pic_fields.value);
+#ifdef EXTRA_LOGS
+    PrintFlagIfNotZero("\t\tentropy_coding_mode_flag", p->pic_fields.bits.entropy_coding_mode_flag);
+    PrintFlagIfNotZero("\t\tweighted_pred_flag", p->pic_fields.bits.weighted_pred_flag);
+    PrintFlagIfNotZero("\t\tweighted_bipred_idc", p->pic_fields.bits.weighted_bipred_idc);
+    PrintFlagIfNotZero("\t\ttransform_8x8_mode_flag", p->pic_fields.bits.transform_8x8_mode_flag);
+    PrintFlagIfNotZero("\t\tfield_pic_flag", p->pic_fields.bits.field_pic_flag);
+    PrintFlagIfNotZero("\t\tconstrained_intra_pred_flag", p->pic_fields.bits.constrained_intra_pred_flag);
+    PrintFlagIfNotZero("\t\tpic_order_present_flag", p->pic_fields.bits.pic_order_present_flag);
+    PrintFlagIfNotZero("\t\tdeblocking_filter_control_present_flag", p->pic_fields.bits.deblocking_filter_control_present_flag);
+    PrintFlagIfNotZero("\t\tredundant_pic_cnt_present_flag", p->pic_fields.bits.redundant_pic_cnt_present_flag);
+    PrintFlagIfNotZero("\t\treference_pic_flag", p->pic_fields.bits.reference_pic_flag);
+#endif
+    printf("\tframe_num = %d\n", p->frame_num);
+}
+#endif
+
+
+void SetVAPictureParameterBufferH264(VAPictureParameterBufferH264 *p)
+{
+    int i;
+    memset(p, 0, sizeof(VAPictureParameterBufferH264));
+    p->picture_width_in_mbs_minus1 = pwm;
+    p->picture_height_in_mbs_minus1 = phm;
+    p->num_ref_frames = 1;
+    p->seq_fields.value = 145;
+    /*
+    p->seq_fields.bits.chroma_format_idc = 1;
+    p->seq_fields.bits.frame_mbs_only_flag = 1;
+    p->seq_fields.bits.MinLumaBiPredSize8x8 = 1;
+    */
+    p->pic_fields.value = 0x501;
+    for (i = 0; i < 16; i++) {
+    p->ReferenceFrames[i].flags = VA_PICTURE_H264_INVALID;
+    p->ReferenceFrames[i].picture_id = 0xffffffff;
+
+    }
+}
+
+
+
+void SetVASliceParameterBufferH264(VASliceParameterBufferH264 *p)
+{
+    int i;
+    memset(p, 0, sizeof(VASliceParameterBufferH264));
+    p->slice_data_size = 0;
+    p->slice_data_bit_offset = 64;
+    p->slice_alpha_c0_offset_div2 = 2;
+    p->slice_beta_offset_div2 = 2;
+    p->chroma_weight_l0_flag = 1;
+    p->chroma_weight_l0[0][0]=1;
+    p->chroma_offset_l0[0][0]=0;
+    p->chroma_weight_l0[0][1]=1;
+    p->chroma_offset_l0[0][1]=0;
+    p->luma_weight_l1_flag = 1;
+    p->chroma_weight_l1_flag = 1;
+    p->luma_weight_l0[0]=0x01;
+    for (i = 0; i < 32; i++) {
+    p->RefPicList0[i].flags = VA_PICTURE_H264_INVALID;
+    p->RefPicList1[i].flags = VA_PICTURE_H264_INVALID;
+    //  p->ReferenceFrames[i].picture_id = 0xffffffff;
+    }
+    p->RefPicList1[0].picture_id = 0xffffffff; //0xaa0000bb;
+}
+
+
+
+void SetVASliceParameterBufferH264_T2(VASliceParameterBufferH264 *p, int first)
+{
+    int i;
+    memset(p, 0, sizeof(VASliceParameterBufferH264));
+    p->slice_data_size = 0;
+    p->slice_data_bit_offset = 64;
+    p->slice_alpha_c0_offset_div2 = 2;
+    p->slice_beta_offset_div2 = 2;
+    p->slice_type = 2;
+    if (first) {
+    p->luma_weight_l0_flag = 1;
+    p->chroma_weight_l0_flag = 1;
+    p->luma_weight_l1_flag = 1;
+    p->chroma_weight_l1_flag = 1;
+    } else {
+    p->chroma_weight_l0_flag = 1;
+    p->chroma_weight_l0[0][0]=1;
+    p->chroma_offset_l0[0][0]=0;
+    p->chroma_weight_l0[0][1]=1;
+    p->chroma_offset_l0[0][1]=0;
+    p->luma_weight_l1_flag = 1;
+    p->chroma_weight_l1_flag = 1;
+    p->luma_weight_l0[0]=0x01;
+    }
+    for (i = 0; i < 32; i++) {
+    p->RefPicList0[i].flags = VA_PICTURE_H264_INVALID;
+    p->RefPicList1[i].flags = VA_PICTURE_H264_INVALID;
+    //  p->ReferenceFrames[i].picture_id = 0xffffffff;
+    }
+    p->RefPicList1[0].picture_id = 0xffffffff;
+    p->RefPicList0[0].picture_id = 0xffffffff;
+}
+
+
+unsigned char m_MatrixBufferH264[]= {
+    //ScalingList4x4[6][16]
+    0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+    0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+    0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+    0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+    0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+    0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,
+    //ScalingList8x8[2][64]
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
+    0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
+};
+
+#ifdef XT_DEBUG
+void DumpVASliceParameterBufferH264(VASliceParameterBufferH264 *p)
+{
+    int i;
+    printf("\telement[0] = VASliceParameterBufferH264\n");
+    printf("\tslice_data_size = %d\n", p->slice_data_size);
+    printf("\tslice_data_offset = %d\n", p->slice_data_offset);
+    printf("\tslice_data_flag = %d\n", p->slice_data_flag);
+    printf("\tslice_data_bit_offset = %d\n", p->slice_data_bit_offset);
+    printf("\tfirst_mb_in_slice = %d\n", p->first_mb_in_slice);
+    printf("\tslice_type = %d\n", p->slice_type);
+    printf("\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
+    printf("\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
+    printf("\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
+    printf("\tcabac_init_idc = %d\n", p->cabac_init_idc);
+    printf("\tslice_qp_delta = %d\n", p->slice_qp_delta);
+    printf("\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
+    printf("\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
+    printf("\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
+    if (p->slice_type == 0 || p->slice_type == 1) {
+    printf("\tRefPicList0 =");
+    for (i = 0; i < p->num_ref_idx_l0_active_minus1 + 1; i++) {
+        printf("%d-%d-0x%08x-%d\n", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt, p->RefPicList0[i].picture_id, p->RefPicList0[i].frame_idx);
+    }
+    if (p->slice_type == 1) {
+        printf("\tRefPicList1 =");
+        for (i = 0; i < p->num_ref_idx_l1_active_minus1 + 1; i++)
+        {
+        printf("%d-%d-0x%08x-%d\n", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt, p->RefPicList1[i].picture_id, p->RefPicList1[i].frame_idx);
+        }
+    }
+    }
+    printf("\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
+    printf("\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
+    printf("\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
+    if (p->luma_weight_l0_flag) {
+    for (i = 0; i <=  p->num_ref_idx_l0_active_minus1; i++) {
+        printf("\t%d ", p->luma_weight_l0[i]);
+        printf("\t%d ", p->luma_offset_l0[i]);
+    }
+    printf("\n");
+    }
+    printf("\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag);
+    if (p->chroma_weight_l0_flag) {
+    for (i = 0; i <= p->num_ref_idx_l0_active_minus1; i++) {
+        printf("\t\t%d ", p->chroma_weight_l0[i][0]);
+        printf("\t\t%d ", p->chroma_offset_l0[i][0]);
+        printf("\t\t%d ", p->chroma_weight_l0[i][1]);
+        printf("\t\t%d ", p->chroma_offset_l0[i][1]);
+    }
+    printf("\n");
+    }
+    printf("\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag);
+    if (p->luma_weight_l1_flag) {
+    for (i = 0; i <=  p->num_ref_idx_l1_active_minus1; i++) {
+        printf("\t\t%d ", p->luma_weight_l1[i]);
+        printf("\t\t%d ", p->luma_offset_l1[i]);
+    }
+    printf("\n");
+    }
+    printf("\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag);
+    if (p->chroma_weight_l1_flag) {
+    for (i = 0; i <= p->num_ref_idx_l1_active_minus1; i++) {
+        printf("\t\t%d ", p->chroma_weight_l1[i][0]);
+        printf("\t\t%d ", p->chroma_offset_l1[i][0]);
+        printf("\t\t%d ", p->chroma_weight_l1[i][1]);
+        printf("\t\t%d ", p->chroma_offset_l1[i][1]);
+    }
+    printf("\n");
+    }
+}
+#endif
+
+
+static void usage (FILE * fp, int argc, char ** argv)
+{
+    fprintf (fp,
+        "Usage: %s [options]\n"
+        "\n"
+        "Options:\n"
+        "-?, --help             Print this message\n"
+        "-p, --port=PORT        Listen port [%d]\n"
+        "-l, --liveview-off     Live View off\n"
+        "-x, --posx=POS_X       X position [WM handles placement]\n"
+        "-y, --posy=POS_Y       Y position [WM handles placement]\n"
+        "-w, --width=WIDTH      Window width [same as Surface]\n"
+        "-h, --height=HEIGHT    Window height [same as Surface]\n"
+        "-d, --debug=LEVEL      Debug level [%d]\n"
+        "\n",
+        argv[0], ip_port, g_Debug);
+}
+
+static const char short_options [] = "?p:lx:y:w:h:d:";
+
+static const struct option
+    long_options [] = {
+        { "help",           no_argument,        NULL, '?' },
+        { "port",           required_argument,  NULL, 'p' },
+        { "liveview-off",   no_argument,        NULL, 'l' },
+        { "posx",           required_argument,  NULL, 'x' },
+        { "posy",           required_argument,  NULL, 'y' },
+        { "width",          required_argument,  NULL, 'w' },
+        { "height",         required_argument,  NULL, 'h' },
+        { "debug",          required_argument,  NULL, 'd' },
+        { 0, 0, 0, 0 }
+};
+
+
+int main(int argc,char **argv)
+{
+    int t2first = 1;
+    int real_frame = 0;
+    int slice_type = 2;
+    int FieldOrderCnt = 0;
+    int major_ver, minor_ver;
+    int i;
+    unsigned char frid = 0;
+    int z;
+    int sid = 0;
+    int newsid = 0;
+    unsigned int data_size = 0;
+    unsigned int frame_count = 0;
+    std::string remoteAddr;
+    unsigned short remotePort;
+    char *dh264 = NULL;
+    int num_entrypoints,vld_entrypoint;
+    VAStatus              va_status;
+    VAIQMatrixBufferH264     *mh264 = NULL;
+    VAPictureParameterBufferH264 *ph264 = NULL;
+    VASliceParameterBufferH264   *sh264 = NULL;
+    VABufferID            bufids[10];
+    VAEntrypoint          entrypoints[5];
+    VAConfigAttrib        attrib;
+    VAConfigID            config_id;
+    VABufferID            pic_param_buf_id[SURFACE_NUM];
+    VABufferID            mat_param_buf_id[SURFACE_NUM];
+    VABufferID            sp_param_buf_id[SURFACE_NUM];
+    VABufferID            d_param_buf_id[SURFACE_NUM];
+    VAPictureH264         my_VAPictureH264;
+    VAPictureH264         my_old_VAPictureH264;
+
+
+    for (;;) {
+    int index;
+    int c;
+
+    c = getopt_long (argc, argv,
+        short_options, long_options,
+        &index);
+
+    if (-1 == c)
+        break;
+
+    switch (c) {
+    case 0: /* getopt_long() flag */
+        break;
+
+    case '?':
+        usage (stdout, argc, argv);
+        exit (EXIT_SUCCESS);
+    case 'p':
+        ip_port = atoi(optarg);
+        break;
+    case 'l':
+        g_LiveView = false;
+        break;
+    case 'x':
+        g_PX = atoi(optarg);
+        break;
+    case 'y':
+        g_PY = atoi(optarg);
+        break;
+    case 'w':
+        win_width = atoi(optarg);
+        break;
+    case 'h':
+        win_height = atoi(optarg);
+        break;
+    case 'd':
+        g_Debug = atoi(optarg);
+        break;
+    default:
+        usage (stderr, argc, argv);
+        exit (EXIT_FAILURE);
+    }
+    }
+
+    InitSock();
+
+    printf("Accept - start\n");
+    sock_ptr->accept(remoteAddr, remotePort);
+    printf("Accept - done (%s:%d)\n", remoteAddr.c_str(), remotePort);
+
+    surface_width = sock_ptr->recv_uint32();
+    surface_height = sock_ptr->recv_uint32();
+    if (!win_width) {
+    win_width = surface_width;
+    }
+    if (!win_height) {
+    win_height = surface_height;
+    }
+    pwm = sock_ptr->recv_uint32();
+    phm = sock_ptr->recv_uint32();
+
+    win_display = (Display *)XOpenDisplay(":0.0");
+    if (win_display == NULL) {
+    fprintf(stderr, "Can't open the connection of display!\n");
+    exit(-1);
+    }
+    if (g_LiveView) {
+    win = XCreateSimpleWindow(win_display, RootWindow(win_display, 0), 0, 0, win_width, win_height, 0, 0, WhitePixel(win_display, 0));
+    XMapWindow(win_display, win);
+    SetWindowTitle("Decode H264 (%dx%d in %dx%d) TCP", surface_width,surface_height, win_width, win_height);
+    if ((g_PX !=-1) && (g_PY !=-1)) {
+        XMoveWindow(win_display,  win, g_PX, g_PY);
+    }
+    XSync(win_display, False);
+    }
+    if(signal(SIGINT, SignalHandler) == SIG_ERR) {
+    printf("signal() failed\n");
+    time_to_quit = 1;
+    exit(-1);
+    }
+    va_dpy = vaGetDisplay(win_display);
+    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+    CHECK_VASTATUS(va_status, "vaInitialize");
+
+    va_status = vaQueryConfigEntrypoints(va_dpy, MYPROF, entrypoints, &num_entrypoints);
+    CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints");
+    for (vld_entrypoint = 0; vld_entrypoint < num_entrypoints; vld_entrypoint++) {
+    if (entrypoints[vld_entrypoint] == VAEntrypointVLD)
+        break;
+    }
+    if (vld_entrypoint == num_entrypoints) {
+    /* not find VLD entry point */
+    assert(0);
+    }
+    /* Assuming finding VLD, find out the format for the render target */
+    attrib.type = VAConfigAttribRTFormat;
+    vaGetConfigAttributes(va_dpy, MYPROF, VAEntrypointVLD, &attrib, 1);
+    if ((attrib.value & VA_RT_FORMAT_YUV420) == 0) {
+    /* not find desired YUV420 RT format */
+    assert(0);
+    }
+    CHECK_VASTATUS(va_status, "vaGetConfigAttributes");
+    va_status = vaCreateConfig(va_dpy, MYPROF, VAEntrypointVLD, &attrib, 1,&config_id);
+    CHECK_VASTATUS(va_status, "vaCreateConfig");
+    va_status = vaCreateSurfaces(va_dpy,surface_width,surface_height,VA_RT_FORMAT_YUV420, SURFACE_NUM, &surface_id[0]);
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+    va_status = vaCreateContext(va_dpy, config_id, surface_width,surface_height, 0/*VA_PROGRESSIVE*/,  &surface_id[0], SURFACE_NUM, &context_id);
+    CHECK_VASTATUS(va_status, "vaCreateContext");
+    for(i=0; i<SURFACE_NUM; i++) {
+    pic_param_buf_id[i] = VA_INVALID_ID;
+    mat_param_buf_id[i] = VA_INVALID_ID;
+    sp_param_buf_id[i] = VA_INVALID_ID;
+    d_param_buf_id[i] = VA_INVALID_ID;
+    }
+    va_status = vaBeginPicture(va_dpy, context_id, surface_id[sid]);
+    CHECK_VASTATUS(va_status, "vaBeginPicture");
+    if (g_Debug) {
+      printf("--- Loop start here....\n");
+    }
+    while(!time_to_quit) {
+    frame_count = sock_ptr->recv_uint32();
+    slice_type = sock_ptr->recv_uint32();
+    switch(slice_type) {
+    case 0:
+    case 2:
+        break;
+    default:
+        printf("Wrong type: %d\n", slice_type);
+        exit(-1);
+        break;
+    }
+    data_size = sock_ptr->recv_uint32();
+    if (g_Debug) {
+      printf("T=%d S=%8d [%8d]\n", slice_type, data_size, frame_count);
+    }
+    my_VAPictureH264.picture_id = surface_id[sid];
+    my_VAPictureH264.frame_idx = frid;
+    my_VAPictureH264.flags = 0;
+    my_VAPictureH264.BottomFieldOrderCnt = FieldOrderCnt;
+    my_VAPictureH264.TopFieldOrderCnt = FieldOrderCnt;
+    if (pic_param_buf_id[sid] == VA_INVALID_ID) {
+        va_status = vaCreateBuffer(va_dpy, context_id, VAPictureParameterBufferType, sizeof(VAPictureParameterBufferH264), 1, NULL, &pic_param_buf_id[sid]);
+    }
+    CHECK_VASTATUS(va_status, "vaCreateBuffer");
+    CHECK_SURF(surface_id[sid]);
+    va_status = vaMapBuffer(va_dpy,pic_param_buf_id[sid],(void **)&ph264);
+    CHECK_VASTATUS(va_status, "vaMapBuffer");
+    SetVAPictureParameterBufferH264(ph264);
+    memcpy(&ph264->CurrPic, &my_VAPictureH264, sizeof(VAPictureH264));
+    if (slice_type == 2) {
+    } else {
+        memcpy(&ph264->ReferenceFrames[0], &my_old_VAPictureH264, sizeof(VAPictureH264));
+        ph264->ReferenceFrames[0].flags = 0;
+    }
+    ph264->frame_num = frid;
+
+#ifdef XT_DEBUG
+    DumpVAPictureParameterBufferH264(ph264);
+#endif
+    va_status = vaUnmapBuffer(va_dpy,pic_param_buf_id[sid]);
+    CHECK_VASTATUS(va_status, "vaUnmapBuffer");
+
+    if (mat_param_buf_id[sid] == VA_INVALID_ID) {
+        va_status = vaCreateBuffer(va_dpy, context_id, VAIQMatrixBufferType, sizeof(VAIQMatrixBufferH264), 1, NULL, &mat_param_buf_id[sid]);
+        CHECK_VASTATUS(va_status, "vaCreateBuffer");
+    }
+    CHECK_SURF(surface_id[sid]);
+    va_status = vaMapBuffer(va_dpy, mat_param_buf_id[sid], (void **)&mh264);
+    CHECK_VASTATUS(va_status, "vaMapBuffer");
+    memcpy(mh264, m_MatrixBufferH264, 224);
+    va_status = vaUnmapBuffer(va_dpy, mat_param_buf_id[sid]);
+    CHECK_VASTATUS(va_status, "vaUnmapBuffer");
+    bufids[0] = pic_param_buf_id[sid];
+    bufids[1] = mat_param_buf_id[sid];
+    CHECK_SURF(surface_id[sid]);
+    va_status = vaRenderPicture(va_dpy, context_id, bufids, 2);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    if (sp_param_buf_id[sid] == VA_INVALID_ID) {
+        va_status = vaCreateBuffer(va_dpy, context_id, VASliceParameterBufferType, sizeof(VASliceParameterBufferH264), 1, NULL, &sp_param_buf_id[sid]);
+        CHECK_VASTATUS(va_status, "vaCreateBuffer");
+    }
+    CHECK_SURF(surface_id[sid]);
+    va_status = vaMapBuffer(va_dpy, sp_param_buf_id[sid], (void **)&sh264);
+    CHECK_VASTATUS(va_status, "vaMapBuffer");
+    if (slice_type == 2) {
+        SetVASliceParameterBufferH264_T2(sh264, t2first);
+        t2first = 0;
+    } else {
+        SetVASliceParameterBufferH264(sh264);
+        memcpy(&sh264->RefPicList0[0], &my_old_VAPictureH264, sizeof(VAPictureH264));
+        sh264->RefPicList0[0].flags = 0;
+    }
+    sh264->slice_data_bit_offset = 0;
+    sh264->slice_data_size = data_size;
+#ifdef XT_DEBUG
+    DumpVASliceParameterBufferH264(sh264);
+#endif
+    va_status = vaUnmapBuffer(va_dpy, sp_param_buf_id[sid]);
+    CHECK_VASTATUS(va_status, "vaUnmapBuffer");
+    CHECK_SURF(surface_id[sid]);
+    if (d_param_buf_id[sid] == VA_INVALID_ID) {
+        va_status = vaCreateBuffer(va_dpy, context_id, VASliceDataBufferType, 4177920, 1, NULL, &d_param_buf_id[sid]); // 1080p size
+        CHECK_VASTATUS(va_status, "vaCreateBuffer");
+    }
+    va_status = vaMapBuffer(va_dpy, d_param_buf_id[sid], (void **)&dh264);
+    CHECK_VASTATUS(va_status, "vaMapBuffer");
+    sock_ptr->recv_data((unsigned char*)dh264, data_size);
+    CHECK_SURF(surface_id[sid]);
+    va_status = vaUnmapBuffer(va_dpy, d_param_buf_id[sid]);
+    CHECK_VASTATUS(va_status, "vaUnmapBuffer");
+    bufids[0] = sp_param_buf_id[sid];
+    bufids[1] = d_param_buf_id[sid];
+    CHECK_SURF(surface_id[sid]);
+    va_status = vaRenderPicture(va_dpy, context_id, bufids, 2);
+    CHECK_VASTATUS(va_status, "vaRenderPicture");
+    va_status = vaEndPicture(va_dpy, context_id);
+    CHECK_VASTATUS(va_status, "vaEndPicture");
+    newsid = sid+1;
+    if (newsid==SURFACE_NUM) {
+        newsid = 0;
+    }
+    va_status = vaBeginPicture(va_dpy, context_id, surface_id[newsid]);
+    CHECK_VASTATUS(va_status, "vaBeginPicture");
+    va_status = vaSyncSurface(va_dpy, surface_id[sid]);
+    CHECK_VASTATUS(va_status, "vaSyncSurface");
+    CHECK_SURF(surface_id[sid]);
+    if (g_LiveView) {
+        va_status = vaPutSurface(va_dpy, surface_id[sid], win, 0, 0, surface_width, surface_height, 0, 0, win_width, win_height, NULL, 0, VA_FRAME_PICTURE);
+        CHECK_VASTATUS(va_status, "vaPutSurface");
+    }
+    sid = newsid;
+    frid++;
+    if (frid>15) frid = 0;
+    FieldOrderCnt+=2;
+    memcpy(&my_old_VAPictureH264, &my_VAPictureH264, sizeof(VAPictureH264));
+    real_frame ++;
+    }
+    if (g_Debug) {
+      printf("Final !\n");
+    }
+    vaDestroySurfaces(va_dpy,&surface_id[0],SURFACE_NUM);
+    vaTerminate(va_dpy);
+    XCloseDisplay(win_display);
+    delete sock_ptr;
+
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/v4l_h264/encode/Makefile.am b/examples/thirdparty/libva/test/v4l_h264/encode/Makefile.am
new file mode 100644
index 0000000..7d3a9d4
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/encode/Makefile.am
@@ -0,0 +1,39 @@
+# Copyright (c) 2012 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 NONINFRINGEMENT. 
+# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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.
+
+noinst_PROGRAMS = encode
+
+encode_SOURCES	= capture.cpp avcenc.cpp TCPSocketClient.cpp
+encode_CFLAGS	= -I$(top_srcdir) $(X11_CFLAGS)
+encode_LDADD	= \
+	$(top_builddir)/va/libva.la \
+	$(top_builddir)/va/libva-x11.la \
+	$(X11_LIBS)
+
+valgrind:   $(bin_PROGRAMS)
+	for a in $(bin_PROGRAMS); do \
+		valgrind --leak-check=full --show-reachable=yes .libs/$$a; \
+	done
+
+EXTRA_DIST = \
+	TCPSocketClient.h	\
+	$(NULL)
diff --git a/examples/thirdparty/libva/test/v4l_h264/encode/TCPSocketClient.cpp b/examples/thirdparty/libva/test/v4l_h264/encode/TCPSocketClient.cpp
new file mode 100644
index 0000000..93573a8
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/encode/TCPSocketClient.cpp
@@ -0,0 +1,123 @@
+/*
+ * Copyright (c) 2012 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 NONINFRINGEMENT. 
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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.
+ */
+
+/*
+* C++ wrapper around an TCP socket
+*/
+
+#include "TCPSocketClient.h"
+
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <unistd.h>
+#include <netdb.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <cstring>
+using std::string;
+
+TCPSocketClient::TCPSocketClient(const std::string &remoteAddr, const unsigned short &remotePort) throw(std::runtime_error) :
+sockDesc(-1)
+{
+    ::memset(&sockAddr, 0, sizeof(sockAddr));
+    sockAddr.sin_family = AF_INET;
+    struct hostent* hp;
+    if ((hp = gethostbyname(remoteAddr.c_str())) == NULL) {
+        throw std::runtime_error("Unknown host " + remoteAddr);
+    }
+    bcopy(hp->h_addr, &sockAddr.sin_addr, hp->h_length);
+    sockAddr.sin_port = htons(remotePort);
+    if ((sockDesc = socket(PF_INET, SOCK_STREAM, 0)) < 0) {
+        throw std::runtime_error("Socket creation failed (socket())");
+    }
+    /* Try to connect */
+    if (connect(sockDesc, (struct sockaddr *) &sockAddr, sizeof(sockAddr)) < 0) {
+        throw std::runtime_error("Error connecting to remote host (connect())");
+    }
+}
+
+/* Destructor */
+TCPSocketClient::~TCPSocketClient()
+{
+    if (sockDesc >= 0) {
+        ::close(sockDesc);
+    }
+}
+
+/* Communication over socket */
+/* Receive data */
+ssize_t TCPSocketClient::recv(void *buffer, const size_t &bufferLen) throw (std::runtime_error)
+{
+    if (sockDesc < 0) {
+        throw std::runtime_error("socket is not connected (recv())");
+    }
+    int rval = ::read(sockDesc, buffer, bufferLen);
+    if (rval <= 0) {
+        // EOF (connection closed by remote host) or error:
+        // reset state, so a new accept() call will succeed
+        sockDesc = -1;
+        ::memset(&sockAddr, 0, sizeof(sockAddr));
+    }
+    if (rval == -1) {
+        throw std::runtime_error("Error reading from socket (read())");
+    }
+    return rval;
+}
+
+/* Send data */
+ssize_t TCPSocketClient::send(const void *buffer, const int &bufferLen) throw (std::runtime_error)
+{
+    if (sockDesc <= 0) {
+        throw std::runtime_error("socket is not connected (send())");
+    }
+
+    int rval = ::write(sockDesc, buffer, bufferLen);
+
+    if (rval <= 0) {
+        // EOF (connection closed by remote host) or error:
+        // reset state, so a new accept() call will succeed
+        sockDesc = -1;
+        ::memset(&sockAddr, 0, sizeof(sockAddr));
+    }
+
+    if (rval == -1) {
+        throw std::runtime_error("Error reading from socket (read())");
+    }
+
+    return rval;
+}
+
+ssize_t TCPSocketClient::send(const string &message) throw (std::runtime_error)
+{
+    return send(message.c_str(), message.length());
+}
+
+
+ssize_t TCPSocketClient::send(unsigned int val) throw (std::runtime_error)
+{
+    return send(&val, 4);
+}
+
diff --git a/examples/thirdparty/libva/test/v4l_h264/encode/TCPSocketClient.h b/examples/thirdparty/libva/test/v4l_h264/encode/TCPSocketClient.h
new file mode 100644
index 0000000..897c91d
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/encode/TCPSocketClient.h
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2012 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 NONINFRINGEMENT. 
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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.
+ */
+
+/*
+* C++ wrapper around an TCP socket
+*/
+
+#ifndef __TCP_SOCKET_H__
+#define __TCP_SOCKET_H__
+
+#include <stdexcept>
+#include <netinet/in.h> // for IPPROTO_TCP, sockadd_in
+
+
+class TCPSocketClient
+{
+public:
+    /* Constructors */
+    /**
+    * Construct generic TCPSocket
+    * XXX: Don't use, use the constructor with explicit port specification instead
+    **/
+    //TCPSocketClient() throw(std::runtime_error);
+
+    /**
+    * Construct TCPSocket that connects to the given remote server.
+    * parameters:
+    * - remoteAddr: address of server to connect to
+    * - remotePort: port of server to connect to
+    **/
+    TCPSocketClient(const std::string &remoteAddr, const unsigned short &remotePort) throw(std::runtime_error);
+
+
+    /* Destructor */
+    ~TCPSocketClient();
+
+
+    /* Communication over socket */
+    /**
+    * Receive data from remote peer.
+    * parameters:
+    * - buffer: buffer to receive data
+    * - bufferLen: maximum number of bytes to receive
+    * return value:
+    *   number of bytes received, 0 means connection closed by peer
+    **/
+    ssize_t recv(void *buffer, const size_t &bufferLen) throw (std::runtime_error);
+
+    /**
+    * Send data to remote peer.
+    * parameters:
+    * - buffer:     buffer to send
+    * - bufferLen:  number of bytes in buffer
+    * return value:
+    *   number of bytes actually written
+    **/
+    ssize_t send(const void *buffer, const int &bufferLen) throw (std::runtime_error);
+
+    /**
+    * Sends the given string over the TCP connection.
+    * This is a convenience method which calls the previous method with the correct
+    * length parameter.
+    * parameters:
+    * - message:    message to send
+    * return value:
+    *   number of bytes actually written
+    **/
+    ssize_t send(const std::string &message) throw (std::runtime_error);
+
+    ssize_t send(unsigned int val) throw (std::runtime_error);
+
+private:
+    // don't allow value semantics on this object
+    TCPSocketClient(const TCPSocketClient &sock);
+    void operator=(const TCPSocketClient &sock);
+
+    int sockDesc;       // socket descriptor
+    sockaddr_in sockAddr; // structure keeping IP and port of peer
+};
+
+#endif // __TCP_SOCKET_H__
diff --git a/examples/thirdparty/libva/test/v4l_h264/encode/avcenc.cpp b/examples/thirdparty/libva/test/v4l_h264/encode/avcenc.cpp
new file mode 100644
index 0000000..8a7bcb1
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/encode/avcenc.cpp
@@ -0,0 +1,508 @@
+/*
+ * Copyright (c) 2012 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 NONINFRINGEMENT. 
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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.
+ */
+
+/*
+* Example based on Simple AVC encoder.
+* http://cgit.freedesktop.org/libva/tree/test/encode/avcenc.c
+*
+*/
+
+#include <cstdio>
+#include <cstring>
+#include <cstdarg>
+#include <cassert>
+#include <va/va_x11.h>
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+#include <iostream>
+#include <cstdlib>
+
+#include "TCPSocketClient.h"
+
+#define MY_Y 0x22
+#define MY_U 0xff
+#define MY_V 0x55
+
+
+extern TCPSocketClient *sock_ptr;
+extern int  g_Debug;
+extern char *device_settings;
+Window  win2;
+int win2_width = 640;
+int win2_height = 480;
+int g_PX = -1;
+int g_PY = -1;
+
+
+bool g_LiveView = true;
+bool g_Force_P_Only = false;
+bool g_ShowNumber = true;
+
+
+
+
+#define SLICE_TYPE_P            0
+#define SLICE_TYPE_B            1
+#define SLICE_TYPE_I            2
+
+#define ENTROPY_MODE_CAVLC      0
+#define ENTROPY_MODE_CABAC      1
+
+#define PROFILE_IDC_BASELINE    66
+#define PROFILE_IDC_MAIN        77
+#define PROFILE_IDC_HIGH        100
+
+#define CHECK_VASTATUS(va_status,func)                                  \
+    if (va_status != VA_STATUS_SUCCESS) {                               \
+        std::cerr << __func__ << ':' << func << '(' << __LINE__ << ") failed, exit\n"; \
+        exit(1);                                                        \
+    }
+
+static Display *x11_display;
+static VADisplay va_dpy;
+static VAContextID context_id;
+static VAConfigID config_id;
+
+static int picture_width, picture_width_in_mbs;
+static int picture_height, picture_height_in_mbs;
+static int frame_size;
+static int codedbuf_size;
+
+static int qp_value = 26;
+
+static int log2_max_frame_num_minus4 = 0;
+static int pic_order_cnt_type = 0;
+static int log2_max_pic_order_cnt_lsb_minus4 = 0;
+static int entropy_coding_mode_flag = ENTROPY_MODE_CABAC;
+static int deblocking_filter_control_present_flag = 1;
+static int frame_mbs_only_flag = 1;
+
+static void create_encode_pipe()
+{
+    VAEntrypoint entrypoints[5];
+    int num_entrypoints,slice_entrypoint;
+    VAConfigAttrib attrib[2];
+    int major_ver, minor_ver;
+    VAStatus va_status;
+
+    x11_display = XOpenDisplay(":0.0");
+    assert(x11_display);
+
+    va_dpy = vaGetDisplay(x11_display);
+    va_status = vaInitialize(va_dpy, &major_ver, &minor_ver);
+    CHECK_VASTATUS(va_status, "vaInitialize");
+    vaQueryConfigEntrypoints(va_dpy, VAProfileH264Baseline, entrypoints, &num_entrypoints);
+
+    for (slice_entrypoint = 0; slice_entrypoint < num_entrypoints; slice_entrypoint++) {
+        if (entrypoints[slice_entrypoint] == VAEntrypointEncSlice)
+            break;
+    }
+
+    if (slice_entrypoint == num_entrypoints) {
+        /* not find Slice entry point */
+        assert(0);
+    }
+
+    /* find out the format for the render target, and rate control mode */
+    attrib[0].type = VAConfigAttribRTFormat;
+    attrib[1].type = VAConfigAttribRateControl;
+    vaGetConfigAttributes(va_dpy, VAProfileH264Baseline, VAEntrypointEncSlice, &attrib[0], 2);
+
+    if ((attrib[0].value & VA_RT_FORMAT_YUV420) == 0) {
+        /* not find desired YUV420 RT format */
+        assert(0);
+    }
+
+    if ((attrib[1].value & VA_RC_VBR) == 0) {
+        /* Can't find matched RC mode */
+        std::cerr << "VBR mode not found, exit\n";
+        assert(0);
+    }
+
+    attrib[0].value = VA_RT_FORMAT_YUV420; /* set to desired RT format */
+    attrib[1].value = VA_RC_VBR; /* set to desired RC mode */
+
+    va_status = vaCreateConfig(va_dpy, VAProfileH264Baseline, VAEntrypointEncSlice, &attrib[0], 2,&config_id);
+    CHECK_VASTATUS(va_status, "vaCreateConfig");
+
+    /* Create a context for this decode pipe */
+    va_status = vaCreateContext(va_dpy, config_id, picture_width, picture_height, VA_PROGRESSIVE, 0, 0, &context_id);
+    CHECK_VASTATUS(va_status, "vaCreateContext");
+}
+
+static void destory_encode_pipe()
+{
+    vaDestroyContext(va_dpy,context_id);
+    vaDestroyConfig(va_dpy,config_id);
+    vaTerminate(va_dpy);
+    XCloseDisplay(x11_display);
+}
+
+/***************************************************
+*
+*  The encode pipe resource define
+*
+***************************************************/
+static VABufferID seq_parameter = VA_INVALID_ID;                /*Sequence level parameter*/
+static VABufferID pic_parameter = VA_INVALID_ID;                /*Picture level parameter*/
+static VABufferID slice_parameter = VA_INVALID_ID;              /*Slice level parameter, multil slices*/
+static VABufferID coded_buf = VA_INVALID_ID;                    /*Output buffer, compressed data*/
+
+#define SID_NUMBER                              3
+#define SID_INPUT_PICTURE                       0
+#define SID_REFERENCE_PICTURE                   1
+#define SID_RECON_PICTURE                       2
+static  VASurfaceID surface_ids[SID_NUMBER];
+
+/***************************************************/
+
+static void alloc_encode_resource()
+{
+    VAStatus va_status;
+    seq_parameter = VA_INVALID_ID;
+    pic_parameter = VA_INVALID_ID;
+    slice_parameter = VA_INVALID_ID;
+
+    //1. Create sequence parameter set
+    {
+        VAEncSequenceParameterBufferH264 seq_h264 = {0};
+        seq_h264.level_idc = 30;
+        seq_h264.picture_width_in_mbs = picture_width_in_mbs;
+        seq_h264.picture_height_in_mbs = picture_height_in_mbs;
+        seq_h264.bits_per_second = 384*1000;
+        seq_h264.initial_qp = qp_value;
+        seq_h264.min_qp = 3;
+        va_status = vaCreateBuffer(va_dpy, context_id, VAEncSequenceParameterBufferType,
+            sizeof(seq_h264),1,&seq_h264,&seq_parameter);
+        CHECK_VASTATUS(va_status,"vaCreateBuffer");;
+    }
+    //2. Create surface
+    va_status = vaCreateSurfaces(va_dpy, picture_width, picture_height, VA_RT_FORMAT_YUV420, SID_NUMBER, &surface_ids[0]);
+    CHECK_VASTATUS(va_status, "vaCreateSurfaces");
+    //3. Create coded buffer
+    {
+        va_status = vaCreateBuffer(va_dpy,context_id,VAEncCodedBufferType, codedbuf_size, 1, NULL, &coded_buf);
+        CHECK_VASTATUS(va_status,"vaBeginPicture");
+    }
+}
+
+static void release_encode_resource()
+{
+    //-3 Relese coded buffer
+    if (coded_buf != VA_INVALID_ID)
+        vaDestroyBuffer(va_dpy, coded_buf);
+    //-2 Release all the surfaces resource
+    vaDestroySurfaces(va_dpy, &surface_ids[0], SID_NUMBER);
+    //-1 Destory the sequence level parameter
+    if (seq_parameter != VA_INVALID_ID)
+        vaDestroyBuffer(va_dpy, seq_parameter);
+}
+
+
+static int get_coded_bitsteam_length(unsigned char *buffer, int buffer_length)
+{
+    int i;
+    for (i = buffer_length - 1; i >= 0; i--) {
+        if (buffer[i])
+            break;
+    }
+    return i + 1;
+}
+
+
+
+void SetWindowTitle(const char* title, ...)
+{
+    va_list args;
+    va_start(args, title);
+    char buf[256];
+    vsprintf(buf, title, args);
+    va_end(args);
+    XSetStandardProperties(x11_display,win2, buf, buf, None, NULL, 0, NULL);
+}
+
+
+
+int encoder_init(int width, int height)
+{
+    picture_width = width;
+    picture_height = height;
+    picture_width_in_mbs = (picture_width + 15) / 16;
+    picture_height_in_mbs = (picture_height + 15) / 16;
+    qp_value = 26;
+    frame_size = picture_width * picture_height +  ((picture_width * picture_height) >> 1) ;
+    codedbuf_size = picture_width * picture_height * 1.5;
+    create_encode_pipe();
+    alloc_encode_resource();
+    sock_ptr->send(picture_width);
+    sock_ptr->send(picture_height);
+    sock_ptr->send(picture_width_in_mbs-1);
+    sock_ptr->send(picture_height_in_mbs-1);
+    if (g_LiveView) {
+        win2 = XCreateSimpleWindow(x11_display, RootWindow(x11_display, 0), 0, 0, win2_width, win2_height, 0, 0, WhitePixel(x11_display, 0));
+        XMapWindow(x11_display, win2);
+        if ((g_PX !=-1) && (g_PY !=-1)) {
+            XMoveWindow(x11_display,  win2, g_PX, g_PY);
+        }
+        SetWindowTitle("Input: %dx%d [TCP] %s",picture_width,picture_height, device_settings);
+        XSync(x11_display, False);
+    }
+    return 0;
+}
+
+void encoder_close()
+{
+    release_encode_resource();
+    destory_encode_pipe();
+}
+
+
+/* 8x8 font 0-9 only - asm type format */
+unsigned char mydigits[80] = {
+        // 0
+        0x0E,0x11,0x13,0x15,0x19,0x11,0x0E,0x00,
+        // 1
+        0x04,0x0C,0x04,0x04,0x04,0x04,0x0E,0x00,
+        // 2
+        0x0E,0x11,0x01,0x02,0x04,0x08,0x1F,0x00,
+        // 3
+        0x1F,0x02,0x04,0x02,0x01,0x11,0x0E,0x00,
+        // 4
+        0x02,0x06,0x0A,0x12,0x1F,0x02,0x02,0x00,
+        // 5
+        0x1F,0x10,0x1E,0x01,0x01,0x11,0x0E,0x00,
+        // 6
+        0x06,0x08,0x10,0x1E,0x11,0x11,0x0E,0x00,
+        // 7
+        0x1F,0x01,0x02,0x04,0x04,0x04,0x04,0x00,
+        // 8
+        0x1E,0x11,0x11,0x0E,0x11,0x11,0x0E,0x00,
+        //9
+        0x0E,0x11,0x11,0x0F,0x01,0x02,0x0C,0x00
+};
+
+#define INTERSIZE 16
+
+static void ShowNumber(int num, unsigned char *buffer, VAImage *image)
+{
+    int j;
+    char buf[20];
+    unsigned char *dst_y;
+    unsigned char *dst_uv_line;
+    unsigned char *digits_ptr;
+    assert(image);
+    int maxlen = sprintf(buf, "%d", num);
+    assert(maxlen<20);
+    for (int a=0; a<maxlen;a++) {
+        digits_ptr = &mydigits[(buf[a]-'0')*8];
+        for (int i=0; i<8; i++) {
+            unsigned char current = digits_ptr[i];
+            dst_y = (buffer+ image->offsets[0]) + ((i*2)*image->pitches[0])+(a*INTERSIZE);
+            dst_uv_line = (buffer + image->offsets[1]) + (i*image->pitches[1])+(a*INTERSIZE);
+            for (j=7; j>=0;j--) {
+                if ((current >>j) & 1) {
+                    *dst_y ++ = MY_Y;
+                    *dst_y ++ = MY_Y;
+                    *dst_uv_line++ = MY_U;
+                    *dst_uv_line++ = MY_V;
+                } else  {
+                    dst_y += 2;
+                    dst_uv_line +=2;
+                }
+            }
+            dst_y = (buffer+ image->offsets[0]) + (((i*2)+1)*image->pitches[0])+(a*INTERSIZE);
+            for (j=7; j>=0;j--) {
+                if ((current >>j) & 1) {
+                    *dst_y ++ = MY_Y;
+                    *dst_y ++ = MY_Y;
+                } else  {
+                    dst_y += 2;
+                }
+            }
+        }
+    }
+}
+
+
+
+static void upload_yuv_to_surface(unsigned char *inbuf, VASurfaceID surface_id, unsigned int frame)
+{
+    VAImage image;
+    VAStatus va_status;
+    void *pbuffer=NULL;
+    unsigned char *psrc = inbuf;
+    unsigned char *pdst = NULL;
+    unsigned char *dst_y, *dst_uv;
+    unsigned char *src_u, *src_v;
+    unsigned char *dst_uv_line = NULL;
+    int i,j;
+    va_status = vaDeriveImage(va_dpy, surface_id, &image);
+    va_status = vaMapBuffer(va_dpy, image.buf, &pbuffer);
+    pdst = (unsigned char *)pbuffer;
+    dst_uv_line = pdst + image.offsets[1];
+    dst_uv = dst_uv_line;
+    for (i=0; i<picture_height; i+=2) {
+        dst_y = (pdst + image.offsets[0]) + i*image.pitches[0];
+        for (j=0; j<(picture_width/2); ++j) {
+            *(dst_y++) = psrc[0];//y1;
+            *(dst_uv++) = psrc[1];//u;
+            *(dst_y++) = psrc[2];//y1;
+            *(dst_uv++) = psrc[3];//v;
+            psrc+=4;
+        }
+        dst_y = (pdst + image.offsets[0]) + (i+1)*image.pitches[0];
+        for (j=0; j<picture_width/2; ++j) {
+            *(dst_y++) = psrc[0];//y1;
+            *(dst_y++) = psrc[2];//y2;
+            psrc+=4;
+        }
+        dst_uv_line += image.pitches[1];
+        dst_uv = dst_uv_line;
+    }
+    if (g_ShowNumber) {
+        ShowNumber(frame, (unsigned char *)pbuffer, &image);
+    }
+    va_status = vaUnmapBuffer(va_dpy, image.buf);
+    CHECK_VASTATUS(va_status,"vaUnmapBuffer");
+    va_status = vaDestroyImage(va_dpy, image.image_id);
+    CHECK_VASTATUS(va_status,"vaDestroyImage");
+    if (g_LiveView) {
+        va_status = vaPutSurface(va_dpy, surface_id, win2, 0, 0, picture_width,picture_height, 0, 0, win2_width, win2_height, NULL, 0, VA_FRAME_PICTURE);
+        CHECK_VASTATUS(va_status,"vaPutSurface");
+    }
+}
+
+
+static void prepare_input(unsigned char *buffer, int intra_slice, unsigned int frame)
+{
+    static VAEncPictureParameterBufferH264 pic_h264;
+    static VAEncSliceParameterBuffer slice_h264;
+    VAStatus va_status;
+    VABufferID tempID;
+    VACodedBufferSegment *coded_buffer_segment = NULL;
+    unsigned char *coded_mem;
+    // Sequence level
+    va_status = vaRenderPicture(va_dpy, context_id, &seq_parameter, 1);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");;
+    // Copy Image to target surface according input YUV data.
+    upload_yuv_to_surface(buffer, surface_ids[SID_INPUT_PICTURE], frame);
+    // Picture level
+    pic_h264.reference_picture = surface_ids[SID_REFERENCE_PICTURE];
+    pic_h264.reconstructed_picture = surface_ids[SID_RECON_PICTURE];
+    pic_h264.coded_buf = coded_buf;
+    pic_h264.picture_width = picture_width;
+    pic_h264.picture_height = picture_height;
+    pic_h264.last_picture = 0;
+    if (pic_parameter != VA_INVALID_ID) {
+        vaDestroyBuffer(va_dpy, pic_parameter);
+    }
+    va_status = vaCreateBuffer(va_dpy, context_id,VAEncPictureParameterBufferType,
+        sizeof(pic_h264),1,&pic_h264,&pic_parameter);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");
+    va_status = vaRenderPicture(va_dpy,context_id, &pic_parameter, 1);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+    // clean old memory
+    va_status = vaMapBuffer(va_dpy,coded_buf,(void **)(&coded_buffer_segment));
+    CHECK_VASTATUS(va_status,"vaMapBuffer");
+    coded_mem = (unsigned char*)coded_buffer_segment->buf;
+    memset(coded_mem, 0, coded_buffer_segment->size);
+    vaUnmapBuffer(va_dpy, coded_buf);
+    // Slice level
+    slice_h264.start_row_number = 0;
+    slice_h264.slice_height = picture_height/16; /* Measured by MB */
+    slice_h264.slice_flags.bits.is_intra = intra_slice;
+    slice_h264.slice_flags.bits.disable_deblocking_filter_idc = 0;
+    if ( slice_parameter != VA_INVALID_ID) {
+        vaDestroyBuffer(va_dpy, slice_parameter);
+    }
+    va_status = vaCreateBuffer(va_dpy,context_id,VAEncSliceParameterBufferType,
+        sizeof(slice_h264),1,&slice_h264,&slice_parameter);
+    CHECK_VASTATUS(va_status,"vaCreateBuffer");;
+    va_status = vaRenderPicture(va_dpy,context_id, &slice_parameter, 1);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+
+    // Prepare for next picture
+    tempID = surface_ids[SID_RECON_PICTURE];
+    surface_ids[SID_RECON_PICTURE] = surface_ids[SID_REFERENCE_PICTURE];
+    surface_ids[SID_REFERENCE_PICTURE] = tempID;
+}
+
+static void send_slice_data(unsigned int frcount, int slice_type)
+{
+    VACodedBufferSegment *coded_buffer_segment;
+    unsigned char *coded_mem;
+    int i, slice_data_length;
+    int mm;
+    VAStatus va_status;
+    VASurfaceStatus surface_status;
+    int is_cabac = (entropy_coding_mode_flag == ENTROPY_MODE_CABAC);
+    va_status = vaSyncSurface(va_dpy, surface_ids[SID_INPUT_PICTURE]);
+    CHECK_VASTATUS(va_status,"vaSyncSurface");
+    surface_status = (VASurfaceStatus)0;
+    va_status = vaQuerySurfaceStatus(va_dpy, surface_ids[SID_INPUT_PICTURE], &surface_status);
+    CHECK_VASTATUS(va_status,"vaQuerySurfaceStatus");
+    va_status = vaMapBuffer(va_dpy, coded_buf, (void **)(&coded_buffer_segment));
+    CHECK_VASTATUS(va_status,"vaMapBuffer");
+    coded_mem = (unsigned char*)coded_buffer_segment->buf;
+    sock_ptr->send(frcount);
+    sock_ptr->send(slice_type);
+
+    if (is_cabac) {
+        if (!coded_buffer_segment->next) {
+            slice_data_length = get_coded_bitsteam_length(coded_mem, codedbuf_size);
+        } else {
+            /* Fixme me - to do: loop to each block and calculate the real data_lenght */
+            assert(0);
+        }
+        if (g_Debug) {
+            printf("T=%d BS=%8d SZ=%8d C=%d\n", slice_type, codedbuf_size, slice_data_length, frcount);
+        }sock_ptr->send(slice_data_length);
+        sock_ptr->send((unsigned char*)coded_mem,  slice_data_length);
+    } else {
+        /* FIXME */
+        assert(0);
+    }
+    vaUnmapBuffer(va_dpy, coded_buf);
+}
+
+
+int encode_frame(unsigned char *inbuf)
+{
+    static unsigned int framecount = 0;
+    int is_intra = (framecount % 30 == 0);
+    if (g_Force_P_Only) {
+        is_intra = 1;
+    }
+    VAStatus va_status;
+    va_status = vaBeginPicture(va_dpy, context_id, surface_ids[SID_INPUT_PICTURE]);
+    CHECK_VASTATUS(va_status,"vaBeginPicture");
+    prepare_input(inbuf, is_intra, framecount);
+    va_status = vaEndPicture(va_dpy,context_id);
+    CHECK_VASTATUS(va_status,"vaRenderPicture");
+    send_slice_data(framecount, is_intra ? SLICE_TYPE_I : SLICE_TYPE_P);
+    framecount++;
+    return 1;
+}
+
diff --git a/examples/thirdparty/libva/test/v4l_h264/encode/capture.cpp b/examples/thirdparty/libva/test/v4l_h264/encode/capture.cpp
new file mode 100644
index 0000000..dc3c221
--- /dev/null
+++ b/examples/thirdparty/libva/test/v4l_h264/encode/capture.cpp
@@ -0,0 +1,851 @@
+/*
+ * Copyright (c) 2012 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 NONINFRINGEMENT. 
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 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 example is based on: http://linuxtv.org/downloads/v4l-dvb-apis/capture-example.html
+ *  V4L2 video capture example
+ *      This program is provided with the V4L2 API
+ * see http://linuxtv.org/docs.php for more information
+*/
+
+#include <cstdlib> /* EXIT_FAILURE, EXIT_SUCCESS */
+#include <string>
+#include <cstring> /* strerror() */
+#include <cassert>
+#include <getopt.h> /* getopt_long() */
+#include <fcntl.h> /* low-level i/o */
+#include <errno.h>
+#include <unistd.h>
+#include <malloc.h>
+#include <sys/stat.h>
+#include <sys/mman.h>
+#include <sys/ioctl.h>
+#include <csignal>
+
+#include <iostream>
+#include <linux/videodev2.h>
+
+using std::string;
+
+#include "TCPSocketClient.h"
+
+
+extern bool g_Force_P_Only;
+extern bool g_ShowNumber;
+extern bool g_LiveView;
+char device_settings_buffer[255];
+char *device_settings = NULL;
+int  g_Debug = 0;
+int  g_Numerator = 0;
+int  g_FrameRate = 0;
+TCPSocketClient *sock_ptr = NULL;
+std::string ip_name = "localhost";
+int   ip_port = 8888;
+extern int g_PX;
+extern int g_PY;
+extern int win2_width;
+extern int win2_height;
+
+
+
+
+int   encoder_init(int width, int height);
+int   encode_frame(unsigned char *inbuf);
+void  encoder_close();
+
+#define CLEAR(x) memset (&(x), 0, sizeof (x))
+
+typedef enum {
+    IO_METHOD_READ,
+    IO_METHOD_MMAP,
+    IO_METHOD_USERPTR,
+} io_method;
+
+struct buffer {
+    void * start;
+    size_t length;
+};
+
+static char * dev_name = NULL;
+static io_method io = IO_METHOD_MMAP;
+static int fd = -1;
+struct buffer * buffers = NULL;
+static unsigned int n_buffers = 0;
+static unsigned int width = 176;
+static unsigned int height = 144;
+static unsigned int pixelformat = V4L2_PIX_FMT_YUYV;
+
+static int time_to_quit = 0;
+static void SignalHandler(int a_Signal)
+{
+    time_to_quit = 1;
+    signal(SIGINT, SIG_DFL);
+}
+
+static void
+    errno_exit (const char * s)
+{
+    std::cerr << s << " error " << errno << ", " << strerror(errno) << '\n';
+    exit (EXIT_FAILURE);
+}
+
+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 void
+    process_image (const void * p, ssize_t size)
+{
+    const size_t src_frame_size = (width*height) + height*(width >> 1) + height*(width >> 1);
+    if (size != src_frame_size){
+        std::cerr << "wrong buffer size: " << size << "; expect: " << src_frame_size << '\n';
+        return;
+    }
+    if (!encode_frame((unsigned char *)p))
+        time_to_quit = 1;
+}
+
+static int
+    read_frame (void)
+{
+    struct v4l2_buffer buf;
+    unsigned int i;
+    switch (io) {
+    case IO_METHOD_READ:
+        if (-1 == read (fd, buffers[0].start, buffers[0].length)) {
+            switch (errno) {
+            case EAGAIN:
+                return 0;
+            case EIO:
+                /* Could ignore EIO, see spec. */
+                /* fall through */
+            default:
+                errno_exit ("read");
+            }
+        }
+        process_image (buffers[0].start, buffers[0].length);
+        break;
+
+    case IO_METHOD_MMAP:
+        CLEAR (buf);
+
+        buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+        buf.memory = V4L2_MEMORY_MMAP;
+
+        if (-1 == xioctl (fd, VIDIOC_DQBUF, &buf)) {
+            switch (errno) {
+            case EAGAIN:
+                return 0;
+
+            case EIO:
+                /* Could ignore EIO, see spec. */
+                /* fall through */
+            default:
+                errno_exit ("VIDIOC_DQBUF");
+            }
+        }
+
+        assert (buf.index < n_buffers);
+
+        process_image (buffers[buf.index].start, buf.length);
+
+        if (-1 == xioctl (fd, VIDIOC_QBUF, &buf))
+            errno_exit ("VIDIOC_QBUF");
+
+        break;
+
+    case IO_METHOD_USERPTR:
+        CLEAR (buf);
+
+        buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+        buf.memory = V4L2_MEMORY_USERPTR;
+
+        if (-1 == xioctl (fd, VIDIOC_DQBUF, &buf)) {
+            switch (errno) {
+            case EAGAIN:
+                return 0;
+
+            case EIO:
+                /* Could ignore EIO, see spec. */
+                /* fall through */
+            default:
+                errno_exit ("VIDIOC_DQBUF");
+            }
+        }
+
+        for (i = 0; i < n_buffers; ++i)
+            if (buf.m.userptr == (unsigned long) buffers[i].start && buf.length == buffers[i].length)
+                break;
+
+        assert (i < n_buffers);
+        process_image ((void *) buf.m.userptr, buf.length);
+        if (-1 == xioctl (fd, VIDIOC_QBUF, &buf))
+            errno_exit ("VIDIOC_QBUF");
+
+        break;
+    }
+
+    return 1;
+}
+
+static void
+    mainloop (void)
+{
+    while (!time_to_quit) {
+        for (;;) {
+            fd_set fds;
+            struct timeval tv;
+            int r;
+
+            FD_ZERO (&fds);
+            FD_SET (fd, &fds);
+
+            /* Timeout. */
+            tv.tv_sec = 5;
+            tv.tv_usec = 0;
+
+            r = select (fd + 1, &fds, NULL, NULL, &tv);
+
+            if (-1 == r) {
+                if (EINTR == errno)
+                    continue;
+
+                errno_exit ("select");
+            }
+
+            if (0 == r) {
+                std::cerr << "select timeout\n";
+                exit (EXIT_FAILURE);
+            }
+
+            if (read_frame ())
+                break;
+
+            /* EAGAIN - continue select loop. */
+        }
+    }
+}
+
+static void
+    stop_capturing (void)
+{
+    enum v4l2_buf_type type;
+
+    switch (io) {
+    case IO_METHOD_READ:
+        /* Nothing to do. */
+        break;
+
+    case IO_METHOD_MMAP:
+    case IO_METHOD_USERPTR:
+        type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+        if (-1 == xioctl (fd, VIDIOC_STREAMOFF, &type))
+            errno_exit ("VIDIOC_STREAMOFF");
+
+        break;
+    }
+}
+
+static void
+    start_capturing (void)
+{
+    unsigned int i;
+    enum v4l2_buf_type type;
+
+    switch (io) {
+    case IO_METHOD_READ:
+        /* Nothing to do. */
+        break;
+
+    case IO_METHOD_MMAP:
+        for (i = 0; i < n_buffers; ++i) {
+            struct v4l2_buffer buf;
+
+            CLEAR (buf);
+
+            buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+            buf.memory = V4L2_MEMORY_MMAP;
+            buf.index = i;
+
+            if (-1 == xioctl (fd, VIDIOC_QBUF, &buf))
+                errno_exit ("VIDIOC_QBUF");
+        }
+
+        type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+        if (-1 == xioctl (fd, VIDIOC_STREAMON, &type))
+            errno_exit ("VIDIOC_STREAMON");
+
+        break;
+
+    case IO_METHOD_USERPTR:
+        for (i = 0; i < n_buffers; ++i) {
+            struct v4l2_buffer buf;
+
+            CLEAR (buf);
+
+            buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+            buf.memory = V4L2_MEMORY_USERPTR;
+            buf.index = i;
+            buf.m.userptr = (unsigned long) buffers[i].start;
+            buf.length = buffers[i].length;
+
+            if (-1 == xioctl (fd, VIDIOC_QBUF, &buf))
+                errno_exit ("VIDIOC_QBUF");
+        }
+
+        type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+
+        if (-1 == xioctl (fd, VIDIOC_STREAMON, &type))
+            errno_exit ("VIDIOC_STREAMON");
+
+        break;
+    }
+}
+
+static void uninit_device (void)
+{
+    unsigned int i;
+
+    switch (io) {
+    case IO_METHOD_READ:
+        free (buffers[0].start);
+        break;
+
+    case IO_METHOD_MMAP:
+        for (i = 0; i < n_buffers; ++i)
+            if (-1 == munmap (buffers[i].start, buffers[i].length))
+                errno_exit ("munmap");
+        break;
+
+    case IO_METHOD_USERPTR:
+        for (i = 0; i < n_buffers; ++i)
+            free (buffers[i].start);
+        break;
+    }
+
+    free (buffers);
+}
+
+static void init_read (unsigned int buffer_size)
+{
+    buffers = (buffer*)calloc (1, sizeof (*buffers));
+
+    if (!buffers) {
+        std::cerr << "Out of memory\n";
+        exit (EXIT_FAILURE);
+    }
+
+    buffers[0].length = buffer_size;
+    buffers[0].start = malloc (buffer_size);
+
+    if (!buffers[0].start) {
+        std::cerr << "Out of memory\n";
+        exit (EXIT_FAILURE);
+    }
+}
+
+static void init_mmap (void)
+{
+    struct v4l2_requestbuffers req;
+
+    CLEAR (req);
+
+    req.count = 4;
+    req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+    req.memory = V4L2_MEMORY_MMAP;
+
+    if (-1 == xioctl (fd, VIDIOC_REQBUFS, &req)) {
+        if (EINVAL == errno) {
+            std::cerr << dev_name << " does not support "
+                << "memory mapping\n";
+            exit (EXIT_FAILURE);
+        } else {
+            errno_exit ("VIDIOC_REQBUFS");
+        }
+    }
+
+    if (req.count < 2) {
+        std::cerr << "Insufficient buffer memory on " << dev_name << '\n';
+        exit (EXIT_FAILURE);
+    }
+
+    buffers = (buffer*)calloc (req.count, sizeof (*buffers));
+
+    if (!buffers) {
+        std::cerr << "Out of memory\n";
+        exit (EXIT_FAILURE);
+    }
+
+    for (n_buffers = 0; n_buffers < req.count; ++n_buffers) {
+        struct v4l2_buffer buf;
+        CLEAR (buf);
+        buf.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+        buf.memory = V4L2_MEMORY_MMAP;
+        buf.index = n_buffers;
+        if (-1 == xioctl (fd, VIDIOC_QUERYBUF, &buf))
+            errno_exit ("VIDIOC_QUERYBUF");
+        buffers[n_buffers].length = buf.length;
+        buffers[n_buffers].start =
+            mmap (NULL /* start anywhere */,
+            buf.length,
+            PROT_READ | PROT_WRITE /* required */,
+            MAP_SHARED /* recommended */,
+            fd, buf.m.offset);
+
+        if (MAP_FAILED == buffers[n_buffers].start)
+            errno_exit ("mmap");
+    }
+}
+
+static void init_userp (unsigned int buffer_size)
+{
+    struct v4l2_requestbuffers req;
+    unsigned int page_size;
+    page_size = getpagesize ();
+    buffer_size = (buffer_size + page_size - 1) & ~(page_size - 1);
+    CLEAR (req);
+    req.count = 4;
+    req.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+    req.memory = V4L2_MEMORY_USERPTR;
+    if (-1 == xioctl (fd, VIDIOC_REQBUFS, &req)) {
+        if (EINVAL == errno) {
+            std::cerr << dev_name << " does not support "
+                << "user pointer i/o\n";
+            exit (EXIT_FAILURE);
+        } else {
+            errno_exit ("VIDIOC_REQBUFS");
+        }
+    }
+    buffers = (buffer*) calloc (4, sizeof (*buffers));
+    if (!buffers) {
+        std::cerr << "Out of memory\n";
+        exit (EXIT_FAILURE);
+    }
+    for (n_buffers = 0; n_buffers < 4; ++n_buffers) {
+        buffers[n_buffers].length = buffer_size;
+        buffers[n_buffers].start = memalign (/* boundary */ page_size,
+            buffer_size);
+
+        if (!buffers[n_buffers].start) {
+            std::cerr << "Out of memory\n";
+            exit (EXIT_FAILURE);
+        }
+    }
+}
+
+static void init_device (void)
+{
+    struct v4l2_capability cap;
+    struct v4l2_cropcap cropcap;
+    struct v4l2_crop crop;
+    struct v4l2_format fmt;
+    unsigned int min;
+    if (-1 == xioctl (fd, VIDIOC_QUERYCAP, &cap)) {
+        if (EINVAL == errno) {
+            std::cerr << dev_name << " is no V4L2 device\n";
+            exit (EXIT_FAILURE);
+        } else {
+            errno_exit ("VIDIOC_QUERYCAP");
+        }
+    }
+
+    if (!(cap.capabilities & V4L2_CAP_VIDEO_CAPTURE)) {
+        std::cerr << dev_name << " is no video capture device\n";
+        exit (EXIT_FAILURE);
+    }
+
+    switch (io) {
+    case IO_METHOD_READ:
+        if (!(cap.capabilities & V4L2_CAP_READWRITE)) {
+            std::cerr << dev_name << " does not support read i/o\n";
+            exit (EXIT_FAILURE);
+        }
+
+        break;
+    case IO_METHOD_MMAP:
+    case IO_METHOD_USERPTR:
+        if (!(cap.capabilities & V4L2_CAP_STREAMING)) {
+            std::cerr << dev_name << " does not support streaming i/o\n";
+            exit (EXIT_FAILURE);
+        }
+        break;
+    }
+    /* Select video input, video standard and tune here. */
+    CLEAR (cropcap);
+    cropcap.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+    if (0 == xioctl (fd, VIDIOC_CROPCAP, &cropcap)) {
+        crop.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+        crop.c = cropcap.defrect; /* reset to default */
+        if (-1 == xioctl (fd, VIDIOC_S_CROP, &crop)) {
+            switch (errno) {
+            case EINVAL:
+                /* Cropping not supported. */
+                break;
+            default:
+                /* Errors ignored. */
+                break;
+            }
+        }
+    } else {
+        /* Errors ignored. */
+    }
+    struct v4l2_fmtdesc     fmtdesc;
+    printf("video capture\n");
+    for (int i = 0;; i++) {
+        memset(&fmtdesc,0,sizeof(fmtdesc));
+        fmtdesc.index = i;
+        fmtdesc.type  = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+        if (-1 == xioctl (fd, VIDIOC_ENUM_FMT,&fmtdesc))
+            break;
+        printf("    VIDIOC_ENUM_FMT(%d,VIDEO_CAPTURE)\n",i);
+        printf("pfmt: 0x%x %s\n",fmtdesc.pixelformat,fmtdesc.description);
+    if (fmtdesc.pixelformat != 0x56595559) {
+         printf("   => don't list not supported format\n");
+         continue;
+    }
+        for (int k = 0;; k++) {
+            struct v4l2_frmsizeenum frmsize;
+            memset(&frmsize,0,sizeof(frmsize));
+            frmsize.index = k;
+            frmsize.pixel_format = fmtdesc.pixelformat;
+            if (-1 == xioctl (fd, VIDIOC_ENUM_FRAMESIZES,&frmsize))
+                break;
+            if (frmsize.type== V4L2_FRMSIZE_TYPE_DISCRETE) {
+                printf("       VIDIOC_ENUM_FRAMESIZES(%d,0x%x) %dx%d  @",k, frmsize.type, frmsize.discrete.width, frmsize.discrete.height);
+                for (int l = 0;; l++) {
+                    struct v4l2_frmivalenum frmrate;
+                    memset(&frmrate, 0, sizeof(frmrate));
+                    frmrate.index = l;
+                    frmrate.pixel_format = fmtdesc.pixelformat;
+                    frmrate.width = frmsize.discrete.width;
+                    frmrate.height = frmsize.discrete.height;
+                    if (-1 == xioctl (fd, VIDIOC_ENUM_FRAMEINTERVALS,&frmrate))
+                        break;
+                    if (frmrate.type == V4L2_FRMIVAL_TYPE_DISCRETE) {
+                        printf(" %u/%u ", frmrate.discrete.numerator, frmrate.discrete.denominator);
+                    }
+                }
+                printf("\n");
+            }
+        }
+    }
+    CLEAR (fmt);
+    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+    if (-1 == xioctl (fd, VIDIOC_G_FMT, &fmt))
+        errno_exit ("VIDIOC_G_FMT");
+    printf("video: %dx%d; fourcc:0x%x\n", fmt.fmt.pix.width, fmt.fmt.pix.height, fmt.fmt.pix.pixelformat);
+    if (fmt.fmt.pix.width != width || fmt.fmt.pix.height != height || (fmt.fmt.pix.pixelformat != pixelformat)){
+        struct v4l2_pix_format def_format;
+        memcpy(&def_format, &fmt.fmt.pix, sizeof(struct v4l2_pix_format));
+        fmt.fmt.pix.width = width;
+        fmt.fmt.pix.height = height;
+        fmt.fmt.pix.pixelformat = pixelformat;
+        if (-1 == xioctl (fd, VIDIOC_S_FMT, &fmt)){
+            std::cerr << "failed to set resolution " << fmt.fmt.pix.width << "x" << fmt.fmt.pix.height << '\n';
+            errno_exit ("VIDIOC_S_FMT");
+        }
+    }
+    if (-1 == xioctl (fd, VIDIOC_S_FMT, &fmt))
+        errno_exit ("VIDIOC_S_FMT");
+
+    CLEAR (fmt);
+    fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+    if (-1 == xioctl (fd, VIDIOC_G_FMT, &fmt))
+        errno_exit ("VIDIOC_G_FMT");
+    printf("video: %dx%d; fourcc:0x%x\n", fmt.fmt.pix.width, fmt.fmt.pix.height, fmt.fmt.pix.pixelformat);
+  if (fmt.fmt.pix.width != width || fmt.fmt.pix.height != height || fmt.fmt.pix.pixelformat != pixelformat){
+        errno_exit ("VIDIOC_S_FMT not set !");
+  }
+
+    /* Buggy driver paranoia. */
+    min = fmt.fmt.pix.width * 2;
+    if (fmt.fmt.pix.bytesperline < min)
+        fmt.fmt.pix.bytesperline = min;
+    min = fmt.fmt.pix.bytesperline * fmt.fmt.pix.height;
+    if (fmt.fmt.pix.sizeimage < min)
+        fmt.fmt.pix.sizeimage = min;
+    struct v4l2_streamparm capp;
+    CLEAR(capp);
+    capp.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
+    if (g_FrameRate) {
+        if (-1 == xioctl (fd, VIDIOC_G_PARM, &capp) == -1) {
+            errno_exit ("VIDIOC_G_PARM");
+        }
+        printf("vidioc_s_parm called frate=%d/%d\n", capp.parm.capture.timeperframe.numerator, capp.parm.capture.timeperframe.denominator);
+        capp.parm.capture.timeperframe.numerator = g_Numerator;
+        capp.parm.capture.timeperframe.denominator = g_FrameRate;
+        printf("vidioc_s_parm set: frate=%d/%d\n", capp.parm.capture.timeperframe.numerator, capp.parm.capture.timeperframe.denominator);
+        if (-1 == xioctl (fd, VIDIOC_S_PARM, &capp) == -1) {
+            errno_exit ("VIDIOC_S_PARM");
+        }
+        if (-1 == xioctl (fd, VIDIOC_G_PARM, &capp) == -1) {
+            errno_exit ("VIDIOC_G_PARM");
+        }
+        if ((capp.parm.capture.timeperframe.numerator != g_Numerator) || (
+        capp.parm.capture.timeperframe.denominator != g_FrameRate)) {
+            errno_exit ("VIDIOC_S_PARM NOT SET");
+        }
+    } else {
+        if (-1 == xioctl (fd, VIDIOC_G_PARM, &capp) == -1) {
+            errno_exit ("VIDIOC_G_PARM");
+        }
+    }
+    sprintf(device_settings_buffer,"%dx%d@%d/%d", width, height, capp.parm.capture.timeperframe.numerator, capp.parm.capture.timeperframe.denominator);
+  device_settings = &device_settings_buffer[0];
+  printf("INFO: %s\n", device_settings);
+
+
+    switch (io) {
+    case IO_METHOD_READ:
+        init_read (fmt.fmt.pix.sizeimage);
+        break;
+
+    case IO_METHOD_MMAP:
+        init_mmap ();
+        break;
+
+    case IO_METHOD_USERPTR:
+        init_userp (fmt.fmt.pix.sizeimage);
+        break;
+    }
+}
+
+static void
+    close_device (void)
+{
+    if (-1 == close (fd))
+        errno_exit ("close");
+
+    fd = -1;
+}
+
+static void open_device (void)
+{
+    struct stat st;
+
+    if (-1 == stat (dev_name, &st)) {
+        std::cerr << "Cannot identify '" << dev_name << "': " << errno << ", " << strerror(errno) << '\n';
+        exit (EXIT_FAILURE);
+    }
+
+    if (!S_ISCHR (st.st_mode)) {
+        std::cerr << dev_name << " is no device\n";
+        exit (EXIT_FAILURE);
+    }
+
+    fd = open (dev_name, O_RDWR /* required */ | O_NONBLOCK, 0);
+
+    if (-1 == fd) {
+        std::cerr << "Cannot open '" << dev_name << "': " << errno << ", " << strerror(errno) << '\n';
+        exit (EXIT_FAILURE);
+    }
+}
+
+static void usage (std::ostream &o, int argc, char ** argv)
+{
+    o << "Usage: " << argv[0] << " [options]\n"
+        "\n"
+        "Options:\n"
+        "-?, --help             Print this message\n"
+        "-d, --device=NAME      Video device name ["<< dev_name<< "]\n"
+        "-i, --ip=IP            Target ip [localhost]\n"
+        "-p, --port=PORT        Target port [" << ip_port << "]\n"
+        "-m, --mmap             Use memory mapped buffers\n"
+        "-r, --read             Use read() calls\n"
+        "-u, --userp            Use application allocated buffers\n"
+        "-N, --no-number        Disable OSD\n"
+        "-P, --progressive      Force P frames only\n"
+        "-l, --liveview-off     Live View off\n"
+        "-f, --framerate=FPS    Framerate [no limit]\n"
+        "-w, --width=WIDTH      Window width [" << win2_width << "]\n"
+        "-h, --height=HEIGHT    Window height [" << win2_height << "]\n"
+        "-x, --posx=POS_X       X position [WM handles placement]\n"
+        "-y, --posy=POS_Y       Y position [WM handles placement]\n"
+        "-n, --numerator=NUM    Numerator [no limit]\n"
+        "-W, --dev-width=WIDTH  Device width ["<< width << "]\n"
+        "-H, --dev-height=HEIGHT  Device height [" << height << "]\n"
+        "-D, --debug=LEVEL      Debug level [" << g_Debug << "]\n"
+        "\n";
+}
+
+void InitSock()
+{
+    printf("Using: %s:%d\n", ip_name.c_str(), ip_port);
+    try {
+        sock_ptr = new TCPSocketClient(ip_name, ip_port);
+    }
+    catch (const std::exception& e)
+    {
+        printf("%s\n", e.what());
+        exit(1);
+    }
+}
+
+
+static const char short_options [] = "d:i:p:?mruNPlf:w:h:x:y:n:W:H:D:";
+
+static const struct option
+    long_options [] = {
+        { "device",        required_argument, NULL, 'd' },
+        { "ip",            required_argument, NULL, 'i' },
+        { "port",          required_argument, NULL, 'p' },
+        { "help",          no_argument,       NULL, '?' },
+        { "mmap",          no_argument,       NULL, 'm' },
+        { "read",          no_argument,       NULL, 'r' },
+        { "userp",         no_argument,       NULL, 'u' },
+        { "no-number",     no_argument,       NULL, 'N' },
+        { "progressive",   no_argument,       NULL, 'P' },
+        { "liveview-off",  no_argument,       NULL, 'l' },
+        { "framerate",     required_argument, NULL, 'f' },
+        { "width",         required_argument, NULL, 'w' },
+        { "height",        required_argument, NULL, 'h' },
+        { "posx",          required_argument, NULL, 'x' },
+        { "posy",          required_argument, NULL, 'y' },
+        { "numerator",     required_argument, NULL, 'n' },
+        { "dev-width",     required_argument, NULL, 'W' },
+        { "dev-height",    required_argument, NULL, 'H' },
+        { "debug",         required_argument, NULL, 'D' },
+        { 0, 0, 0, 0 }
+};
+
+int
+    main (int argc, char ** argv)
+{
+    width = 640;
+    height = 480;
+    dev_name = (char*)"/dev/video0";
+
+    for (;;) {
+        int index;
+        int c;
+
+        c = getopt_long (argc, argv,
+            short_options, long_options,
+            &index);
+
+        if (-1 == c)
+            break;
+
+        switch (c) {
+        case 0: /* getopt_long() flag */
+            break;
+
+        case 'd':
+            dev_name = optarg;
+            break;
+        case 'i':
+            ip_name = optarg;
+            break;
+        case 'p':
+            ip_port = atoi(optarg);
+            break;
+        case '?':
+            usage (std::cout, argc, argv);
+            exit (EXIT_SUCCESS);
+        case 'm':
+            io = IO_METHOD_MMAP;
+            break;
+        case 'r':
+            io = IO_METHOD_READ;
+            break;
+        case 'u':
+            io = IO_METHOD_USERPTR;
+            break;
+        case 'N':
+            g_ShowNumber = false;
+            break;
+        case 'P':
+            g_Force_P_Only = true;
+            break;
+        case 'l':
+            g_LiveView = false;
+            break;
+        case 'f':
+            g_FrameRate = atoi(optarg);
+            if (!g_Numerator) g_Numerator = 1;
+            break;
+        case 'w':
+            win2_width = atoi(optarg);
+            break;
+        case 'h':
+            win2_height = atoi(optarg);
+            break;
+        case 'x':
+            g_PX = atoi(optarg);
+            break;
+        case 'y':
+            g_PY = atoi(optarg);
+            break;
+        case 'n':
+            g_Numerator = atoi(optarg);
+            break;
+        case 'W':
+            width = atoi(optarg);
+            break;
+        case 'H':
+            height = atoi(optarg);
+            break;
+        case 'D':
+            g_Debug = atoi(optarg);
+            break;
+        default:
+            usage (std::cerr, argc, argv);
+            exit (EXIT_FAILURE);
+        }
+    }
+    if (g_Debug) {
+        printf("Capture: %dx%d %d/%d\n", width, height, g_Numerator, g_FrameRate);
+        printf("Win: %dx%d (%d,%d)\n", win2_width, win2_height, g_PX, g_PY);
+    }
+
+    if(signal(SIGINT, SignalHandler) == SIG_ERR){
+        printf("signal() failed\n");
+        time_to_quit = 1;
+    }
+    InitSock();
+    open_device();
+    pixelformat = V4L2_PIX_FMT_YUYV;
+    init_device ();
+    printf("negotiated frame resolution: %dx%d\n", width, height);
+
+    if (!encoder_init(width, height)) {
+        start_capturing ();
+        mainloop ();
+        stop_capturing ();
+        encoder_close();
+    } else {
+        printf("Error: encoder init !\n");
+    }
+    uninit_device ();
+    close_device ();
+    delete sock_ptr;
+    return 0;
+}
diff --git a/examples/thirdparty/libva/test/vainfo/Android.mk b/examples/thirdparty/libva/test/vainfo/Android.mk
new file mode 100644
index 0000000..5c97388
--- /dev/null
+++ b/examples/thirdparty/libva/test/vainfo/Android.mk
@@ -0,0 +1,27 @@
+# For vainfo
+# =====================================================
+
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+	vainfo.c		\
+	../common/va_display.c	\
+	../common/va_display_android.cpp
+
+LOCAL_CFLAGS += \
+  -DANDROID
+
+LOCAL_C_INCLUDES += \
+  $(LOCAL_PATH)/../../va \
+  $(LOCAL_PATH)/../common \
+  $(LOCAL_PATH)/../.. \
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := vainfo
+
+LOCAL_SHARED_LIBRARIES := libva-android libva libdl libdrm libcutils libutils libgui
+
+include $(BUILD_EXECUTABLE)
+
diff --git a/examples/thirdparty/libva/test/vainfo/Makefile.am b/examples/thirdparty/libva/test/vainfo/Makefile.am
new file mode 100644
index 0000000..680d099
--- /dev/null
+++ b/examples/thirdparty/libva/test/vainfo/Makefile.am
@@ -0,0 +1,44 @@
+# Copyright (c) 2007 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.
+
+bin_PROGRAMS = vainfo
+
+vainfo_cflags = \
+	-I$(top_srcdir)				\
+	-I$(top_srcdir)/va			\
+	-I$(top_srcdir)/test/common		\
+	-I$(top_builddir)			\
+	-DLIBVA_VERSION_S="\"$(LIBVA_VERSION)\"" \
+	$(NULL)
+
+vainfo_libs = \
+	$(top_builddir)/va/libva.la		\
+	$(top_builddir)/test/common/libva-display.la	\
+	$(NULL)
+
+vainfo_SOURCES	= vainfo.c
+noinst_HEADERS	= $(source_h)
+vainfo_CFLAGS	= $(vainfo_cflags)
+vainfo_LDADD	= $(vainfo_libs)
+
+valgrind:	vainfo
+	valgrind --leak-check=full --show-reachable=yes .libs/vainfo; 
diff --git a/examples/thirdparty/libva/test/vainfo/vainfo.c b/examples/thirdparty/libva/test/vainfo/vainfo.c
new file mode 100644
index 0000000..2736b56
--- /dev/null
+++ b/examples/thirdparty/libva/test/vainfo/vainfo.c
@@ -0,0 +1,157 @@
+/*
+ * Copyright (c) 2007 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 "sysdeps.h"
+#include <stdarg.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include "va_display.h"
+#include "va/sysdeps.h"
+
+#define CHECK_VASTATUS(va_status,func, ret)                             \
+if (va_status != VA_STATUS_SUCCESS) {                                   \
+    fprintf(stderr,"%s failed with error code %d (%s),exit\n",func, va_status, vaErrorStr(va_status)); \
+    ret_val = ret;                                                      \
+    goto error;                                                         \
+}
+
+static char * profile_string(VAProfile profile)
+{
+    switch (profile) {
+            case VAProfileNone: return "VAProfileNone";
+            case VAProfileMPEG2Simple: return "VAProfileMPEG2Simple";
+            case VAProfileMPEG2Main: return "VAProfileMPEG2Main";
+            case VAProfileMPEG4Simple: return "VAProfileMPEG4Simple";
+            case VAProfileMPEG4AdvancedSimple: return "VAProfileMPEG4AdvancedSimple";
+            case VAProfileMPEG4Main: return "VAProfileMPEG4Main";
+            case VAProfileH264Baseline: return "VAProfileH264Baseline";
+            case VAProfileH264Main: return "VAProfileH264Main";
+            case VAProfileH264High: return "VAProfileH264High";
+            case VAProfileVC1Simple: return "VAProfileVC1Simple";
+            case VAProfileVC1Main: return "VAProfileVC1Main";
+            case VAProfileVC1Advanced: return "VAProfileVC1Advanced";
+            case VAProfileH263Baseline: return "VAProfileH263Baseline";
+            case VAProfileH264ConstrainedBaseline: return "VAProfileH264ConstrainedBaseline";
+            case VAProfileJPEGBaseline: return "VAProfileJPEGBaseline";
+            case VAProfileVP8Version0_3: return "VAProfileVP8Version0_3";
+            case VAProfileH264MultiviewHigh: return "VAProfileH264MultiviewHigh";
+            case VAProfileH264StereoHigh: return "VAProfileH264StereoHigh";
+            case VAProfileHEVCMain: return "VAProfileHEVCMain";
+            case VAProfileHEVCMain10: return "VAProfileHEVCMain10";
+
+            default:
+                break;
+    }
+    return "<unknown profile>";
+}
+
+
+static char * entrypoint_string(VAEntrypoint entrypoint)
+{
+    switch (entrypoint) {
+            case VAEntrypointVLD:return "VAEntrypointVLD";
+            case VAEntrypointIZZ:return "VAEntrypointIZZ";
+            case VAEntrypointIDCT:return "VAEntrypointIDCT";
+            case VAEntrypointMoComp:return "VAEntrypointMoComp";
+            case VAEntrypointDeblocking:return "VAEntrypointDeblocking";
+            case VAEntrypointEncSlice:return "VAEntrypointEncSlice";
+            case VAEntrypointEncPicture:return "VAEntrypointEncPicture";
+            case VAEntrypointVideoProc:return "VAEntrypointVideoProc";
+            default:
+                break;
+    }
+    return "<unknown entrypoint>";
+}
+
+int main(int argc, const char* argv[])
+{
+  VADisplay va_dpy;
+  VAStatus va_status;
+  int major_version, minor_version;
+  const char *driver;
+  const char *name = strrchr(argv[0], '/'); 
+  VAProfile profile, *profile_list = NULL;
+  int num_profiles, max_num_profiles, i;
+  VAEntrypoint entrypoint, entrypoints[10];
+  int num_entrypoint;
+  int ret_val = 0;
+  
+  if (name)
+      name++;
+  else
+      name = argv[0];
+
+  va_dpy = va_open_display();
+  if (NULL == va_dpy)
+  {
+      fprintf(stderr, "%s: vaGetDisplay() failed\n", name);
+      return 2;
+  }
+  
+  va_status = vaInitialize(va_dpy, &major_version, &minor_version);
+  CHECK_VASTATUS(va_status, "vaInitialize", 3);
+  
+  printf("%s: VA-API version: %d.%d (libva %s)\n",
+         name, major_version, minor_version, LIBVA_VERSION_S);
+
+  driver = vaQueryVendorString(va_dpy);
+  printf("%s: Driver version: %s\n", name, driver ? driver : "<unknown>");
+
+  printf("%s: Supported profile and entrypoints\n", name);
+  max_num_profiles = vaMaxNumProfiles(va_dpy);
+  profile_list = malloc(max_num_profiles * sizeof(VAProfile));
+
+  if (!profile_list) {
+      printf("Failed to allocate memory for profile list\n");
+      ret_val = 5;
+      goto error;
+  }
+
+  va_status = vaQueryConfigProfiles(va_dpy, profile_list, &num_profiles);
+  CHECK_VASTATUS(va_status, "vaQueryConfigProfiles", 6);
+
+  for (i = 0; i < num_profiles; i++) {
+      char *profile_str;
+
+      profile = profile_list[i];
+      va_status = vaQueryConfigEntrypoints(va_dpy, profile, entrypoints, 
+                                           &num_entrypoint);
+      if (va_status == VA_STATUS_ERROR_UNSUPPORTED_PROFILE)
+	continue;
+
+      CHECK_VASTATUS(va_status, "vaQueryConfigEntrypoints", 4);
+
+      profile_str = profile_string(profile);
+      for (entrypoint = 0; entrypoint < num_entrypoint; entrypoint++)
+          printf("      %-32s:	%s\n", profile_str, entrypoint_string(entrypoints[entrypoint]));
+  }
+  
+error:
+  free(profile_list);
+  vaTerminate(va_dpy);
+  va_close_display(va_dpy);
+  
+  return ret_val;
+}
diff --git a/examples/thirdparty/libva/va/Android.mk b/examples/thirdparty/libva/va/Android.mk
new file mode 100755
index 0000000..5c5f763
--- /dev/null
+++ b/examples/thirdparty/libva/va/Android.mk
@@ -0,0 +1,175 @@
+# Copyright (c) 2007 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.
+
+# For libva
+# =====================================================
+
+LOCAL_PATH:= $(call my-dir)
+
+LIBVA_DRIVERS_PATH_32 = /system/lib
+LIBVA_DRIVERS_PATH_64 = /system/lib64
+
+# Version set to Android Jelly Bean
+ALOG_VERSION_REQ := 4.1
+ALOG_VERSION := $(filter $(ALOG_VERSION_REQ),$(firstword $(sort $(PLATFORM_VERSION) \
+                                   $(ALOG_VERSION_REQ))))
+
+include $(CLEAR_VARS)
+
+#LIBVA_MINOR_VERSION := 31
+#LIBVA_MAJOR_VERSION := 0 
+
+LOCAL_SRC_FILES := \
+	va.c \
+	va_trace.c \
+	va_fool.c
+
+LOCAL_CFLAGS_32 += \
+	-DANDROID \
+	-DVA_DRIVERS_PATH="\"$(LIBVA_DRIVERS_PATH_32)\"" \
+	-DLOG_TAG=\"libva\"
+
+LOCAL_CFLAGS_64 += \
+	-DANDROID \
+	-DVA_DRIVERS_PATH="\"$(LIBVA_DRIVERS_PATH_64)\"" \
+	-DLOG_TAG=\"libva\"
+
+# Android Jelly Bean defined ALOGx, older versions use LOGx
+ifeq ($(ALOG_VERSION), $(ALOG_VERSION_REQ))
+LOCAL_CFLAGS += -DANDROID_ALOG
+else
+LOCAL_CFLAGS += -DANDROID_LOG
+endif
+
+LOCAL_C_INCLUDES += \
+	$(TARGET_OUT_HEADERS)/libva \
+	$(LOCAL_PATH)/x11 \
+	$(LOCAL_PATH)/..
+
+LOCAL_COPY_HEADERS := \
+	va.h \
+	va_backend.h \
+	va_dec_hevc.h \
+	va_dec_jpeg.h \
+	va_drmcommon.h \
+	va_enc_jpeg.h \
+	va_enc_vp8.h \
+	va_version.h
+
+LOCAL_COPY_HEADERS_TO := libva/va
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := libva
+
+LOCAL_SHARED_LIBRARIES := libdl libdrm libcutils liblog
+
+include $(BUILD_SHARED_LIBRARY)
+
+GEN := $(LOCAL_PATH)/va_version.h
+$(GEN): SCRIPT := $(LOCAL_PATH)/../build/gen_version.sh
+$(GEN): PRIVATE_PATH := $(LOCAL_PATH)
+$(GEN): PRIVATE_CUSTOM_TOOL = sh $(SCRIPT) $(PRIVATE_PATH)/.. $(PRIVATE_PATH)/va_version.h.in > $@
+$(GEN): $(LOCAL_PATH)/%.h : $(LOCAL_PATH)/%.h.in $(SCRIPT) $(LOCAL_PATH)/../configure.ac
+	$(transform-generated-source)
+LOCAL_GENERATED_SOURCES += $(GEN) 
+
+# For libva-android
+# =====================================================
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+	android/va_android.cpp \
+	drm/va_drm_utils.c
+
+LOCAL_CFLAGS += \
+	-DANDROID -DLOG_TAG=\"libva-android\"
+
+LOCAL_C_INCLUDES += \
+	$(TARGET_OUT_HEADERS)/libva \
+	$(TARGET_OUT_HEADERS)/libdrm \
+	$(LOCAL_PATH)/drm
+
+LOCAL_COPY_HEADERS_TO := libva/va
+
+LOCAL_COPY_HEADERS := va_android.h		
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := libva-android
+
+LOCAL_SHARED_LIBRARIES := libva libdrm
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# For libva-egl
+# =====================================================
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := \
+	egl/va_egl.c
+
+LOCAL_CFLAGS += \
+	-DANDROID -DLOG_TAG=\"libva-egl\"
+
+LOCAL_C_INCLUDES += \
+	$(TARGET_OUT_HEADERS)/libva \
+	$(LOCAL_PATH)/x11
+
+LOCAL_COPY_HEADERS_TO := libva/va
+
+LOCAL_COPY_HEADERS := egl/va_egl.h egl/va_backend_egl.h
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := libva-egl
+
+LOCAL_SHARED_LIBRARIES := libva
+
+include $(BUILD_SHARED_LIBRARY)
+
+
+# For libva-tpi
+# =====================================================
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES := va_tpi.c
+
+LOCAL_CFLAGS += -DANDROID -DLOG_TAG=\"libva-tpi\"
+
+LOCAL_C_INCLUDES += \
+	$(TARGET_OUT_HEADERS)/libva \
+	$(LOCAL_PATH)/..
+
+LOCAL_COPY_HEADERS_TO := libva/va
+
+LOCAL_COPY_HEADERS := \
+	va_tpi.h \
+	va_backend_tpi.h
+
+LOCAL_SHARED_LIBRARIES := libva
+
+LOCAL_MODULE_TAGS := optional
+LOCAL_MODULE := libva-tpi
+
+include $(BUILD_SHARED_LIBRARY)
diff --git a/examples/thirdparty/libva/va/Makefile.am b/examples/thirdparty/libva/va/Makefile.am
new file mode 100644
index 0000000..39e5a06
--- /dev/null
+++ b/examples/thirdparty/libva/va/Makefile.am
@@ -0,0 +1,144 @@
+# Copyright (c) 2007 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.
+
+SUBDIRS =
+
+AM_CPPFLAGS = \
+	-I$(top_srcdir) \
+	-DVA_DRIVERS_PATH="\"$(LIBVA_DRIVERS_PATH)\""
+
+LDADD = \
+	$(LIBVA_LT_LDFLAGS)
+
+libva_source_c = \
+	va.c			\
+	va_compat.c		\
+	va_fool.c		\
+	va_trace.c		\
+	$(NULL)
+
+libva_source_h = \
+	va.h			\
+	va_backend.h		\
+	va_backend_tpi.h	\
+	va_backend_vpp.h	\
+	va_compat.h		\
+	va_dec_hevc.h		\
+	va_dec_jpeg.h		\
+	va_dec_vp8.h		\
+	va_drmcommon.h		\
+	va_enc_h264.h		\
+	va_enc_jpeg.h		\
+	va_enc_vp8.h		\
+	va_enc_mpeg2.h		\
+	va_tpi.h		\
+	va_version.h		\
+	va_vpp.h		\
+	$(NULL)
+
+libva_source_h_priv = \
+	sysdeps.h		\
+	va_fool.h		\
+	va_trace.h		\
+	$(NULL)
+
+libva_ldflags = \
+	$(LDADD) -no-undefined	\
+	-Wl,-version-script,${srcdir}/libva.syms \
+	$(NULL)
+
+lib_LTLIBRARIES			= libva.la
+libvaincludedir			= ${includedir}/va
+libvainclude_HEADERS		= $(libva_source_h)
+noinst_HEADERS			= $(libva_source_h_priv)
+libva_la_SOURCES		= $(libva_source_c)
+libva_la_LDFLAGS		= $(libva_ldflags)
+libva_la_DEPENDENCIES		= libva.syms
+libva_la_LIBADD			= $(LIBVA_LIBS) -ldl
+
+lib_LTLIBRARIES			+= libva-tpi.la
+libva_tpi_la_SOURCES		= va_tpi.c
+libva_tpi_la_LDFLAGS		= $(LDADD) -no-undefined
+libva_tpi_la_DEPENDENCIES	= libva.la 
+libva_tpi_la_LIBADD		= libva.la -ldl
+
+if USE_DRM
+SUBDIRS				+= drm
+lib_LTLIBRARIES			+= libva-drm.la
+libva_drm_la_SOURCES		=
+libva_drm_la_LDFLAGS		= $(LDADD)
+libva_drm_la_DEPENDENCIES	= libva.la drm/libva_drm.la
+libva_drm_la_LIBADD		= libva.la drm/libva_drm.la \
+	$(LIBVA_LIBS) $(DRM_LIBS) -ldl
+endif
+
+if USE_X11
+SUBDIRS				+= x11
+lib_LTLIBRARIES			+= libva-x11.la
+libva_source_h			+= va_x11.h
+libva_x11_la_SOURCES		= 
+libva_x11_la_LDFLAGS		= $(LDADD)
+libva_x11_la_DEPENDENCIES	= libva.la x11/libva_x11.la
+libva_x11_la_LIBADD		= libva.la x11/libva_x11.la \
+	$(LIBVA_LIBS) $(X11_LIBS) $(XEXT_LIBS) $(XFIXES_LIBS) $(DRM_LIBS) -ldl
+endif
+
+if USE_GLX
+SUBDIRS				+= glx
+lib_LTLIBRARIES			+= libva-glx.la
+libva_glx_la_SOURCES		=
+libva_glx_la_LDFLAGS		= $(LDADD)
+libva_glx_la_DEPENDENCIES	= libva.la glx/libva_glx.la libva-x11.la
+libva_glx_la_LIBADD		= libva.la glx/libva_glx.la libva-x11.la \
+	$(GLX_LIBS) -ldl
+endif
+
+if USE_EGL
+SUBDIRS				+= egl
+lib_LTLIBRARIES			+= libva-egl.la
+libva_egl_la_SOURCES		=
+libva_egl_la_LDFLAGS		= $(LDADD)
+libva_egl_la_DEPENDENCIES	= libva.la egl/libva_egl.la 
+libva_egl_la_LIBADD		= libva.la egl/libva_egl.la \
+	$(EGL_LIBS) -ldl
+endif
+
+if USE_WAYLAND
+SUBDIRS				+= wayland
+lib_LTLIBRARIES			+= libva-wayland.la
+libva_wayland_la_SOURCES	=
+libva_wayland_la_LDFLAGS	= $(LDADD)
+libva_wayland_la_DEPENDENCIES	= libva.la wayland/libva_wayland.la
+libva_wayland_la_LIBADD		= libva.la wayland/libva_wayland.la \
+	$(WAYLAND_LIBS) $(DRM_LIBS) -ldl
+endif
+
+DIST_SUBDIRS = x11 glx egl drm wayland
+
+DISTCLEANFILES = \
+	va_version.h		\
+	$(NULL)
+
+EXTRA_DIST = \
+	libva.syms		\
+	va_version.h.in		\
+	$(NULL)
diff --git a/examples/thirdparty/libva/va/android/Makefile.am b/examples/thirdparty/libva/va/android/Makefile.am
new file mode 100644
index 0000000..26f63df
--- /dev/null
+++ b/examples/thirdparty/libva/va/android/Makefile.am
@@ -0,0 +1,24 @@
+# Copyright (c) 2007 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.
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/examples/thirdparty/libva/va/android/va_android.cpp b/examples/thirdparty/libva/va/android/va_android.cpp
new file mode 100644
index 0000000..ebbfbd3
--- /dev/null
+++ b/examples/thirdparty/libva/va/android/va_android.cpp
@@ -0,0 +1,229 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define _GNU_SOURCE 1
+#include "sysdeps.h"
+#include "va.h"
+#include "va_backend.h"
+#include "va_trace.h"
+#include "va_fool.h"
+#include "va_android.h"
+#include "va_drmcommon.h"
+#include "va_drm_utils.h"
+#include <stdarg.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <dlfcn.h>
+#include <errno.h>
+
+
+#define CHECK_SYMBOL(func) { if (!func) printf("func %s not found\n", #func); return VA_STATUS_ERROR_UNKNOWN; }
+#define DEVICE_NAME "/dev/dri/card0"
+
+static int open_device (char *dev_name)
+{
+    struct stat st;
+    int fd;
+
+    if (-1 == stat (dev_name, &st))
+    {
+        printf ("Cannot identify '%s': %d, %s\n",
+                dev_name, errno, strerror (errno));
+        return -1;
+    }
+
+    if (!S_ISCHR (st.st_mode))
+    {
+        printf ("%s is no device\n", dev_name);
+        return -1;
+    }
+
+    fd = open (dev_name, O_RDWR);
+
+    if (-1 == fd)
+    {
+        fprintf (stderr, "Cannot open '%s': %d, %s\n",
+                 dev_name, errno, strerror (errno));
+        return -1;
+    }
+
+    return fd;
+}
+
+static int va_DisplayContextIsValid (
+    VADisplayContextP pDisplayContext
+                                  )
+{
+    return (pDisplayContext != NULL &&
+            pDisplayContext->pDriverContext != NULL);
+}
+
+static void va_DisplayContextDestroy (
+    VADisplayContextP pDisplayContext
+)
+{
+    struct drm_state *drm_state;
+
+    if (pDisplayContext == NULL)
+        return;
+
+    /* close the open-ed DRM fd */
+    drm_state = (struct drm_state *)pDisplayContext->pDriverContext->drm_state;
+    close(drm_state->fd);
+
+    free(pDisplayContext->pDriverContext->drm_state);
+    free(pDisplayContext->pDriverContext);
+    free(pDisplayContext);
+}
+
+static VAStatus va_DisplayContextGetDriverName (
+    VADisplayContextP pDisplayContext,
+    char **driver_name
+)
+{
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+    struct drm_state * drm_state = (struct drm_state *)ctx->drm_state;
+
+    memset(drm_state, 0, sizeof(*drm_state));
+    drm_state->fd = open_device((char *)DEVICE_NAME);
+
+    if (drm_state->fd < 0) {
+        fprintf(stderr,"can't open DRM devices\n");
+        return VA_STATUS_ERROR_UNKNOWN;
+    }
+    drm_state->auth_type = VA_DRM_AUTH_CUSTOM;
+
+    return VA_DRM_GetDriverName(ctx, driver_name);
+}
+
+
+VADisplay vaGetDisplay (
+    void *native_dpy /* implementation specific */
+)
+{
+    VADisplay dpy = NULL;
+    VADisplayContextP pDisplayContext;
+
+    if (!native_dpy)
+        return NULL;
+
+    if (!dpy)
+    {
+        /* create new entry */
+        VADriverContextP pDriverContext = 0;
+        struct drm_state *drm_state = 0;
+        pDisplayContext = (VADisplayContextP)calloc(1, sizeof(*pDisplayContext));
+        pDriverContext  = (VADriverContextP)calloc(1, sizeof(*pDriverContext));
+        drm_state       = (struct drm_state*)calloc(1, sizeof(*drm_state));
+        if (pDisplayContext && pDriverContext && drm_state)
+        {
+            pDisplayContext->vadpy_magic = VA_DISPLAY_MAGIC;          
+
+            pDriverContext->native_dpy       = (void *)native_dpy;
+            pDriverContext->display_type     = VA_DISPLAY_ANDROID;
+            pDisplayContext->pDriverContext  = pDriverContext;
+            pDisplayContext->vaIsValid       = va_DisplayContextIsValid;
+            pDisplayContext->vaDestroy       = va_DisplayContextDestroy;
+            pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName;
+            pDriverContext->drm_state 	     = drm_state;
+            dpy                              = (VADisplay)pDisplayContext;
+        }
+        else
+        {
+            if (pDisplayContext)
+                free(pDisplayContext);
+            if (pDriverContext)
+                free(pDriverContext);
+            if (drm_state)
+                free(drm_state);
+        }
+    }
+  
+    return dpy;
+}
+
+#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext)
+#define CHECK_DISPLAY(dpy) if( !vaDisplayIsValid(dpy) ) { return VA_STATUS_ERROR_INVALID_DISPLAY; }
+
+
+extern "C"  {
+    extern int fool_postp; /* do nothing for vaPutSurface if set */
+    extern int trace_flag; /* trace vaPutSurface parameters */
+
+    void va_TracePutSurface (
+        VADisplay dpy,
+        VASurfaceID surface,
+        void *draw, /* the target 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 vaPutSurface (
+    VADisplay dpy,
+    VASurfaceID surface,
+    sp<ISurface> draw, /* Android Surface/Window */
+    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 */
+)
+{
+    VADriverContextP ctx;
+
+    if (fool_postp)
+        return VA_STATUS_SUCCESS;
+
+    if (draw == NULL)
+        return VA_STATUS_ERROR_UNKNOWN;
+
+    CHECK_DISPLAY(dpy);
+    ctx = CTX(dpy);
+
+    VA_TRACE_LOG(va_TracePutSurface, dpy, surface, static_cast<void*>(&draw), srcx, srcy, srcw, srch,
+                 destx, desty, destw, desth,
+                 cliprects, number_cliprects, flags );
+    
+    return ctx->vtable->vaPutSurface( ctx, surface, static_cast<void*>(&draw), srcx, srcy, srcw, srch, 
+                                     destx, desty, destw, desth,
+                                     cliprects, number_cliprects, flags );
+}
diff --git a/examples/thirdparty/libva/va/drm/Makefile.am b/examples/thirdparty/libva/va/drm/Makefile.am
new file mode 100644
index 0000000..c7ba3f6
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/Makefile.am
@@ -0,0 +1,58 @@
+# Copyright (C) 2012 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.
+
+AM_CPPFLAGS = \
+	-DLINUX			\
+	-I$(top_srcdir)		\
+	-I$(top_srcdir)/va	\
+	$(DRM_CFLAGS)		\
+	$(NULL)
+
+source_c = \
+	va_drm.c		\
+	va_drm_auth.c		\
+	va_drm_utils.c		\
+	$(NULL)
+
+source_h = \
+	va_drm.h		\
+	$(NULL)
+
+source_h_priv = \
+	va_drm_auth.h		\
+	va_drm_auth_x11.h	\
+	va_drm_utils.h		\
+	$(NULL)
+
+if USE_X11
+source_c			+= va_drm_auth_x11.c
+AM_CPPFLAGS			+= $(X11_CFLAGS)
+endif
+
+noinst_LTLIBRARIES		= libva_drm.la
+libva_drmincludedir		= ${includedir}/va
+libva_drminclude_HEADERS	= $(source_h)
+libva_drm_la_SOURCES		= $(source_c)
+noinst_HEADERS			= $(source_h_priv)
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/examples/thirdparty/libva/va/drm/va_drm.c b/examples/thirdparty/libva/va/drm/va_drm.c
new file mode 100644
index 0000000..08071cf
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/va_drm.c
@@ -0,0 +1,132 @@
+/*
+ * Copyright (c) 2012 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 "sysdeps.h"
+#include <xf86drm.h>
+#include "va_drm.h"
+#include "va_backend.h"
+#include "va_drmcommon.h"
+#include "va_drm_auth.h"
+#include "va_drm_utils.h"
+
+static int
+va_DisplayContextIsValid(VADisplayContextP pDisplayContext)
+{
+    VADriverContextP const pDriverContext = pDisplayContext->pDriverContext;
+
+    return (pDriverContext &&
+            ((pDriverContext->display_type & VA_DISPLAY_MAJOR_MASK) ==
+             VA_DISPLAY_DRM));
+}
+
+static void
+va_DisplayContextDestroy(VADisplayContextP pDisplayContext)
+{
+    if (!pDisplayContext)
+        return;
+
+    free(pDisplayContext->pDriverContext->drm_state);
+    free(pDisplayContext->pDriverContext);
+    free(pDisplayContext);
+}
+
+static VAStatus
+va_DisplayContextGetDriverName(
+    VADisplayContextP pDisplayContext,
+    char            **driver_name_ptr
+)
+{
+
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+    struct drm_state * const drm_state = ctx->drm_state;
+    drm_magic_t magic;
+    VAStatus status;
+    int ret;
+
+    status = VA_DRM_GetDriverName(ctx, driver_name_ptr);
+    if (status != VA_STATUS_SUCCESS)
+        return status;
+
+    /* Authentication is only needed for a legacy DRM device */
+    if (ctx->display_type != VA_DISPLAY_DRM_RENDERNODES) {
+        ret = drmGetMagic(drm_state->fd, &magic);
+        if (ret < 0)
+            return VA_STATUS_ERROR_OPERATION_FAILED;
+
+        if (!va_drm_is_authenticated(drm_state->fd)) {
+            if (!va_drm_authenticate(drm_state->fd, magic))
+                return VA_STATUS_ERROR_OPERATION_FAILED;
+            if (!va_drm_is_authenticated(drm_state->fd))
+                return VA_STATUS_ERROR_OPERATION_FAILED;
+        }
+    }
+
+    drm_state->auth_type = VA_DRM_AUTH_CUSTOM;
+
+    return VA_STATUS_SUCCESS;
+}
+
+VADisplay
+vaGetDisplayDRM(int fd)
+{
+    VADisplayContextP pDisplayContext = NULL;
+    VADriverContextP  pDriverContext  = NULL;
+    struct drm_state *drm_state       = NULL;
+    int is_render_nodes;
+
+    if (fd < 0 || (is_render_nodes = VA_DRM_IsRenderNodeFd(fd)) < 0)
+        return NULL;
+
+    /* Create new entry */
+    /* XXX: handle cache? */
+    drm_state = calloc(1, sizeof(*drm_state));
+    if (!drm_state)
+        goto error;
+    drm_state->fd = fd;
+
+    pDriverContext = calloc(1, sizeof(*pDriverContext));
+    if (!pDriverContext)
+        goto error;
+    pDriverContext->native_dpy   = NULL;
+    pDriverContext->display_type = is_render_nodes ?
+        VA_DISPLAY_DRM_RENDERNODES : VA_DISPLAY_DRM;
+    pDriverContext->drm_state    = drm_state;
+
+    pDisplayContext = calloc(1, sizeof(*pDisplayContext));
+    if (!pDisplayContext)
+        goto error;
+
+    pDisplayContext->vadpy_magic     = VA_DISPLAY_MAGIC;
+    pDisplayContext->pDriverContext  = pDriverContext;
+    pDisplayContext->vaIsValid       = va_DisplayContextIsValid;
+    pDisplayContext->vaDestroy       = va_DisplayContextDestroy;
+    pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName;
+    return pDisplayContext;
+
+error:
+    free(pDisplayContext);
+    free(pDriverContext);
+    free(drm_state);
+    return NULL;
+}
diff --git a/examples/thirdparty/libva/va/drm/va_drm.h b/examples/thirdparty/libva/va/drm/va_drm.h
new file mode 100644
index 0000000..9af3cc8
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/va_drm.h
@@ -0,0 +1,61 @@
+/*
+ * va_drm.h - Raw DRM API
+ *
+ * Copyright (c) 2012 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 INTEL 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 VA_DRM_H
+#define VA_DRM_H
+
+#include <va/va.h>
+
+/**
+ * \file va_drm.h
+ * \brief The raw DRM API
+ *
+ * This file contains the \ref api_drm "Raw DRM API".
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief Returns a VA display derived from the specified DRM connection.
+ *
+ * This function returns a (possibly cached) VA display from the
+ * specified DRM connection @fd.
+ *
+ * @param[in]   fd      the DRM connection descriptor
+ * @return the VA display
+ */
+VADisplay
+vaGetDisplayDRM(int fd);
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_DRM_H */
diff --git a/examples/thirdparty/libva/va/drm/va_drm_auth.c b/examples/thirdparty/libva/va/drm/va_drm_auth.c
new file mode 100644
index 0000000..53794d3
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/va_drm_auth.c
@@ -0,0 +1,78 @@
+/*
+ * Copyright (c) 2012 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 "sysdeps.h"
+#include <unistd.h>
+#include <xf86drm.h>
+#include "va_drm_auth.h"
+#include "va_drm_auth_x11.h"
+
+#if defined __linux__
+# include <sys/syscall.h>
+#endif
+
+/* Checks whether the thread id is the current thread */
+static bool
+is_local_tid(pid_t tid)
+{
+#if defined __linux__
+    /* On Linux systems, drmGetClient() would return the thread ID
+       instead of the actual process ID */
+    return syscall(SYS_gettid) == tid;
+#else
+    return false;
+#endif
+}
+
+/* Checks whether DRM connection is authenticated */
+bool
+va_drm_is_authenticated(int fd)
+{
+    pid_t client_pid;
+    int i, auth, pid, uid;
+    unsigned long magic, iocs;
+    bool is_authenticated = false;
+
+    client_pid = getpid();
+    for (i = 0; !is_authenticated; i++) {
+        if (drmGetClient(fd, i, &auth, &pid, &uid, &magic, &iocs) != 0)
+            break;
+        is_authenticated = auth && (pid == client_pid || is_local_tid(pid));
+    }
+    return is_authenticated;
+}
+
+/* Try to authenticate the DRM connection with the supplied magic id */
+bool
+va_drm_authenticate(int fd, uint32_t magic)
+{
+    /* XXX: try to authenticate through Wayland, etc. */
+#ifdef HAVE_VA_X11
+    if (va_drm_authenticate_x11(fd, magic))
+        return true;
+#endif
+
+    /* Default: root + master privs are needed for the following call */
+    return drmAuthMagic(fd, magic) == 0;
+}
diff --git a/examples/thirdparty/libva/va/drm/va_drm_auth.h b/examples/thirdparty/libva/va/drm/va_drm_auth.h
new file mode 100644
index 0000000..1aa6989
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/va_drm_auth.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+
+#ifndef VA_DRM_AUTH_H
+#define VA_DRM_AUTH_H
+
+#include <stdint.h>
+#include <stdbool.h>
+
+DLL_HIDDEN
+bool
+va_drm_is_authenticated(int fd);
+
+DLL_HIDDEN
+bool
+va_drm_authenticate(int fd, uint32_t magic);
+
+#endif /* VA_DRM_AUTH_H */
diff --git a/examples/thirdparty/libva/va/drm/va_drm_auth_x11.c b/examples/thirdparty/libva/va/drm/va_drm_auth_x11.c
new file mode 100644
index 0000000..54e7402
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/va_drm_auth_x11.c
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+
+#define _GNU_SOURCE 1
+#include "sysdeps.h"
+#include <dlfcn.h>
+#include <X11/Xlib.h>
+#include "va_drm_auth_x11.h"
+
+#define LIBVA_MAJOR_VERSION 1
+
+typedef struct drm_auth_x11             DRMAuthX11;
+typedef struct drm_auth_x11_vtable      DRMAuthX11VTable;
+
+typedef void (*VAGenericFunc)(void);
+typedef Display *(*X11OpenDisplayFunc)(const char *display_name);
+typedef int (*X11CloseDisplayFunc)(Display *display);
+typedef Bool (*VADRI2QueryExtensionFunc)(
+    Display *display, int *event_base, int *error_base);
+typedef Bool (*VADRI2QueryVersionFunc)(
+    Display *display, int *major, int *minor);
+typedef Bool (*VADRI2AuthenticateFunc)(
+    Display *display, XID window, uint32_t magic);
+
+struct drm_auth_x11_vtable {
+    X11OpenDisplayFunc          x11_open_display;
+    X11CloseDisplayFunc         x11_close_display;
+    VADRI2QueryExtensionFunc    va_dri2_query_extension;
+    VADRI2QueryVersionFunc      va_dri2_query_version;
+    VADRI2AuthenticateFunc      va_dri2_authenticate;
+};
+
+struct drm_auth_x11 {
+    void                       *handle; /* libva-x11.so.1 */
+    DRMAuthX11VTable            vtable;
+    Display                    *display;
+    Window                      window;
+};
+
+static bool
+get_symbol(void *handle, void *func_vptr, const char *name)
+{
+    VAGenericFunc func, *func_ptr = func_vptr;
+    const char *error;
+
+    dlerror();
+    func = (VAGenericFunc)dlsym(handle, name);
+    error = dlerror();
+
+    if (error) {
+        fprintf(stderr, "error: failed to resolve %s() function: %s\n",
+                name, error);
+        return false;
+    }
+
+    *func_ptr = func;
+    return true;
+}
+
+static bool
+drm_auth_x11_init(DRMAuthX11 *auth)
+{
+    struct drm_auth_x11_vtable *vtable;
+    char libva_x11_name[16];
+    int ret;
+
+    ret = snprintf(
+        libva_x11_name, sizeof(libva_x11_name),
+        "libva-x11.so.%d", LIBVA_MAJOR_VERSION
+    );
+    if (ret < 0 || ret >= sizeof(libva_x11_name))
+        return false;
+
+    auth->handle = dlopen(libva_x11_name, RTLD_LAZY | RTLD_GLOBAL);
+    if (!auth->handle) {
+        perror("open lib");
+        return false;
+    }
+
+    vtable = &auth->vtable;
+    if (!get_symbol(RTLD_DEFAULT, &vtable->x11_open_display, "XOpenDisplay"))
+        return false;
+    if (!get_symbol(RTLD_DEFAULT, &vtable->x11_close_display, "XCloseDisplay"))
+        return false;
+    if (!get_symbol(auth->handle, &vtable->va_dri2_query_extension,
+                    "VA_DRI2QueryExtension"))
+        return false;
+    if (!get_symbol(auth->handle, &vtable->va_dri2_query_version,
+                    "VA_DRI2QueryVersion"))
+        return false;
+    if (!get_symbol(auth->handle, &vtable->va_dri2_authenticate,
+                    "VA_DRI2Authenticate"))
+        return false;
+
+    auth->display = vtable->x11_open_display(NULL);
+    if (!auth->display)
+        return false;
+
+    auth->window = DefaultRootWindow(auth->display);
+    return true;
+}
+
+static void
+drm_auth_x11_terminate(DRMAuthX11 *auth)
+{
+    if (!auth)
+        return;
+
+    if (auth->display) {
+        auth->vtable.x11_close_display(auth->display);
+        auth->display = NULL;
+        auth->window  = None;
+    }
+
+    if (auth->handle) {
+        dlclose(auth->handle);
+        auth->handle = NULL;
+    }
+}
+
+static bool
+drm_auth_x11_authenticate(DRMAuthX11 *auth, int fd, uint32_t magic)
+{
+    DRMAuthX11VTable * const vtable = &auth->vtable;
+    int evt_base, err_base, v_major, v_minor;
+
+    if (!vtable->va_dri2_query_extension(auth->display, &evt_base, &err_base))
+        return false;
+    if (!vtable->va_dri2_query_version(auth->display, &v_major, &v_minor))
+        return false;
+    if (!vtable->va_dri2_authenticate(auth->display, auth->window, magic))
+        return false;
+    return true;
+}
+
+/* Try to authenticate the DRM connection with the supplied magic through X11 */
+bool
+va_drm_authenticate_x11(int fd, uint32_t magic)
+{
+    DRMAuthX11 auth;
+    bool success = false;
+
+    memset(&auth, 0, sizeof(auth));
+    if (!drm_auth_x11_init(&auth))
+        goto end;
+    success = drm_auth_x11_authenticate(&auth, fd, magic);
+
+end:
+    drm_auth_x11_terminate(&auth);
+    return success;
+}
diff --git a/examples/thirdparty/libva/va/drm/va_drm_auth_x11.h b/examples/thirdparty/libva/va/drm/va_drm_auth_x11.h
new file mode 100644
index 0000000..530eeed
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/va_drm_auth_x11.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+
+#ifndef VA_DRM_AUTH_X11_H
+#define VA_DRM_AUTH_X11_H
+
+#include <stdint.h>
+#include <stdbool.h>
+
+DLL_HIDDEN
+bool
+va_drm_authenticate_x11(int fd, uint32_t magic);
+
+#endif /* VA_DRM_AUTH_X11_H */
diff --git a/examples/thirdparty/libva/va/drm/va_drm_utils.c b/examples/thirdparty/libva/va/drm/va_drm_utils.c
new file mode 100644
index 0000000..71091fd
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/va_drm_utils.c
@@ -0,0 +1,101 @@
+/*
+ * va_drm_utils.c - VA/DRM Utilities
+ *
+ * Copyright (c) 2012 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 INTEL 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 "sysdeps.h"
+#include <xf86drm.h>
+#include <sys/stat.h>
+#include "va_drm_utils.h"
+#include "va_drmcommon.h"
+
+struct driver_name_map {
+    const char *key;
+    int         key_len;
+    const char *name;
+};
+
+static const struct driver_name_map g_driver_name_map[] = {
+    { "i915",       4, "i965"   }, // Intel OTC GenX driver
+    { "pvrsrvkm",   8, "pvr"    }, // Intel UMG PVR driver
+    { "emgd",       4, "emgd"   }, // Intel ECG PVR driver
+    { "hybrid",     6, "hybrid" }, // Intel OTC Hybrid driver
+    { NULL, }
+};
+
+/* Returns the VA driver name for the active display */
+VAStatus
+VA_DRM_GetDriverName(VADriverContextP ctx, char **driver_name_ptr)
+{
+    struct drm_state * const drm_state = ctx->drm_state;
+    drmVersionPtr drm_version;
+    char *driver_name = NULL;
+    const struct driver_name_map *m;
+
+    *driver_name_ptr = NULL;
+
+    if (!drm_state || drm_state->fd < 0)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+
+    drm_version = drmGetVersion(drm_state->fd);
+    if (!drm_version)
+        return VA_STATUS_ERROR_UNKNOWN;
+
+    for (m = g_driver_name_map; m->key != NULL; m++) {
+        if (drm_version->name_len >= m->key_len &&
+            strncmp(drm_version->name, m->key, m->key_len) == 0)
+            break;
+    }
+    drmFreeVersion(drm_version);
+
+    if (!m->name)
+        return VA_STATUS_ERROR_UNKNOWN;
+
+    driver_name = strdup(m->name);
+    if (!driver_name)
+        return VA_STATUS_ERROR_ALLOCATION_FAILED;
+
+    *driver_name_ptr = driver_name;
+    return VA_STATUS_SUCCESS;
+}
+
+/* Checks whether the file descriptor is a DRM Render-Nodes one */
+int
+VA_DRM_IsRenderNodeFd(int fd)
+{
+    struct stat st;
+    const char *name;
+
+    /* Check by device node */
+    if (fstat(fd, &st) == 0)
+        return S_ISCHR(st.st_mode) && (st.st_rdev & 0x80);
+
+    /* Check by device name */
+    name = drmGetDeviceNameFromFd(fd);
+    if (name)
+        return strncmp(name, "/dev/dri/renderD", 16) == 0;
+
+    /* Unrecoverable error */
+    return -1;
+}
diff --git a/examples/thirdparty/libva/va/drm/va_drm_utils.h b/examples/thirdparty/libva/va/drm/va_drm_utils.h
new file mode 100644
index 0000000..b468c59
--- /dev/null
+++ b/examples/thirdparty/libva/va/drm/va_drm_utils.h
@@ -0,0 +1,83 @@
+/*
+ * va_drm_utils.h - VA/DRM Utilities
+ *
+ * Copyright (c) 2012 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 INTEL 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 VA_DRM_UTILS_H
+#define VA_DRM_UTILS_H
+
+#include <va/va_backend.h>
+
+/**
+ * \file va_drm_utils.h
+ * \brief VA/DRM Utilities
+ *
+ * This file contains VA/DRM utility functions. The API herein defined is
+ * internal to libva. Users include the VA/DRM API itself or VA/Android,
+ * should it be based on DRM.
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief Returns the VA driver name for the active display.
+ *
+ * This functions returns a newly allocated buffer in @driver_name_ptr that
+ * contains the VA driver name for the active display. Active display means
+ * the display obtained with any of the vaGetDisplay*() functions.
+ *
+ * The VADriverContext.drm_state structure must be valid, i.e. allocated
+ * and containing an open DRM connection descriptor. The DRM connection
+ * does *not* need to be authenticated as it only performs a call to
+ * drmGetVersion().
+ *
+ * @param[in]   ctx     the pointer to a VADriverContext
+ * @param[out]  driver_name_ptr the newly allocated buffer containing
+ *     the VA driver name
+ * @return VA_STATUS_SUCCESS if operation is successful, or another
+ *     #VAStatus value otherwise.
+ */
+DLL_HIDDEN
+VAStatus
+VA_DRM_GetDriverName(VADriverContextP ctx, char **driver_name_ptr);
+
+/**
+ * \brief Checks whether the file descriptor is a DRM Render-Nodes one
+ *
+ * This functions checks whether the supplied file descriptor @fd
+ * falls into the set of DRM Render-Nodes.
+ */
+DLL_HIDDEN
+int
+VA_DRM_IsRenderNodeFd(int fd);
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_DRM_UTILS_H */
diff --git a/examples/thirdparty/libva/va/egl/Makefile.am b/examples/thirdparty/libva/va/egl/Makefile.am
new file mode 100644
index 0000000..aee4975
--- /dev/null
+++ b/examples/thirdparty/libva/va/egl/Makefile.am
@@ -0,0 +1,43 @@
+# Copyright (C) 2009 Splitted-Desktop Systems. 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.
+
+AM_CPPFLAGS = \
+	-DLINUX			\
+	-I$(top_srcdir)		\
+	-I$(top_srcdir)/va	\
+	$(EGL_CFLAGS)		\
+	$(NULL)
+
+source_c = \
+	va_egl.c		
+
+source_h = \
+	va_egl.h		\
+	va_backend_egl.h
+
+source_h_priv = 
+
+noinst_LTLIBRARIES	 = libva_egl.la
+libva_eglincludedir	 = ${includedir}/va
+libva_eglinclude_HEADERS = $(source_h)
+libva_egl_la_SOURCES	 = $(source_c)
+noinst_HEADERS		 = $(source_h_priv)
diff --git a/examples/thirdparty/libva/va/egl/va_backend_egl.h b/examples/thirdparty/libva/va/egl/va_backend_egl.h
new file mode 100644
index 0000000..925d933
--- /dev/null
+++ b/examples/thirdparty/libva/va/egl/va_backend_egl.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2009 Splitted-Desktop Systems. 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.
+ */
+
+#ifndef VA_BACKEND_EGL_H
+#define VA_BACKEND_EGL_H
+
+#include <va/va.h>
+#include <va/va_backend.h>
+
+struct VADriverVTableEGL {
+    /* Get EGL ClientBufer buffer index and device id from surface id*/
+    VAStatus (*vaGetEGLClientBufferFromSurface) (
+        VADriverContextP ctx,
+        VASurfaceID surface,
+        void **buffer
+    );
+    /* TBD: more APIs for EGL */
+};
+
+#endif /* VA_BACKEND_EGL_H */
diff --git a/examples/thirdparty/libva/va/egl/va_egl.c b/examples/thirdparty/libva/va/egl/va_egl.c
new file mode 100644
index 0000000..36e5504
--- /dev/null
+++ b/examples/thirdparty/libva/va/egl/va_egl.c
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+/*
+ * Initial EGL backend, and subject to change
+ *
+ * Gstreamer gst-gltexture has a framework to support associating a buffer
+ * to a texture via EGL_KHR_image_base and GL_OES_EGL_image_external.
+ *
+ * EGL_KHR_image_base:
+ *   EGLImageKHR eglCreateImageKHR(
+ *                           EGLDisplay dpy,
+ *                           EGLContext ctx,
+ *                           EGLenum target,
+ *                           EGLClientBuffer buffer,
+ *                           const EGLint *attrib_list)
+ *
+ * GL_OES_EGL_image_external:
+ * This extension provides a mechanism for creating EGLImage texture targets
+ * from EGLImages.  This extension defines a new texture target TEXTURE_EXTERNAL_OES.
+ * This texture target can only be specified using an EGLImage.
+ * The first eglCreateImageKHR will create an EGLImage from an EGLClientBufferm, and with
+ * an EGLImage, gst-gltexture can use GL_OES_EGL_image_external extension to create textures.
+ *
+ * eglCreateImageKHR and GL_OES_EGL_image_external are all called directly from gst-gltexture,
+ * thus the simplest way to support gst-gltexture is defining a new API to pass EGLClientBuffer
+ * to gst-gltexture.
+ *
+ * EGLClientBuffer is gfx/video driver implementation specific (?). It means we need to pass up
+ * the low-level buffer ID (or handle) of the decoded surface to gst-gltexture, and gst-gltexture
+ * then pass down it to gfx driver.  
+ *
+ * Bellow API vaGetEGLClientBufferFromSurface is for this purpose
+ */
+
+#include "va.h"
+#include "va_backend_egl.h"
+#include "va_egl.h"
+
+#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext)
+#define CHECK_DISPLAY(dpy) if( !vaDisplayIsValid(dpy) ) { return VA_STATUS_ERROR_INVALID_DISPLAY; }
+
+VAStatus vaGetEGLClientBufferFromSurface (
+    VADisplay dpy,
+    VASurfaceID surface,
+    EGLClientBuffer *buffer /* out*/
+)
+{
+  VADriverContextP ctx;
+  struct VADriverVTableEGL *va_egl;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  va_egl = (struct VADriverVTableEGL *)ctx->vtable_egl;
+  if (va_egl && va_egl->vaGetEGLClientBufferFromSurface) {
+      return va_egl->vaGetEGLClientBufferFromSurface(ctx, surface, buffer);
+  } else
+      return VA_STATUS_ERROR_UNIMPLEMENTED;
+}
+  
+  
diff --git a/examples/thirdparty/libva/va/egl/va_egl.h b/examples/thirdparty/libva/va/egl/va_egl.h
new file mode 100644
index 0000000..4243d0b
--- /dev/null
+++ b/examples/thirdparty/libva/va/egl/va_egl.h
@@ -0,0 +1,27 @@
+#ifndef _VA_EGL_H_
+#define _VA_EGL_H_
+
+#include <va/va.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef void*   EGLClientBuffer;
+
+/*This function is used to get EGLClientBuffer
+ * (lower 16bits is buffer index, upper 16bits 
+ * is BC device id.) from surface id. Application
+ * should maintain EGLClientBuffer itself.*/
+
+VAStatus vaGetEGLClientBufferFromSurface (
+    VADisplay dpy,
+    VASurfaceID surface,	
+    EGLClientBuffer *buffer     /* out*/
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VA_EGL_H_ */
diff --git a/examples/thirdparty/libva/va/glx/Makefile.am b/examples/thirdparty/libva/va/glx/Makefile.am
new file mode 100644
index 0000000..8ff8ae9
--- /dev/null
+++ b/examples/thirdparty/libva/va/glx/Makefile.am
@@ -0,0 +1,51 @@
+# Copyright (C) 2009 Splitted-Desktop Systems. 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.
+
+AM_CPPFLAGS = \
+	-DLINUX			\
+	-I$(top_srcdir)		\
+	-I$(top_srcdir)/va	\
+	-I$(top_srcdir)/va/x11	\
+	$(X11_CFLAGS)		\
+	$(GLX_CFLAGS)		\
+	$(NULL)
+
+source_c = \
+	va_glx.c		\
+	va_glx_impl.c		\
+	$(NULL)
+
+source_h = \
+	va_backend_glx.h	\
+	va_glx.h		\
+	$(NULL)
+
+source_h_priv = \
+	va_glx_impl.h		\
+	va_glx_private.h	\
+	$(NULL)
+
+noinst_LTLIBRARIES		 = libva_glx.la
+libva_glxincludedir		 = ${includedir}/va
+libva_glxinclude_HEADERS	 = $(source_h)
+libva_glx_la_SOURCES		 = $(source_c)
+noinst_HEADERS			 = $(source_h_priv)
diff --git a/examples/thirdparty/libva/va/glx/va_backend_glx.h b/examples/thirdparty/libva/va/glx/va_backend_glx.h
new file mode 100644
index 0000000..d110485
--- /dev/null
+++ b/examples/thirdparty/libva/va/glx/va_backend_glx.h
@@ -0,0 +1,54 @@
+/*
+ * Copyright (C) 2009 Splitted-Desktop Systems. 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.
+ */
+
+#ifndef VA_BACKEND_GLX_H
+#define VA_BACKEND_GLX_H
+
+struct VADriverContext;
+
+struct VADriverVTableGLX {
+    /* Optional: create a surface used for display to OpenGL */
+    VAStatus (*vaCreateSurfaceGLX)(
+        struct VADriverContext *ctx,
+        unsigned int            gl_target,
+        unsigned int            gl_texture,
+        void                  **gl_surface
+    );
+
+    /* Optional: destroy a VA/GLX surface */
+    VAStatus (*vaDestroySurfaceGLX)(
+        struct VADriverContext *ctx,
+        void                   *gl_surface
+    );
+
+    /* Optional: copy a VA surface to a VA/GLX surface */
+    VAStatus (*vaCopySurfaceGLX)(
+        struct VADriverContext *ctx,
+        void                   *gl_surface,
+        VASurfaceID             surface,
+        unsigned int            flags
+    );
+};
+
+#endif /* VA_BACKEND_GLX_H */
diff --git a/examples/thirdparty/libva/va/glx/va_glx.c b/examples/thirdparty/libva/va/glx/va_glx.c
new file mode 100644
index 0000000..25ef005
--- /dev/null
+++ b/examples/thirdparty/libva/va/glx/va_glx.c
@@ -0,0 +1,167 @@
+/*
+ * Copyright (C) 2009 Splitted-Desktop Systems. 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 "sysdeps.h"
+#include <stdlib.h>
+#include "va_glx_private.h"
+#include "va_glx_impl.h"
+
+#define INIT_CONTEXT(ctx, dpy) do {                             \
+        if (!vaDisplayIsValid(dpy))                             \
+            return VA_STATUS_ERROR_INVALID_DISPLAY;             \
+                                                                \
+        ctx = ((VADisplayContextP)(dpy))->pDriverContext;       \
+        if (!(ctx))                                             \
+            return VA_STATUS_ERROR_INVALID_DISPLAY;             \
+                                                                \
+        VAStatus status = va_glx_init_context(ctx);             \
+        if (status != VA_STATUS_SUCCESS)                        \
+            return status;                                      \
+    } while (0)
+
+#define INVOKE(ctx, func, args) do {                            \
+        VADriverVTableGLXP vtable;                              \
+        vtable = &VA_DRIVER_CONTEXT_GLX(ctx)->vtable;           \
+        if (!vtable->va##func##GLX)                             \
+            return VA_STATUS_ERROR_UNIMPLEMENTED;               \
+        status = vtable->va##func##GLX args;                    \
+    } while (0)
+
+
+// Destroy VA/GLX display context
+static void va_DisplayContextDestroy(VADisplayContextP pDisplayContext)
+{
+    VADisplayContextGLXP pDisplayContextGLX;
+    VADriverContextP     pDriverContext;
+    VADriverContextGLXP  pDriverContextGLX;
+
+    if (!pDisplayContext)
+        return;
+
+    pDriverContext     = pDisplayContext->pDriverContext;
+    pDriverContextGLX  = pDriverContext->glx;
+    if (pDriverContextGLX) {
+        free(pDriverContextGLX);
+        pDriverContext->glx = NULL;
+    }
+
+    pDisplayContextGLX = pDisplayContext->opaque;
+    if (pDisplayContextGLX) {
+        vaDestroyFunc vaDestroy = pDisplayContextGLX->vaDestroy;
+        free(pDisplayContextGLX);
+        pDisplayContext->opaque = NULL;
+        if (vaDestroy)
+            vaDestroy(pDisplayContext);
+    }
+}
+
+// Return a suitable VADisplay for VA API
+VADisplay vaGetDisplayGLX(Display *native_dpy)
+{
+    VADisplay            dpy                = NULL;
+    VADisplayContextP    pDisplayContext    = NULL;
+    VADisplayContextGLXP pDisplayContextGLX = NULL;
+    VADriverContextP     pDriverContext;
+    VADriverContextGLXP  pDriverContextGLX  = NULL;
+
+    dpy = vaGetDisplay(native_dpy);
+    if (!dpy)
+        return NULL;
+    pDisplayContext = (VADisplayContextP)dpy;
+    pDriverContext  = pDisplayContext->pDriverContext;
+
+    pDisplayContextGLX = calloc(1, sizeof(*pDisplayContextGLX));
+    if (!pDisplayContextGLX)
+        goto error;
+
+    pDriverContextGLX = calloc(1, sizeof(*pDriverContextGLX));
+    if (!pDriverContextGLX)
+        goto error;
+
+    pDriverContext->display_type  = VA_DISPLAY_GLX;
+    pDisplayContextGLX->vaDestroy = pDisplayContext->vaDestroy;
+    pDisplayContext->vaDestroy    = va_DisplayContextDestroy;
+    pDisplayContext->opaque       = pDisplayContextGLX;
+    pDriverContext->glx           = pDriverContextGLX;
+    return dpy;
+
+error:
+    free(pDriverContextGLX);
+    free(pDisplayContextGLX);
+    pDisplayContext->vaDestroy(pDisplayContext);
+    return NULL;
+}
+
+// Create a surface used for display to OpenGL
+VAStatus vaCreateSurfaceGLX(
+    VADisplay dpy,
+    GLenum    target,
+    GLuint    texture,
+    void    **gl_surface
+)
+{
+    VADriverContextP ctx;
+    VAStatus status;
+
+    /* Make sure it is a valid GL texture object */
+    if (!glIsTexture(texture))
+        return VA_STATUS_ERROR_INVALID_PARAMETER;
+
+    INIT_CONTEXT(ctx, dpy);
+
+    INVOKE(ctx, CreateSurface, (ctx, target, texture, gl_surface));
+    return status;
+}
+
+// Destroy a VA/GLX surface
+VAStatus vaDestroySurfaceGLX(
+    VADisplay dpy,
+    void     *gl_surface
+)
+{
+    VADriverContextP ctx;
+    VAStatus status;
+
+    INIT_CONTEXT(ctx, dpy);
+
+    INVOKE(ctx, DestroySurface, (ctx, gl_surface));
+    return status;
+}
+
+// Copy a VA surface to a VA/GLX surface
+VAStatus vaCopySurfaceGLX(
+    VADisplay    dpy,
+    void        *gl_surface,
+    VASurfaceID  surface,
+    unsigned int flags
+)
+{
+    VADriverContextP ctx;
+    VAStatus status;
+
+    INIT_CONTEXT(ctx, dpy);
+
+    INVOKE(ctx, CopySurface, (ctx, gl_surface, surface, flags));
+    return status;
+}
diff --git a/examples/thirdparty/libva/va/glx/va_glx.h b/examples/thirdparty/libva/va/glx/va_glx.h
new file mode 100644
index 0000000..1a0624d
--- /dev/null
+++ b/examples/thirdparty/libva/va/glx/va_glx.h
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2009 Splitted-Desktop Systems. 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.
+ */
+
+#ifndef VA_GLX_H
+#define VA_GLX_H
+
+#include <va/va.h>
+#include <GL/glx.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Return a suitable VADisplay for VA API
+ *
+ * @param[in] dpy the X11 display
+ * @return a VADisplay
+ */
+VADisplay vaGetDisplayGLX(
+    Display *dpy
+);
+
+/**
+ * Create a surface used for display to OpenGL
+ *
+ * The application shall maintain the live GLX context itself.
+ * Implementations are free to use glXGetCurrentContext() and
+ * glXGetCurrentDrawable() functions for internal purposes.
+ *
+ * @param[in]  dpy        the VA display
+ * @param[in]  target     the GL target to which the texture needs to be bound
+ * @param[in]  texture    the GL texture
+ * @param[out] gl_surface the VA/GLX surface
+ * @return VA_STATUS_SUCCESS if successful
+ */
+VAStatus vaCreateSurfaceGLX(
+    VADisplay dpy,
+    GLenum    target,
+    GLuint    texture,
+    void    **gl_surface
+);
+
+/**
+ * Destroy a VA/GLX surface
+ *
+ * The application shall maintain the live GLX context itself.
+ * Implementations are free to use glXGetCurrentContext() and
+ * glXGetCurrentDrawable() functions for internal purposes.
+ *
+ * @param[in]  dpy        the VA display
+ * @param[in]  gl_surface the VA surface
+ * @return VA_STATUS_SUCCESS if successful
+ */
+VAStatus vaDestroySurfaceGLX(
+    VADisplay dpy,
+    void     *gl_surface
+);
+
+/**
+ * Copy a VA surface to a VA/GLX surface
+ *
+ * This function will not return until the copy is completed. At this
+ * point, the underlying GL texture will contain the surface pixels
+ * in an RGB format defined by the user.
+ *
+ * The application shall maintain the live GLX context itself.
+ * Implementations are free to use glXGetCurrentContext() and
+ * glXGetCurrentDrawable() functions for internal purposes.
+ *
+ * @param[in]  dpy        the VA display
+ * @param[in]  gl_surface the VA/GLX destination surface
+ * @param[in]  surface    the VA source surface
+ * @param[in]  flags      the PutSurface flags
+ * @return VA_STATUS_SUCCESS if successful
+ */
+VAStatus vaCopySurfaceGLX(
+    VADisplay    dpy,
+    void        *gl_surface,
+    VASurfaceID  surface,
+    unsigned int flags
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_GLX_H */
diff --git a/examples/thirdparty/libva/va/glx/va_glx_impl.c b/examples/thirdparty/libva/va/glx/va_glx_impl.c
new file mode 100644
index 0000000..c066582
--- /dev/null
+++ b/examples/thirdparty/libva/va/glx/va_glx_impl.c
@@ -0,0 +1,1104 @@
+/*
+ * Copyright (C) 2009 Splitted-Desktop Systems. 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.
+ */
+
+#define _GNU_SOURCE 1
+#include "sysdeps.h"
+#include "va_glx_private.h"
+#include "va_glx_impl.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <assert.h>
+#include <dlfcn.h>
+
+static void va_glx_error_message(const char *format, ...)
+{
+    va_list args;
+    va_start(args, format);
+    fprintf(stderr, "libva-glx error: ");
+    vfprintf(stderr, format, args);
+    va_end(args);
+}
+
+// X error trap
+static int x11_error_code = 0;
+static int (*old_error_handler)(Display *, XErrorEvent *);
+
+static int error_handler(Display *dpy, XErrorEvent *error)
+{
+    x11_error_code = error->error_code;
+    return 0;
+}
+
+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;
+}
+
+// Returns a string representation of an OpenGL error
+static const char *gl_get_error_string(GLenum error)
+{
+    static const struct {
+        GLenum val;
+        const char *str;
+    }
+    gl_errors[] = {
+        { GL_NO_ERROR,          "no error" },
+        { GL_INVALID_ENUM,      "invalid enumerant" },
+        { GL_INVALID_VALUE,     "invalid value" },
+        { GL_INVALID_OPERATION, "invalid operation" },
+        { GL_STACK_OVERFLOW,    "stack overflow" },
+        { GL_STACK_UNDERFLOW,   "stack underflow" },
+        { GL_OUT_OF_MEMORY,     "out of memory" },
+#ifdef GL_INVALID_FRAMEBUFFER_OPERATION_EXT
+        { GL_INVALID_FRAMEBUFFER_OPERATION_EXT, "invalid framebuffer operation" },
+#endif
+        { ~0, NULL }
+    };
+
+    int i;
+    for (i = 0; gl_errors[i].str; i++) {
+        if (gl_errors[i].val == error)
+            return gl_errors[i].str;
+    }
+    return "unknown";
+}
+
+static inline int gl_do_check_error(int report)
+{
+    GLenum error;
+    int is_error = 0;
+    while ((error = glGetError()) != GL_NO_ERROR) {
+        if (report)
+            va_glx_error_message("glError: %s caught\n",
+                                 gl_get_error_string(error));
+        is_error = 1;
+    }
+    return is_error;
+}
+
+static inline void gl_purge_errors(void)
+{
+    gl_do_check_error(0);
+}
+
+static inline int gl_check_error(void)
+{
+    return gl_do_check_error(1);
+}
+
+// glGetTexLevelParameteriv() wrapper
+static int gl_get_texture_param(GLenum param, unsigned int *pval)
+{
+    GLint val;
+
+    gl_purge_errors();
+    glGetTexLevelParameteriv(GL_TEXTURE_2D, 0, param, &val);
+    if (gl_check_error())
+        return 0;
+    if (pval)
+        *pval = val;
+    return 1;
+}
+
+// Returns the OpenGL VTable
+static inline VAOpenGLVTableP gl_get_vtable(VADriverContextP ctx)
+{
+    return &VA_DRIVER_CONTEXT_GLX(ctx)->gl_vtable;
+}
+
+// Lookup for a GLX function
+typedef void (*GLFuncPtr)(void);
+typedef GLFuncPtr (*GLXGetProcAddressProc)(const char *);
+
+static GLFuncPtr get_proc_address_default(const char *name)
+{
+    return NULL;
+}
+
+static GLXGetProcAddressProc get_proc_address_func(void)
+{
+    GLXGetProcAddressProc get_proc_func;
+
+    dlerror();
+    get_proc_func = (GLXGetProcAddressProc)
+        dlsym(RTLD_DEFAULT, "glXGetProcAddress");
+    if (!dlerror())
+        return get_proc_func;
+
+    get_proc_func = (GLXGetProcAddressProc)
+        dlsym(RTLD_DEFAULT, "glXGetProcAddressARB");
+    if (!dlerror())
+        return get_proc_func;
+
+    return get_proc_address_default;
+}
+
+static inline GLFuncPtr get_proc_address(const char *name)
+{
+    static GLXGetProcAddressProc get_proc_func = NULL;
+    if (!get_proc_func)
+        get_proc_func = get_proc_address_func();
+    return get_proc_func(name);
+}
+
+// Check for GLX extensions (TFP, FBO)
+static int check_extension(const char *name, const char *ext)
+{
+    const char *end;
+    int name_len, n;
+
+    if (!name || !ext)
+        return 0;
+
+    end = ext + strlen(ext);
+    name_len = strlen(name);
+    while (ext < end) {
+        n = strcspn(ext, " ");
+        if (n == name_len && strncmp(name, ext, n) == 0)
+            return 1;
+        ext += (n + 1);
+    }
+    return 0;
+}
+
+static int check_tfp_extensions(VADriverContextP ctx)
+{
+    const char *gl_extensions;
+    const char *glx_extensions;
+
+    gl_extensions = (const char *)glGetString(GL_EXTENSIONS);
+    if (!check_extension("GL_ARB_texture_non_power_of_two", gl_extensions))
+        return 0;
+
+    glx_extensions = glXQueryExtensionsString(ctx->native_dpy, ctx->x11_screen);
+    if (!check_extension("GLX_EXT_texture_from_pixmap", glx_extensions))
+        return 0;
+    return 1;
+}
+
+static int check_fbo_extensions(VADriverContextP ctx)
+{
+    const char *gl_extensions;
+
+    gl_extensions = (const char *)glGetString(GL_EXTENSIONS);
+    if (check_extension("GL_ARB_framebuffer_object", gl_extensions))
+        return 1;
+    if (check_extension("GL_EXT_framebuffer_object", gl_extensions))
+        return 1;
+    return 0;
+}
+
+// Load GLX extensions
+static int load_tfp_extensions(VADriverContextP ctx)
+{
+    VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx);
+
+    pOpenGLVTable->glx_create_pixmap = (PFNGLXCREATEPIXMAPPROC)
+        get_proc_address("glXCreatePixmap");
+    if (!pOpenGLVTable->glx_create_pixmap)
+        return 0;
+    pOpenGLVTable->glx_destroy_pixmap = (PFNGLXDESTROYPIXMAPPROC)
+        get_proc_address("glXDestroyPixmap");
+    if (!pOpenGLVTable->glx_destroy_pixmap)
+        return 0;
+    pOpenGLVTable->glx_bind_tex_image = (PFNGLXBINDTEXIMAGEEXTPROC)
+        get_proc_address("glXBindTexImageEXT");
+    if (!pOpenGLVTable->glx_bind_tex_image)
+        return 0;
+    pOpenGLVTable->glx_release_tex_image = (PFNGLXRELEASETEXIMAGEEXTPROC)
+        get_proc_address("glXReleaseTexImageEXT");
+    if (!pOpenGLVTable->glx_release_tex_image)
+        return 0;
+    return 1;
+}
+
+static int load_fbo_extensions(VADriverContextP ctx)
+{
+    VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx);
+
+    pOpenGLVTable->gl_gen_framebuffers = (PFNGLGENFRAMEBUFFERSEXTPROC)
+        get_proc_address("glGenFramebuffersEXT");
+    if (!pOpenGLVTable->gl_gen_framebuffers)
+        return 0;
+    pOpenGLVTable->gl_delete_framebuffers = (PFNGLDELETEFRAMEBUFFERSEXTPROC)
+        get_proc_address("glDeleteFramebuffersEXT");
+    if (!pOpenGLVTable->gl_delete_framebuffers)
+        return 0;
+    pOpenGLVTable->gl_bind_framebuffer = (PFNGLBINDFRAMEBUFFEREXTPROC)
+        get_proc_address("glBindFramebufferEXT");
+    if (!pOpenGLVTable->gl_bind_framebuffer)
+        return 0;
+    pOpenGLVTable->gl_gen_renderbuffers = (PFNGLGENRENDERBUFFERSEXTPROC)
+        get_proc_address("glGenRenderbuffersEXT");
+    if (!pOpenGLVTable->gl_gen_renderbuffers)
+        return 0;
+    pOpenGLVTable->gl_delete_renderbuffers = (PFNGLDELETERENDERBUFFERSEXTPROC)
+        get_proc_address("glDeleteRenderbuffersEXT");
+    if (!pOpenGLVTable->gl_delete_renderbuffers)
+        return 0;
+    pOpenGLVTable->gl_bind_renderbuffer = (PFNGLBINDRENDERBUFFEREXTPROC)
+        get_proc_address("glBindRenderbufferEXT");
+    if (!pOpenGLVTable->gl_bind_renderbuffer)
+        return 0;
+    pOpenGLVTable->gl_renderbuffer_storage = (PFNGLRENDERBUFFERSTORAGEEXTPROC)
+        get_proc_address("glRenderbufferStorageEXT");
+    if (!pOpenGLVTable->gl_renderbuffer_storage)
+        return 0;
+    pOpenGLVTable->gl_framebuffer_renderbuffer = (PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC)
+        get_proc_address("glFramebufferRenderbufferEXT");
+    if (!pOpenGLVTable->gl_framebuffer_renderbuffer)
+        return 0;
+    pOpenGLVTable->gl_framebuffer_texture_2d = (PFNGLFRAMEBUFFERTEXTURE2DEXTPROC)
+        get_proc_address("glFramebufferTexture2DEXT");
+    if (!pOpenGLVTable->gl_framebuffer_texture_2d)
+        return 0;
+    pOpenGLVTable->gl_check_framebuffer_status = (PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC)
+        get_proc_address("glCheckFramebufferStatusEXT");
+    if (!pOpenGLVTable->gl_check_framebuffer_status)
+        return 0;
+    return 1;
+}
+
+
+/* ========================================================================= */
+/* === VA/GLX helpers                                                    === */
+/* ========================================================================= */
+
+// OpenGL context state
+typedef struct OpenGLContextState *OpenGLContextStateP;
+
+struct OpenGLContextState {
+    Display     *display;
+    Window       window;
+    GLXContext   context;
+};
+
+static void
+gl_destroy_context(OpenGLContextStateP cs)
+{
+    if (!cs)
+        return;
+
+    if (cs->display && cs->context) {
+        if (glXGetCurrentContext() == cs->context)
+            glXMakeCurrent(cs->display, None, NULL);
+        glXDestroyContext(cs->display, cs->context);
+        cs->display = NULL;
+        cs->context = NULL;
+    }
+    free(cs);
+}
+
+static OpenGLContextStateP
+gl_create_context(VADriverContextP ctx, OpenGLContextStateP parent)
+{
+    OpenGLContextStateP cs;
+    GLXFBConfig *fbconfigs = NULL;
+    int fbconfig_id, val, n, n_fbconfigs;
+    Status status;
+
+    static GLint fbconfig_attrs[] = {
+        GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
+        GLX_RENDER_TYPE,   GLX_RGBA_BIT,
+        GLX_DOUBLEBUFFER,  True,
+        GLX_RED_SIZE,      8,
+        GLX_GREEN_SIZE,    8, 
+        GLX_BLUE_SIZE,     8,
+        None
+    };
+
+    cs = malloc(sizeof(*cs));
+    if (!cs)
+        goto error;
+
+    if (parent) {
+        cs->display = parent->display;
+        cs->window  = parent->window;
+    }
+    else {
+        cs->display = ctx->native_dpy;
+        cs->window  = None;
+    }
+    cs->context = NULL;
+
+    if (parent && parent->context) {
+        status = glXQueryContext(
+            parent->display,
+            parent->context,
+            GLX_FBCONFIG_ID, &fbconfig_id
+        );
+        if (status != Success)
+            goto error;
+
+        if (fbconfig_id == GLX_DONT_CARE)
+            goto choose_fbconfig;
+
+        fbconfigs = glXGetFBConfigs(
+            parent->display,
+            DefaultScreen(parent->display),
+            &n_fbconfigs
+        );
+        if (!fbconfigs)
+            goto error;
+
+        /* Find out a GLXFBConfig compatible with the parent context */
+        for (n = 0; n < n_fbconfigs; n++) {
+            status = glXGetFBConfigAttrib(
+                cs->display,
+                fbconfigs[n],
+                GLX_FBCONFIG_ID, &val
+            );
+            if (status == Success && val == fbconfig_id)
+                break;
+        }
+        if (n == n_fbconfigs)
+            goto error;
+    }
+    else {
+    choose_fbconfig:
+        fbconfigs = glXChooseFBConfig(
+            ctx->native_dpy,
+            ctx->x11_screen,
+            fbconfig_attrs, &n_fbconfigs
+        );
+        if (!fbconfigs)
+            goto error;
+
+        /* Select the first one */
+        n = 0;
+    }
+
+    cs->context = glXCreateNewContext(
+        cs->display,
+        fbconfigs[n],
+        GLX_RGBA_TYPE,
+        parent ? parent->context : NULL,
+        True
+    );
+    if (cs->context)
+        goto end;
+
+error:
+    gl_destroy_context(cs);
+    cs = NULL;
+end:
+    if (fbconfigs)
+        XFree(fbconfigs);
+    return cs;
+}
+
+static void gl_get_current_context(OpenGLContextStateP cs)
+{
+    cs->display = glXGetCurrentDisplay();
+    cs->window  = glXGetCurrentDrawable();
+    cs->context = glXGetCurrentContext();
+}
+
+static int
+gl_set_current_context(OpenGLContextStateP new_cs, OpenGLContextStateP old_cs)
+{
+    /* If display is NULL, this could be that new_cs was retrieved from
+       gl_get_current_context() with none set previously. If that case,
+       the other fields are also NULL and we don't return an error */
+    if (!new_cs->display)
+        return !new_cs->window && !new_cs->context;
+
+    if (old_cs) {
+        if (old_cs == new_cs)
+            return 1;
+        gl_get_current_context(old_cs);
+        if (old_cs->display == new_cs->display &&
+            old_cs->window  == new_cs->window  &&
+            old_cs->context == new_cs->context)
+            return 1;
+    }
+    return glXMakeCurrent(new_cs->display, new_cs->window, new_cs->context);
+}
+
+/** Unique VASurfaceGLX identifier */
+#define VA_SURFACE_GLX_MAGIC VA_FOURCC('V','A','G','L')
+
+struct VASurfaceGLX {
+    uint32_t            magic;      ///< Magic number identifying a VASurfaceGLX
+    GLenum              target;     ///< GL target to which the texture is bound
+    GLuint              texture;    ///< GL texture
+    VASurfaceID         surface;    ///< Associated VA surface
+    unsigned int        width;
+    unsigned int        height;
+    OpenGLContextStateP gl_context;
+    int                 is_bound;
+    Pixmap              pixmap;
+    GLuint              pix_texture;
+    GLXPixmap           glx_pixmap;
+    GLuint              fbo;
+};
+
+// Create Pixmaps for GLX texture-from-pixmap extension
+static int create_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    VAOpenGLVTableP const pOpenGLVTable = gl_get_vtable(ctx);
+    const unsigned int    width         = pSurfaceGLX->width;
+    const unsigned int    height        = pSurfaceGLX->height;
+    Pixmap                pixmap        = None;
+    GLXFBConfig          *fbconfig      = NULL;
+    GLXPixmap             glx_pixmap    = None;
+    Window                root_window;
+    XWindowAttributes     wattr;
+    int                  *attrib;
+    int                   n_fbconfig_attrs;
+
+    root_window = RootWindow(ctx->native_dpy, ctx->x11_screen);
+    XGetWindowAttributes(ctx->native_dpy, root_window, &wattr);
+    if (wattr.depth != 24 && wattr.depth != 32)
+        return 0;
+    pixmap = XCreatePixmap(
+        ctx->native_dpy,
+        root_window,
+        width,
+        height,
+        wattr.depth
+    );
+    if (!pixmap)
+        return 0;
+    pSurfaceGLX->pixmap = pixmap;
+
+    int fbconfig_attrs[32] = {
+        GLX_DRAWABLE_TYPE,      GLX_PIXMAP_BIT,
+        GLX_DOUBLEBUFFER,       GL_TRUE,
+        GLX_RENDER_TYPE,        GLX_RGBA_BIT,
+        GLX_X_RENDERABLE,       GL_TRUE,
+        GLX_Y_INVERTED_EXT,     GL_TRUE,
+        GLX_RED_SIZE,           8,
+        GLX_GREEN_SIZE,         8,
+        GLX_BLUE_SIZE,          8,
+        /*
+         * depth test isn't enabled in the implementaion of VA GLX,
+         * so depth buffer is unnecessary. However to workaround a
+         * bug in older verson of xorg-server, always require a depth
+         * buffer.
+         *
+         * See https://bugs.freedesktop.org/show_bug.cgi?id=76755
+         */
+        GLX_DEPTH_SIZE,         1,
+        GL_NONE,
+    };
+    for (attrib = fbconfig_attrs; *attrib != GL_NONE; attrib += 2)
+        ;
+    if (wattr.depth == 32) {
+    *attrib++ = GLX_ALPHA_SIZE;                 *attrib++ = 8;
+    *attrib++ = GLX_BIND_TO_TEXTURE_RGBA_EXT;   *attrib++ = GL_TRUE;
+    }
+    else {
+    *attrib++ = GLX_BIND_TO_TEXTURE_RGB_EXT;    *attrib++ = GL_TRUE;
+    }
+    *attrib++ = GL_NONE;
+
+    fbconfig = glXChooseFBConfig(
+        ctx->native_dpy,
+        ctx->x11_screen,
+        fbconfig_attrs,
+        &n_fbconfig_attrs
+    );
+    if (!fbconfig)
+        return 0;
+
+    int pixmap_attrs[10] = {
+        GLX_TEXTURE_TARGET_EXT, GLX_TEXTURE_2D_EXT,
+        GLX_MIPMAP_TEXTURE_EXT, GL_FALSE,
+        GL_NONE,
+    };
+    for (attrib = pixmap_attrs; *attrib != GL_NONE; attrib += 2)
+        ;
+    *attrib++ = GLX_TEXTURE_FORMAT_EXT;
+    if (wattr.depth == 32)
+    *attrib++ = GLX_TEXTURE_FORMAT_RGBA_EXT;
+    else
+    *attrib++ = GLX_TEXTURE_FORMAT_RGB_EXT;
+    *attrib++ = GL_NONE;
+
+    x11_trap_errors();
+    glx_pixmap = pOpenGLVTable->glx_create_pixmap(
+        ctx->native_dpy,
+        fbconfig[0],
+        pixmap,
+        pixmap_attrs
+    );
+    free(fbconfig);
+    if (x11_untrap_errors() != 0)
+        return 0;
+    pSurfaceGLX->glx_pixmap = glx_pixmap;
+
+    glGenTextures(1, &pSurfaceGLX->pix_texture);
+    glBindTexture(GL_TEXTURE_2D, pSurfaceGLX->pix_texture);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
+    glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
+    return 1;
+}
+
+// Destroy Pixmaps used for TFP
+static void destroy_tfp_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    VAOpenGLVTableP const pOpenGLVTable = gl_get_vtable(ctx);
+
+    if (pSurfaceGLX->pix_texture) {
+        glDeleteTextures(1, &pSurfaceGLX->pix_texture);
+        pSurfaceGLX->pix_texture = 0;
+    }
+
+    if (pSurfaceGLX->glx_pixmap) {
+        pOpenGLVTable->glx_destroy_pixmap(ctx->native_dpy, pSurfaceGLX->glx_pixmap);
+        pSurfaceGLX->glx_pixmap = None;
+    }
+
+    if (pSurfaceGLX->pixmap) {
+        XFreePixmap(ctx->native_dpy, pSurfaceGLX->pixmap);
+        pSurfaceGLX->pixmap = None;
+    }
+}
+
+// Bind GLX Pixmap to texture
+static int bind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx);
+
+    if (pSurfaceGLX->is_bound)
+        return 1;
+
+    glBindTexture(GL_TEXTURE_2D, pSurfaceGLX->pix_texture);
+
+    x11_trap_errors();
+    pOpenGLVTable->glx_bind_tex_image(
+        ctx->native_dpy,
+        pSurfaceGLX->glx_pixmap,
+        GLX_FRONT_LEFT_EXT,
+        NULL
+    );
+    XSync(ctx->native_dpy, False);
+    if (x11_untrap_errors() != 0) {
+        va_glx_error_message("failed to bind pixmap\n");
+        return 0;
+    }
+
+    pSurfaceGLX->is_bound = 1;
+    return 1;
+}
+
+// Release GLX Pixmap from texture
+static int unbind_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx);
+
+    if (!pSurfaceGLX->is_bound)
+        return 1;
+
+    x11_trap_errors();
+    pOpenGLVTable->glx_release_tex_image(
+        ctx->native_dpy,
+        pSurfaceGLX->glx_pixmap,
+        GLX_FRONT_LEFT_EXT
+    );
+    XSync(ctx->native_dpy, False);
+    if (x11_untrap_errors() != 0) {
+        va_glx_error_message("failed to release pixmap\n");
+        return 0;
+    }
+
+    glBindTexture(GL_TEXTURE_2D, 0);
+
+    pSurfaceGLX->is_bound = 0;
+    return 1;
+}
+
+// Render GLX Pixmap to texture
+static void render_pixmap(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    const unsigned int w = pSurfaceGLX->width;
+    const unsigned int h = pSurfaceGLX->height;
+
+    glColor4f(1.0f, 1.0f, 1.0f, 1.0f);
+    glBegin(GL_QUADS);
+    {
+        glTexCoord2f(0.0f, 0.0f); glVertex2i(0, 0);
+        glTexCoord2f(0.0f, 1.0f); glVertex2i(0, h);
+        glTexCoord2f(1.0f, 1.0f); glVertex2i(w, h);
+        glTexCoord2f(1.0f, 0.0f); glVertex2i(w, 0);
+    }
+    glEnd();
+}
+
+// Create offscreen surface
+static int create_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx);
+    GLuint fbo;
+    GLenum status;
+
+    pOpenGLVTable->gl_gen_framebuffers(1, &fbo);
+    pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, fbo);
+    pOpenGLVTable->gl_framebuffer_texture_2d(
+        GL_FRAMEBUFFER_EXT,
+        GL_COLOR_ATTACHMENT0_EXT,
+        GL_TEXTURE_2D,
+        pSurfaceGLX->texture,
+        0
+    );
+
+    status = pOpenGLVTable->gl_check_framebuffer_status(GL_DRAW_FRAMEBUFFER_EXT);
+    pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0);
+    if (status != GL_FRAMEBUFFER_COMPLETE_EXT)
+        return 0;
+
+    pSurfaceGLX->fbo = fbo;
+    return 1;
+}
+
+// Destroy offscreen surface
+static void destroy_fbo_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx);
+
+    if (pSurfaceGLX->fbo) {
+        pOpenGLVTable->gl_delete_framebuffers(1, &pSurfaceGLX->fbo);
+        pSurfaceGLX->fbo = 0;
+    }
+}
+
+// Setup matrices to match the FBO texture dimensions
+static void fbo_enter(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx);
+    const unsigned int width  = pSurfaceGLX->width;
+    const unsigned int height = pSurfaceGLX->height;
+
+    pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, pSurfaceGLX->fbo);
+    glPushAttrib(GL_VIEWPORT_BIT);
+    glMatrixMode(GL_PROJECTION);
+    glPushMatrix();
+    glLoadIdentity();
+    glMatrixMode(GL_MODELVIEW);
+    glPushMatrix();
+    glLoadIdentity();
+    glViewport(0, 0, width, height);
+    glTranslatef(-1.0f, -1.0f, 0.0f);
+    glScalef(2.0f / width, 2.0f / height, 1.0f);
+}
+
+// Restore original OpenGL matrices
+static void fbo_leave(VADriverContextP ctx)
+{
+    VAOpenGLVTableP pOpenGLVTable = gl_get_vtable(ctx);
+
+    glPopAttrib();
+    glMatrixMode(GL_PROJECTION);
+    glPopMatrix();
+    glMatrixMode(GL_MODELVIEW);
+    glPopMatrix();
+    pOpenGLVTable->gl_bind_framebuffer(GL_FRAMEBUFFER_EXT, 0);
+}
+
+// Check internal texture format is supported
+static int is_supported_internal_format(GLenum format)
+{
+    /* XXX: we don't support other textures than RGBA */
+    switch (format) {
+    case 4:
+    case GL_RGBA:
+    case GL_RGBA8:
+        return 1;
+    }
+    return 0;
+}
+
+// Destroy VA/GLX surface
+static void
+destroy_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    unbind_pixmap(ctx, pSurfaceGLX);
+    destroy_fbo_surface(ctx, pSurfaceGLX);
+    destroy_tfp_surface(ctx, pSurfaceGLX);
+    free(pSurfaceGLX);
+}
+
+// Create VA/GLX surface
+static VASurfaceGLXP
+create_surface(VADriverContextP ctx, GLenum target, GLuint texture)
+{
+    VASurfaceGLXP pSurfaceGLX = NULL;
+    unsigned int internal_format, border_width, width, height;
+    int is_error = 1;
+
+    pSurfaceGLX = malloc(sizeof(*pSurfaceGLX));
+    if (!pSurfaceGLX)
+        goto end;
+
+    pSurfaceGLX->magic          = VA_SURFACE_GLX_MAGIC;
+    pSurfaceGLX->target         = target;
+    pSurfaceGLX->texture        = texture;
+    pSurfaceGLX->surface        = VA_INVALID_SURFACE;
+    pSurfaceGLX->gl_context     = NULL;
+    pSurfaceGLX->is_bound       = 0;
+    pSurfaceGLX->pixmap         = None;
+    pSurfaceGLX->pix_texture    = 0;
+    pSurfaceGLX->glx_pixmap     = None;
+    pSurfaceGLX->fbo            = 0;
+
+    glEnable(target);
+    glBindTexture(target, texture);
+    if (!gl_get_texture_param(GL_TEXTURE_INTERNAL_FORMAT, &internal_format))
+        goto end;
+    if (!is_supported_internal_format(internal_format))
+        goto end;
+
+    /* Check texture dimensions */
+    if (!gl_get_texture_param(GL_TEXTURE_BORDER, &border_width))
+        goto end;
+    if (!gl_get_texture_param(GL_TEXTURE_WIDTH, &width))
+        goto end;
+    if (!gl_get_texture_param(GL_TEXTURE_HEIGHT, &height))
+        goto end;
+
+    width  -= 2 * border_width;
+    height -= 2 * border_width;
+    if (width == 0 || height == 0)
+        goto end;
+
+    pSurfaceGLX->width  = width;
+    pSurfaceGLX->height = height;
+
+    /* Create TFP objects */
+    if (!create_tfp_surface(ctx, pSurfaceGLX))
+        goto end;
+
+    /* Create FBO objects */
+    if (!create_fbo_surface(ctx, pSurfaceGLX))
+        goto end;
+
+    is_error = 0;
+end:
+    if (is_error && pSurfaceGLX) {
+        destroy_surface(ctx, pSurfaceGLX);
+        pSurfaceGLX = NULL;
+    }
+    return pSurfaceGLX;
+}
+
+
+/* ========================================================================= */
+/* === VA/GLX implementation from the driver (fordward calls)            === */
+/* ========================================================================= */
+
+#define INVOKE(ctx, func, args) do {                    \
+        VADriverVTableGLXP vtable = (ctx)->vtable_glx;  \
+        if (!vtable->va##func##GLX)                     \
+            return VA_STATUS_ERROR_UNIMPLEMENTED;       \
+                                                        \
+        VAStatus status = vtable->va##func##GLX args;   \
+        if (status != VA_STATUS_SUCCESS)                \
+            return status;                              \
+    } while (0)
+
+static VAStatus
+vaCreateSurfaceGLX_impl_driver(
+    VADriverContextP    ctx,
+    GLenum              target,
+    GLuint              texture,
+    void              **gl_surface
+)
+{
+    INVOKE(ctx, CreateSurface, (ctx, target, texture, gl_surface));
+    return VA_STATUS_SUCCESS;
+}
+
+static VAStatus
+vaDestroySurfaceGLX_impl_driver(VADriverContextP ctx, void *gl_surface)
+{
+    INVOKE(ctx, DestroySurface, (ctx, gl_surface));
+    return VA_STATUS_SUCCESS;
+}
+
+static VAStatus
+vaCopySurfaceGLX_impl_driver(
+    VADriverContextP    ctx,
+    void               *gl_surface,
+    VASurfaceID         surface,
+    unsigned int        flags
+)
+{
+    INVOKE(ctx, CopySurface, (ctx, gl_surface, surface, flags));
+    return VA_STATUS_SUCCESS;
+}
+
+#undef INVOKE
+
+
+/* ========================================================================= */
+/* === VA/GLX implementation from libVA (generic and suboptimal path)    === */
+/* ========================================================================= */
+
+#define INIT_SURFACE(surface, surface_arg) do {         \
+        surface = (VASurfaceGLXP)(surface_arg);         \
+        if (!check_surface(surface))                    \
+            return VA_STATUS_ERROR_INVALID_SURFACE;     \
+    } while (0)
+
+// Check VASurfaceGLX is valid
+static inline int check_surface(VASurfaceGLXP pSurfaceGLX)
+{
+    return pSurfaceGLX && pSurfaceGLX->magic == VA_SURFACE_GLX_MAGIC;
+}
+
+static VAStatus
+vaCreateSurfaceGLX_impl_libva(
+    VADriverContextP    ctx,
+    GLenum              target,
+    GLuint              texture,
+    void              **gl_surface
+)
+{
+    VASurfaceGLXP pSurfaceGLX;
+    struct OpenGLContextState old_cs, *new_cs;
+
+    gl_get_current_context(&old_cs);
+    new_cs = gl_create_context(ctx, &old_cs);
+    if (!new_cs)
+        goto error;
+    if (!gl_set_current_context(new_cs, NULL))
+        goto error;
+
+    pSurfaceGLX = create_surface(ctx, target, texture);
+    if (!pSurfaceGLX)
+        goto error;
+
+    pSurfaceGLX->gl_context = new_cs;
+    *gl_surface = pSurfaceGLX;
+
+    gl_set_current_context(&old_cs, NULL);
+    return VA_STATUS_SUCCESS;
+
+error:
+    if (new_cs)
+        gl_destroy_context(new_cs);
+
+    return VA_STATUS_ERROR_ALLOCATION_FAILED;    
+}
+
+static VAStatus
+vaDestroySurfaceGLX_impl_libva(VADriverContextP ctx, void *gl_surface)
+{
+    VASurfaceGLXP pSurfaceGLX;
+    struct OpenGLContextState old_cs, *new_cs;
+
+    INIT_SURFACE(pSurfaceGLX, gl_surface);
+
+    new_cs = pSurfaceGLX->gl_context;
+    if (!gl_set_current_context(new_cs, &old_cs))
+        return VA_STATUS_ERROR_OPERATION_FAILED;
+
+    destroy_surface(ctx, pSurfaceGLX);
+
+    gl_destroy_context(new_cs);
+    gl_set_current_context(&old_cs, NULL);
+    return VA_STATUS_SUCCESS;
+}
+
+static inline VAStatus
+deassociate_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    if (!unbind_pixmap(ctx, pSurfaceGLX))
+        return VA_STATUS_ERROR_OPERATION_FAILED;
+
+    pSurfaceGLX->surface = VA_INVALID_SURFACE;
+    return VA_STATUS_SUCCESS;
+}
+
+static VAStatus
+associate_surface(
+    VADriverContextP    ctx,
+    VASurfaceGLXP       pSurfaceGLX,
+    VASurfaceID         surface,
+    unsigned int        flags
+)
+{
+    VAStatus status;
+
+    /* XXX: optimise case where we are associating the same VA surface
+       as before an no changed occurred to it */
+    status = deassociate_surface(ctx, pSurfaceGLX);
+    if (status != VA_STATUS_SUCCESS)
+        return status;
+
+    x11_trap_errors();
+    status = ctx->vtable->vaPutSurface(
+        ctx,
+        surface,
+        (void *)pSurfaceGLX->pixmap,
+        0, 0, pSurfaceGLX->width, pSurfaceGLX->height,
+        0, 0, pSurfaceGLX->width, pSurfaceGLX->height,
+        NULL, 0,
+        flags
+    );
+    XSync(ctx->native_dpy, False);
+    if (x11_untrap_errors() != 0)
+        return VA_STATUS_ERROR_OPERATION_FAILED;
+    if (status != VA_STATUS_SUCCESS)
+        return status;
+
+    pSurfaceGLX->surface = surface;
+    return VA_STATUS_SUCCESS;
+}
+
+static inline VAStatus
+sync_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    if (pSurfaceGLX->surface == VA_INVALID_SURFACE)
+        return VA_STATUS_ERROR_INVALID_SURFACE;
+
+    return ctx->vtable->vaSyncSurface(ctx, pSurfaceGLX->surface);
+}
+
+static inline VAStatus
+begin_render_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    VAStatus status;
+
+    status = sync_surface(ctx, pSurfaceGLX);
+    if (status != VA_STATUS_SUCCESS)
+        return status;
+
+    if (!bind_pixmap(ctx, pSurfaceGLX))
+        return VA_STATUS_ERROR_OPERATION_FAILED;
+
+    return VA_STATUS_SUCCESS;
+}
+
+static inline VAStatus
+end_render_surface(VADriverContextP ctx, VASurfaceGLXP pSurfaceGLX)
+{
+    if (!unbind_pixmap(ctx, pSurfaceGLX))
+        return VA_STATUS_ERROR_OPERATION_FAILED;
+
+    return VA_STATUS_SUCCESS;
+}
+
+static VAStatus
+copy_surface(
+    VADriverContextP    ctx,
+    VASurfaceGLXP       pSurfaceGLX,
+    VASurfaceID         surface,
+    unsigned int        flags
+)
+{
+    VAStatus status;
+
+    /* Associate VA surface */
+    status = associate_surface(ctx, pSurfaceGLX, surface, flags);
+    if (status != VA_STATUS_SUCCESS)
+        return status;
+
+    /* Render to FBO */
+    fbo_enter(ctx, pSurfaceGLX);
+    status = begin_render_surface(ctx, pSurfaceGLX);
+    if (status == VA_STATUS_SUCCESS) {
+        render_pixmap(ctx, pSurfaceGLX);
+        status = end_render_surface(ctx, pSurfaceGLX);
+    }
+    fbo_leave(ctx);
+    if (status != VA_STATUS_SUCCESS)
+        return status;
+
+    return deassociate_surface(ctx, pSurfaceGLX);
+}
+
+static VAStatus
+vaCopySurfaceGLX_impl_libva(
+    VADriverContextP    ctx,
+    void               *gl_surface,
+    VASurfaceID         surface,
+    unsigned int        flags
+)
+{
+    VASurfaceGLXP pSurfaceGLX;
+    VAStatus status;
+    struct OpenGLContextState old_cs;
+
+    INIT_SURFACE(pSurfaceGLX, gl_surface);
+
+    if (!gl_set_current_context(pSurfaceGLX->gl_context, &old_cs))
+        return VA_STATUS_ERROR_OPERATION_FAILED;
+
+    status = copy_surface(ctx, pSurfaceGLX, surface, flags);
+
+    gl_set_current_context(&old_cs, NULL);
+    return status;
+}
+
+#undef INIT_SURFACE
+
+
+/* ========================================================================= */
+/* === Private VA/GLX vtable initialization                              === */
+/* ========================================================================= */
+
+// Initialize GLX driver context
+VAStatus va_glx_init_context(VADriverContextP ctx)
+{
+    VADriverContextGLXP glx_ctx = VA_DRIVER_CONTEXT_GLX(ctx);
+    VADriverVTableGLXP  vtable  = &glx_ctx->vtable;
+    int glx_major, glx_minor;
+
+    if (glx_ctx->is_initialized)
+        return VA_STATUS_SUCCESS;
+
+    if (ctx->vtable_glx && ctx->vtable_glx->vaCopySurfaceGLX) {
+        vtable->vaCreateSurfaceGLX      = vaCreateSurfaceGLX_impl_driver;
+        vtable->vaDestroySurfaceGLX     = vaDestroySurfaceGLX_impl_driver;
+        vtable->vaCopySurfaceGLX        = vaCopySurfaceGLX_impl_driver;
+    }
+    else {
+        vtable->vaCreateSurfaceGLX      = vaCreateSurfaceGLX_impl_libva;
+        vtable->vaDestroySurfaceGLX     = vaDestroySurfaceGLX_impl_libva;
+        vtable->vaCopySurfaceGLX        = vaCopySurfaceGLX_impl_libva;
+
+        if (!glXQueryVersion(ctx->native_dpy, &glx_major, &glx_minor))
+            return VA_STATUS_ERROR_UNIMPLEMENTED;
+
+        if (!check_tfp_extensions(ctx) || !load_tfp_extensions(ctx))
+            return VA_STATUS_ERROR_UNIMPLEMENTED;
+
+        if (!check_fbo_extensions(ctx) || !load_fbo_extensions(ctx))
+            return VA_STATUS_ERROR_UNIMPLEMENTED;
+    }
+
+    glx_ctx->is_initialized = 1;
+    return VA_STATUS_SUCCESS;
+}
diff --git a/examples/thirdparty/libva/va/glx/va_glx_impl.h b/examples/thirdparty/libva/va/glx/va_glx_impl.h
new file mode 100644
index 0000000..c47f54a
--- /dev/null
+++ b/examples/thirdparty/libva/va/glx/va_glx_impl.h
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2009 Splitted-Desktop Systems. 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.
+ */
+
+#ifndef VA_GLX_IMPL_H
+#define VA_GLX_IMPL_H
+
+/**
+ * Initialize GLX driver context
+ *
+ * @param[in]  ctx        the VA driver context
+ * @return VA_STATUS_SUCCESS if successful
+ */
+DLL_HIDDEN
+VAStatus va_glx_init_context(VADriverContextP ctx);
+
+#endif /* VA_GLX_IMPL_H */
diff --git a/examples/thirdparty/libva/va/glx/va_glx_private.h b/examples/thirdparty/libva/va/glx/va_glx_private.h
new file mode 100644
index 0000000..e86efb6
--- /dev/null
+++ b/examples/thirdparty/libva/va/glx/va_glx_private.h
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2009 Splitted-Desktop Systems. 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.
+ */
+
+#ifndef VA_GLX_PRIVATE_H
+#define VA_GLX_PRIVATE_H
+
+#include "sysdeps.h"
+#include "va.h"
+#include "va_backend.h"
+#include "va_x11.h"
+#include "va_glx.h"
+#include "va_backend_glx.h"
+#include <GL/glxext.h>
+
+#if GLX_GLXEXT_VERSION < 18
+typedef void (*PFNGLXBINDTEXIMAGEEXTPROC)(Display *, GLXDrawable, int, const int *);
+typedef void (*PFNGLXRELEASETEXIMAGEEXTPROC)(Display *, GLXDrawable, int);
+#endif
+
+#if GLX_GLXEXT_VERSION < 27
+/* XXX: this is not exactly that version but this is the only means to
+   make sure we have the correct <GL/glx.h> with those signatures */
+typedef GLXPixmap (*PFNGLXCREATEPIXMAPPROC)(Display *, GLXFBConfig, Pixmap, const int *);
+typedef void (*PFNGLXDESTROYPIXMAPPROC)(Display *, GLXPixmap);
+#endif
+
+typedef struct VAOpenGLVTable *VAOpenGLVTableP;
+
+struct VAOpenGLVTable {
+    PFNGLXCREATEPIXMAPPROC              glx_create_pixmap;
+    PFNGLXDESTROYPIXMAPPROC             glx_destroy_pixmap;
+    PFNGLXBINDTEXIMAGEEXTPROC           glx_bind_tex_image;
+    PFNGLXRELEASETEXIMAGEEXTPROC        glx_release_tex_image;
+    PFNGLGENFRAMEBUFFERSEXTPROC         gl_gen_framebuffers;
+    PFNGLDELETEFRAMEBUFFERSEXTPROC      gl_delete_framebuffers;
+    PFNGLBINDFRAMEBUFFEREXTPROC         gl_bind_framebuffer;
+    PFNGLGENRENDERBUFFERSEXTPROC        gl_gen_renderbuffers;
+    PFNGLDELETERENDERBUFFERSEXTPROC     gl_delete_renderbuffers;
+    PFNGLBINDRENDERBUFFEREXTPROC        gl_bind_renderbuffer;
+    PFNGLRENDERBUFFERSTORAGEEXTPROC     gl_renderbuffer_storage;
+    PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC gl_framebuffer_renderbuffer;
+    PFNGLFRAMEBUFFERTEXTURE2DEXTPROC    gl_framebuffer_texture_2d;
+    PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC  gl_check_framebuffer_status;
+};
+
+typedef struct VADisplayContextGLX *VADisplayContextGLXP;
+typedef struct VADriverContextGLX  *VADriverContextGLXP;
+typedef struct VASurfaceGLX        *VASurfaceGLXP;
+typedef struct VADriverVTableGLX   *VADriverVTableGLXP;
+
+typedef void (*vaDestroyFunc)(VADisplayContextP);
+
+struct VADisplayContextGLX {
+    vaDestroyFunc vaDestroy;
+};
+
+#define VA_DRIVER_CONTEXT_GLX(ctx) ((VADriverContextGLXP)((ctx)->glx))
+
+struct VADriverContextGLX {
+    struct VADriverVTableGLX    vtable;
+    struct VAOpenGLVTable       gl_vtable;
+    unsigned int                is_initialized  : 1;
+};
+
+#endif /* VA_GLX_PRIVATE_H */
diff --git a/examples/thirdparty/libva/va/libva.syms b/examples/thirdparty/libva/va/libva.syms
new file mode 100644
index 0000000..b15d546
--- /dev/null
+++ b/examples/thirdparty/libva/va/libva.syms
@@ -0,0 +1,11 @@
+VA_API_0.32.0 {
+    local:
+        vaCreateSurfaces_0_32_0;
+};
+
+VA_API_0.33.0 {
+    global:
+        vaCreateSurfaces;
+    local:
+        vaCreateSurfaces_0_33_0;
+} VA_API_0.32.0;
diff --git a/examples/thirdparty/libva/va/sysdeps.h b/examples/thirdparty/libva/va/sysdeps.h
new file mode 100644
index 0000000..4de764d
--- /dev/null
+++ b/examples/thirdparty/libva/va/sysdeps.h
@@ -0,0 +1,79 @@
+/*
+ * Copyright (c) 2007-2009 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 INTEL 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 SYSDEPS_H
+#define SYSDEPS_H
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <string.h>
+#include <stdint.h>
+#include <assert.h>
+
+#ifdef ANDROID
+# define Bool  int
+# define True  1
+# define False 0
+
+/* Macros generated from configure */
+# define LIBVA_VERSION_S "1.1.0"
+
+/* Android logging utilities */
+# include <utils/Log.h>
+
+# ifdef ANDROID_ALOG
+#  define va_log_error(buffer)  do { ALOGE("%s", buffer); } while (0)
+#  define va_log_info(buffer)   do { ALOGI("%s", buffer); } while (0)
+# elif ANDROID_LOG
+#  define va_log_error(buffer)  do { LOGE("%s", buffer); } while (0)
+#  define va_log_info(buffer)   do { LOGI("%s", buffer); } while (0)
+# endif
+#endif
+
+#ifndef va_log_error
+#define va_log_error(buffer) do {                       \
+        fprintf(stderr, "libva error: %s", buffer);     \
+    } while (0)
+#endif
+
+#ifndef va_log_info
+#define va_log_info(buffer) do {                        \
+        fprintf(stderr, "libva info: %s", buffer);      \
+    } while (0)
+#endif
+
+#if defined __GNUC__ && defined HAVE_GNUC_VISIBILITY_ATTRIBUTE
+# define DLL_HIDDEN __attribute__((visibility("hidden")))
+# define DLL_EXPORT __attribute__((visibility("default")))
+#else
+# define DLL_HIDDEN
+# define DLL_EXPORT
+#endif
+
+#endif /* SYSDEPS_H */
diff --git a/examples/thirdparty/libva/va/va.c b/examples/thirdparty/libva/va/va.c
new file mode 100644
index 0000000..0298068
--- /dev/null
+++ b/examples/thirdparty/libva/va/va.c
@@ -0,0 +1,1721 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define _GNU_SOURCE 1
+#include "sysdeps.h"
+#include "va.h"
+#include "va_backend.h"
+#include "va_backend_vpp.h"
+#include "va_trace.h"
+#include "va_fool.h"
+
+#include <assert.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+#include <unistd.h>
+
+#define DRIVER_EXTENSION	"_drv_video.so"
+
+#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext)
+#define CHECK_DISPLAY(dpy) if( !vaDisplayIsValid(dpy) ) { return VA_STATUS_ERROR_INVALID_DISPLAY; }
+
+#define ASSERT		assert
+#define CHECK_VTABLE(s, ctx, func) if (!va_checkVtable(ctx->vtable->va##func, #func)) s = VA_STATUS_ERROR_UNKNOWN;
+#define CHECK_MAXIMUM(s, ctx, var) if (!va_checkMaximum(ctx->max_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN;
+#define CHECK_STRING(s, ctx, var) if (!va_checkString(ctx->str_##var, #var)) s = VA_STATUS_ERROR_UNKNOWN;
+
+/*
+ * 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 va_parseConfig(char *env, char *env_value)
+{
+    char *token, *value, *saveptr;
+    char oneline[1024];
+    FILE *fp=NULL;
+
+    if (env == NULL)
+        return 1;
+    
+    fp = fopen("/etc/libva.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)
+                strncpy(env_value,value, 1024);
+
+            fclose(fp);
+
+            return 0;
+        }
+    }
+    if (fp)
+        fclose(fp);
+
+    /* no setting in config file, use env setting */
+    value = getenv(env);
+    if (value) {
+        if (env_value)
+            strncpy(env_value, value, 1024);
+        return 0;
+    }
+    
+    return 1;
+}
+
+int vaDisplayIsValid(VADisplay dpy)
+{
+    VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
+    return pDisplayContext && (pDisplayContext->vadpy_magic == VA_DISPLAY_MAGIC) && pDisplayContext->vaIsValid(pDisplayContext);
+}
+
+void va_errorMessage(const char *msg, ...)
+{
+    char buf[512], *dynbuf;
+    va_list args;
+    int n, len;
+
+    va_start(args, msg);
+    len = vsnprintf(buf, sizeof(buf), msg, args);
+    va_end(args);
+
+    if (len >= (int)sizeof(buf)) {
+        dynbuf = malloc(len + 1);
+        if (!dynbuf)
+            return;
+        va_start(args, msg);
+        n = vsnprintf(dynbuf, len + 1, msg, args);
+        va_end(args);
+        if (n == len)
+            va_log_error(dynbuf);
+        free(dynbuf);
+    }
+    else if (len > 0)
+        va_log_error(buf);
+}
+
+void va_infoMessage(const char *msg, ...)
+{
+    char buf[512], *dynbuf;
+    va_list args;
+    int n, len;
+
+    va_start(args, msg);
+    len = vsnprintf(buf, sizeof(buf), msg, args);
+    va_end(args);
+
+    if (len >= (int)sizeof(buf)) {
+        dynbuf = malloc(len + 1);
+        if (!dynbuf)
+            return;
+        va_start(args, msg);
+        n = vsnprintf(dynbuf, len + 1, msg, args);
+        va_end(args);
+        if (n == len)
+            va_log_info(dynbuf);
+        free(dynbuf);
+    }
+    else if (len > 0)
+        va_log_info(buf);
+}
+
+static bool va_checkVtable(void *ptr, char *function)
+{
+    if (!ptr) {
+        va_errorMessage("No valid vtable entry for va%s\n", function);
+        return false;
+    }
+    return true;
+}
+
+static bool va_checkMaximum(int value, char *variable)
+{
+    if (!value) {
+        va_errorMessage("Failed to define max_%s in init\n", variable);
+        return false;
+    }
+    return true;
+}
+
+static bool va_checkString(const char* value, char *variable)
+{
+    if (!value) {
+        va_errorMessage("Failed to define str_%s in init\n", variable);
+        return false;
+    }
+    return true;
+}
+
+static inline int
+va_getDriverInitName(char *name, int namelen, int major, int minor)
+{
+    int ret = snprintf(name, namelen, "__vaDriverInit_%d_%d", major, minor);
+    return ret > 0 && ret < namelen;
+}
+
+static VAStatus va_getDriverName(VADisplay dpy, char **driver_name)
+{
+    VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
+
+    return pDisplayContext->vaGetDriverName(pDisplayContext, driver_name);
+}
+
+static VAStatus va_openDriver(VADisplay dpy, char *driver_name)
+{
+    VADriverContextP ctx = CTX(dpy);
+    VAStatus vaStatus = VA_STATUS_ERROR_UNKNOWN;
+    char *search_path = NULL;
+    char *saveptr;
+    char *driver_dir;
+    
+    if (geteuid() == getuid())
+        /* don't allow setuid apps to use LIBVA_DRIVERS_PATH */
+        search_path = getenv("LIBVA_DRIVERS_PATH");
+    if (!search_path)
+        search_path = VA_DRIVERS_PATH;
+
+    search_path = strdup((const char *)search_path);
+    driver_dir = strtok_r(search_path, ":", &saveptr);
+    while (driver_dir) {
+        void *handle = NULL;
+        char *driver_path = (char *) malloc( strlen(driver_dir) +
+                                             strlen(driver_name) +
+                                             strlen(DRIVER_EXTENSION) + 2 );
+        if (!driver_path) {
+            va_errorMessage("%s L%d Out of memory!n",
+                                __FUNCTION__, __LINE__);
+            free(search_path);    
+            return VA_STATUS_ERROR_ALLOCATION_FAILED;
+        }
+
+        strncpy( driver_path, driver_dir, strlen(driver_dir) + 1);
+        strncat( driver_path, "/", strlen("/") );
+        strncat( driver_path, driver_name, strlen(driver_name) );
+        strncat( driver_path, DRIVER_EXTENSION, strlen(DRIVER_EXTENSION) );
+        
+        va_infoMessage("Trying to open %s\n", driver_path);
+#ifndef ANDROID
+        handle = dlopen( driver_path, RTLD_NOW | RTLD_GLOBAL | RTLD_NODELETE );
+#else
+        handle = dlopen( driver_path, RTLD_NOW| RTLD_GLOBAL);
+#endif
+        if (!handle) {
+            /* Don't give errors for non-existing files */
+            if (0 == access( driver_path, F_OK))
+                va_errorMessage("dlopen of %s failed: %s\n", driver_path, dlerror());
+        } else {
+            VADriverInit init_func = NULL;
+            char init_func_s[256];
+            int i;
+
+            static const struct {
+                int major;
+                int minor;
+            } compatible_versions[] = {
+                { VA_MAJOR_VERSION, VA_MINOR_VERSION },
+                { 0, 36 },
+                { 0, 35 },
+                { 0, 34 },
+                { 0, 33 },
+                { 0, 32 },
+                { -1, }
+            };
+
+            for (i = 0; compatible_versions[i].major >= 0; i++) {
+                if (va_getDriverInitName(init_func_s, sizeof(init_func_s),
+                                         compatible_versions[i].major,
+                                         compatible_versions[i].minor)) {
+                    init_func = (VADriverInit)dlsym(handle, init_func_s);
+                    if (init_func) {
+                        va_infoMessage("Found init function %s\n", init_func_s);
+                        break;
+                    }
+                }
+            }
+
+            if (compatible_versions[i].major < 0) {
+                va_errorMessage("%s has no function %s\n",
+                                driver_path, init_func_s);
+                dlclose(handle);
+            } else {
+                struct VADriverVTable *vtable = ctx->vtable;
+                struct VADriverVTableVPP *vtable_vpp = ctx->vtable_vpp;
+
+                vaStatus = VA_STATUS_SUCCESS;
+                if (!vtable) {
+                    vtable = calloc(1, sizeof(*vtable));
+                    if (!vtable)
+                        vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+                }
+                ctx->vtable = vtable;
+
+                if (!vtable_vpp) {
+                    vtable_vpp = calloc(1, sizeof(*vtable_vpp));
+                    if (vtable_vpp)
+                        vtable_vpp->version = VA_DRIVER_VTABLE_VPP_VERSION;
+                    else
+                        vaStatus = VA_STATUS_ERROR_ALLOCATION_FAILED;
+                }
+                ctx->vtable_vpp = vtable_vpp;
+
+                if (init_func && VA_STATUS_SUCCESS == vaStatus)
+                    vaStatus = (*init_func)(ctx);
+
+                if (VA_STATUS_SUCCESS == vaStatus) {
+                    CHECK_MAXIMUM(vaStatus, ctx, profiles);
+                    CHECK_MAXIMUM(vaStatus, ctx, entrypoints);
+                    CHECK_MAXIMUM(vaStatus, ctx, attributes);
+                    CHECK_MAXIMUM(vaStatus, ctx, image_formats);
+                    CHECK_MAXIMUM(vaStatus, ctx, subpic_formats);
+                    CHECK_MAXIMUM(vaStatus, ctx, display_attributes);
+                    CHECK_STRING(vaStatus, ctx, vendor);
+                    CHECK_VTABLE(vaStatus, ctx, Terminate);
+                    CHECK_VTABLE(vaStatus, ctx, QueryConfigProfiles);
+                    CHECK_VTABLE(vaStatus, ctx, QueryConfigEntrypoints);
+                    CHECK_VTABLE(vaStatus, ctx, QueryConfigAttributes);
+                    CHECK_VTABLE(vaStatus, ctx, CreateConfig);
+                    CHECK_VTABLE(vaStatus, ctx, DestroyConfig);
+                    CHECK_VTABLE(vaStatus, ctx, GetConfigAttributes);
+                    CHECK_VTABLE(vaStatus, ctx, CreateSurfaces);
+                    CHECK_VTABLE(vaStatus, ctx, DestroySurfaces);
+                    CHECK_VTABLE(vaStatus, ctx, CreateContext);
+                    CHECK_VTABLE(vaStatus, ctx, DestroyContext);
+                    CHECK_VTABLE(vaStatus, ctx, CreateBuffer);
+                    CHECK_VTABLE(vaStatus, ctx, BufferSetNumElements);
+                    CHECK_VTABLE(vaStatus, ctx, MapBuffer);
+                    CHECK_VTABLE(vaStatus, ctx, UnmapBuffer);
+                    CHECK_VTABLE(vaStatus, ctx, DestroyBuffer);
+                    CHECK_VTABLE(vaStatus, ctx, BeginPicture);
+                    CHECK_VTABLE(vaStatus, ctx, RenderPicture);
+                    CHECK_VTABLE(vaStatus, ctx, EndPicture);
+                    CHECK_VTABLE(vaStatus, ctx, SyncSurface);
+                    CHECK_VTABLE(vaStatus, ctx, QuerySurfaceStatus);
+                    CHECK_VTABLE(vaStatus, ctx, PutSurface);
+                    CHECK_VTABLE(vaStatus, ctx, QueryImageFormats);
+                    CHECK_VTABLE(vaStatus, ctx, CreateImage);
+                    CHECK_VTABLE(vaStatus, ctx, DeriveImage);
+                    CHECK_VTABLE(vaStatus, ctx, DestroyImage);
+                    CHECK_VTABLE(vaStatus, ctx, SetImagePalette);
+                    CHECK_VTABLE(vaStatus, ctx, GetImage);
+                    CHECK_VTABLE(vaStatus, ctx, PutImage);
+                    CHECK_VTABLE(vaStatus, ctx, QuerySubpictureFormats);
+                    CHECK_VTABLE(vaStatus, ctx, CreateSubpicture);
+                    CHECK_VTABLE(vaStatus, ctx, DestroySubpicture);
+                    CHECK_VTABLE(vaStatus, ctx, SetSubpictureImage);
+                    CHECK_VTABLE(vaStatus, ctx, SetSubpictureChromakey);
+                    CHECK_VTABLE(vaStatus, ctx, SetSubpictureGlobalAlpha);
+                    CHECK_VTABLE(vaStatus, ctx, AssociateSubpicture);
+                    CHECK_VTABLE(vaStatus, ctx, DeassociateSubpicture);
+                    CHECK_VTABLE(vaStatus, ctx, QueryDisplayAttributes);
+                    CHECK_VTABLE(vaStatus, ctx, GetDisplayAttributes);
+                    CHECK_VTABLE(vaStatus, ctx, SetDisplayAttributes);
+                }
+                if (VA_STATUS_SUCCESS != vaStatus) {
+                    va_errorMessage("%s init failed\n", driver_path);
+                    dlclose(handle);
+                }
+                if (VA_STATUS_SUCCESS == vaStatus)
+                    ctx->handle = handle;
+                free(driver_path);
+                break;
+            }
+        }
+        free(driver_path);
+        
+        driver_dir = strtok_r(NULL, ":", &saveptr);
+    }
+    
+    free(search_path);    
+    
+    return vaStatus;
+}
+
+VAPrivFunc vaGetLibFunc(VADisplay dpy, const char *func)
+{
+    VADriverContextP ctx;
+    if (!vaDisplayIsValid(dpy))
+        return NULL;
+    ctx = CTX(dpy);
+
+    if (NULL == ctx->handle)
+        return NULL;
+        
+    return (VAPrivFunc) dlsym(ctx->handle, func);
+}
+
+
+/*
+ * Returns a short english description of error_status
+ */
+const char *vaErrorStr(VAStatus error_status)
+{
+    switch(error_status) {
+        case VA_STATUS_SUCCESS:
+            return "success (no error)";
+        case VA_STATUS_ERROR_OPERATION_FAILED:
+            return "operation failed";
+        case VA_STATUS_ERROR_ALLOCATION_FAILED:
+            return "resource allocation failed";
+        case VA_STATUS_ERROR_INVALID_DISPLAY:
+            return "invalid VADisplay";
+        case VA_STATUS_ERROR_INVALID_CONFIG:
+            return "invalid VAConfigID";
+        case VA_STATUS_ERROR_INVALID_CONTEXT:
+            return "invalid VAContextID";
+        case VA_STATUS_ERROR_INVALID_SURFACE:
+            return "invalid VASurfaceID";
+        case VA_STATUS_ERROR_INVALID_BUFFER:
+            return "invalid VABufferID";
+        case VA_STATUS_ERROR_INVALID_IMAGE:
+            return "invalid VAImageID";
+        case VA_STATUS_ERROR_INVALID_SUBPICTURE:
+            return "invalid VASubpictureID";
+        case VA_STATUS_ERROR_ATTR_NOT_SUPPORTED:
+            return "attribute not supported";
+        case VA_STATUS_ERROR_MAX_NUM_EXCEEDED:
+            return "list argument exceeds maximum number";
+        case VA_STATUS_ERROR_UNSUPPORTED_PROFILE:
+            return "the requested VAProfile is not supported";
+        case VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT:
+            return "the requested VAEntryPoint is not supported";
+        case VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT:
+            return "the requested RT Format is not supported";
+        case VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE:
+            return "the requested VABufferType is not supported";
+        case VA_STATUS_ERROR_SURFACE_BUSY:
+            return "surface is in use";
+        case VA_STATUS_ERROR_FLAG_NOT_SUPPORTED:
+            return "flag not supported";
+        case VA_STATUS_ERROR_INVALID_PARAMETER:
+            return "invalid parameter";
+        case VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED:
+            return "resolution not supported";
+        case VA_STATUS_ERROR_UNIMPLEMENTED:
+            return "the requested function is not implemented";
+        case VA_STATUS_ERROR_SURFACE_IN_DISPLAYING:
+            return "surface is in displaying (may by overlay)" ;
+        case VA_STATUS_ERROR_INVALID_IMAGE_FORMAT:
+            return "invalid VAImageFormat";
+        case VA_STATUS_ERROR_INVALID_VALUE:
+            return "an invalid/unsupported value was supplied";
+        case VA_STATUS_ERROR_UNSUPPORTED_FILTER:
+            return "the requested filter is not supported";
+        case VA_STATUS_ERROR_INVALID_FILTER_CHAIN:
+            return "an invalid filter chain was supplied";
+        case VA_STATUS_ERROR_UNKNOWN:
+            return "unknown libva error";
+    }
+    return "unknown libva error / description missing";
+}
+      
+VAStatus vaInitialize (
+    VADisplay dpy,
+    int *major_version,	 /* out */
+    int *minor_version 	 /* out */
+)
+{
+    const char *driver_name_env = NULL;
+    char *driver_name = NULL;
+    VAStatus vaStatus;
+
+    CHECK_DISPLAY(dpy);
+
+    va_TraceInit(dpy);
+
+    va_FoolInit(dpy);
+
+    va_infoMessage("VA-API version %s\n", VA_VERSION_S);
+
+    vaStatus = va_getDriverName(dpy, &driver_name);
+    va_infoMessage("va_getDriverName() returns %d\n", vaStatus);
+
+    driver_name_env = getenv("LIBVA_DRIVER_NAME");
+    if ((VA_STATUS_SUCCESS == vaStatus) &&
+        driver_name_env && (geteuid() == getuid())) {
+        /* Don't allow setuid apps to use LIBVA_DRIVER_NAME */
+        if (driver_name) /* memory is allocated in va_getDriverName */
+            free(driver_name);
+        
+        driver_name = strdup(driver_name_env);
+        vaStatus = VA_STATUS_SUCCESS;
+        va_infoMessage("User requested driver '%s'\n", driver_name);
+    }
+
+    if ((VA_STATUS_SUCCESS == vaStatus) && (driver_name != NULL)) {
+        vaStatus = va_openDriver(dpy, driver_name);
+        va_infoMessage("va_openDriver() returns %d\n", vaStatus);
+
+        *major_version = VA_MAJOR_VERSION;
+        *minor_version = VA_MINOR_VERSION;
+    } else
+        va_errorMessage("va_getDriverName() failed with %s,driver_name=%s\n",
+                        vaErrorStr(vaStatus), driver_name);
+
+    if (driver_name)
+        free(driver_name);
+    
+    VA_TRACE_LOG(va_TraceInitialize, dpy, major_version, minor_version);
+
+    return vaStatus;
+}
+
+
+/*
+ * After this call, all library internal resources will be cleaned up
+ */ 
+VAStatus vaTerminate (
+    VADisplay dpy
+)
+{
+  VAStatus vaStatus = VA_STATUS_SUCCESS;
+  VADisplayContextP pDisplayContext = (VADisplayContextP)dpy;
+  VADriverContextP old_ctx;
+
+  CHECK_DISPLAY(dpy);
+  old_ctx = CTX(dpy);
+
+  if (old_ctx->handle) {
+      vaStatus = old_ctx->vtable->vaTerminate(old_ctx);
+      dlclose(old_ctx->handle);
+      old_ctx->handle = NULL;
+  }
+  free(old_ctx->vtable);
+  old_ctx->vtable = NULL;
+  free(old_ctx->vtable_vpp);
+  old_ctx->vtable_vpp = NULL;
+
+  VA_TRACE_LOG(va_TraceTerminate, dpy);
+
+  va_TraceEnd(dpy);
+
+  va_FoolEnd(dpy);
+
+  if (VA_STATUS_SUCCESS == vaStatus)
+      pDisplayContext->vaDestroy(pDisplayContext);
+
+  return vaStatus;
+}
+
+/*
+ * vaQueryVendorString returns a pointer to a zero-terminated string
+ * describing some aspects of the VA implemenation on a specific
+ * hardware accelerator. The format of the returned string is:
+ * <vendorname>-<major_version>-<minor_version>-<addtional_info>
+ * e.g. for the Intel GMA500 implementation, an example would be:
+ * "IntelGMA500-1.0-0.2-patch3
+ */
+const char *vaQueryVendorString (
+    VADisplay dpy
+)
+{
+  if (!vaDisplayIsValid(dpy))
+      return NULL;
+  
+  return CTX(dpy)->str_vendor;
+}
+
+
+/* Get maximum number of profiles supported by the implementation */
+int vaMaxNumProfiles (
+    VADisplay dpy
+)
+{
+  if (!vaDisplayIsValid(dpy))
+      return 0;
+  
+  return CTX(dpy)->max_profiles;
+}
+
+/* Get maximum number of entrypoints supported by the implementation */
+int vaMaxNumEntrypoints (
+    VADisplay dpy
+)
+{
+  if (!vaDisplayIsValid(dpy))
+      return 0;
+  
+  return CTX(dpy)->max_entrypoints;
+}
+
+
+/* Get maximum number of attributs supported by the implementation */
+int vaMaxNumConfigAttributes (
+    VADisplay dpy
+)
+{
+  if (!vaDisplayIsValid(dpy))
+      return 0;
+  
+  return CTX(dpy)->max_attributes;
+}
+
+VAStatus vaQueryConfigEntrypoints (
+    VADisplay dpy,
+    VAProfile profile,
+    VAEntrypoint *entrypoints,	/* out */
+    int *num_entrypoints	/* out */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaQueryConfigEntrypoints ( ctx, profile, entrypoints, num_entrypoints);
+}
+
+VAStatus vaGetConfigAttributes (
+    VADisplay dpy,
+    VAProfile profile,
+    VAEntrypoint entrypoint,
+    VAConfigAttrib *attrib_list, /* in/out */
+    int num_attribs
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaGetConfigAttributes ( ctx, profile, entrypoint, attrib_list, num_attribs );
+}
+
+VAStatus vaQueryConfigProfiles (
+    VADisplay dpy,
+    VAProfile *profile_list,	/* out */
+    int *num_profiles		/* out */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaQueryConfigProfiles ( ctx, profile_list, num_profiles );
+}
+
+VAStatus vaCreateConfig (
+    VADisplay dpy,
+    VAProfile profile, 
+    VAEntrypoint entrypoint, 
+    VAConfigAttrib *attrib_list,
+    int num_attribs,
+    VAConfigID *config_id /* out */
+)
+{
+  VADriverContextP ctx;
+  VAStatus vaStatus = VA_STATUS_SUCCESS;
+  
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  vaStatus = ctx->vtable->vaCreateConfig ( ctx, profile, entrypoint, attrib_list, num_attribs, config_id );
+
+  /* record the current entrypoint for further trace/fool determination */
+  VA_TRACE_ALL(va_TraceCreateConfig, dpy, profile, entrypoint, attrib_list, num_attribs, config_id);
+  VA_FOOL_FUNC(va_FoolCreateConfig, dpy, profile, entrypoint, attrib_list, num_attribs, config_id);
+  
+  return vaStatus;
+}
+
+VAStatus vaDestroyConfig (
+    VADisplay dpy,
+    VAConfigID config_id
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaDestroyConfig ( ctx, config_id );
+}
+
+VAStatus vaQueryConfigAttributes (
+    VADisplay dpy,
+    VAConfigID config_id, 
+    VAProfile *profile, 	/* out */
+    VAEntrypoint *entrypoint, 	/* out */
+    VAConfigAttrib *attrib_list,/* out */
+    int *num_attribs		/* out */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaQueryConfigAttributes( ctx, config_id, profile, entrypoint, attrib_list, num_attribs);
+}
+
+/* XXX: this is a slow implementation that will be removed */
+static VAStatus
+va_impl_query_surface_attributes(
+    VADriverContextP    ctx,
+    VAConfigID          config,
+    VASurfaceAttrib    *out_attribs,
+    unsigned int       *out_num_attribs_ptr
+)
+{
+    VASurfaceAttrib *attribs = NULL;
+    unsigned int num_attribs, n;
+    VASurfaceAttrib *out_attrib;
+    unsigned int out_num_attribs;
+    VAImageFormat *image_formats = NULL;
+    int num_image_formats, i;
+    VAStatus va_status;
+
+    /* List of surface attributes to query */
+    struct va_surface_attrib_map {
+        VASurfaceAttribType type;
+        VAGenericValueType  value_type;
+    };
+    static const struct va_surface_attrib_map attribs_map[] = {
+        { VASurfaceAttribMinWidth,      VAGenericValueTypeInteger },
+        { VASurfaceAttribMaxWidth,      VAGenericValueTypeInteger },
+        { VASurfaceAttribMinHeight,     VAGenericValueTypeInteger },
+        { VASurfaceAttribMaxHeight,     VAGenericValueTypeInteger },
+        { VASurfaceAttribMemoryType,    VAGenericValueTypeInteger },
+        { VASurfaceAttribNone, }
+    };
+
+    if (!out_attribs || !out_num_attribs_ptr)
+        return VA_STATUS_ERROR_INVALID_PARAMETER;
+    if (!ctx->vtable->vaGetSurfaceAttributes)
+        return VA_STATUS_ERROR_UNIMPLEMENTED;
+
+    num_image_formats = ctx->max_image_formats;
+    image_formats = malloc(num_image_formats * sizeof(*image_formats));
+    if (!image_formats) {
+        va_status = VA_STATUS_ERROR_ALLOCATION_FAILED;
+        goto end;
+    }
+
+    va_status = ctx->vtable->vaQueryImageFormats(
+        ctx, image_formats, &num_image_formats);
+    if (va_status != VA_STATUS_SUCCESS)
+        goto end;
+
+    num_attribs = VASurfaceAttribCount + num_image_formats;
+    attribs = malloc(num_attribs * sizeof(*attribs));
+    if (!attribs) {
+        va_status = VA_STATUS_ERROR_ALLOCATION_FAILED;
+        goto end;
+    }
+
+    /* Initialize with base surface attributes, except pixel-formats */
+    for (n = 0; attribs_map[n].type != VASurfaceAttribNone; n++) {
+        VASurfaceAttrib * const attrib = &attribs[n];
+        attrib->type = attribs_map[n].type;
+        attrib->flags = VA_SURFACE_ATTRIB_GETTABLE;
+        attrib->value.type = attribs_map[n].value_type;
+    }
+
+    /* Append image formats */
+    for (i = 0; i < num_image_formats; i++) {
+        VASurfaceAttrib * const attrib = &attribs[n];
+        attrib->type = VASurfaceAttribPixelFormat;
+        attrib->flags = VA_SURFACE_ATTRIB_GETTABLE|VA_SURFACE_ATTRIB_SETTABLE;
+        attrib->value.type = VAGenericValueTypeInteger;
+        attrib->value.value.i = image_formats[i].fourcc;
+        if (++n == num_attribs) {
+            va_status = VA_STATUS_ERROR_ALLOCATION_FAILED;
+            goto end;
+        }
+    }
+    num_attribs = n;
+
+    va_status = ctx->vtable->vaGetSurfaceAttributes(
+        ctx, config, attribs, num_attribs);
+    if (va_status != VA_STATUS_SUCCESS)
+        goto end;
+
+    /* Remove invalid entries */
+    out_num_attribs = 0;
+    for (n = 0; n < num_attribs; n++) {
+        VASurfaceAttrib * const attrib = &attribs[n];
+
+        if (attrib->flags == VA_SURFACE_ATTRIB_NOT_SUPPORTED)
+            continue;
+
+        // Accept all surface attributes that are not pixel-formats
+        if (attrib->type != VASurfaceAttribPixelFormat) {
+            out_num_attribs++;
+            continue;
+        }
+
+        // Drop invalid pixel-format attribute
+        if (!attrib->value.value.i) {
+            attrib->flags = VA_SURFACE_ATTRIB_NOT_SUPPORTED;
+            continue;
+        }
+
+        // Check for duplicates
+        int is_duplicate = 0;
+        for (i = n - 1; i >= 0 && !is_duplicate; i--) {
+            const VASurfaceAttrib * const prev_attrib = &attribs[i];
+            if (prev_attrib->type != VASurfaceAttribPixelFormat)
+                break;
+            is_duplicate = prev_attrib->value.value.i == attrib->value.value.i;
+        }
+        if (is_duplicate)
+            attrib->flags = VA_SURFACE_ATTRIB_NOT_SUPPORTED;
+        else
+            out_num_attribs++;
+    }
+
+    if (*out_num_attribs_ptr < out_num_attribs) {
+        *out_num_attribs_ptr = out_num_attribs;
+        va_status = VA_STATUS_ERROR_MAX_NUM_EXCEEDED;
+        goto end;
+    }
+
+    out_attrib = out_attribs;
+    for (n = 0; n < num_attribs; n++) {
+        const VASurfaceAttrib * const attrib = &attribs[n];
+        if (attrib->flags == VA_SURFACE_ATTRIB_NOT_SUPPORTED)
+            continue;
+        *out_attrib++ = *attrib;
+    }
+
+end:
+    free(attribs);
+    free(image_formats);
+    return va_status;
+}
+
+VAStatus
+vaQuerySurfaceAttributes(
+    VADisplay           dpy,
+    VAConfigID          config,
+    VASurfaceAttrib    *attrib_list,
+    unsigned int       *num_attribs
+)
+{
+    VADriverContextP ctx;
+    VAStatus vaStatus;
+
+    CHECK_DISPLAY(dpy);
+    ctx = CTX(dpy);
+    if (!ctx)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+
+    if (!ctx->vtable->vaQuerySurfaceAttributes)
+        vaStatus = va_impl_query_surface_attributes(ctx, config,
+                                                    attrib_list, num_attribs);
+    else
+        vaStatus = ctx->vtable->vaQuerySurfaceAttributes(ctx, config,
+                                                         attrib_list, num_attribs);
+
+    VA_TRACE_LOG(va_TraceQuerySurfaceAttributes, dpy, config, attrib_list, num_attribs);
+
+    return vaStatus;
+}
+
+VAStatus
+vaCreateSurfaces(
+    VADisplay           dpy,
+    unsigned int        format,
+    unsigned int        width,
+    unsigned int        height,
+    VASurfaceID        *surfaces,
+    unsigned int        num_surfaces,
+    VASurfaceAttrib    *attrib_list,
+    unsigned int        num_attribs
+)
+{
+    VADriverContextP ctx;
+    VAStatus vaStatus;
+
+    CHECK_DISPLAY(dpy);
+    ctx = CTX(dpy);
+    if (!ctx)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+
+    if (ctx->vtable->vaCreateSurfaces2)
+        vaStatus = ctx->vtable->vaCreateSurfaces2(ctx, format, width, height,
+                                              surfaces, num_surfaces,
+                                              attrib_list, num_attribs);
+    else if (attrib_list && num_attribs > 0)
+        vaStatus = VA_STATUS_ERROR_ATTR_NOT_SUPPORTED;
+    else
+        vaStatus = ctx->vtable->vaCreateSurfaces(ctx, width, height, format,
+                                                 num_surfaces, surfaces);
+    VA_TRACE_LOG(va_TraceCreateSurfaces,
+                 dpy, width, height, format, num_surfaces, surfaces,
+                 attrib_list, num_attribs);
+
+    return vaStatus;
+}
+
+
+VAStatus vaDestroySurfaces (
+    VADisplay dpy,
+    VASurfaceID *surface_list,
+    int num_surfaces
+)
+{
+  VADriverContextP ctx;
+  VAStatus vaStatus;
+  
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_TRACE_LOG(va_TraceDestroySurfaces,
+               dpy, surface_list, num_surfaces);
+  
+  vaStatus = ctx->vtable->vaDestroySurfaces( ctx, surface_list, num_surfaces );
+  
+  return vaStatus;
+}
+
+VAStatus vaCreateContext (
+    VADisplay dpy,
+    VAConfigID config_id,
+    int picture_width,
+    int picture_height,
+    int flag,
+    VASurfaceID *render_targets,
+    int num_render_targets,
+    VAContextID *context		/* out */
+)
+{
+  VADriverContextP ctx;
+  VAStatus vaStatus;
+  
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  vaStatus = ctx->vtable->vaCreateContext( ctx, config_id, picture_width, picture_height,
+                                      flag, render_targets, num_render_targets, context );
+
+  /* keep current encode/decode resoluton */
+  VA_TRACE_ALL(va_TraceCreateContext, dpy, config_id, picture_width, picture_height, flag, render_targets, num_render_targets, context);
+
+  return vaStatus;
+}
+
+VAStatus vaDestroyContext (
+    VADisplay dpy,
+    VAContextID context
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaDestroyContext( ctx, context );
+}
+
+VAStatus vaCreateBuffer (
+    VADisplay dpy,
+    VAContextID context,	/* in */
+    VABufferType type,		/* in */
+    unsigned int size,		/* in */
+    unsigned int num_elements,	/* in */
+    void *data,			/* in */
+    VABufferID *buf_id		/* out */
+)
+{
+  VADriverContextP ctx;
+  VAStatus vaStatus;
+  
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_FOOL_FUNC(va_FoolCreateBuffer, dpy, context, type, size, num_elements, data, buf_id);
+
+  vaStatus = ctx->vtable->vaCreateBuffer( ctx, context, type, size, num_elements, data, buf_id);
+
+  VA_TRACE_LOG(va_TraceCreateBuffer,
+               dpy, context, type, size, num_elements, data, buf_id);
+  
+  return vaStatus;
+}
+
+VAStatus vaBufferSetNumElements (
+    VADisplay dpy,
+    VABufferID buf_id,	/* in */
+    unsigned int num_elements /* in */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_FOOL_FUNC(va_FoolCheckContinuity, dpy);
+  
+  return ctx->vtable->vaBufferSetNumElements( ctx, buf_id, num_elements );
+}
+
+
+VAStatus vaMapBuffer (
+    VADisplay dpy,
+    VABufferID buf_id,	/* in */
+    void **pbuf 	/* out */
+)
+{
+  VADriverContextP ctx;
+  VAStatus va_status;
+  
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+  
+  VA_FOOL_FUNC(va_FoolMapBuffer, dpy, buf_id, pbuf);
+  
+  va_status = ctx->vtable->vaMapBuffer( ctx, buf_id, pbuf );
+
+  VA_TRACE_ALL(va_TraceMapBuffer, dpy, buf_id, pbuf);
+  
+  return va_status;
+}
+
+VAStatus vaUnmapBuffer (
+    VADisplay dpy,
+    VABufferID buf_id	/* in */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_FOOL_FUNC(va_FoolCheckContinuity, dpy);
+
+  return ctx->vtable->vaUnmapBuffer( ctx, buf_id );
+}
+
+VAStatus vaDestroyBuffer (
+    VADisplay dpy,
+    VABufferID buffer_id
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_FOOL_FUNC(va_FoolCheckContinuity, dpy);
+
+  VA_TRACE_LOG(va_TraceDestroyBuffer,
+               dpy, buffer_id);
+  
+  return ctx->vtable->vaDestroyBuffer( ctx, buffer_id );
+}
+
+VAStatus vaBufferInfo (
+    VADisplay dpy,
+    VAContextID context,	/* in */
+    VABufferID buf_id,		/* in */
+    VABufferType *type,		/* out */
+    unsigned int *size,		/* out */
+    unsigned int *num_elements	/* out */
+)
+{
+  VADriverContextP ctx;
+  
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_FOOL_FUNC(va_FoolBufferInfo, dpy, buf_id, type, size, num_elements);
+  
+  return ctx->vtable->vaBufferInfo( ctx, buf_id, type, size, num_elements );
+}
+
+/* Locks buffer for external API usage */
+VAStatus
+vaAcquireBufferHandle(VADisplay dpy, VABufferID buf_id, VABufferInfo *buf_info)
+{
+    VADriverContextP ctx;
+
+    CHECK_DISPLAY(dpy);
+    ctx = CTX(dpy);
+
+    if (!ctx->vtable->vaAcquireBufferHandle)
+        return VA_STATUS_ERROR_UNIMPLEMENTED;
+    return ctx->vtable->vaAcquireBufferHandle(ctx, buf_id, buf_info);
+}
+
+/* Unlocks buffer after usage from external API */
+VAStatus
+vaReleaseBufferHandle(VADisplay dpy, VABufferID buf_id)
+{
+    VADriverContextP ctx;
+
+    CHECK_DISPLAY(dpy);
+    ctx = CTX(dpy);
+
+    if (!ctx->vtable->vaReleaseBufferHandle)
+        return VA_STATUS_ERROR_UNIMPLEMENTED;
+    return ctx->vtable->vaReleaseBufferHandle(ctx, buf_id);
+}
+
+VAStatus vaBeginPicture (
+    VADisplay dpy,
+    VAContextID context,
+    VASurfaceID render_target
+)
+{
+  VADriverContextP ctx;
+  VAStatus va_status;
+
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_TRACE_ALL(va_TraceBeginPicture, dpy, context, render_target);
+  VA_FOOL_FUNC(va_FoolCheckContinuity, dpy);
+  
+  va_status = ctx->vtable->vaBeginPicture( ctx, context, render_target );
+  
+  return va_status;
+}
+
+VAStatus vaRenderPicture (
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID *buffers,
+    int num_buffers
+)
+{
+  VADriverContextP ctx;
+
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_TRACE_LOG(va_TraceRenderPicture, dpy, context, buffers, num_buffers);
+  VA_FOOL_FUNC(va_FoolCheckContinuity, dpy);
+
+  return ctx->vtable->vaRenderPicture( ctx, context, buffers, num_buffers );
+}
+
+VAStatus vaEndPicture (
+    VADisplay dpy,
+    VAContextID context
+)
+{
+  VAStatus va_status = VA_STATUS_SUCCESS;
+  VADriverContextP ctx;
+
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  VA_FOOL_FUNC(va_FoolCheckContinuity, dpy);
+
+  va_status = ctx->vtable->vaEndPicture( ctx, context );
+
+  /* dump surface content */
+  VA_TRACE_ALL(va_TraceEndPicture, dpy, context, 1);
+
+  return va_status;
+}
+
+VAStatus vaSyncSurface (
+    VADisplay dpy,
+    VASurfaceID render_target
+)
+{
+  VAStatus va_status;
+  VADriverContextP ctx;
+
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  va_status = ctx->vtable->vaSyncSurface( ctx, render_target );
+  VA_TRACE_LOG(va_TraceSyncSurface, dpy, render_target);
+
+  return va_status;
+}
+
+VAStatus vaQuerySurfaceStatus (
+    VADisplay dpy,
+    VASurfaceID render_target,
+    VASurfaceStatus *status	/* out */
+)
+{
+  VAStatus va_status;
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  va_status = ctx->vtable->vaQuerySurfaceStatus( ctx, render_target, status );
+
+  VA_TRACE_LOG(va_TraceQuerySurfaceStatus, dpy, render_target, status);
+
+  return va_status;
+}
+
+VAStatus vaQuerySurfaceError (
+	VADisplay dpy,
+	VASurfaceID surface,
+	VAStatus error_status,
+	void **error_info /*out*/
+)
+{
+  VAStatus va_status;
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  va_status = ctx->vtable->vaQuerySurfaceError( ctx, surface, error_status, error_info );
+
+  VA_TRACE_LOG(va_TraceQuerySurfaceError, dpy, surface, error_status, error_info);
+
+  return va_status;
+}
+
+/* Get maximum number of image formats supported by the implementation */
+int vaMaxNumImageFormats (
+    VADisplay dpy
+)
+{
+  if (!vaDisplayIsValid(dpy))
+      return 0;
+  
+  return CTX(dpy)->max_image_formats;
+}
+
+VAStatus vaQueryImageFormats (
+    VADisplay dpy,
+    VAImageFormat *format_list,	/* out */
+    int *num_formats		/* out */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaQueryImageFormats ( ctx, format_list, num_formats);
+}
+
+/* 
+ * The width and height fields returned in the VAImage structure may get 
+ * enlarged for some YUV formats. The size of the data buffer that needs
+ * to be allocated will be given in the "data_size" field in VAImage.
+ * Image data is not allocated by this function.  The client should
+ * allocate the memory and fill in the VAImage structure's data field
+ * after looking at "data_size" returned from the library.
+ */
+VAStatus vaCreateImage (
+    VADisplay dpy,
+    VAImageFormat *format,
+    int width,
+    int height,
+    VAImage *image	/* out */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaCreateImage ( ctx, format, width, height, image);
+}
+
+/*
+ * Should call DestroyImage before destroying the surface it is bound to
+ */
+VAStatus vaDestroyImage (
+    VADisplay dpy,
+    VAImageID image
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaDestroyImage ( ctx, image);
+}
+
+VAStatus vaSetImagePalette (
+    VADisplay dpy,
+    VAImageID image,
+    unsigned char *palette
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaSetImagePalette ( ctx, image, palette);
+}
+
+/*
+ * Retrieve surface data into a VAImage
+ * Image must be in a format supported by the implementation
+ */
+VAStatus vaGetImage (
+    VADisplay dpy,
+    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
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaGetImage ( ctx, surface, x, y, width, height, image);
+}
+
+/*
+ * Copy data from a VAImage to a surface
+ * Image must be in a format supported by the implementation
+ */
+VAStatus vaPutImage (
+    VADisplay dpy,
+    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
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaPutImage ( ctx, surface, image, src_x, src_y, src_width, src_height, dest_x, dest_y, dest_width, dest_height );
+}
+
+/*
+ * Derive an VAImage from an existing surface.
+ * This interface will derive a VAImage and corresponding image buffer from
+ * an existing VA Surface. The image buffer can then be mapped/unmapped for
+ * direct CPU access. This operation is only possible on implementations with
+ * direct rendering capabilities and internal surface formats that can be
+ * represented with a VAImage. When the operation is not possible this interface
+ * will return VA_STATUS_ERROR_OPERATION_FAILED. Clients should then fall back
+ * to using vaCreateImage + vaPutImage to accomplish the same task in an
+ * indirect manner.
+ *
+ * Implementations should only return success when the resulting image buffer
+ * would be useable with vaMap/Unmap.
+ *
+ * When directly accessing a surface special care must be taken to insure
+ * proper synchronization with the graphics hardware. Clients should call
+ * vaQuerySurfaceStatus to insure that a surface is not the target of concurrent
+ * rendering or currently being displayed by an overlay.
+ *
+ * Additionally nothing about the contents of a surface should be assumed
+ * following a vaPutSurface. Implementations are free to modify the surface for
+ * scaling or subpicture blending within a call to vaPutImage.
+ *
+ * Calls to vaPutImage or vaGetImage using the same surface from which the image
+ * has been derived will return VA_STATUS_ERROR_SURFACE_BUSY. vaPutImage or
+ * vaGetImage with other surfaces is supported.
+ *
+ * An image created with vaDeriveImage should be freed with vaDestroyImage. The
+ * image and image buffer structures will be destroyed; however, the underlying
+ * surface will remain unchanged until freed with vaDestroySurfaces.
+ */
+VAStatus vaDeriveImage (
+    VADisplay dpy,
+    VASurfaceID surface,
+    VAImage *image	/* out */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaDeriveImage ( ctx, surface, image );
+}
+
+
+/* Get maximum number of subpicture formats supported by the implementation */
+int vaMaxNumSubpictureFormats (
+    VADisplay dpy
+)
+{
+  if (!vaDisplayIsValid(dpy))
+      return 0;
+  
+  return CTX(dpy)->max_subpic_formats;
+}
+
+/* 
+ * Query supported subpicture formats 
+ * The caller must provide a "format_list" array that can hold at
+ * least vaMaxNumSubpictureFormats() entries. The flags arrary holds the flag 
+ * for each format to indicate additional capabilities for that format. The actual 
+ * number of formats returned in "format_list" is returned in "num_formats".
+ */
+VAStatus vaQuerySubpictureFormats (
+    VADisplay dpy,
+    VAImageFormat *format_list,	/* out */
+    unsigned int *flags,	/* out */
+    unsigned int *num_formats	/* out */
+)
+{
+  VADriverContextP ctx;
+
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaQuerySubpictureFormats ( ctx, format_list, flags, num_formats);
+}
+
+/* 
+ * Subpictures are created with an image associated. 
+ */
+VAStatus vaCreateSubpicture (
+    VADisplay dpy,
+    VAImageID image,
+    VASubpictureID *subpicture	/* out */
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaCreateSubpicture ( ctx, image, subpicture );
+}
+
+/*
+ * Destroy the subpicture before destroying the image it is assocated to
+ */
+VAStatus vaDestroySubpicture (
+    VADisplay dpy,
+    VASubpictureID subpicture
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaDestroySubpicture ( ctx, subpicture);
+}
+
+VAStatus vaSetSubpictureImage (
+    VADisplay dpy,
+    VASubpictureID subpicture,
+    VAImageID image
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaSetSubpictureImage ( ctx, subpicture, image);
+}
+
+
+/*
+ * If chromakey is enabled, then the area where the source value falls within
+ * the chromakey [min, max] range is transparent
+ */
+VAStatus vaSetSubpictureChromakey (
+    VADisplay dpy,
+    VASubpictureID subpicture,
+    unsigned int chromakey_min,
+    unsigned int chromakey_max,
+    unsigned int chromakey_mask
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaSetSubpictureChromakey ( ctx, subpicture, chromakey_min, chromakey_max, chromakey_mask );
+}
+
+
+/*
+ * Global alpha value is between 0 and 1. A value of 1 means fully opaque and 
+ * a value of 0 means fully transparent. If per-pixel alpha is also specified then
+ * the overall alpha is per-pixel alpha multiplied by the global alpha
+ */
+VAStatus vaSetSubpictureGlobalAlpha (
+    VADisplay dpy,
+    VASubpictureID subpicture,
+    float global_alpha 
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaSetSubpictureGlobalAlpha ( ctx, subpicture, global_alpha );
+}
+
+/*
+  vaAssociateSubpicture associates the subpicture with the target_surface.
+  It defines the region mapping between the subpicture and the target 
+  surface through source and destination rectangles (with the same width and height).
+  Both will be displayed at the next call to vaPutSurface.  Additional
+  associations before the call to vaPutSurface simply overrides the association.
+*/
+VAStatus vaAssociateSubpicture (
+    VADisplay dpy,
+    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
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaAssociateSubpicture ( ctx, subpicture, target_surfaces, num_surfaces, src_x, src_y, src_width, src_height, dest_x, dest_y, dest_width, dest_height, flags );
+}
+
+/*
+ * vaDeassociateSubpicture removes the association of the subpicture with target_surfaces.
+ */
+VAStatus vaDeassociateSubpicture (
+    VADisplay dpy,
+    VASubpictureID subpicture,
+    VASurfaceID *target_surfaces,
+    int num_surfaces
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaDeassociateSubpicture ( ctx, subpicture, target_surfaces, num_surfaces );
+}
+
+
+/* Get maximum number of display attributes supported by the implementation */
+int vaMaxNumDisplayAttributes (
+    VADisplay dpy
+)
+{
+  int tmp;
+    
+  if (!vaDisplayIsValid(dpy))
+      return 0;
+  
+  tmp = CTX(dpy)->max_display_attributes;
+
+  VA_TRACE_LOG(va_TraceMaxNumDisplayAttributes, dpy, tmp);
+  
+  return tmp;
+}
+
+/* 
+ * 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 vaQueryDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,	/* out */
+    int *num_attributes			/* out */
+)
+{
+  VADriverContextP ctx;
+  VAStatus va_status;
+  
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+  va_status = ctx->vtable->vaQueryDisplayAttributes ( ctx, attr_list, num_attributes );
+
+  VA_TRACE_LOG(va_TraceQueryDisplayAttributes, dpy, attr_list, num_attributes);
+
+  return va_status;
+  
+}
+
+/* 
+ * 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 vaGetDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,	/* in/out */
+    int num_attributes
+)
+{
+  VADriverContextP ctx;
+  VAStatus va_status;
+
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+  va_status = ctx->vtable->vaGetDisplayAttributes ( ctx, attr_list, num_attributes );
+
+  VA_TRACE_LOG(va_TraceGetDisplayAttributes, dpy, attr_list, num_attributes);
+  
+  return va_status;
+}
+
+/* 
+ * 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 vaSetDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,
+    int num_attributes
+)
+{
+  VADriverContextP ctx;
+  VAStatus va_status;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  va_status = ctx->vtable->vaSetDisplayAttributes ( ctx, attr_list, num_attributes );
+  VA_TRACE_LOG(va_TraceSetDisplayAttributes, dpy, attr_list, num_attributes);
+  
+  return va_status;
+}
+
+VAStatus vaLockSurface(VADisplay dpy,
+    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 
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaLockSurface( ctx, surface, fourcc, luma_stride, chroma_u_stride, chroma_v_stride, luma_offset, chroma_u_offset, chroma_v_offset, buffer_name, buffer);
+}
+
+
+VAStatus vaUnlockSurface(VADisplay dpy,
+    VASurfaceID surface
+)
+{
+  VADriverContextP ctx;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  return ctx->vtable->vaUnlockSurface( ctx, surface );
+}
+
+/* Video Processing */
+#define VA_VPP_INIT_CONTEXT(ctx, dpy) do {              \
+        CHECK_DISPLAY(dpy);                             \
+        ctx = CTX(dpy);                                 \
+        if (!ctx)                                       \
+            return VA_STATUS_ERROR_INVALID_DISPLAY;     \
+    } while (0)
+
+#define VA_VPP_INVOKE(dpy, func, args) do {             \
+        if (!ctx->vtable_vpp->va##func)                 \
+            return VA_STATUS_ERROR_UNIMPLEMENTED;       \
+        status = ctx->vtable_vpp->va##func args;        \
+    } while (0)
+
+VAStatus
+vaQueryVideoProcFilters(
+    VADisplay           dpy,
+    VAContextID         context,
+    VAProcFilterType   *filters,
+    unsigned int       *num_filters
+)
+{
+    VADriverContextP ctx;
+    VAStatus status;
+
+    VA_VPP_INIT_CONTEXT(ctx, dpy);
+    VA_VPP_INVOKE(
+        ctx,
+        QueryVideoProcFilters,
+        (ctx, context, filters, num_filters)
+    );
+    return status;
+}
+
+VAStatus
+vaQueryVideoProcFilterCaps(
+    VADisplay           dpy,
+    VAContextID         context,
+    VAProcFilterType    type,
+    void               *filter_caps,
+    unsigned int       *num_filter_caps
+)
+{
+    VADriverContextP ctx;
+    VAStatus status;
+
+    VA_VPP_INIT_CONTEXT(ctx, dpy);
+    VA_VPP_INVOKE(
+        ctx,
+        QueryVideoProcFilterCaps,
+        (ctx, context, type, filter_caps, num_filter_caps)
+    );
+    return status;
+}
+
+VAStatus
+vaQueryVideoProcPipelineCaps(
+    VADisplay           dpy,
+    VAContextID         context,
+    VABufferID         *filters,
+    unsigned int        num_filters,
+    VAProcPipelineCaps *pipeline_caps
+)
+{
+    VADriverContextP ctx;
+    VAStatus status;
+
+    VA_VPP_INIT_CONTEXT(ctx, dpy);
+    VA_VPP_INVOKE(
+        ctx,
+        QueryVideoProcPipelineCaps,
+        (ctx, context, filters, num_filters, pipeline_caps)
+    );
+    return status;
+}
diff --git a/examples/thirdparty/libva/va/va.h b/examples/thirdparty/libva/va/va.h
new file mode 100644
index 0000000..2b988fd
--- /dev/null
+++ b/examples/thirdparty/libva/va/va.h
@@ -0,0 +1,2741 @@
+/*
+ * Copyright (c) 2007-2009 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 INTEL 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.
+ */
+/*
+ * Video Acceleration (VA) API Specification
+ *
+ * Rev. 0.30
+ * <jonathan.bian at intel.com>
+ *
+ * Revision History:
+ * rev 0.10 (12/10/2006 Jonathan Bian) - Initial draft
+ * rev 0.11 (12/15/2006 Jonathan Bian) - Fixed some errors
+ * rev 0.12 (02/05/2007 Jonathan Bian) - Added VC-1 data structures for slice level decode
+ * rev 0.13 (02/28/2007 Jonathan Bian) - Added GetDisplay()
+ * rev 0.14 (04/13/2007 Jonathan Bian) - Fixed MPEG-2 PictureParameter structure, cleaned up a few funcs.
+ * rev 0.15 (04/20/2007 Jonathan Bian) - Overhauled buffer management
+ * rev 0.16 (05/02/2007 Jonathan Bian) - Added error codes and fixed some issues with configuration
+ * rev 0.17 (05/07/2007 Jonathan Bian) - Added H.264/AVC data structures for slice level decode.
+ * rev 0.18 (05/14/2007 Jonathan Bian) - Added data structures for MPEG-4 slice level decode 
+ *                                       and MPEG-2 motion compensation.
+ * rev 0.19 (08/06/2007 Jonathan Bian) - Removed extra type for bitplane data.
+ * rev 0.20 (08/08/2007 Jonathan Bian) - Added missing fields to VC-1 PictureParameter structure.
+ * rev 0.21 (08/20/2007 Jonathan Bian) - Added image and subpicture support.
+ * rev 0.22 (08/27/2007 Jonathan Bian) - Added support for chroma-keying and global alpha.
+ * rev 0.23 (09/11/2007 Jonathan Bian) - Fixed some issues with images and subpictures.
+ * rev 0.24 (09/18/2007 Jonathan Bian) - Added display attributes.
+ * rev 0.25 (10/18/2007 Jonathan Bian) - Changed to use IDs only for some types.
+ * rev 0.26 (11/07/2007 Waldo Bastian) - Change vaCreateBuffer semantics
+ * rev 0.27 (11/19/2007 Matt Sottek)   - Added DeriveImage
+ * rev 0.28 (12/06/2007 Jonathan Bian) - Added new versions of PutImage and AssociateSubpicture 
+ *                                       to enable scaling
+ * rev 0.29 (02/07/2008 Jonathan Bian) - VC1 parameter fixes,
+ *                                       added VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED
+ * rev 0.30 (03/01/2009 Jonathan Bian) - Added encoding support for H.264 BP and MPEG-4 SP and fixes
+ *                                       for ISO C conformance.
+ * rev 0.31 (09/02/2009 Gwenole Beauchesne) - VC-1/H264 fields change for VDPAU and XvBA backend
+ *                                       Application needs to relink with the new library.
+ *
+ * rev 0.31.1 (03/29/2009)              - Data structure for JPEG encode
+ * rev 0.31.2 (01/13/2011 Anthony Pabon)- Added a flag to indicate Subpicture coordinates are screen
+ *                                        screen relative rather than source video relative.
+ * rev 0.32.0 (01/13/2011 Xiang Haihao) - Add profile into VAPictureParameterBufferVC1
+ *                                        update VAAPI to 0.32.0
+ *
+ * Acknowledgements:
+ *  Some concepts borrowed from XvMC and XvImage.
+ *  Waldo Bastian (Intel), Matt Sottek (Intel),  Austin Yuan (Intel), and Gwenole Beauchesne (SDS)
+ *  contributed to various aspects of the API.
+ */
+
+/**
+ * \file va.h
+ * \brief The Core API
+ *
+ * This file contains the \ref api_core "Core API".
+ */
+
+#ifndef _VA_H_
+#define _VA_H_
+
+#include <stddef.h>
+#include <stdint.h>
+#include <va/va_version.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \mainpage Video Acceleration (VA) API
+ *
+ * \section intro Introduction
+ *
+ * The main motivation for VA-API (Video Acceleration API) is to
+ * enable hardware accelerated video decode and encode at various
+ * entry-points (VLD, IDCT, Motion Compensation etc.) for the
+ * prevailing coding standards today (MPEG-2, MPEG-4 ASP/H.263, MPEG-4
+ * AVC/H.264, VC-1/VMW3, and JPEG).
+ *
+ * VA-API is split into several modules:
+ * - \ref api_core
+ * - \ref api_enc_h264
+ * - \ref api_vpp
+ */
+
+/**
+ * \defgroup api_core Core API
+ *
+ * @{
+ */
+
+/**
+Overview 
+
+The VA API is intended to provide an interface between a video decode/encode/display
+application (client) and a hardware accelerator (server), to off-load 
+video decode/encode/display operations from the host to the hardware accelerator at various 
+entry-points.
+
+The basic operation steps are:
+
+- Negotiate a mutually acceptable configuration with the server to lock
+  down profile, entrypoints, and other attributes that will not change on 
+  a frame-by-frame basis.
+- Create a decode context which represents a "virtualized" hardware decode 
+  device
+- Get and fill decode buffers with picture level, slice level and macroblock 
+  level data (depending on entrypoints)
+- Pass the decode buffers to the server to decode the current frame
+
+Initialization & Configuration Management 
+
+- Find out supported profiles
+- Find out entrypoints for a given profile
+- Find out configuration attributes for a given profile/entrypoint pair
+- Create a configuration for use by the decoder
+
+*/
+
+typedef void* VADisplay;	/* window system dependent */
+
+typedef int VAStatus;	/** Return status type from functions */
+/** Values for the return status */
+#define VA_STATUS_SUCCESS			0x00000000
+#define VA_STATUS_ERROR_OPERATION_FAILED	0x00000001
+#define VA_STATUS_ERROR_ALLOCATION_FAILED	0x00000002
+#define VA_STATUS_ERROR_INVALID_DISPLAY		0x00000003
+#define VA_STATUS_ERROR_INVALID_CONFIG		0x00000004
+#define VA_STATUS_ERROR_INVALID_CONTEXT		0x00000005
+#define VA_STATUS_ERROR_INVALID_SURFACE		0x00000006
+#define VA_STATUS_ERROR_INVALID_BUFFER		0x00000007
+#define VA_STATUS_ERROR_INVALID_IMAGE		0x00000008
+#define VA_STATUS_ERROR_INVALID_SUBPICTURE	0x00000009
+#define VA_STATUS_ERROR_ATTR_NOT_SUPPORTED	0x0000000a
+#define VA_STATUS_ERROR_MAX_NUM_EXCEEDED	0x0000000b
+#define VA_STATUS_ERROR_UNSUPPORTED_PROFILE	0x0000000c
+#define VA_STATUS_ERROR_UNSUPPORTED_ENTRYPOINT	0x0000000d
+#define VA_STATUS_ERROR_UNSUPPORTED_RT_FORMAT	0x0000000e
+#define VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE	0x0000000f
+#define VA_STATUS_ERROR_SURFACE_BUSY		0x00000010
+#define VA_STATUS_ERROR_FLAG_NOT_SUPPORTED      0x00000011
+#define VA_STATUS_ERROR_INVALID_PARAMETER	0x00000012
+#define VA_STATUS_ERROR_RESOLUTION_NOT_SUPPORTED 0x00000013
+#define VA_STATUS_ERROR_UNIMPLEMENTED           0x00000014
+#define VA_STATUS_ERROR_SURFACE_IN_DISPLAYING   0x00000015
+#define VA_STATUS_ERROR_INVALID_IMAGE_FORMAT    0x00000016
+#define VA_STATUS_ERROR_DECODING_ERROR          0x00000017
+#define VA_STATUS_ERROR_ENCODING_ERROR          0x00000018
+/**
+ * \brief An invalid/unsupported value was supplied.
+ *
+ * This is a catch-all error code for invalid or unsupported values.
+ * e.g. value exceeding the valid range, invalid type in the context
+ * of generic attribute values.
+ */
+#define VA_STATUS_ERROR_INVALID_VALUE           0x00000019
+/** \brief An unsupported filter was supplied. */
+#define VA_STATUS_ERROR_UNSUPPORTED_FILTER      0x00000020
+/** \brief An invalid filter chain was supplied. */
+#define VA_STATUS_ERROR_INVALID_FILTER_CHAIN    0x00000021
+/** \brief Indicate HW busy (e.g. run multiple encoding simultaneously). */
+#define VA_STATUS_ERROR_HW_BUSY	                0x00000022
+/** \brief An unsupported memory type was supplied. */
+#define VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE 0x00000024
+#define VA_STATUS_ERROR_UNKNOWN			0xFFFFFFFF
+
+/** De-interlacing flags for vaPutSurface() */
+#define VA_FRAME_PICTURE        0x00000000 
+#define VA_TOP_FIELD            0x00000001
+#define VA_BOTTOM_FIELD         0x00000002
+
+/**
+ * Enabled the positioning/cropping/blending feature:
+ * 1, specify the video playback position in the isurface
+ * 2, specify the cropping info for video playback
+ * 3, encoded video will blend with background color
+ */
+#define VA_ENABLE_BLEND         0x00000004 /* video area blend with the constant color */ 
+    
+/**
+ * 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
+#define VA_SRC_SMPTE_240        0x00000040
+
+/** Scaling flags for vaPutSurface() */
+#define VA_FILTER_SCALING_DEFAULT       0x00000000
+#define VA_FILTER_SCALING_FAST          0x00000100
+#define VA_FILTER_SCALING_HQ            0x00000200
+#define VA_FILTER_SCALING_NL_ANAMORPHIC 0x00000300
+#define VA_FILTER_SCALING_MASK          0x00000f00
+
+/**
+ * Returns a short english description of error_status
+ */
+const char *vaErrorStr(VAStatus error_status);
+
+/**
+ * Initialization:
+ * A display must be obtained by calling vaGetDisplay() before calling
+ * vaInitialize() and other functions. This connects the API to the 
+ * native window system.
+ * For X Windows, native_dpy would be from XOpenDisplay()
+ */
+typedef void* VANativeDisplay;	/* window system dependent */
+
+int vaDisplayIsValid(VADisplay dpy);
+    
+/**
+ * Initialize the library 
+ */
+VAStatus vaInitialize (
+    VADisplay dpy,
+    int *major_version,	 /* out */
+    int *minor_version 	 /* out */
+);
+
+/**
+ * After this call, all library internal resources will be cleaned up
+ */ 
+VAStatus vaTerminate (
+    VADisplay dpy
+);
+
+/**
+ * vaQueryVendorString returns a pointer to a zero-terminated string
+ * describing some aspects of the VA implemenation on a specific    
+ * hardware accelerator. The format of the returned string is vendor
+ * specific and at the discretion of the implementer.
+ * e.g. for the Intel GMA500 implementation, an example would be:
+ * "Intel GMA500 - 2.0.0.32L.0005"
+ */
+const char *vaQueryVendorString (
+    VADisplay dpy
+);
+
+typedef int (*VAPrivFunc)();
+
+/**
+ * Return a function pointer given a function name in the library.
+ * This allows private interfaces into the library
+ */ 
+VAPrivFunc vaGetLibFunc (
+    VADisplay dpy,
+    const char *func
+);
+
+/** Currently defined profiles */
+typedef enum
+{
+    /** \brief Profile ID used for video processing. */
+    VAProfileNone                       = -1,
+    VAProfileMPEG2Simple		= 0,
+    VAProfileMPEG2Main			= 1,
+    VAProfileMPEG4Simple		= 2,
+    VAProfileMPEG4AdvancedSimple	= 3,
+    VAProfileMPEG4Main			= 4,
+    VAProfileH264Baseline		= 5,
+    VAProfileH264Main			= 6,
+    VAProfileH264High			= 7,
+    VAProfileVC1Simple			= 8,
+    VAProfileVC1Main			= 9,
+    VAProfileVC1Advanced		= 10,
+    VAProfileH263Baseline		= 11,
+    VAProfileJPEGBaseline               = 12,
+    VAProfileH264ConstrainedBaseline    = 13,
+    VAProfileVP8Version0_3              = 14,
+    VAProfileH264MultiviewHigh          = 15,
+    VAProfileH264StereoHigh             = 16,
+    VAProfileHEVCMain                   = 17,
+    VAProfileHEVCMain10                 = 18
+} VAProfile;
+
+/**
+ *  Currently defined entrypoints 
+ */
+typedef enum
+{
+    VAEntrypointVLD		= 1,
+    VAEntrypointIZZ		= 2,
+    VAEntrypointIDCT		= 3,
+    VAEntrypointMoComp		= 4,
+    VAEntrypointDeblocking	= 5,
+    VAEntrypointEncSlice	= 6,	/* slice level encode */
+    VAEntrypointEncPicture 	= 7,	/* pictuer encode, JPEG, etc */
+    VAEntrypointVideoProc       = 10,   /**< Video pre/post-processing. */
+} VAEntrypoint;
+
+/** Currently defined configuration attribute types */
+typedef enum
+{
+    VAConfigAttribRTFormat		= 0,
+    VAConfigAttribSpatialResidual	= 1,
+    VAConfigAttribSpatialClipping	= 2,
+    VAConfigAttribIntraResidual		= 3,
+    VAConfigAttribEncryption		= 4,
+    VAConfigAttribRateControl		= 5,
+
+    /** @name Attributes for encoding */
+    /**@{*/
+    /**
+     * \brief Packed headers mode. Read/write.
+     *
+     * This attribute determines what packed headers the driver supports,
+     * through vaGetConfigAttributes(); and what packed headers the user
+     * will be providing to the driver, through vaCreateConfig(), if the
+     * driver supports those.
+     *
+     * See \c VA_ENC_PACKED_HEADER_xxx for the list of packed headers.
+     */
+    VAConfigAttribEncPackedHeaders      = 10,
+    /**
+     * \brief Interlaced mode. Read/write.
+     *
+     * This attribute determines what kind of interlaced encoding mode
+     * the driver supports.
+     *
+     * See \c VA_ENC_INTERLACED_xxx for the list of interlaced modes.
+     */
+    VAConfigAttribEncInterlaced         = 11,
+    /**
+     * \brief Maximum number of reference frames. Read-only.
+     *
+     * This attribute determines the maximum number of reference
+     * frames supported for encoding.
+     *
+     * Note: for H.264 encoding, the value represents the maximum number
+     * of reference frames for both the reference picture list 0 (bottom
+     * 16 bits) and the reference picture list 1 (top 16 bits).
+     */
+    VAConfigAttribEncMaxRefFrames       = 13,
+    /**
+     * \brief Maximum number of slices per frame. Read-only.
+     *
+     * This attribute determines the maximum number of slices the
+     * driver can support to encode a single frame.
+     */
+    VAConfigAttribEncMaxSlices          = 14,
+    /**
+     * \brief Slice structure. Read-only.
+     *
+     * This attribute determines slice structures supported by the
+     * driver for encoding. This attribute is a hint to the user so
+     * that he can choose a suitable surface size and how to arrange
+     * the encoding process of multiple slices per frame.
+     *
+     * More specifically, for H.264 encoding, this attribute
+     * determines the range of accepted values to
+     * VAEncSliceParameterBufferH264::macroblock_address and
+     * VAEncSliceParameterBufferH264::num_macroblocks.
+     *
+     * See \c VA_ENC_SLICE_STRUCTURE_xxx for the supported slice
+     * structure types.
+     */
+    VAConfigAttribEncSliceStructure     = 15,
+    /**
+     * \brief Macroblock information. Read-only.
+     *
+     * This attribute determines whether the driver supports extra
+     * encoding information per-macroblock. e.g. QP.
+     *
+     * More specifically, for H.264 encoding, if the driver returns a non-zero
+     * value for this attribute, this means the application can create
+     * additional #VAEncMacroblockParameterBufferH264 buffers referenced
+     * through VAEncSliceParameterBufferH264::macroblock_info.
+     */
+    VAConfigAttribEncMacroblockInfo     = 16,
+    /**
+     * \brief JPEG encoding attribute. Read-only.
+     *
+     * This attribute exposes a number of capabilities of the underlying
+     * JPEG implementation. The attribute value is partitioned into fields as defined in the 
+     * VAConfigAttribValEncJPEG union.
+     */
+    VAConfigAttribEncJPEG             = 20,
+    /**
+     * \brief Encoding quality range attribute. Read-only.
+     *
+     * This attribute conveys whether the driver supports different quality level settings
+     * for encoding. A value less than or equal to 1 means that the encoder only has a single
+     * quality setting, and a value greater than 1 represents the number of quality levels 
+     * that can be configured. e.g. a value of 2 means there are two distinct quality levels. 
+     */
+    VAConfigAttribEncQualityRange     = 21,
+    /**@}*/
+    VAConfigAttribTypeMax
+} VAConfigAttribType;
+
+/**
+ * Configuration attributes
+ * If there is more than one value for an attribute, a default
+ * value will be assigned to the attribute if the client does not
+ * specify the attribute when creating a configuration
+ */
+typedef struct _VAConfigAttrib {
+    VAConfigAttribType type;
+    unsigned int value; /* OR'd flags (bits) for this attribute */
+} VAConfigAttrib;
+
+/** attribute value for VAConfigAttribRTFormat */
+#define VA_RT_FORMAT_YUV420	0x00000001	
+#define VA_RT_FORMAT_YUV422	0x00000002
+#define VA_RT_FORMAT_YUV444	0x00000004
+#define VA_RT_FORMAT_YUV411	0x00000008
+#define VA_RT_FORMAT_YUV400	0x00000010
+#define VA_RT_FORMAT_RGB16	0x00010000
+#define VA_RT_FORMAT_RGB32	0x00020000
+/* RGBP covers RGBP and BGRP fourcc */ 
+#define VA_RT_FORMAT_RGBP	0x00100000
+#define VA_RT_FORMAT_PROTECTED	0x80000000
+
+/** @name Attribute values for VAConfigAttribRateControl */
+/**@{*/
+/** \brief Driver does not support any form of rate control. */
+#define VA_RC_NONE                      0x00000001
+/** \brief Constant bitrate. */
+#define VA_RC_CBR                       0x00000002
+/** \brief Variable bitrate. */
+#define VA_RC_VBR                       0x00000004
+/** \brief Video conference mode. */
+#define VA_RC_VCM                       0x00000008
+/** \brief Constant QP. */
+#define VA_RC_CQP                       0x00000010
+/** \brief Variable bitrate with peak rate higher than average bitrate. */
+#define VA_RC_VBR_CONSTRAINED           0x00000020
+/**@}*/
+
+/** @name Attribute values for VAConfigAttribEncPackedHeaders */
+/**@{*/
+/** \brief Driver does not support any packed headers mode. */
+#define VA_ENC_PACKED_HEADER_NONE       0x00000000
+/** \brief Driver supports packed sequence headers. e.g. SPS for H.264. */
+#define VA_ENC_PACKED_HEADER_SEQUENCE   0x00000001
+/** \brief Driver supports packed picture headers. e.g. PPS for H.264. */
+#define VA_ENC_PACKED_HEADER_PICTURE    0x00000002
+/** \brief Driver supports packed slice headers. e.g. \c slice_header() for H.264. */
+#define VA_ENC_PACKED_HEADER_SLICE      0x00000004
+/** \brief Driver supports misc packed headers. e.g. SEI for H.264. */
+#define VA_ENC_PACKED_HEADER_MISC       0x00000008
+/** \brief Driver supports raw packed header, see VAEncPackedHeaderRawData */
+#define VA_ENC_PACKED_HEADER_RAW_DATA   0x00000010
+/**@}*/
+
+/** @name Attribute values for VAConfigAttribEncInterlaced */
+/**@{*/
+/** \brief Driver does not support interlaced coding. */
+#define VA_ENC_INTERLACED_NONE          0x00000000
+/** \brief Driver supports interlaced frame coding. */
+#define VA_ENC_INTERLACED_FRAME         0x00000001
+/** \brief Driver supports interlaced field coding. */
+#define VA_ENC_INTERLACED_FIELD         0x00000002
+/** \brief Driver supports macroblock adaptive frame field coding. */
+#define VA_ENC_INTERLACED_MBAFF         0x00000004
+/** \brief Driver supports picture adaptive frame field coding. */
+#define VA_ENC_INTERLACED_PAFF          0x00000008
+/**@}*/
+
+/** @name Attribute values for VAConfigAttribEncSliceStructure */
+/**@{*/
+/** \brief Driver supports an arbitrary number of rows per slice. */
+#define VA_ENC_SLICE_STRUCTURE_ARBITRARY_ROWS           0x00000000
+/** \brief Driver supports a power-of-two number of rows per slice. */
+#define VA_ENC_SLICE_STRUCTURE_POWER_OF_TWO_ROWS        0x00000001
+/** \brief Driver supports an arbitrary number of rows per slice. */
+#define VA_ENC_SLICE_STRUCTURE_ARBITRARY_MACROBLOCKS    0x00000002
+/**@}*/
+
+/** \brief Attribute value for VAConfigAttribEncJPEG */
+typedef union _VAConfigAttribValEncJPEG {
+    struct {
+        /** \brief set to 1 for arithmatic coding. */
+        unsigned int arithmatic_coding_mode : 1;
+        /** \brief set to 1 for progressive dct. */
+        unsigned int progressive_dct_mode : 1;
+        /** \brief set to 1 for non-interleaved. */
+        unsigned int non_interleaved_mode : 1;
+        /** \brief set to 1 for differential. */
+        unsigned int differential_mode : 1;
+        unsigned int max_num_components : 3;
+        unsigned int max_num_scans : 4;
+        unsigned int max_num_huffman_tables : 3;
+        unsigned int max_num_quantization_tables : 3;
+    } bits;
+    unsigned int value;
+} VAConfigAttribValEncJPEG;
+
+/**
+ * if an attribute is not applicable for a given
+ * profile/entrypoint pair, then set the value to the following 
+ */
+#define VA_ATTRIB_NOT_SUPPORTED 0x80000000
+
+/** Get maximum number of profiles supported by the implementation */
+int vaMaxNumProfiles (
+    VADisplay dpy
+);
+
+/** Get maximum number of entrypoints supported by the implementation */
+int vaMaxNumEntrypoints (
+    VADisplay dpy
+);
+
+/** Get maximum number of attributs supported by the implementation */
+int vaMaxNumConfigAttributes (
+    VADisplay dpy
+);
+
+/**
+ * Query supported profiles 
+ * The caller must provide a "profile_list" array that can hold at
+ * least vaMaxNumProfile() entries. The actual number of profiles
+ * returned in "profile_list" is returned in "num_profile".
+ */
+VAStatus vaQueryConfigProfiles (
+    VADisplay dpy,
+    VAProfile *profile_list,	/* out */
+    int *num_profiles		/* out */
+);
+
+/**
+ * Query supported entrypoints for a given profile 
+ * The caller must provide an "entrypoint_list" array that can hold at
+ * least vaMaxNumEntrypoints() entries. The actual number of entrypoints 
+ * returned in "entrypoint_list" is returned in "num_entrypoints".
+ */
+VAStatus vaQueryConfigEntrypoints (
+    VADisplay dpy,
+    VAProfile profile,
+    VAEntrypoint *entrypoint_list,	/* out */
+    int *num_entrypoints		/* out */
+);
+
+/**
+ * Get attributes for a given profile/entrypoint pair 
+ * The caller must provide an "attrib_list" with all attributes to be 
+ * retrieved.  Upon return, the attributes in "attrib_list" have been 
+ * updated with their value.  Unknown attributes or attributes that are 
+ * not supported for the given profile/entrypoint pair will have their 
+ * value set to VA_ATTRIB_NOT_SUPPORTED
+ */
+VAStatus vaGetConfigAttributes (
+    VADisplay dpy,
+    VAProfile profile,
+    VAEntrypoint entrypoint,
+    VAConfigAttrib *attrib_list, /* in/out */
+    int num_attribs
+);
+
+/** Generic ID type, can be re-typed for specific implementation */
+typedef unsigned int VAGenericID;
+
+typedef VAGenericID VAConfigID;
+
+/**
+ * Create a configuration for the decode pipeline 
+ * it passes in the attribute list that specifies the attributes it cares 
+ * about, with the rest taking default values.  
+ */
+VAStatus vaCreateConfig (
+    VADisplay dpy,
+    VAProfile profile, 
+    VAEntrypoint entrypoint, 
+    VAConfigAttrib *attrib_list,
+    int num_attribs,
+    VAConfigID *config_id /* out */
+);
+
+/**
+ * Free resources associdated with a given config 
+ */
+VAStatus vaDestroyConfig (
+    VADisplay dpy,
+    VAConfigID config_id
+);
+
+/**
+ * Query all attributes for a given configuration 
+ * The profile of the configuration is returned in "profile"
+ * The entrypoint of the configuration is returned in "entrypoint"
+ * The caller must provide an "attrib_list" array that can hold at least 
+ * vaMaxNumConfigAttributes() entries. The actual number of attributes 
+ * returned in "attrib_list" is returned in "num_attribs"
+ */
+VAStatus vaQueryConfigAttributes (
+    VADisplay dpy,
+    VAConfigID config_id, 
+    VAProfile *profile, 	/* out */
+    VAEntrypoint *entrypoint, 	/* out */
+    VAConfigAttrib *attrib_list,/* out */
+    int *num_attribs 		/* out */
+);
+
+
+/**
+ * Contexts and Surfaces
+ *
+ * Context represents a "virtual" video decode pipeline. Surfaces are render 
+ * targets for a given context. The data in the surfaces are not accessible  
+ * to the client and the internal data format of the surface is implementatin 
+ * specific. 
+ *
+ * Surfaces will be bound to a context when the context is created. Once
+ * a surface is bound to a given context, it can not be used to create  
+ * another context. The association is removed when the context is destroyed
+ * 
+ * Both contexts and surfaces are identified by unique IDs and its
+ * implementation specific internals are kept opaque to the clients
+ */
+
+typedef VAGenericID VAContextID;
+
+typedef VAGenericID VASurfaceID;
+
+#define VA_INVALID_ID		0xffffffff
+#define VA_INVALID_SURFACE	VA_INVALID_ID
+
+/** \brief Generic value types. */
+typedef enum  {
+    VAGenericValueTypeInteger = 1,      /**< 32-bit signed integer. */
+    VAGenericValueTypeFloat,            /**< 32-bit floating-point value. */
+    VAGenericValueTypePointer,          /**< Generic pointer type */
+    VAGenericValueTypeFunc              /**< Pointer to function */
+} VAGenericValueType;
+
+/** \brief Generic function type. */
+typedef void (*VAGenericFunc)(void);
+
+/** \brief Generic value. */
+typedef struct _VAGenericValue {
+    /** \brief Value type. See #VAGenericValueType. */
+    VAGenericValueType  type;
+    /** \brief Value holder. */
+    union {
+        /** \brief 32-bit signed integer. */
+        int             i;
+        /** \brief 32-bit float. */
+        float           f;
+        /** \brief Generic pointer. */
+        void           *p;
+        /** \brief Pointer to function. */
+        VAGenericFunc   fn;
+    }                   value;
+} VAGenericValue;
+
+/** @name Surface attribute flags */
+/**@{*/
+/** \brief Surface attribute is not supported. */
+#define VA_SURFACE_ATTRIB_NOT_SUPPORTED 0x00000000
+/** \brief Surface attribute can be got through vaQuerySurfaceAttributes(). */
+#define VA_SURFACE_ATTRIB_GETTABLE      0x00000001
+/** \brief Surface attribute can be set through vaCreateSurfaces(). */
+#define VA_SURFACE_ATTRIB_SETTABLE      0x00000002
+/**@}*/
+
+/** \brief Surface attribute types. */
+typedef enum {
+    VASurfaceAttribNone = 0,
+    /**
+     * \brief Pixel format (fourcc).
+     *
+     * The value is meaningful as input to vaQuerySurfaceAttributes().
+     * If zero, the driver returns the optimal pixel format for the
+     * specified config. Otherwise, if non-zero, the value represents
+     * a pixel format (FOURCC) that is kept as is on output, if the
+     * driver supports it. Otherwise, the driver sets the value to
+     * zero and drops the \c VA_SURFACE_ATTRIB_SETTABLE flag.
+     */
+    VASurfaceAttribPixelFormat,
+    /** \brief Minimal width in pixels (int, read-only). */
+    VASurfaceAttribMinWidth,
+    /** \brief Maximal width in pixels (int, read-only). */
+    VASurfaceAttribMaxWidth,
+    /** \brief Minimal height in pixels (int, read-only). */
+    VASurfaceAttribMinHeight,
+    /** \brief Maximal height in pixels (int, read-only). */
+    VASurfaceAttribMaxHeight,
+    /** \brief Surface memory type expressed in bit fields (int, read/write). */
+    VASurfaceAttribMemoryType,
+    /** \brief External buffer descriptor (pointer, write). */
+    VASurfaceAttribExternalBufferDescriptor,
+    /** \brief Surface usage hint, gives the driver a hint of intended usage 
+     *  to optimize allocation (e.g. tiling) (int, read/write). */
+    VASurfaceAttribUsageHint,
+    /** \brief Number of surface attributes. */
+    VASurfaceAttribCount
+} VASurfaceAttribType;
+
+/** \brief Surface attribute. */
+typedef struct _VASurfaceAttrib {
+    /** \brief Type. */
+    VASurfaceAttribType type;
+    /** \brief Flags. See "Surface attribute flags". */
+    unsigned int        flags;
+    /** \brief Value. See "Surface attribute types" for the expected types. */
+    VAGenericValue      value;
+} VASurfaceAttrib;
+
+/** 
+ * @name VASurfaceAttribMemoryType values in bit fields. 
+ * Bit 0:7 are reserved for generic types, Bit 31:28 are reserved for 
+ * Linux DRM, Bit 23:20 are reserved for Android. DRM and Android specific
+ * types are defined in DRM and Android header files.
+ */
+/**@{*/
+/** \brief VA memory type (default) is supported. */
+#define VA_SURFACE_ATTRIB_MEM_TYPE_VA			0x00000001
+/** \brief V4L2 buffer memory type is supported. */
+#define VA_SURFACE_ATTRIB_MEM_TYPE_V4L2			0x00000002
+/** \brief User pointer memory type is supported. */
+#define VA_SURFACE_ATTRIB_MEM_TYPE_USER_PTR		0x00000004
+/**@}*/
+
+/** 
+ * \brief VASurfaceAttribExternalBuffers structure for 
+ * the VASurfaceAttribExternalBufferDescriptor attribute.
+ */
+typedef struct _VASurfaceAttribExternalBuffers {
+    /** \brief pixel format in fourcc. */
+    unsigned int pixel_format;
+    /** \brief width in pixels. */
+    unsigned int width;
+    /** \brief height in pixels. */
+    unsigned int height;
+    /** \brief total size of the buffer in bytes. */
+    unsigned int data_size;
+    /** \brief number of planes for planar layout */
+    unsigned int num_planes;
+    /** \brief pitch for each plane in bytes */
+    unsigned int pitches[4];
+    /** \brief offset for each plane in bytes */
+    unsigned int offsets[4];
+    /** \brief buffer handles or user pointers */
+    unsigned long *buffers;
+    /** \brief number of elements in the "buffers" array */
+    unsigned int num_buffers;
+    /** \brief flags. See "Surface external buffer descriptor flags". */
+    unsigned int flags;
+    /** \brief reserved for passing private data */
+    void *private_data;
+} VASurfaceAttribExternalBuffers;
+
+/** @name VASurfaceAttribExternalBuffers flags */
+/**@{*/
+/** \brief Enable memory tiling */
+#define VA_SURFACE_EXTBUF_DESC_ENABLE_TILING	0x00000001
+/** \brief Memory is cacheable */
+#define VA_SURFACE_EXTBUF_DESC_CACHED		0x00000002
+/** \brief Memory is non-cacheable */
+#define VA_SURFACE_EXTBUF_DESC_UNCACHED		0x00000004
+/** \brief Memory is write-combined */
+#define VA_SURFACE_EXTBUF_DESC_WC		0x00000008
+/** \brief Memory is protected */
+#define VA_SURFACE_EXTBUF_DESC_PROTECTED        0x80000000
+
+/** @name VASurfaceAttribUsageHint attribute usage hint flags */
+/**@{*/
+/** \brief Surface usage not indicated. */
+#define VA_SURFACE_ATTRIB_USAGE_HINT_GENERIC 	0x00000000
+/** \brief Surface used by video decoder. */
+#define VA_SURFACE_ATTRIB_USAGE_HINT_DECODER 	0x00000001
+/** \brief Surface used by video encoder. */
+#define VA_SURFACE_ATTRIB_USAGE_HINT_ENCODER 	0x00000002
+/** \brief Surface read by video post-processing. */
+#define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_READ 	0x00000004
+/** \brief Surface written by video post-processing. */
+#define VA_SURFACE_ATTRIB_USAGE_HINT_VPP_WRITE 	0x00000008
+/** \brief Surface used for display. */
+#define VA_SURFACE_ATTRIB_USAGE_HINT_DISPLAY 	0x00000010
+
+/**@}*/
+
+/**
+ * \brief Queries surface attributes for the supplied config.
+ *
+ * Unlike vaGetSurfaceAttributes(), this function queries for all
+ * supported attributes for the supplied VA @config. In particular, if
+ * the underlying hardware supports the creation of VA surfaces in
+ * various formats, then this function will enumerate all pixel
+ * formats that are supported.
+ *
+ * The \c attrib_list array is allocated by the user and \c
+ * num_attribs shall be initialized to the number of allocated
+ * elements in that array. Upon successful return, the actual number
+ * of attributes will be overwritten into \c num_attribs. Otherwise,
+ * \c VA_STATUS_ERROR_MAX_NUM_EXCEEDED is returned and \c num_attribs
+ * is adjusted to the number of elements that would be returned if
+ * enough space was available.
+ *
+ * Note: it is perfectly valid to pass NULL to the \c attrib_list
+ * argument when vaQuerySurfaceAttributes() is used to determine the
+ * actual number of elements that need to be allocated.
+ *
+ * @param[in] dpy               the VA display
+ * @param[in] config            the config identifying a codec or a video
+ *     processing pipeline
+ * @param[out] attrib_list      the output array of #VASurfaceAttrib elements
+ * @param[in,out] num_attribs   the number of elements allocated on
+ *      input, the number of elements actually filled in output
+ */
+VAStatus
+vaQuerySurfaceAttributes(
+    VADisplay           dpy,
+    VAConfigID          config,
+    VASurfaceAttrib    *attrib_list,
+    unsigned int       *num_attribs
+);
+
+/**
+ * \brief Creates an array of surfaces
+ *
+ * Creates an array of surfaces. The optional list of attributes shall
+ * be constructed and validated through vaGetSurfaceAttributes() or
+ * constructed based based on what the underlying hardware could
+ * expose through vaQuerySurfaceAttributes().
+ *
+ * @param[in] dpy               the VA display
+ * @param[in] format            the desired surface format. See \c VA_RT_FORMAT_*
+ * @param[in] width             the surface width
+ * @param[in] height            the surface height
+ * @param[out] surfaces         the array of newly created surfaces
+ * @param[in] num_surfaces      the number of surfaces to create
+ * @param[in] attrib_list       the list of (optional) attributes, or \c NULL
+ * @param[in] num_attribs       the number of attributes supplied in
+ *     \c attrib_list, or zero
+ */
+VAStatus
+vaCreateSurfaces(
+    VADisplay           dpy,
+    unsigned int        format,
+    unsigned int        width,
+    unsigned int        height,
+    VASurfaceID        *surfaces,
+    unsigned int        num_surfaces,
+    VASurfaceAttrib    *attrib_list,
+    unsigned int        num_attribs
+);
+    
+/**
+ * vaDestroySurfaces - Destroy resources associated with surfaces. 
+ *  Surfaces can only be destroyed after the context associated has been 
+ *  destroyed.  
+ *  dpy: display
+ *  surfaces: array of surfaces to destroy
+ *  num_surfaces: number of surfaces in the array to be destroyed.
+ */
+VAStatus vaDestroySurfaces (
+    VADisplay dpy,
+    VASurfaceID *surfaces,
+    int num_surfaces
+);
+
+#define VA_PROGRESSIVE 0x1
+/**
+ * vaCreateContext - Create a context
+ *  dpy: display
+ *  config_id: configuration for the context
+ *  picture_width: coded picture width
+ *  picture_height: coded picture height
+ *  flag: any combination of the following:
+ *    VA_PROGRESSIVE (only progressive frame pictures in the sequence when set)
+ *  render_targets: render targets (surfaces) tied to the context
+ *  num_render_targets: number of render targets in the above array
+ *  context: created context id upon return
+ */
+VAStatus vaCreateContext (
+    VADisplay dpy,
+    VAConfigID config_id,
+    int picture_width,
+    int picture_height,
+    int flag,
+    VASurfaceID *render_targets,
+    int num_render_targets,
+    VAContextID *context		/* out */
+);
+
+/**
+ * vaDestroyContext - Destroy a context 
+ *  dpy: display
+ *  context: context to be destroyed
+ */
+VAStatus vaDestroyContext (
+    VADisplay dpy,
+    VAContextID context
+);
+
+/**
+ * Buffers 
+ * Buffers are used to pass various types of data from the
+ * client to the server. The server maintains a data store
+ * for each buffer created, and the client idenfies a buffer
+ * through a unique buffer id assigned by the server.
+ */
+
+typedef VAGenericID VABufferID;
+
+typedef enum
+{
+    VAPictureParameterBufferType	= 0,
+    VAIQMatrixBufferType		= 1,
+    VABitPlaneBufferType		= 2,
+    VASliceGroupMapBufferType		= 3,
+    VASliceParameterBufferType		= 4,
+    VASliceDataBufferType		= 5,
+    VAMacroblockParameterBufferType	= 6,
+    VAResidualDataBufferType		= 7,
+    VADeblockingParameterBufferType	= 8,
+    VAImageBufferType			= 9,
+    VAProtectedSliceDataBufferType	= 10,
+    VAQMatrixBufferType                 = 11,
+    VAHuffmanTableBufferType            = 12,
+    VAProbabilityBufferType             = 13,
+
+/* Following are encode buffer types */
+    VAEncCodedBufferType		= 21,
+    VAEncSequenceParameterBufferType	= 22,
+    VAEncPictureParameterBufferType	= 23,
+    VAEncSliceParameterBufferType	= 24,
+    VAEncPackedHeaderParameterBufferType = 25,
+    VAEncPackedHeaderDataBufferType     = 26,
+    VAEncMiscParameterBufferType	= 27,
+    VAEncMacroblockParameterBufferType	= 28,
+    VAEncMacroblockMapBufferType        = 29,
+/* Following are video processing buffer types */
+    /**
+     * \brief Video processing pipeline parameter buffer.
+     *
+     * This buffer describes the video processing pipeline. See
+     * #VAProcPipelineParameterBuffer for details.
+     */
+    VAProcPipelineParameterBufferType   = 41,
+    /**
+     * \brief Video filter parameter buffer.
+     *
+     * This buffer describes the video filter parameters. All buffers
+     * inherit from #VAProcFilterParameterBufferBase, thus including
+     * a unique filter buffer type.
+     *
+     * The default buffer used by most filters is #VAProcFilterParameterBuffer.
+     * Filters requiring advanced parameters include, but are not limited to,
+     * deinterlacing (#VAProcFilterParameterBufferDeinterlacing),
+     * color balance (#VAProcFilterParameterBufferColorBalance), etc.
+     */
+    VAProcFilterParameterBufferType     = 42,
+    VABufferTypeMax
+} VABufferType;
+
+typedef enum
+{
+    VAEncMiscParameterTypeFrameRate 	= 0,
+    VAEncMiscParameterTypeRateControl  	= 1,
+    VAEncMiscParameterTypeMaxSliceSize	= 2,
+    VAEncMiscParameterTypeAIR    	= 3,
+    /** \brief Buffer type used to express a maximum frame size (in bits). */
+    VAEncMiscParameterTypeMaxFrameSize  = 4,
+    /** \brief Buffer type used for HRD parameters. */
+    VAEncMiscParameterTypeHRD           = 5,
+    VAEncMiscParameterTypeQualityLevel  = 6,
+} VAEncMiscParameterType;
+
+/** \brief Packed header type. */
+typedef enum {
+    /** \brief Packed sequence header. */
+    VAEncPackedHeaderSequence   = 1,
+    /** \brief Packed picture header. */
+    VAEncPackedHeaderPicture    = 2,
+    /** \brief Packed slice header. */
+    VAEncPackedHeaderSlice      = 3,
+    /** 
+     * \brief Packed raw header. 
+     * 
+     * Packed raw data header can be used by the client to insert a header  
+     * into the bitstream data buffer at the point it is passed, the driver 
+     * will handle the raw packed header based on "has_emulation_bytes" field
+     * in the packed header parameter structure.
+     */
+    VAEncPackedHeaderRawData    = 4,
+    /** \brief Misc packed header. See codec-specific definitions. */
+    VAEncPackedHeaderMiscMask   = 0x80000000,
+} VAEncPackedHeaderType;
+
+/** \brief Packed header parameter. */
+typedef struct _VAEncPackedHeaderParameterBuffer {
+    /** Type of the packed header buffer. See #VAEncPackedHeaderType. */
+    unsigned int                type;
+    /** \brief Size of the #VAEncPackedHeaderDataBuffer in bits. */
+    unsigned int                bit_length;
+    /** \brief Flag: buffer contains start code emulation prevention bytes? */
+    unsigned char               has_emulation_bytes;
+} VAEncPackedHeaderParameterBuffer;
+
+/**
+ *  For application, e.g. set a new bitrate
+ *    VABufferID buf_id;
+ *    VAEncMiscParameterBuffer *misc_param;
+ *    VAEncMiscParameterRateControl *misc_rate_ctrl;
+ * 
+ *    vaCreateBuffer(dpy, context, VAEncMiscParameterBufferType,
+ *              sizeof(VAEncMiscParameterBuffer) + sizeof(VAEncMiscParameterRateControl),
+ *              1, NULL, &buf_id);
+ *
+ *    vaMapBuffer(dpy,buf_id,(void **)&misc_param);
+ *    misc_param->type = VAEncMiscParameterTypeRateControl;
+ *    misc_rate_ctrl= (VAEncMiscParameterRateControl *)misc_param->data;
+ *    misc_rate_ctrl->bits_per_second = 6400000;
+ *    vaUnmapBuffer(dpy, buf_id);
+ *    vaRenderPicture(dpy, context, &buf_id, 1);
+ */
+typedef struct _VAEncMiscParameterBuffer
+{
+    VAEncMiscParameterType type;
+    unsigned int data[0];
+} VAEncMiscParameterBuffer;
+
+
+/** \brief Rate control parameters */
+typedef struct _VAEncMiscParameterRateControl
+{
+    /* this is the maximum bit-rate to be constrained by the rate control implementation */
+    unsigned int bits_per_second;
+    /* this is the bit-rate the rate control is targeting, as a percentage of the maximum
+     * bit-rate for example if target_percentage is 95 then the rate control will target
+     * a bit-rate that is 95% of the maximum bit-rate
+     */
+    unsigned int target_percentage;
+    /* windows size in milliseconds. For example if this is set to 500,
+     * then the rate control will guarantee the target bit-rate over a 500 ms window
+     */
+    unsigned int window_size;
+    /* initial QP at I frames */
+    unsigned int initial_qp;
+    unsigned int min_qp;
+    unsigned int basic_unit_size;
+    union
+    {
+        struct
+        {
+            unsigned int reset : 1;
+            unsigned int disable_frame_skip : 1; /* Disable frame skip in rate control mode */
+            unsigned int disable_bit_stuffing : 1; /* Disable bit stuffing in rate control mode */
+        } bits;
+        unsigned int value;
+    } rc_flags;
+} VAEncMiscParameterRateControl;
+
+typedef struct _VAEncMiscParameterFrameRate
+{
+    unsigned int framerate;
+} VAEncMiscParameterFrameRate;
+
+/**
+ * Allow a maximum slice size to be specified (in bits).
+ * The encoder will attempt to make sure that individual slices do not exceed this size
+ * Or to signal applicate if the slice size exceed this size, see "status" of VACodedBufferSegment
+ */
+typedef struct _VAEncMiscParameterMaxSliceSize
+{
+    unsigned int max_slice_size;
+} VAEncMiscParameterMaxSliceSize;
+
+typedef struct _VAEncMiscParameterAIR
+{
+    unsigned int air_num_mbs;
+    unsigned int air_threshold;
+    unsigned int air_auto; /* if set to 1 then hardware auto-tune the AIR threshold */
+} VAEncMiscParameterAIR;
+
+typedef struct _VAEncMiscParameterHRD
+{
+    unsigned int initial_buffer_fullness;       /* in bits */
+    unsigned int buffer_size;                   /* in bits */
+} VAEncMiscParameterHRD;
+
+/**
+ * \brief Defines a maximum frame size (in bits).
+ *
+ * This misc parameter buffer defines the maximum size of a frame (in
+ * bits). The encoder will try to make sure that each frame does not
+ * exceed this size. Otherwise, if the frame size exceeds this size,
+ * the \c status flag of #VACodedBufferSegment will contain
+ * #VA_CODED_BUF_STATUS_FRAME_SIZE_OVERFLOW.
+ */
+typedef struct _VAEncMiscParameterBufferMaxFrameSize {
+    /** \brief Type. Shall be set to #VAEncMiscParameterTypeMaxFrameSize. */
+    VAEncMiscParameterType      type;
+    /** \brief Maximum size of a frame (in bits). */
+    unsigned int                max_frame_size;
+} VAEncMiscParameterBufferMaxFrameSize;
+
+/**
+ * \brief Encoding quality level.
+ *
+ * The encoding quality could be set through this structure, if the implementation  
+ * supports multiple quality levels. The quality level set through this structure is 
+ * persistent over the entire coded sequence, or until a new structure is being sent.
+ * The quality level range can be queried through the VAConfigAttribEncQualityRange 
+ * attribute. A lower value means higher quality, and a value of 1 represents the highest 
+ * quality. The quality level setting is used as a trade-off between quality and speed/power 
+ * consumption, with higher quality corresponds to lower speed and higher power consumption. 
+ */
+typedef struct _VAEncMiscParameterBufferQualityLevel {
+    /** \brief Encoding quality level setting. When set to 0, default quality
+     * level is used.
+     */
+    unsigned int                quality_level;
+} VAEncMiscParameterBufferQualityLevel;
+
+/* 
+ * There will be cases where the bitstream buffer will not have enough room to hold
+ * the data for the entire slice, and the following flags will be used in the slice
+ * parameter to signal to the server for the possible cases.
+ * If a slice parameter buffer and slice data buffer pair is sent to the server with 
+ * the slice data partially in the slice data buffer (BEGIN and MIDDLE cases below), 
+ * then a slice parameter and data buffer needs to be sent again to complete this slice. 
+ */
+#define VA_SLICE_DATA_FLAG_ALL		0x00	/* whole slice is in the buffer */
+#define VA_SLICE_DATA_FLAG_BEGIN	0x01	/* The beginning of the slice is in the buffer but the end if not */
+#define VA_SLICE_DATA_FLAG_MIDDLE	0x02	/* Neither beginning nor end of the slice is in the buffer */
+#define VA_SLICE_DATA_FLAG_END		0x04	/* end of the slice is in the buffer */
+
+/* Codec-independent Slice Parameter Buffer base */
+typedef struct _VASliceParameterBufferBase
+{
+    unsigned int slice_data_size;	/* number of bytes in the slice data buffer for this slice */
+    unsigned int slice_data_offset;	/* the offset to the first byte of slice data */
+    unsigned int slice_data_flag;	/* see VA_SLICE_DATA_FLAG_XXX definitions */
+} VASliceParameterBufferBase;
+
+#include <va/va_dec_jpeg.h>
+
+/****************************
+ * MPEG-2 data structures
+ ****************************/
+ 
+/* MPEG-2 Picture Parameter Buffer */
+/* 
+ * For each frame or field, and before any slice data, a single
+ * picture parameter buffer must be send.
+ */
+typedef struct _VAPictureParameterBufferMPEG2
+{
+    unsigned short horizontal_size;
+    unsigned short vertical_size;
+    VASurfaceID forward_reference_picture;
+    VASurfaceID backward_reference_picture;
+    /* meanings of the following fields are the same as in the standard */
+    int picture_coding_type;
+    int f_code; /* pack all four fcode into this */
+    union {
+        struct {
+            unsigned int intra_dc_precision		: 2; 
+            unsigned int picture_structure		: 2; 
+            unsigned int top_field_first		: 1; 
+            unsigned int frame_pred_frame_dct		: 1; 
+            unsigned int concealment_motion_vectors	: 1;
+            unsigned int q_scale_type			: 1;
+            unsigned int intra_vlc_format		: 1;
+            unsigned int alternate_scan			: 1;
+            unsigned int repeat_first_field		: 1;
+            unsigned int progressive_frame		: 1;
+            unsigned int is_first_field			: 1; /* indicate whether the current field
+                                                              * is the first field for field picture
+                                                              */
+        } bits;
+        unsigned int value;
+    } picture_coding_extension;
+} VAPictureParameterBufferMPEG2;
+
+/** MPEG-2 Inverse Quantization Matrix Buffer */
+typedef struct _VAIQMatrixBufferMPEG2
+{
+    /** \brief Same as the MPEG-2 bitstream syntax element. */
+    int load_intra_quantiser_matrix;
+    /** \brief Same as the MPEG-2 bitstream syntax element. */
+    int load_non_intra_quantiser_matrix;
+    /** \brief Same as the MPEG-2 bitstream syntax element. */
+    int load_chroma_intra_quantiser_matrix;
+    /** \brief Same as the MPEG-2 bitstream syntax element. */
+    int load_chroma_non_intra_quantiser_matrix;
+    /** \brief Luminance intra matrix, in zig-zag scan order. */
+    unsigned char intra_quantiser_matrix[64];
+    /** \brief Luminance non-intra matrix, in zig-zag scan order. */
+    unsigned char non_intra_quantiser_matrix[64];
+    /** \brief Chroma intra matrix, in zig-zag scan order. */
+    unsigned char chroma_intra_quantiser_matrix[64];
+    /** \brief Chroma non-intra matrix, in zig-zag scan order. */
+    unsigned char chroma_non_intra_quantiser_matrix[64];
+} VAIQMatrixBufferMPEG2;
+
+/** MPEG-2 Slice Parameter Buffer */
+typedef struct _VASliceParameterBufferMPEG2
+{
+    unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */
+    unsigned int slice_data_offset;/* the offset to the first byte of slice data */
+    unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */
+    unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */
+    unsigned int slice_horizontal_position;
+    unsigned int slice_vertical_position;
+    int quantiser_scale_code;
+    int intra_slice_flag;
+} VASliceParameterBufferMPEG2;
+
+/** MPEG-2 Macroblock Parameter Buffer */
+typedef struct _VAMacroblockParameterBufferMPEG2
+{
+    unsigned short macroblock_address;
+    /* 
+     * macroblock_address (in raster scan order)
+     * top-left: 0
+     * bottom-right: picture-height-in-mb*picture-width-in-mb - 1
+     */
+    unsigned char macroblock_type;  /* see definition below */
+    union {
+        struct {
+            unsigned int frame_motion_type		: 2; 
+            unsigned int field_motion_type		: 2; 
+            unsigned int dct_type			: 1; 
+        } bits;
+        unsigned int value;
+    } macroblock_modes;
+    unsigned char motion_vertical_field_select; 
+    /* 
+     * motion_vertical_field_select:
+     * see section 6.3.17.2 in the spec
+     * only the lower 4 bits are used
+     * bit 0: first vector forward
+     * bit 1: first vector backward
+     * bit 2: second vector forward
+     * bit 3: second vector backward
+     */
+    short PMV[2][2][2]; /* see Table 7-7 in the spec */
+    unsigned short coded_block_pattern;
+    /* 
+     * The bitplanes for coded_block_pattern are described 
+     * in Figure 6.10-12 in the spec
+     */
+     
+    /* Number of skipped macroblocks after this macroblock */
+    unsigned short num_skipped_macroblocks;
+} VAMacroblockParameterBufferMPEG2;
+
+/* 
+ * OR'd flags for macroblock_type (section 6.3.17.1 in the spec)
+ */
+#define VA_MB_TYPE_MOTION_FORWARD	0x02
+#define VA_MB_TYPE_MOTION_BACKWARD	0x04
+#define VA_MB_TYPE_MOTION_PATTERN	0x08
+#define VA_MB_TYPE_MOTION_INTRA		0x10
+
+/**
+ * MPEG-2 Residual Data Buffer 
+ * For each macroblock, there wil be 64 shorts (16-bit) in the 
+ * residual data buffer
+ */
+
+/****************************
+ * MPEG-4 Part 2 data structures
+ ****************************/
+ 
+/* MPEG-4 Picture Parameter Buffer */
+/* 
+ * For each frame or field, and before any slice data, a single
+ * picture parameter buffer must be send.
+ */
+typedef struct _VAPictureParameterBufferMPEG4
+{
+    unsigned short vop_width;
+    unsigned short vop_height;
+    VASurfaceID forward_reference_picture;
+    VASurfaceID backward_reference_picture;
+    union {
+        struct {
+            unsigned int short_video_header		: 1; 
+            unsigned int chroma_format			: 2; 
+            unsigned int interlaced			: 1; 
+            unsigned int obmc_disable			: 1; 
+            unsigned int sprite_enable			: 2; 
+            unsigned int sprite_warping_accuracy	: 2; 
+            unsigned int quant_type			: 1; 
+            unsigned int quarter_sample			: 1; 
+            unsigned int data_partitioned		: 1; 
+            unsigned int reversible_vlc			: 1; 
+            unsigned int resync_marker_disable		: 1; 
+        } bits;
+        unsigned int value;
+    } vol_fields;
+    unsigned char no_of_sprite_warping_points;
+    short sprite_trajectory_du[3];
+    short sprite_trajectory_dv[3];
+    unsigned char quant_precision;
+    union {
+        struct {
+            unsigned int vop_coding_type		: 2; 
+            unsigned int backward_reference_vop_coding_type	: 2; 
+            unsigned int vop_rounding_type		: 1; 
+            unsigned int intra_dc_vlc_thr		: 3; 
+            unsigned int top_field_first		: 1; 
+            unsigned int alternate_vertical_scan_flag	: 1; 
+        } bits;
+        unsigned int value;
+    } vop_fields;
+    unsigned char vop_fcode_forward;
+    unsigned char vop_fcode_backward;
+    unsigned short vop_time_increment_resolution;
+    /* short header related */
+    unsigned char num_gobs_in_vop;
+    unsigned char num_macroblocks_in_gob;
+    /* for direct mode prediction */
+    short TRB;
+    short TRD;
+} VAPictureParameterBufferMPEG4;
+
+/** MPEG-4 Inverse Quantization Matrix Buffer */
+typedef struct _VAIQMatrixBufferMPEG4
+{
+    /** Same as the MPEG-4:2 bitstream syntax element. */
+    int load_intra_quant_mat;
+    /** Same as the MPEG-4:2 bitstream syntax element. */
+    int load_non_intra_quant_mat;
+    /** The matrix for intra blocks, in zig-zag scan order. */
+    unsigned char intra_quant_mat[64];
+    /** The matrix for non-intra blocks, in zig-zag scan order. */
+    unsigned char non_intra_quant_mat[64];
+} VAIQMatrixBufferMPEG4;
+
+/** MPEG-4 Slice Parameter Buffer */
+typedef struct _VASliceParameterBufferMPEG4
+{
+    unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */
+    unsigned int slice_data_offset;/* the offset to the first byte of slice data */
+    unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */
+    unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */
+    unsigned int macroblock_number;
+    int quant_scale;
+} VASliceParameterBufferMPEG4;
+
+/**
+ VC-1 data structures
+*/
+
+typedef enum   /* see 7.1.1.32 */
+{
+    VAMvMode1Mv                        = 0,
+    VAMvMode1MvHalfPel                 = 1,
+    VAMvMode1MvHalfPelBilinear         = 2,
+    VAMvModeMixedMv                    = 3,
+    VAMvModeIntensityCompensation      = 4 
+} VAMvModeVC1;
+
+/** VC-1 Picture Parameter Buffer */
+/* 
+ * For each picture, and before any slice data, a picture parameter
+ * buffer must be send. Multiple picture parameter buffers may be
+ * sent for a single picture. In that case picture parameters will
+ * apply to all slice data that follow it until a new picture
+ * parameter buffer is sent.
+ *
+ * Notes:
+ *   pic_quantizer_type should be set to the applicable quantizer
+ *   type as defined by QUANTIZER (J.1.19) and either
+ *   PQUANTIZER (7.1.1.8) or PQINDEX (7.1.1.6)
+ */
+typedef struct _VAPictureParameterBufferVC1
+{
+    VASurfaceID forward_reference_picture;
+    VASurfaceID backward_reference_picture;
+    /* if out-of-loop post-processing is done on the render
+       target, then we need to keep the in-loop decoded 
+       picture as a reference picture */
+    VASurfaceID inloop_decoded_picture;
+
+    /* sequence layer for AP or meta data for SP and MP */
+    union {
+        struct {
+            unsigned int pulldown	: 1; /* SEQUENCE_LAYER::PULLDOWN */
+            unsigned int interlace	: 1; /* SEQUENCE_LAYER::INTERLACE */
+            unsigned int tfcntrflag	: 1; /* SEQUENCE_LAYER::TFCNTRFLAG */
+            unsigned int finterpflag	: 1; /* SEQUENCE_LAYER::FINTERPFLAG */
+            unsigned int psf		: 1; /* SEQUENCE_LAYER::PSF */
+            unsigned int multires	: 1; /* METADATA::MULTIRES */
+            unsigned int overlap	: 1; /* METADATA::OVERLAP */
+            unsigned int syncmarker	: 1; /* METADATA::SYNCMARKER */
+            unsigned int rangered	: 1; /* METADATA::RANGERED */
+            unsigned int max_b_frames	: 3; /* METADATA::MAXBFRAMES */
+            unsigned int profile	: 2; /* SEQUENCE_LAYER::PROFILE or The MSB of METADATA::PROFILE */
+        } bits;
+        unsigned int value;
+    } sequence_fields;
+
+    unsigned short coded_width;		/* ENTRY_POINT_LAYER::CODED_WIDTH */
+    unsigned short coded_height;	/* ENTRY_POINT_LAYER::CODED_HEIGHT */
+    union {
+	struct {
+            unsigned int broken_link	: 1; /* ENTRY_POINT_LAYER::BROKEN_LINK */
+            unsigned int closed_entry	: 1; /* ENTRY_POINT_LAYER::CLOSED_ENTRY */
+            unsigned int panscan_flag	: 1; /* ENTRY_POINT_LAYER::PANSCAN_FLAG */
+            unsigned int loopfilter	: 1; /* ENTRY_POINT_LAYER::LOOPFILTER */
+	} bits;
+	unsigned int value;
+    } entrypoint_fields;
+    unsigned char conditional_overlap_flag; /* ENTRY_POINT_LAYER::CONDOVER */
+    unsigned char fast_uvmc_flag;	/* ENTRY_POINT_LAYER::FASTUVMC */
+    union {
+        struct {
+            unsigned int luma_flag	: 1; /* ENTRY_POINT_LAYER::RANGE_MAPY_FLAG */
+            unsigned int luma		: 3; /* ENTRY_POINT_LAYER::RANGE_MAPY */
+            unsigned int chroma_flag	: 1; /* ENTRY_POINT_LAYER::RANGE_MAPUV_FLAG */
+            unsigned int chroma		: 3; /* ENTRY_POINT_LAYER::RANGE_MAPUV */
+        } bits;
+        unsigned int value;
+    } range_mapping_fields;
+
+    unsigned char b_picture_fraction;	/* PICTURE_LAYER::BFRACTION */
+    unsigned char cbp_table;		/* PICTURE_LAYER::CBPTAB/ICBPTAB */
+    unsigned char mb_mode_table;	/* PICTURE_LAYER::MBMODETAB */
+    unsigned char range_reduction_frame;/* PICTURE_LAYER::RANGEREDFRM */
+    unsigned char rounding_control;	/* PICTURE_LAYER::RNDCTRL */
+    unsigned char post_processing;	/* PICTURE_LAYER::POSTPROC */
+    unsigned char picture_resolution_index;	/* PICTURE_LAYER::RESPIC */
+    unsigned char luma_scale;		/* PICTURE_LAYER::LUMSCALE */
+    unsigned char luma_shift;		/* PICTURE_LAYER::LUMSHIFT */
+    union {
+        struct {
+            unsigned int picture_type		: 3; /* PICTURE_LAYER::PTYPE */
+            unsigned int frame_coding_mode	: 3; /* PICTURE_LAYER::FCM */
+            unsigned int top_field_first	: 1; /* PICTURE_LAYER::TFF */
+            unsigned int is_first_field		: 1; /* set to 1 if it is the first field */
+            unsigned int intensity_compensation	: 1; /* PICTURE_LAYER::INTCOMP */
+        } bits;
+        unsigned int value;
+    } picture_fields;
+    union {
+        struct {
+            unsigned int mv_type_mb	: 1; 	/* PICTURE::MVTYPEMB */
+            unsigned int direct_mb	: 1; 	/* PICTURE::DIRECTMB */
+            unsigned int skip_mb	: 1; 	/* PICTURE::SKIPMB */
+            unsigned int field_tx	: 1; 	/* PICTURE::FIELDTX */
+            unsigned int forward_mb	: 1;	/* PICTURE::FORWARDMB */
+            unsigned int ac_pred	: 1;	/* PICTURE::ACPRED */
+            unsigned int overflags	: 1;	/* PICTURE::OVERFLAGS */
+        } flags;
+        unsigned int value;
+    } raw_coding;
+    union {
+        struct {
+            unsigned int bp_mv_type_mb   : 1;    /* PICTURE::MVTYPEMB */
+            unsigned int bp_direct_mb    : 1;    /* PICTURE::DIRECTMB */
+            unsigned int bp_skip_mb      : 1;    /* PICTURE::SKIPMB */  
+            unsigned int bp_field_tx     : 1;    /* PICTURE::FIELDTX */ 
+            unsigned int bp_forward_mb   : 1;    /* PICTURE::FORWARDMB */
+            unsigned int bp_ac_pred      : 1;    /* PICTURE::ACPRED */   
+            unsigned int bp_overflags    : 1;    /* PICTURE::OVERFLAGS */
+        } flags;
+        unsigned int value;
+    } bitplane_present; /* signal what bitplane is being passed via the bitplane buffer */
+    union {
+        struct {
+            unsigned int reference_distance_flag : 1;/* PICTURE_LAYER::REFDIST_FLAG */
+            unsigned int reference_distance	: 5;/* PICTURE_LAYER::REFDIST */
+            unsigned int num_reference_pictures: 1;/* PICTURE_LAYER::NUMREF */
+            unsigned int reference_field_pic_indicator	: 1;/* PICTURE_LAYER::REFFIELD */
+        } bits;
+        unsigned int value;
+    } reference_fields;
+    union {
+        struct {
+            unsigned int mv_mode		: 3; /* PICTURE_LAYER::MVMODE */
+            unsigned int mv_mode2		: 3; /* PICTURE_LAYER::MVMODE2 */
+            unsigned int mv_table		: 3; /* PICTURE_LAYER::MVTAB/IMVTAB */
+            unsigned int two_mv_block_pattern_table: 2; /* PICTURE_LAYER::2MVBPTAB */
+            unsigned int four_mv_switch		: 1; /* PICTURE_LAYER::4MVSWITCH */
+            unsigned int four_mv_block_pattern_table : 2; /* PICTURE_LAYER::4MVBPTAB */
+            unsigned int extended_mv_flag	: 1; /* ENTRY_POINT_LAYER::EXTENDED_MV */
+            unsigned int extended_mv_range	: 2; /* PICTURE_LAYER::MVRANGE */
+            unsigned int extended_dmv_flag	: 1; /* ENTRY_POINT_LAYER::EXTENDED_DMV */
+            unsigned int extended_dmv_range	: 2; /* PICTURE_LAYER::DMVRANGE */
+        } bits;
+        unsigned int value;
+    } mv_fields;
+    union {
+        struct {
+            unsigned int dquant	: 2; 	/* ENTRY_POINT_LAYER::DQUANT */
+            unsigned int quantizer     : 2; 	/* ENTRY_POINT_LAYER::QUANTIZER */
+            unsigned int half_qp	: 1; 	/* PICTURE_LAYER::HALFQP */
+            unsigned int pic_quantizer_scale : 5;/* PICTURE_LAYER::PQUANT */
+            unsigned int pic_quantizer_type : 1;/* PICTURE_LAYER::PQUANTIZER */
+            unsigned int dq_frame	: 1; 	/* VOPDQUANT::DQUANTFRM */
+            unsigned int dq_profile	: 2; 	/* VOPDQUANT::DQPROFILE */
+            unsigned int dq_sb_edge	: 2; 	/* VOPDQUANT::DQSBEDGE */
+            unsigned int dq_db_edge 	: 2; 	/* VOPDQUANT::DQDBEDGE */
+            unsigned int dq_binary_level : 1; 	/* VOPDQUANT::DQBILEVEL */
+            unsigned int alt_pic_quantizer : 5;/* VOPDQUANT::ALTPQUANT */
+        } bits;
+        unsigned int value;
+    } pic_quantizer_fields;
+    union {
+        struct {
+            unsigned int variable_sized_transform_flag	: 1;/* ENTRY_POINT_LAYER::VSTRANSFORM */
+            unsigned int mb_level_transform_type_flag	: 1;/* PICTURE_LAYER::TTMBF */
+            unsigned int frame_level_transform_type	: 2;/* PICTURE_LAYER::TTFRM */
+            unsigned int transform_ac_codingset_idx1	: 2;/* PICTURE_LAYER::TRANSACFRM */
+            unsigned int transform_ac_codingset_idx2	: 2;/* PICTURE_LAYER::TRANSACFRM2 */
+            unsigned int intra_transform_dc_table	: 1;/* PICTURE_LAYER::TRANSDCTAB */
+        } bits;
+        unsigned int value;
+    } transform_fields;
+} VAPictureParameterBufferVC1;
+
+/** VC-1 Bitplane Buffer
+There will be at most three bitplanes coded in any picture header. To send 
+the bitplane data more efficiently, each byte is divided in two nibbles, with
+each nibble carrying three bitplanes for one macroblock.  The following table
+shows the bitplane data arrangement within each nibble based on the picture
+type.
+
+Picture Type	Bit3		Bit2		Bit1		Bit0
+I or BI				OVERFLAGS	ACPRED		FIELDTX
+P				MYTYPEMB	SKIPMB		DIRECTMB
+B				FORWARDMB	SKIPMB		DIRECTMB
+
+Within each byte, the lower nibble is for the first MB and the upper nibble is 
+for the second MB.  E.g. the lower nibble of the first byte in the bitplane
+buffer is for Macroblock #1 and the upper nibble of the first byte is for 
+Macroblock #2 in the first row.
+*/
+
+/* VC-1 Slice Parameter Buffer */
+typedef struct _VASliceParameterBufferVC1
+{
+    unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */
+    unsigned int slice_data_offset;/* the offset to the first byte of slice data */
+    unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */
+    unsigned int macroblock_offset;/* the offset to the first bit of MB from the first byte of slice data */
+    unsigned int slice_vertical_position;
+} VASliceParameterBufferVC1;
+
+/* VC-1 Slice Data Buffer */
+/* 
+This is simplely a buffer containing raw bit-stream bytes 
+*/
+
+/****************************
+ * H.264/AVC data structures
+ ****************************/
+
+typedef struct _VAPictureH264
+{
+    VASurfaceID picture_id;
+    unsigned int frame_idx;
+    unsigned int flags;
+    signed int TopFieldOrderCnt;
+    signed int BottomFieldOrderCnt;
+} VAPictureH264;
+/* flags in VAPictureH264 could be OR of the following */
+#define VA_PICTURE_H264_INVALID			0x00000001
+#define VA_PICTURE_H264_TOP_FIELD		0x00000002
+#define VA_PICTURE_H264_BOTTOM_FIELD		0x00000004
+#define VA_PICTURE_H264_SHORT_TERM_REFERENCE	0x00000008
+#define VA_PICTURE_H264_LONG_TERM_REFERENCE	0x00000010
+
+/** H.264 Picture Parameter Buffer */
+/* 
+ * For each picture, and before any slice data, a single
+ * picture parameter buffer must be send.
+ */
+typedef struct _VAPictureParameterBufferH264
+{
+    VAPictureH264 CurrPic;
+    VAPictureH264 ReferenceFrames[16];	/* in DPB */
+    unsigned short picture_width_in_mbs_minus1;
+    unsigned short picture_height_in_mbs_minus1;
+    unsigned char bit_depth_luma_minus8;
+    unsigned char bit_depth_chroma_minus8;
+    unsigned char num_ref_frames;
+    union {
+        struct {
+            unsigned int chroma_format_idc			: 2; 
+            unsigned int residual_colour_transform_flag		: 1; 
+            unsigned int gaps_in_frame_num_value_allowed_flag	: 1; 
+            unsigned int frame_mbs_only_flag			: 1; 
+            unsigned int mb_adaptive_frame_field_flag		: 1; 
+            unsigned int direct_8x8_inference_flag		: 1; 
+            unsigned int MinLumaBiPredSize8x8			: 1; /* see A.3.3.2 */
+            unsigned int log2_max_frame_num_minus4		: 4;
+            unsigned int pic_order_cnt_type			: 2;
+            unsigned int log2_max_pic_order_cnt_lsb_minus4	: 4;
+            unsigned int delta_pic_order_always_zero_flag	: 1;
+        } bits;
+        unsigned int value;
+    } seq_fields;
+    unsigned char num_slice_groups_minus1;
+    unsigned char slice_group_map_type;
+    unsigned short slice_group_change_rate_minus1;
+    signed char pic_init_qp_minus26;
+    signed char pic_init_qs_minus26;
+    signed char chroma_qp_index_offset;
+    signed char second_chroma_qp_index_offset;
+    union {
+        struct {
+            unsigned int entropy_coding_mode_flag	: 1;
+            unsigned int weighted_pred_flag		: 1;
+            unsigned int weighted_bipred_idc		: 2;
+            unsigned int transform_8x8_mode_flag	: 1;
+            unsigned int field_pic_flag			: 1;
+            unsigned int constrained_intra_pred_flag	: 1;
+            unsigned int pic_order_present_flag			: 1;
+            unsigned int deblocking_filter_control_present_flag : 1;
+            unsigned int redundant_pic_cnt_present_flag		: 1;
+            unsigned int reference_pic_flag			: 1; /* nal_ref_idc != 0 */
+        } bits;
+        unsigned int value;
+    } pic_fields;
+    unsigned short frame_num;
+} VAPictureParameterBufferH264;
+
+/** H.264 Inverse Quantization Matrix Buffer */
+typedef struct _VAIQMatrixBufferH264
+{
+    /** \brief 4x4 scaling list, in raster scan order. */
+    unsigned char ScalingList4x4[6][16];
+    /** \brief 8x8 scaling list, in raster scan order. */
+    unsigned char ScalingList8x8[2][64];
+} VAIQMatrixBufferH264;
+
+/**
+ * H.264 Slice Group Map Buffer 
+ * When VAPictureParameterBufferH264::num_slice_group_minus1 is not equal to 0,
+ * A slice group map buffer should be sent for each picture if required. The buffer
+ * is sent only when there is a change in the mapping values.
+ * The slice group map buffer map "map units" to slice groups as specified in 
+ * section 8.2.2 of the H.264 spec. The buffer will contain one byte for each macroblock 
+ * in raster scan order
+ */ 
+
+/** H.264 Slice Parameter Buffer */
+typedef struct _VASliceParameterBufferH264
+{
+    unsigned int slice_data_size;/* number of bytes in the slice data buffer for this slice */
+    /** \brief Byte offset to the NAL Header Unit for this slice. */
+    unsigned int slice_data_offset;
+    unsigned int slice_data_flag; /* see VA_SLICE_DATA_FLAG_XXX defintions */
+    /**
+     * \brief Bit offset from NAL Header Unit to the begining of slice_data().
+     *
+     * This bit offset is relative to and includes the NAL unit byte
+     * and represents the number of bits parsed in the slice_header()
+     * after the removal of any emulation prevention bytes in
+     * there. However, the slice data buffer passed to the hardware is
+     * the original bitstream, thus including any emulation prevention
+     * bytes.
+     */
+    unsigned short slice_data_bit_offset;
+    unsigned short first_mb_in_slice;
+    unsigned char slice_type;
+    unsigned char direct_spatial_mv_pred_flag;
+    unsigned char num_ref_idx_l0_active_minus1;
+    unsigned char num_ref_idx_l1_active_minus1;
+    unsigned char cabac_init_idc;
+    char slice_qp_delta;
+    unsigned char disable_deblocking_filter_idc;
+    char slice_alpha_c0_offset_div2;
+    char slice_beta_offset_div2;
+    VAPictureH264 RefPicList0[32];	/* See 8.2.4.2 */
+    VAPictureH264 RefPicList1[32];	/* See 8.2.4.2 */
+    unsigned char luma_log2_weight_denom;
+    unsigned char chroma_log2_weight_denom;
+    unsigned char luma_weight_l0_flag;
+    short luma_weight_l0[32];
+    short luma_offset_l0[32];
+    unsigned char chroma_weight_l0_flag;
+    short chroma_weight_l0[32][2];
+    short chroma_offset_l0[32][2];
+    unsigned char luma_weight_l1_flag;
+    short luma_weight_l1[32];
+    short luma_offset_l1[32];
+    unsigned char chroma_weight_l1_flag;
+    short chroma_weight_l1[32][2];
+    short chroma_offset_l1[32][2];
+} VASliceParameterBufferH264;
+
+/****************************
+ * Common encode data structures 
+ ****************************/
+typedef enum
+{
+    VAEncPictureTypeIntra		= 0,
+    VAEncPictureTypePredictive		= 1,
+    VAEncPictureTypeBidirectional	= 2,
+} VAEncPictureType;
+
+/* Encode Slice Parameter Buffer */
+typedef struct _VAEncSliceParameterBuffer
+{
+    unsigned int start_row_number;	/* starting MB row number for this slice */
+    unsigned int slice_height;	/* slice height measured in MB */
+    union {
+        struct {
+            unsigned int is_intra	: 1;
+            unsigned int disable_deblocking_filter_idc : 2;
+            unsigned int uses_long_term_ref		:1;
+            unsigned int is_long_term_ref		:1;
+        } bits;
+        unsigned int value;
+    } slice_flags;
+} VAEncSliceParameterBuffer;
+
+
+/****************************
+ * H.263 specific encode data structures
+ ****************************/
+
+typedef struct _VAEncSequenceParameterBufferH263
+{
+    unsigned int intra_period;
+    unsigned int bits_per_second;
+    unsigned int frame_rate;
+    unsigned int initial_qp;
+    unsigned int min_qp;
+} VAEncSequenceParameterBufferH263;
+
+typedef struct _VAEncPictureParameterBufferH263
+{
+    VASurfaceID reference_picture;
+    VASurfaceID reconstructed_picture;
+    VABufferID coded_buf;
+    unsigned short picture_width;
+    unsigned short picture_height;
+    VAEncPictureType picture_type;
+} VAEncPictureParameterBufferH263;
+
+/****************************
+ * MPEG-4 specific encode data structures
+ ****************************/
+
+typedef struct _VAEncSequenceParameterBufferMPEG4
+{
+    unsigned char profile_and_level_indication;
+    unsigned int intra_period;
+    unsigned int video_object_layer_width;
+    unsigned int video_object_layer_height;
+    unsigned int vop_time_increment_resolution;
+    unsigned int fixed_vop_rate;
+    unsigned int fixed_vop_time_increment;
+    unsigned int bits_per_second;
+    unsigned int frame_rate;
+    unsigned int initial_qp;
+    unsigned int min_qp;
+} VAEncSequenceParameterBufferMPEG4;
+
+typedef struct _VAEncPictureParameterBufferMPEG4
+{
+    VASurfaceID reference_picture;
+    VASurfaceID reconstructed_picture;
+    VABufferID coded_buf;
+    unsigned short picture_width;
+    unsigned short picture_height;
+    unsigned int modulo_time_base; /* number of 1s */
+    unsigned int vop_time_increment;
+    VAEncPictureType picture_type;
+} VAEncPictureParameterBufferMPEG4;
+
+
+
+/** Buffer functions */
+
+/**
+ * Creates a buffer for "num_elements" elements of "size" bytes and 
+ * initalize with "data".
+ * if "data" is null, then the contents of the buffer data store
+ * are undefined.
+ * Basically there are two ways to get buffer data to the server side. One is 
+ * to call vaCreateBuffer() with a non-null "data", which results the data being
+ * copied to the data store on the server side.  A different method that 
+ * eliminates this copy is to pass null as "data" when calling vaCreateBuffer(),
+ * and then use vaMapBuffer() to map the data store from the server side to the
+ * client address space for access.
+ *  Note: image buffers are created by the library, not the client. Please see 
+ *        vaCreateImage on how image buffers are managed.
+ */
+VAStatus vaCreateBuffer (
+    VADisplay dpy,
+    VAContextID context,
+    VABufferType type,	/* in */
+    unsigned int size,	/* in */
+    unsigned int num_elements, /* in */
+    void *data,		/* in */
+    VABufferID *buf_id	/* out */
+);
+
+/**
+ * Convey to the server how many valid elements are in the buffer. 
+ * e.g. if multiple slice parameters are being held in a single buffer,
+ * this will communicate to the server the number of slice parameters
+ * that are valid in the buffer.
+ */
+VAStatus vaBufferSetNumElements (
+    VADisplay dpy,
+    VABufferID buf_id,	/* in */
+    unsigned int num_elements /* in */
+);
+
+
+/**
+ * device independent data structure for codedbuffer
+ */
+
+/* 
+ * FICTURE_AVE_QP(bit7-0): The average Qp value used during this frame
+ * LARGE_SLICE(bit8):At least one slice in the current frame was large
+ *              enough for the encoder to attempt to limit its size.
+ * SLICE_OVERFLOW(bit9): At least one slice in the current frame has
+ *              exceeded the maximum slice size specified.
+ * BITRATE_OVERFLOW(bit10): The peak bitrate was exceeded for this frame.
+ * BITRATE_HIGH(bit11): The frame size got within the safety margin of the maximum size (VCM only)
+ * AIR_MB_OVER_THRESHOLD: the number of MBs adapted to Intra MB
+ */
+#define VA_CODED_BUF_STATUS_PICTURE_AVE_QP_MASK         0xff
+#define VA_CODED_BUF_STATUS_LARGE_SLICE_MASK            0x100
+#define VA_CODED_BUF_STATUS_SLICE_OVERFLOW_MASK         0x200
+#define VA_CODED_BUF_STATUS_BITRATE_OVERFLOW		0x400
+#define VA_CODED_BUF_STATUS_BITRATE_HIGH		0x800
+/**
+ * \brief The frame has exceeded the maximum requested size.
+ *
+ * This flag indicates that the encoded frame size exceeds the value
+ * specified through a misc parameter buffer of type
+ * #VAEncMiscParameterTypeMaxFrameSize.
+ */
+#define VA_CODED_BUF_STATUS_FRAME_SIZE_OVERFLOW         0x1000
+#define VA_CODED_BUF_STATUS_AIR_MB_OVER_THRESHOLD	0xff0000
+
+/**
+ * \brief The coded buffer segment contains a single NAL unit. 
+ *
+ * This flag indicates that the coded buffer segment contains a
+ * single NAL unit. This flag might be useful to the user for 
+ * processing the coded buffer.
+ */
+#define VA_CODED_BUF_STATUS_SINGLE_NALU                 0x10000000	
+
+/**
+ * \brief Coded buffer segment.
+ *
+ * #VACodedBufferSegment is an element of a linked list describing
+ * some information on the coded buffer. The coded buffer segment
+ * could contain either a single NAL unit, or more than one NAL unit. 
+ * It is recommended (but not required) to return a single NAL unit 
+ * in a coded buffer segment, and the implementation should set the 
+ * VA_CODED_BUF_STATUS_SINGLE_NALU status flag if that is the case.
+ */
+typedef  struct _VACodedBufferSegment  {
+    /**
+     * \brief Size of the data buffer in this segment (in bytes).
+     */
+    unsigned int        size;
+    /** \brief Bit offset into the data buffer where the video data starts. */
+    unsigned int        bit_offset;
+    /** \brief Status set by the driver. See \c VA_CODED_BUF_STATUS_*. */
+    unsigned int        status;
+    /** \brief Reserved for future use. */
+    unsigned int        reserved;
+    /** \brief Pointer to the start of the data buffer. */
+    void               *buf;
+    /**
+     * \brief Pointer to the next #VACodedBufferSegment element,
+     * or \c NULL if there is none.
+     */
+    void               *next;
+} VACodedBufferSegment;
+     
+/**
+ * Map data store of the buffer into the client's address space
+ * vaCreateBuffer() needs to be called with "data" set to NULL before
+ * calling vaMapBuffer()
+ *
+ * if buffer type is VAEncCodedBufferType, pbuf points to link-list of
+ * VACodedBufferSegment, and the list is terminated if "next" is NULL
+ */
+VAStatus vaMapBuffer (
+    VADisplay dpy,
+    VABufferID buf_id,	/* in */
+    void **pbuf 	/* out */
+);
+
+/**
+ * After client making changes to a mapped data store, it needs to
+ * "Unmap" it to let the server know that the data is ready to be
+ * consumed by the server
+ */
+VAStatus vaUnmapBuffer (
+    VADisplay dpy,
+    VABufferID buf_id	/* in */
+);
+
+/**
+ * After this call, the buffer is deleted and this buffer_id is no longer valid
+ * Only call this if the buffer is not going to be passed to vaRenderBuffer
+ */
+VAStatus vaDestroyBuffer (
+    VADisplay dpy,
+    VABufferID buffer_id
+);
+
+/** \brief VA buffer information */
+typedef struct {
+    /** \brief Buffer handle */
+    uintptr_t           handle;
+    /** \brief Buffer type (See \ref VABufferType). */
+    uint32_t            type;
+    /**
+     * \brief Buffer memory type (See \ref VASurfaceAttribMemoryType).
+     *
+     * On input to vaAcquireBufferHandle(), this field can serve as a hint
+     * to specify the set of memory types the caller is interested in.
+     * On successful return from vaAcquireBufferHandle(), the field is
+     * updated with the best matching memory type.
+     */
+    uint32_t            mem_type;
+    /** \brief Size of the underlying buffer. */
+    size_t              mem_size;
+} VABufferInfo;
+
+/**
+ * \brief Acquires buffer handle for external API usage
+ *
+ * Locks the VA buffer object \ref buf_id for external API usage like
+ * EGL or OpenCL (OCL). This function is a synchronization point. This
+ * means that any pending operation is guaranteed to be completed
+ * prior to returning from the function.
+ *
+ * If the referenced VA buffer object is the backing store of a VA
+ * surface, then this function acts as if vaSyncSurface() on the
+ * parent surface was called first.
+ *
+ * The \ref VABufferInfo argument shall be zero'ed on input. On
+ * successful output, the data structure is filled in with all the
+ * necessary buffer level implementation details like handle, type,
+ * memory type and memory size.
+ *
+ * Note: the external API implementation, or the application, can
+ * express the memory types it is interested in by filling in the \ref
+ * mem_type field accordingly. On successful output, the memory type
+ * that fits best the request and that was used is updated in the \ref
+ * VABufferInfo data structure. If none of the supplied memory types
+ * is supported, then a \ref VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE
+ * error is returned.
+ *
+ * The \ref VABufferInfo data is valid until vaReleaseBufferHandle()
+ * is called. Besides, no additional operation is allowed on any of
+ * the buffer parent object until vaReleaseBufferHandle() is called.
+ * e.g. decoding into a VA surface backed with the supplied VA buffer
+ * object \ref buf_id would fail with a \ref VA_STATUS_ERROR_SURFACE_BUSY
+ * error.
+ *
+ * Possible errors:
+ * - \ref VA_STATUS_ERROR_UNIMPLEMENTED: the VA driver implementation
+ *   does not support this interface
+ * - \ref VA_STATUS_ERROR_INVALID_DISPLAY: an invalid display was supplied
+ * - \ref VA_STATUS_ERROR_INVALID_BUFFER: an invalid buffer was supplied
+ * - \ref VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE: the implementation
+ *   does not support exporting buffers of the specified type
+ * - \ref VA_STATUS_ERROR_UNSUPPORTED_MEMORY_TYPE: none of the requested
+ *   memory types in \ref VABufferInfo.mem_type was supported
+ *
+ * @param[in] dpy               the VA display
+ * @param[in] buf_id            the VA buffer
+ * @param[in,out] buf_info      the associated VA buffer information
+ * @return VA_STATUS_SUCCESS if successful
+ */
+VAStatus
+vaAcquireBufferHandle(VADisplay dpy, VABufferID buf_id, VABufferInfo *buf_info);
+
+/**
+ * \brief Releases buffer after usage from external API
+ *
+ * Unlocks the VA buffer object \ref buf_id from external API usage like
+ * EGL or OpenCL (OCL). This function is a synchronization point. This
+ * means that any pending operation is guaranteed to be completed
+ * prior to returning from the function.
+ *
+ * The \ref VABufferInfo argument shall point to the original data
+ * structure that was obtained from vaAcquireBufferHandle(), unaltered.
+ * This is necessary so that the VA driver implementation could
+ * deallocate any resources that were needed.
+ *
+ * In any case, returning from this function invalidates any contents
+ * in \ref VABufferInfo. i.e. the underlyng buffer handle is no longer
+ * valid. Therefore, VA driver implementations are free to reset this
+ * data structure to safe defaults.
+ *
+ * Possible errors:
+ * - \ref VA_STATUS_ERROR_UNIMPLEMENTED: the VA driver implementation
+ *   does not support this interface
+ * - \ref VA_STATUS_ERROR_INVALID_DISPLAY: an invalid display was supplied
+ * - \ref VA_STATUS_ERROR_INVALID_BUFFER: an invalid buffer was supplied
+ * - \ref VA_STATUS_ERROR_UNSUPPORTED_BUFFERTYPE: the implementation
+ *   does not support exporting buffers of the specified type
+ *
+ * @param[in] dpy               the VA display
+ * @param[in] buf_id            the VA buffer
+ * @return VA_STATUS_SUCCESS if successful
+ */
+VAStatus
+vaReleaseBufferHandle(VADisplay dpy, VABufferID buf_id);
+
+/*
+Render (Decode) Pictures
+
+A picture represents either a frame or a field.
+
+The Begin/Render/End sequence sends the decode buffers to the server
+*/
+
+/**
+ * Get ready to decode a picture to a target surface
+ */
+VAStatus vaBeginPicture (
+    VADisplay dpy,
+    VAContextID context,
+    VASurfaceID render_target
+);
+
+/**
+ * Send decode buffers to the server.
+ * Buffers are automatically destroyed afterwards
+ */
+VAStatus vaRenderPicture (
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID *buffers,
+    int num_buffers
+);
+
+/**
+ * Make the end of rendering for a picture. 
+ * The server should start processing all pending operations for this 
+ * surface. This call is non-blocking. The client can start another 
+ * Begin/Render/End sequence on a different render target.
+ */
+VAStatus vaEndPicture (
+    VADisplay dpy,
+    VAContextID context
+);
+
+/*
+
+Synchronization 
+
+*/
+
+/**
+ * This function blocks until all pending operations on the render target
+ * have been completed.  Upon return it is safe to use the render target for a 
+ * different picture. 
+ */
+VAStatus vaSyncSurface (
+    VADisplay dpy,
+    VASurfaceID render_target
+);
+
+typedef enum
+{
+    VASurfaceRendering	= 1, /* Rendering in progress */ 
+    VASurfaceDisplaying	= 2, /* Displaying in progress (not safe to render into it) */ 
+                             /* this status is useful if surface is used as the source */
+                             /* of an overlay */
+    VASurfaceReady	= 4, /* not being rendered or displayed */
+    VASurfaceSkipped	= 8  /* Indicate a skipped frame during encode */
+} VASurfaceStatus;
+
+/**
+ * Find out any pending ops on the render target 
+ */
+VAStatus vaQuerySurfaceStatus (
+    VADisplay dpy,
+    VASurfaceID render_target,
+    VASurfaceStatus *status	/* out */
+);
+
+typedef enum
+{
+    VADecodeSliceMissing            = 0,
+    VADecodeMBError                 = 1,
+} VADecodeErrorType;
+
+/**
+ * Client calls vaQuerySurfaceError with VA_STATUS_ERROR_DECODING_ERROR, server side returns
+ * an array of structure VASurfaceDecodeMBErrors, and the array is terminated by setting status=-1
+*/
+typedef struct _VASurfaceDecodeMBErrors
+{
+    int status; /* 1 if hardware has returned detailed info below, -1 means this record is invalid */
+    unsigned int start_mb; /* start mb address with errors */
+    unsigned int end_mb;  /* end mb address with errors */
+    VADecodeErrorType decode_error_type;
+} VASurfaceDecodeMBErrors;
+
+/**
+ * After the application gets VA_STATUS_ERROR_DECODING_ERROR after calling vaSyncSurface(),
+ * it can call vaQuerySurfaceError to find out further details on the particular error.
+ * VA_STATUS_ERROR_DECODING_ERROR should be passed in as "error_status",
+ * upon the return, error_info will point to an array of _VASurfaceDecodeMBErrors structure,
+ * which is allocated and filled by libVA with detailed information on the missing or error macroblocks.
+ * The array is terminated if "status==-1" is detected.
+ */
+VAStatus vaQuerySurfaceError(
+    VADisplay dpy,
+    VASurfaceID surface,
+    VAStatus error_status,
+    void **error_info
+);
+
+/**
+ * Images and Subpictures
+ * VAImage is used to either get the surface data to client memory, or 
+ * to copy image data in client memory to a surface. 
+ * Both images, subpictures and surfaces follow the same 2D coordinate system where origin 
+ * is at the upper left corner with positive X to the right and positive Y down
+ */
+#define VA_FOURCC(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 ))
+
+/* 
+ * Pre-defined fourcc codes
+ */
+#define VA_FOURCC_NV12		0x3231564E
+#define VA_FOURCC_AI44		0x34344149
+#define VA_FOURCC_RGBA		0x41424752
+#define VA_FOURCC_RGBX		0x58424752
+#define VA_FOURCC_BGRA		0x41524742
+#define VA_FOURCC_BGRX		0x58524742
+#define VA_FOURCC_ARGB		0x42475241
+#define VA_FOURCC_XRGB		0x42475258
+#define VA_FOURCC_ABGR          0x52474241
+#define VA_FOURCC_XBGR          0x52474258
+#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_YV24          0x34325659
+#define VA_FOURCC_YV32          0x32335659
+#define VA_FOURCC_Y800          0x30303859
+#define VA_FOURCC_IMC3          0x33434D49
+#define VA_FOURCC_411P          0x50313134
+#define VA_FOURCC_422H          0x48323234
+#define VA_FOURCC_422V          0x56323234
+#define VA_FOURCC_444P          0x50343434
+#define VA_FOURCC_RGBP          0x50424752
+#define VA_FOURCC_BGRP          0x50524742
+#define VA_FOURCC_411R          0x52313134 /* rotated 411P */
+
+/* byte order */
+#define VA_LSB_FIRST		1
+#define VA_MSB_FIRST		2
+
+typedef struct _VAImageFormat
+{
+    unsigned int	fourcc;
+    unsigned int	byte_order; /* VA_LSB_FIRST, VA_MSB_FIRST */
+    unsigned int	bits_per_pixel;
+    /* for RGB formats */
+    unsigned int	depth; /* significant bits per pixel */
+    unsigned int	red_mask;
+    unsigned int	green_mask;
+    unsigned int	blue_mask;
+    unsigned int	alpha_mask;
+} VAImageFormat;
+
+typedef VAGenericID VAImageID;
+
+typedef struct _VAImage
+{
+    VAImageID		image_id; /* uniquely identify this image */
+    VAImageFormat	format;
+    VABufferID		buf;	/* image data buffer */
+    /*
+     * Image data will be stored in a buffer of type VAImageBufferType to facilitate
+     * data store on the server side for optimal performance. The buffer will be 
+     * created by the CreateImage function, and proper storage allocated based on the image
+     * size and format. This buffer is managed by the library implementation, and 
+     * accessed by the client through the buffer Map/Unmap functions.
+     */
+    unsigned short	width; 
+    unsigned short	height;
+    unsigned int	data_size;
+    unsigned int	num_planes;	/* can not be greater than 3 */
+    /* 
+     * An array indicating the scanline pitch in bytes for each plane.
+     * Each plane may have a different pitch. Maximum 3 planes for planar formats
+     */
+    unsigned int	pitches[3];
+    /* 
+     * An array indicating the byte offset from the beginning of the image data 
+     * to the start of each plane.
+     */
+    unsigned int	offsets[3];
+
+    /* The following fields are only needed for paletted formats */
+    int num_palette_entries;   /* set to zero for non-palette images */
+    /* 
+     * Each component is one byte and entry_bytes indicates the number of components in 
+     * each entry (eg. 3 for YUV palette entries). set to zero for non-palette images   
+     */
+    int entry_bytes; 
+    /*
+     * An array of ascii characters describing the order of the components within the bytes.
+     * Only entry_bytes characters of the string are used.
+     */
+    char component_order[4];
+} VAImage;
+
+/** Get maximum number of image formats supported by the implementation */
+int vaMaxNumImageFormats (
+    VADisplay dpy
+);
+
+/**
+ * Query supported image formats 
+ * The caller must provide a "format_list" array that can hold at
+ * least vaMaxNumImageFormats() entries. The actual number of formats
+ * returned in "format_list" is returned in "num_formats".
+ */
+VAStatus vaQueryImageFormats (
+    VADisplay dpy,
+    VAImageFormat *format_list,	/* out */
+    int *num_formats		/* out */
+);
+
+/**
+ * Create a VAImage structure
+ * The width and height fields returned in the VAImage structure may get 
+ * enlarged for some YUV formats. Upon return from this function, 
+ * image->buf has been created and proper storage allocated by the library. 
+ * The client can access the image through the Map/Unmap calls.
+ */
+VAStatus vaCreateImage (
+    VADisplay dpy,
+    VAImageFormat *format,
+    int width,
+    int height,
+    VAImage *image	/* out */
+);
+
+/**
+ * Should call DestroyImage before destroying the surface it is bound to
+ */
+VAStatus vaDestroyImage (
+    VADisplay dpy,
+    VAImageID image
+);
+
+VAStatus vaSetImagePalette (
+    VADisplay dpy,
+    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 
+);
+
+/**
+ * Retrive surface data into a VAImage
+ * Image must be in a format supported by the implementation
+ */
+VAStatus vaGetImage (
+    VADisplay dpy,
+    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
+);
+
+/**
+ * Copy data from a VAImage to a surface
+ * Image must be in a format supported by the implementation
+ * Returns a VA_STATUS_ERROR_SURFACE_BUSY if the surface
+ * shouldn't be rendered into when this is called
+ */
+VAStatus vaPutImage (
+    VADisplay dpy,
+    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
+);
+
+/**
+ * Derive an VAImage from an existing surface.
+ * This interface will derive a VAImage and corresponding image buffer from
+ * an existing VA Surface. The image buffer can then be mapped/unmapped for
+ * direct CPU access. This operation is only possible on implementations with
+ * direct rendering capabilities and internal surface formats that can be
+ * represented with a VAImage. When the operation is not possible this interface
+ * will return VA_STATUS_ERROR_OPERATION_FAILED. Clients should then fall back
+ * to using vaCreateImage + vaPutImage to accomplish the same task in an
+ * indirect manner.
+ *
+ * Implementations should only return success when the resulting image buffer
+ * would be useable with vaMap/Unmap.
+ *
+ * When directly accessing a surface special care must be taken to insure
+ * proper synchronization with the graphics hardware. Clients should call
+ * vaQuerySurfaceStatus to insure that a surface is not the target of concurrent
+ * rendering or currently being displayed by an overlay.
+ *
+ * Additionally nothing about the contents of a surface should be assumed
+ * following a vaPutSurface. Implementations are free to modify the surface for
+ * scaling or subpicture blending within a call to vaPutImage.
+ *
+ * Calls to vaPutImage or vaGetImage using the same surface from which the image
+ * has been derived will return VA_STATUS_ERROR_SURFACE_BUSY. vaPutImage or
+ * vaGetImage with other surfaces is supported.
+ *
+ * An image created with vaDeriveImage should be freed with vaDestroyImage. The
+ * image and image buffer structures will be destroyed; however, the underlying
+ * surface will remain unchanged until freed with vaDestroySurfaces.
+ */
+VAStatus vaDeriveImage (
+    VADisplay dpy,
+    VASurfaceID surface,
+    VAImage *image	/* out */
+);
+
+/**
+ * Subpictures 
+ * Subpicture is a special type of image that can be blended 
+ * with a surface during vaPutSurface(). Subpicture can be used to render
+ * DVD sub-titles or closed captioning text etc.  
+ */
+
+typedef VAGenericID VASubpictureID;
+
+/** Get maximum number of subpicture formats supported by the implementation */
+int vaMaxNumSubpictureFormats (
+    VADisplay dpy
+);
+
+/** flags for subpictures */
+#define VA_SUBPICTURE_CHROMA_KEYING			0x0001
+#define VA_SUBPICTURE_GLOBAL_ALPHA			0x0002
+#define VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD	0x0004
+/**
+ * Query supported subpicture formats 
+ * The caller must provide a "format_list" array that can hold at
+ * least vaMaxNumSubpictureFormats() entries. The flags arrary holds the flag 
+ * for each format to indicate additional capabilities for that format. The actual 
+ * number of formats returned in "format_list" is returned in "num_formats".
+ *  flags: returned value to indicate addtional capabilities
+ *         VA_SUBPICTURE_CHROMA_KEYING - supports chroma-keying
+ *         VA_SUBPICTURE_GLOBAL_ALPHA - supports global alpha
+ * 	   VA_SUBPICTURE_DESTINATION_IS_SCREEN_COORD - supports unscaled screen relative subpictures for On Screen Display
+ */
+
+VAStatus vaQuerySubpictureFormats (
+    VADisplay dpy,
+    VAImageFormat *format_list,	/* out */
+    unsigned int *flags,	/* out */
+    unsigned int *num_formats	/* out */
+);
+
+/**
+ * Subpictures are created with an image associated. 
+ */
+VAStatus vaCreateSubpicture (
+    VADisplay dpy,
+    VAImageID image,
+    VASubpictureID *subpicture	/* out */
+);
+
+/**
+ * Destroy the subpicture before destroying the image it is assocated to
+ */
+VAStatus vaDestroySubpicture (
+    VADisplay dpy,
+    VASubpictureID subpicture
+);
+
+/**
+ * Bind an image to the subpicture. This image will now be associated with 
+ * the subpicture instead of the one at creation.
+ */
+VAStatus vaSetSubpictureImage (
+    VADisplay dpy,
+    VASubpictureID subpicture,
+    VAImageID image
+);
+
+/**
+ * If chromakey is enabled, then the area where the source value falls within
+ * the chromakey [min, max] range is transparent
+ * The chromakey component format is the following:
+ *  For RGB: [0:7] Red [8:15] Blue [16:23] Green   
+ *  For YUV: [0:7] V [8:15] U [16:23] Y
+ * The chromakey mask can be used to mask out certain components for chromakey
+ * comparision
+ */
+VAStatus vaSetSubpictureChromakey (
+    VADisplay dpy,
+    VASubpictureID subpicture,
+    unsigned int chromakey_min,
+    unsigned int chromakey_max,
+    unsigned int chromakey_mask
+);
+
+/**
+ * Global alpha value is between 0 and 1. A value of 1 means fully opaque and 
+ * a value of 0 means fully transparent. If per-pixel alpha is also specified then
+ * the overall alpha is per-pixel alpha multiplied by the global alpha
+ */
+VAStatus vaSetSubpictureGlobalAlpha (
+    VADisplay dpy,
+    VASubpictureID subpicture,
+    float global_alpha 
+);
+
+/**
+ * vaAssociateSubpicture associates the subpicture with target_surfaces.
+ * It defines the region mapping between the subpicture and the target  
+ * surfaces through source and destination rectangles (with the same width and height).
+ * Both will be displayed at the next call to vaPutSurface.  Additional
+ * associations before the call to vaPutSurface simply overrides the association.
+ */
+VAStatus vaAssociateSubpicture (
+    VADisplay dpy,
+    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, global-alpha, or screen relative mode
+     * see VA_SUBPICTURE_XXX values
+     */
+    unsigned int flags
+);
+
+/**
+ * vaDeassociateSubpicture removes the association of the subpicture with target_surfaces.
+ */
+VAStatus vaDeassociateSubpicture (
+    VADisplay dpy,
+    VASubpictureID subpicture,
+    VASurfaceID *target_surfaces,
+    int num_surfaces
+);
+
+typedef struct _VARectangle
+{
+    short x;
+    short y;
+    unsigned short width;
+    unsigned short height;
+} VARectangle;
+
+/**
+ * Display attributes
+ * Display attributes are used to control things such as contrast, hue, saturation,
+ * brightness etc. in the rendering process.  The application can query what
+ * attributes are supported by the driver, and then set the appropriate attributes
+ * before calling vaPutSurface()
+ */
+/* PowerVR IEP Lite attributes */
+typedef enum
+{
+    VADISPLAYATTRIB_BLE_OFF              = 0x00,
+    VADISPLAYATTRIB_BLE_LOW,
+    VADISPLAYATTRIB_BLE_MEDIUM,
+    VADISPLAYATTRIB_BLE_HIGH,
+    VADISPLAYATTRIB_BLE_NONE,
+} VADisplayAttribBLEMode;
+
+/** attribute value for VADisplayAttribRotation   */
+#define VA_ROTATION_NONE        0x00000000
+#define VA_ROTATION_90          0x00000001
+#define VA_ROTATION_180         0x00000002
+#define VA_ROTATION_270         0x00000003
+
+/** attribute value for VADisplayAttribOutOfLoopDeblock */
+#define VA_OOL_DEBLOCKING_FALSE 0x00000000
+#define VA_OOL_DEBLOCKING_TRUE  0x00000001
+
+/** Render mode */
+#define VA_RENDER_MODE_UNDEFINED           0
+#define VA_RENDER_MODE_LOCAL_OVERLAY       1
+#define VA_RENDER_MODE_LOCAL_GPU           2
+#define VA_RENDER_MODE_EXTERNAL_OVERLAY    4
+#define VA_RENDER_MODE_EXTERNAL_GPU        8
+
+/** Render device */
+#define VA_RENDER_DEVICE_UNDEFINED  0
+#define VA_RENDER_DEVICE_LOCAL      1
+#define VA_RENDER_DEVICE_EXTERNAL   2
+
+/** Currently defined display attribute types */
+typedef enum
+{
+    VADisplayAttribBrightness		= 0,
+    VADisplayAttribContrast		= 1,
+    VADisplayAttribHue			= 2,
+    VADisplayAttribSaturation		= 3,
+    /* client can specifiy a background color for the target window
+     * the new feature of video conference,
+     * the uncovered area of the surface is filled by this color
+     * also it will blend with the decoded video color
+     */
+    VADisplayAttribBackgroundColor      = 4,
+    /*
+     * this is a gettable only attribute. For some implementations that use the
+     * hardware overlay, after PutSurface is called, the surface can not be    
+     * re-used until after the subsequent PutSurface call. If this is the case 
+     * then the value for this attribute will be set to 1 so that the client   
+     * will not attempt to re-use the surface right after returning from a call
+     * to PutSurface.
+     *
+     * Don't use it, use flag VASurfaceDisplaying of vaQuerySurfaceStatus since
+     * driver may use overlay or GPU alternatively
+     */
+    VADisplayAttribDirectSurface       = 5,
+    VADisplayAttribRotation            = 6,	
+    VADisplayAttribOutofLoopDeblock    = 7,
+
+    /* PowerVR IEP Lite specific attributes */
+    VADisplayAttribBLEBlackMode        = 8,
+    VADisplayAttribBLEWhiteMode        = 9,
+    VADisplayAttribBlueStretch         = 10,
+    VADisplayAttribSkinColorCorrection = 11,
+    /*
+     * For type VADisplayAttribCSCMatrix, "value" field is a pointer to the color
+     * conversion matrix. Each element in the matrix is float-point
+     */
+    VADisplayAttribCSCMatrix           = 12,
+    /* specify the constant color used to blend with video surface
+     * Cd = Cv*Cc*Ac + Cb *(1 - Ac) C means the constant RGB
+     *      d: the final color to overwrite into the frame buffer 
+     *      v: decoded video after color conversion, 
+     *      c: video color specified by VADisplayAttribBlendColor
+     *      b: background color of the drawable
+     */
+    VADisplayAttribBlendColor          = 13,
+    /*
+     * Indicate driver to skip painting color key or not.
+     * only applicable if the render is overlay
+     */
+    VADisplayAttribOverlayAutoPaintColorKey   = 14,
+    /*
+     * customized overlay color key, the format is RGB888
+     * [23:16] = Red, [15:08] = Green, [07:00] = Blue.
+     */
+    VADisplayAttribOverlayColorKey	= 15,
+    /*
+     * The hint for the implementation of vaPutSurface
+     * normally, the driver could use an overlay or GPU to render the surface on the screen
+     * this flag provides APP the flexibity to switch the render dynamically
+     */
+    VADisplayAttribRenderMode           = 16,
+    /*
+     * specify if vaPutSurface needs to render into specified monitors
+     * one example is that one external monitor (e.g. HDMI) is enabled, 
+     * but the window manager is not aware of it, and there is no associated drawable
+     */
+    VADisplayAttribRenderDevice        = 17,
+    /*
+     * specify vaPutSurface render area if there is no drawable on the monitor
+     */
+    VADisplayAttribRenderRect          = 18,
+} VADisplayAttribType;
+
+/* flags for VADisplayAttribute */
+#define VA_DISPLAY_ATTRIB_NOT_SUPPORTED	0x0000
+#define VA_DISPLAY_ATTRIB_GETTABLE	0x0001
+#define VA_DISPLAY_ATTRIB_SETTABLE	0x0002
+
+typedef struct _VADisplayAttribute
+{
+    VADisplayAttribType type;
+    int min_value;
+    int max_value;
+    int value;	/* used by the set/get attribute functions */
+/* flags can be VA_DISPLAY_ATTRIB_GETTABLE or VA_DISPLAY_ATTRIB_SETTABLE or OR'd together */
+    unsigned int flags;
+} VADisplayAttribute;
+
+/** Get maximum number of display attributs supported by the implementation */
+int vaMaxNumDisplayAttributes (
+    VADisplay dpy
+);
+
+/**
+ * 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 vaQueryDisplayAttributes (
+    VADisplay dpy,
+    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 vaGetDisplayAttributes (
+    VADisplay dpy,
+    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 vaSetDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,
+    int num_attributes
+);
+
+/****************************
+ * HEVC data structures
+ ****************************/
+/** 
+ * \brief Description of picture properties of those in DPB surfaces.
+ *
+ * If only progressive scan is supported, each surface contains one whole 
+ * frame picture.
+ * Otherwise, each surface contains two fields of whole picture.
+ * In this case, two entries of ReferenceFrames[] may share same picture_id
+ * value.
+ */
+typedef struct _VAPictureHEVC
+{
+    /** \brief reconstructed picture buffer surface index 
+     * invalid when taking value VA_INVALID_SURFACE.
+     */
+    VASurfaceID             picture_id;
+    /** \brief picture order count. 
+     * in HEVC, POCs for top and bottom fields of same picture should
+     * take different values.
+     */
+    int32_t                 pic_order_cnt;
+    /* described below */
+    uint32_t                flags;
+} VAPictureHEVC;
+
+/* flags in VAPictureHEVC could be OR of the following */
+#define VA_PICTURE_HEVC_INVALID                 0x00000001
+/** \brief indication of interlace scan picture. 
+ * should take same value for all the pictures in sequence.
+ */ 
+#define VA_PICTURE_HEVC_FIELD_PIC               0x00000002
+/** \brief polarity of the field picture.
+ * top field takes even lines of buffer surface.
+ * bottom field takes odd lines of buffer surface.
+ */
+#define VA_PICTURE_HEVC_BOTTOM_FIELD            0x00000004
+/** \brief Long term reference picture */
+#define VA_PICTURE_HEVC_LONG_TERM_REFERENCE     0x00000008
+/**
+ * VA_PICTURE_HEVC_RPS_ST_CURR_BEFORE, VA_PICTURE_HEVC_RPS_ST_CURR_AFTER
+ * and VA_PICTURE_HEVC_RPS_LT_CURR of any picture in ReferenceFrames[] should 
+ * be exclusive. No more than one of them can be set for any picture.
+ * Sum of NumPocStCurrBefore, NumPocStCurrAfter and NumPocLtCurr
+ * equals NumPocTotalCurr, which should be equal to or smaller than 8.
+ * Application should provide valid values for both short format and long format.
+ * The pictures in DPB with any of these three flags turned on are referred by
+ * the current picture.
+ */
+/** \brief RefPicSetStCurrBefore of HEVC spec variable 
+ * Number of ReferenceFrames[] entries with this bit set equals 
+ * NumPocStCurrBefore.
+ */
+#define VA_PICTURE_HEVC_RPS_ST_CURR_BEFORE      0x00000010
+/** \brief RefPicSetStCurrAfter of HEVC spec variable
+ * Number of ReferenceFrames[] entries with this bit set equals 
+ * NumPocStCurrAfter.
+ */
+#define VA_PICTURE_HEVC_RPS_ST_CURR_AFTER       0x00000020
+/** \brief RefPicSetLtCurr of HEVC spec variable
+ * Number of ReferenceFrames[] entries with this bit set equals 
+ * NumPocLtCurr.
+ */
+#define VA_PICTURE_HEVC_RPS_LT_CURR             0x00000040
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VA_H_ */
diff --git a/examples/thirdparty/libva/va/va_android.h b/examples/thirdparty/libva/va/va_android.h
new file mode 100644
index 0000000..796ab63
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_android.h
@@ -0,0 +1,82 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+#ifndef _VA_ANDROID_H_
+#define _VA_ANDROID_H_
+
+#include <va/va.h>
+
+/** \brief Android Gralloc buffer memory type. */
+#define VA_SURFACE_ATTRIB_MEM_TYPE_ANDROID_GRALLOC	0x00100000
+/** \brief Android ION buffer memory type. */
+#define VA_SURFACE_ATTRIB_MEM_TYPE_ANDROID_ION		0x00200000
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Returns a suitable VADisplay for VA API
+ */
+VADisplay vaGetDisplay (
+    void *android_dpy
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#ifdef __cplusplus
+#ifdef ANDROID
+#include <surfaceflinger/ISurface.h>
+using namespace android;
+
+/*
+ * Output rendering
+ * Following is the rendering interface for Android system, 
+ * to get the decode output surface to an ISurface object.
+ * It basically performs a de-interlacing (if needed), 
+ * color space conversion and scaling to the destination
+ * rectangle
+ */
+VAStatus vaPutSurface (
+    VADisplay dpy,
+    VASurfaceID surface,	
+    sp<ISurface> draw, /* Android Window/Surface */
+    short srcx,
+    short srcy,
+    unsigned short srcw,
+    unsigned short srch,
+    short destx,
+    short desty,
+    unsigned short destw,
+    unsigned short desth,
+    VARectangle *cliprects, /* client supplied destination clip list */
+    unsigned int number_cliprects, /* number of clip rects in the clip list */
+    unsigned int flags /* PutSurface flags */
+);
+
+#endif /* ANDROID */
+#endif /* __cplusplus */
+
+#endif /* _VA_ANDROID_H_ */
diff --git a/examples/thirdparty/libva/va/va_backend.h b/examples/thirdparty/libva/va/va_backend.h
new file mode 100644
index 0000000..40d3031
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_backend.h
@@ -0,0 +1,560 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+/*
+ * Video Decode Acceleration -Backend API
+ */
+
+#ifndef _VA_BACKEND_H_
+#define _VA_BACKEND_H_
+
+#include <va/va.h>
+#include <linux/videodev2.h>
+
+typedef struct VADriverContext *VADriverContextP;
+typedef struct VADisplayContext *VADisplayContextP;
+
+/** \brief VA display types. */
+enum {
+    /** \brief Mask to major identifier for VA display type. */
+    VA_DISPLAY_MAJOR_MASK = 0xf0,
+
+    /** \brief VA/X11 API is used, through vaGetDisplay() entry-point. */
+    VA_DISPLAY_X11      = 0x10,
+    /** \brief VA/GLX API is used, through vaGetDisplayGLX() entry-point. */
+    VA_DISPLAY_GLX      = (VA_DISPLAY_X11 | (1 << 0)),
+    /** \brief VA/Android API is used, through vaGetDisplay() entry-point. */
+    VA_DISPLAY_ANDROID  = 0x20,
+    /** \brief VA/DRM API is used, through vaGetDisplayDRM() entry-point. */
+    VA_DISPLAY_DRM      = 0x30,
+    /** \brief VA/DRM API is used, with a render-node device path */
+    VA_DISPLAY_DRM_RENDERNODES = (VA_DISPLAY_DRM | (1 << 0)),
+    /** \brief VA/Wayland API is used, through vaGetDisplayWl() entry-point. */
+    VA_DISPLAY_WAYLAND  = 0x40,
+};
+
+struct VADriverVTable
+{
+	VAStatus (*vaTerminate) ( VADriverContextP ctx );
+
+	VAStatus (*vaQueryConfigProfiles) (
+		VADriverContextP ctx,
+		VAProfile *profile_list,	/* out */
+		int *num_profiles			/* out */
+	);
+
+	VAStatus (*vaQueryConfigEntrypoints) (
+		VADriverContextP ctx,
+		VAProfile profile,
+		VAEntrypoint  *entrypoint_list,	/* out */
+		int *num_entrypoints			/* out */
+	);
+
+	VAStatus (*vaGetConfigAttributes) (
+		VADriverContextP ctx,
+		VAProfile profile,
+		VAEntrypoint entrypoint,
+		VAConfigAttrib *attrib_list,	/* in/out */
+		int num_attribs
+	);
+
+	VAStatus (*vaCreateConfig) (
+		VADriverContextP ctx,
+		VAProfile profile, 
+		VAEntrypoint entrypoint, 
+		VAConfigAttrib *attrib_list,
+		int num_attribs,
+		VAConfigID *config_id		/* out */
+	);
+
+	VAStatus (*vaDestroyConfig) (
+		VADriverContextP ctx,
+		VAConfigID config_id
+	);
+
+	VAStatus (*vaQueryConfigAttributes) (
+		VADriverContextP ctx,
+		VAConfigID config_id, 
+		VAProfile *profile,		/* out */
+		VAEntrypoint *entrypoint, 	/* out */
+		VAConfigAttrib *attrib_list,	/* out */
+		int *num_attribs		/* out */
+	);
+
+	VAStatus (*vaCreateSurfaces) (
+		VADriverContextP ctx,
+		int width,
+		int height,
+		int format,
+		int num_surfaces,
+		VASurfaceID *surfaces		/* out */
+	);
+
+	VAStatus (*vaDestroySurfaces) (
+		VADriverContextP ctx,
+		VASurfaceID *surface_list,
+		int num_surfaces
+	);
+
+	VAStatus (*vaCreateContext) (
+		VADriverContextP ctx,
+		VAConfigID config_id,
+		int picture_width,
+		int picture_height,
+		int flag,
+		VASurfaceID *render_targets,
+		int num_render_targets,
+		VAContextID *context		/* out */
+	);
+
+	VAStatus (*vaDestroyContext) (
+		VADriverContextP ctx,
+		VAContextID context
+	);
+
+	VAStatus (*vaCreateBuffer) (
+		VADriverContextP ctx,
+		VAContextID context,		/* in */
+		VABufferType type,		/* in */
+		unsigned int size,		/* in */
+		unsigned int num_elements,	/* in */
+		void *data,			/* in */
+		VABufferID *buf_id		/* out */
+	);
+
+	VAStatus (*vaBufferSetNumElements) (
+		VADriverContextP ctx,
+		VABufferID buf_id,	/* in */
+		unsigned int num_elements	/* in */
+	);
+
+	VAStatus (*vaMapBuffer) (
+		VADriverContextP ctx,
+		VABufferID buf_id,	/* in */
+		void **pbuf         /* out */
+	);
+
+	VAStatus (*vaUnmapBuffer) (
+		VADriverContextP ctx,
+		VABufferID buf_id	/* in */
+	);
+
+	VAStatus (*vaDestroyBuffer) (
+		VADriverContextP ctx,
+		VABufferID buffer_id
+	);
+
+	VAStatus (*vaBeginPicture) (
+		VADriverContextP ctx,
+		VAContextID context,
+		VASurfaceID render_target
+	);
+
+	VAStatus (*vaRenderPicture) (
+		VADriverContextP ctx,
+		VAContextID context,
+		VABufferID *buffers,
+		int num_buffers
+	);
+
+	VAStatus (*vaEndPicture) (
+		VADriverContextP ctx,
+		VAContextID context
+	);
+
+	VAStatus (*vaSyncSurface) (
+		VADriverContextP ctx,
+		VASurfaceID render_target
+	);
+
+	VAStatus (*vaQuerySurfaceStatus) (
+		VADriverContextP ctx,
+		VASurfaceID render_target,
+		VASurfaceStatus *status	/* out */
+	);
+
+	VAStatus (*vaQuerySurfaceError) (
+		VADriverContextP ctx,
+		VASurfaceID render_target,
+                VAStatus error_status,
+                void **error_info /*out*/
+	);
+
+	VAStatus (*vaPutSurface) (
+    		VADriverContextP ctx,
+		VASurfaceID surface,
+		void* draw, /* Drawable of window system */
+		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 (*vaQueryImageFormats) (
+		VADriverContextP ctx,
+		VAImageFormat *format_list,        /* out */
+		int *num_formats           /* out */
+	);
+
+	VAStatus (*vaCreateImage) (
+		VADriverContextP ctx,
+		VAImageFormat *format,
+		int width,
+		int height,
+		VAImage *image     /* out */
+	);
+
+	VAStatus (*vaDeriveImage) (
+		VADriverContextP ctx,
+		VASurfaceID surface,
+		VAImage *image     /* out */
+	);
+
+	VAStatus (*vaDestroyImage) (
+		VADriverContextP ctx,
+		VAImageID image
+	);
+	
+	VAStatus (*vaSetImagePalette) (
+	        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 (*vaGetImage) (
+		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 (*vaPutImage) (
+		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 (*vaQuerySubpictureFormats) (
+		VADriverContextP ctx,
+		VAImageFormat *format_list,        /* out */
+		unsigned int *flags,       /* out */
+		unsigned int *num_formats  /* out */
+	);
+
+	VAStatus (*vaCreateSubpicture) (
+		VADriverContextP ctx,
+		VAImageID image,
+		VASubpictureID *subpicture   /* out */
+	);
+
+	VAStatus (*vaDestroySubpicture) (
+		VADriverContextP ctx,
+		VASubpictureID subpicture
+	);
+
+        VAStatus (*vaSetSubpictureImage) (
+                VADriverContextP ctx,
+                VASubpictureID subpicture,
+                VAImageID image
+        );
+
+	VAStatus (*vaSetSubpictureChromakey) (
+		VADriverContextP ctx,
+		VASubpictureID subpicture,
+		unsigned int chromakey_min,
+		unsigned int chromakey_max,
+		unsigned int chromakey_mask
+	);
+
+	VAStatus (*vaSetSubpictureGlobalAlpha) (
+		VADriverContextP ctx,
+		VASubpictureID subpicture,
+		float global_alpha 
+	);
+
+	VAStatus (*vaAssociateSubpicture) (
+		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 (*vaDeassociateSubpicture) (
+		VADriverContextP ctx,
+		VASubpictureID subpicture,
+		VASurfaceID *target_surfaces,
+		int num_surfaces
+	);
+
+	VAStatus (*vaQueryDisplayAttributes) (
+		VADriverContextP ctx,
+		VADisplayAttribute *attr_list,	/* out */
+		int *num_attributes		/* out */
+        );
+
+	VAStatus (*vaGetDisplayAttributes) (
+		VADriverContextP ctx,
+		VADisplayAttribute *attr_list,	/* in/out */
+		int num_attributes
+        );
+        
+        VAStatus (*vaSetDisplayAttributes) (
+		VADriverContextP ctx,
+                VADisplayAttribute *attr_list,
+                int num_attributes
+        );
+
+        /* used by va trace */        
+        VAStatus (*vaBufferInfo) (
+                   VADriverContextP ctx,      /* in */
+                   VABufferID buf_id,         /* in */
+                   VABufferType *type,        /* out */
+                   unsigned int *size,        /* out */
+                   unsigned int *num_elements /* out */
+        );
+
+        /* lock/unlock surface for external access */    
+        VAStatus (*vaLockSurface) (
+		VADriverContextP ctx,
+                VASurfaceID surface,
+                unsigned int *fourcc, /* out  for follow 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, /* if it is not NULL, assign the low lever
+                                            * surface buffer name
+                                            */
+                void **buffer /* if it is not NULL, map the surface buffer for
+                                * CPU access
+                                */
+        );
+    
+        VAStatus (*vaUnlockSurface) (
+		VADriverContextP ctx,
+                VASurfaceID surface
+        );
+
+        /* DEPRECATED */
+        VAStatus
+        (*vaGetSurfaceAttributes)(
+            VADriverContextP    dpy,
+            VAConfigID          config,
+            VASurfaceAttrib    *attrib_list,
+            unsigned int        num_attribs
+        );
+
+        VAStatus
+        (*vaCreateSurfaces2)(
+            VADriverContextP    ctx,
+            unsigned int        format,
+            unsigned int        width,
+            unsigned int        height,
+            VASurfaceID        *surfaces,
+            unsigned int        num_surfaces,
+            VASurfaceAttrib    *attrib_list,
+            unsigned int        num_attribs
+        );
+
+        VAStatus
+        (*vaQuerySurfaceAttributes)(
+            VADriverContextP    dpy,
+            VAConfigID          config,
+            VASurfaceAttrib    *attrib_list,
+            unsigned int       *num_attribs
+        );
+
+        VAStatus
+        (*vaAcquireBufferHandle)(
+            VADriverContextP    ctx,
+            VABufferID          buf_id,         /* in */
+            VABufferInfo *      buf_info        /* in/out */
+        );
+
+        VAStatus
+        (*vaReleaseBufferHandle)(
+            VADriverContextP    ctx,
+            VABufferID          buf_id          /* in */
+        );
+};
+
+struct VADriverContext
+{
+    void *pDriverData;
+
+    /**
+     * The core VA implementation hooks.
+     *
+     * This structure is allocated from libva with calloc().
+     */
+    struct VADriverVTable *vtable;
+
+    /**
+     * The VA/GLX implementation hooks.
+     *
+     * This structure is intended for drivers that implement the
+     * VA/GLX API. The driver implementation is responsible for the
+     * allocation and deallocation of this structure.
+     */
+    struct VADriverVTableGLX *vtable_glx;
+
+    /**
+     * The VA/EGL implementation hooks.
+     *
+     * This structure is intended for drivers that implement the
+     * VA/EGL API. The driver implementation is responsible for the
+     * allocation and deallocation of this structure.
+     */
+    struct VADriverVTableEGL *vtable_egl;
+
+    /**
+     * The third-party/private implementation hooks.
+     *
+     * This structure is intended for drivers that implement the
+     * private API. The driver implementation is responsible for the
+     * allocation and deallocation of this structure.
+     */
+    void *vtable_tpi;
+
+    void *native_dpy;
+    int x11_screen;
+    int version_major;
+    int version_minor;
+    int max_profiles;
+    int max_entrypoints;
+    int max_attributes;
+    int max_image_formats;
+    int max_subpic_formats;
+    int max_display_attributes;
+    const char *str_vendor;
+
+    void *handle;			/* dlopen handle */
+
+    /**
+     * \brief DRM state.
+     *
+     * This field holds driver specific data for DRM-based
+     * drivers. This structure is allocated from libva with
+     * calloc(). Do not deallocate from within VA driver
+     * implementations.
+     *
+     * All structures shall be derived from struct drm_state. So, for
+     * instance, this field holds a dri_state structure for VA/X11
+     * drivers that use the DRM protocol.
+     */
+    void *drm_state;
+
+    void *glx;				/* opaque for GLX code */
+
+    /** \brief VA display type. */
+    unsigned long display_type;
+
+    /**
+     * The VA/Wayland implementation hooks.
+     *
+     * This structure is intended for drivers that implement the
+     * VA/Wayland API. libVA allocates this structure with calloc()
+     * and owns the resulting memory.
+     */
+    struct VADriverVTableWayland *vtable_wayland;
+
+    /**
+     * \brief The VA/VPP implementation hooks.
+     *
+     * This structure is allocated from libva with calloc().
+     */
+    struct VADriverVTableVPP *vtable_vpp;
+
+    unsigned long reserved[42];         /* reserve for future add-ins, decrease the subscript accordingly */
+};
+
+#define VA_DISPLAY_MAGIC 0x56414430 /* VAD0 */
+struct VADisplayContext
+{
+    int vadpy_magic;
+    
+    VADisplayContextP pNext;
+    VADriverContextP pDriverContext;
+
+    int (*vaIsValid) (
+	VADisplayContextP ctx
+    );
+
+    void (*vaDestroy) (
+	VADisplayContextP ctx
+    );
+
+    VAStatus (*vaGetDriverName) (
+	VADisplayContextP ctx,
+	char **driver_name
+    );
+
+    void *opaque; /* opaque for display extensions (e.g. GLX) */
+    void *vatrace; /* opaque for VA trace context */
+    void *vafool; /* opaque for VA fool context */
+};
+
+typedef VAStatus (*VADriverInit) (
+    VADriverContextP driver_context
+);
+
+#endif /* _VA_BACKEND_H_ */
diff --git a/examples/thirdparty/libva/va/va_backend_tpi.h b/examples/thirdparty/libva/va/va_backend_tpi.h
new file mode 100644
index 0000000..141eb75
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_backend_tpi.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+/*
+ * Video Decode Acceleration -Backend API
+ */
+
+#ifndef _VA_BACKEND_TPI_H_
+#define _VA_BACKEND_TPI_H_
+
+#include <va/va.h>
+#include <va/va_backend.h>
+#include <va/va_tpi.h>
+
+struct VADriverVTableTPI
+{
+    VAStatus (*vaCreateSurfacesWithAttribute) (
+        VADisplay dpy,
+        int width,
+        int height,
+        int format,
+        int num_surfaces,
+        VASurfaceID *surfaces,       /* out */
+        VASurfaceAttributeTPI *attribute_tpi
+        );
+    
+
+    VAStatus (*vaPutSurfaceBuf) (
+        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 */
+        );
+};
+
+
+#endif /* _VA_BACKEND_TPI_H_ */
diff --git a/examples/thirdparty/libva/va/va_backend_vpp.h b/examples/thirdparty/libva/va/va_backend_vpp.h
new file mode 100644
index 0000000..b776ef6
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_backend_vpp.h
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2007-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 INTEL 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 VA_BACKEND_VPP_H
+#define VA_BACKEND_VPP_H
+
+#include <va/va_vpp.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \brief VTable version for VA/VPP hooks. */
+#define VA_DRIVER_VTABLE_VPP_VERSION 1
+
+struct VADriverVTableVPP {
+    unsigned int            version;
+
+    VAStatus
+    (*vaQueryVideoProcFilters)(
+        VADriverContextP    ctx,
+        VAContextID         context,
+        VAProcFilterType   *filters,
+        unsigned int       *num_filters
+    );
+
+    VAStatus
+    (*vaQueryVideoProcFilterCaps)(
+        VADriverContextP    ctx,
+        VAContextID         context,
+        VAProcFilterType    type,
+        void               *filter_caps,
+        unsigned int       *num_filter_caps
+    );
+
+    VAStatus
+    (*vaQueryVideoProcPipelineCaps)(
+        VADriverContextP    ctx,
+        VAContextID         context,
+        VABufferID         *filters,
+        unsigned int        num_filters,
+        VAProcPipelineCaps *pipeline_caps
+    );
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_BACKEND_VPP_H */
diff --git a/examples/thirdparty/libva/va/va_compat.c b/examples/thirdparty/libva/va/va_compat.c
new file mode 100644
index 0000000..113591f
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_compat.c
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2007-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 INTEL 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 VA_COMPAT_DISABLED 1
+#include "sysdeps.h"
+#include "va.h"
+#include "va_compat.h"
+
+VAStatus
+vaCreateSurfaces_0_32_0(
+    VADisplay    dpy,
+    int          width,
+    int          height,
+    int          format,
+    int          num_surfaces,
+    VASurfaceID *surfaces
+)
+{
+    return vaCreateSurfaces(dpy, format, width, height, surfaces, num_surfaces,
+                            NULL, 0);
+}
+VA_CPP_HELPER_ALIAS(vaCreateSurfaces, 0,32,0);
diff --git a/examples/thirdparty/libva/va/va_compat.h b/examples/thirdparty/libva/va/va_compat.h
new file mode 100644
index 0000000..41a3f73
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_compat.h
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2007-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 INTEL 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 va_compat.h
+ * \brief The Compatibility API
+ *
+ * This file contains the \ref api_compat "Compatibility API".
+ */
+
+#ifndef VA_COMPAT_H
+#define VA_COMPAT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_compat Compatibility API
+ *
+ * The Compatibility API allows older programs that are not ported to
+ * the current API to still build and run correctly. In particular,
+ * this exposes older API to allow for backwards source compatibility.
+ *
+ * @{
+ */
+
+/**
+ * Makes a string literal out of the macro argument
+ */
+#define VA_CPP_HELPER_STRINGIFY(x) \
+    VA_CPP_HELPER_STRINGIFY_(x)
+#define VA_CPP_HELPER_STRINGIFY_(x) \
+    #x
+
+/**
+ * Concatenates two macro arguments at preprocessing time.
+ */
+#define VA_CPP_HELPER_CONCAT(a, b) \
+    VA_CPP_HELPER_CONCAT_(a, b)
+#define VA_CPP_HELPER_CONCAT_(a, b) \
+    a ## b
+
+/**
+ * Generates the number of macro arguments at preprocessing time.
+ * <http://groups.google.com/group/comp.std.c/browse_thread/thread/77ee8c8f92e4a3fb/346fc464319b1ee5>
+ *
+ * Note: this doesn't work for macros with no arguments
+ */
+#define VA_CPP_HELPER_N_ARGS(...) \
+    VA_CPP_HELPER_N_ARGS_(__VA_ARGS__, VA_CPP_HELPER_N_ARGS_LIST_REV())
+#define VA_CPP_HELPER_N_ARGS_(...) \
+    VA_CPP_HELPER_N_ARGS_LIST(__VA_ARGS__)
+#define VA_CPP_HELPER_N_ARGS_LIST(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a12, a13, a14, a15, a16, N, ...) N
+#define VA_CPP_HELPER_N_ARGS_LIST_REV() \
+    15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0
+
+/**
+ * Generates a versioned function alias.
+ *
+ * VA_CPP_HELPER_ALIAS(vaSomeFunction, 0,32,0) will generate
+ *   .symber vaSomeFunction_0_32_0, vaSomeFunction at VA_API_0.32.0
+ */
+#define VA_CPP_HELPER_ALIAS(func, major, minor, micro) \
+    VA_CPP_HELPER_ALIAS_(func, major, minor, micro, "@")
+#define VA_CPP_HELPER_ALIAS_DEFAULT(func, major, minor, micro) \
+    VA_CPP_HELPER_ALIAS_(func, major, minor, micro, "@@")
+#define VA_CPP_HELPER_ALIAS_(func, major, minor, micro, binding)        \
+    asm(".symver " #func "_" #major "_" #minor "_" #micro ", "          \
+        #func binding "VA_API_" #major "." #minor "." #micro)
+
+/* vaCreateSurfaces() */
+
+#ifndef VA_COMPAT_DISABLED
+#define vaCreateSurfaces(dpy, ...)                                      \
+    VA_CPP_HELPER_CONCAT(vaCreateSurfaces,                              \
+                         VA_CPP_HELPER_N_ARGS(dpy, __VA_ARGS__))        \
+    (dpy, __VA_ARGS__)
+#endif
+
+#define vaCreateSurfaces6(dpy, width, height, format, num_surfaces, surfaces) \
+    (vaCreateSurfaces)(dpy, format, width, height, surfaces, num_surfaces, \
+                       NULL, 0)
+
+#define vaCreateSurfaces8(dpy, format, width, height, surfaces, num_surfaces, attribs, num_attribs) \
+    (vaCreateSurfaces)(dpy, format, width, height, surfaces, num_surfaces, \
+                       attribs, num_attribs)
+
+/*@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_COMPAT_H */
diff --git a/examples/thirdparty/libva/va/va_dec_hevc.h b/examples/thirdparty/libva/va/va_dec_hevc.h
new file mode 100644
index 0000000..27715b7
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_dec_hevc.h
@@ -0,0 +1,428 @@
+/*
+ * Copyright (c) 2014 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 INTEL 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 va_dec_hevc.h
+ * \brief The HEVC decoding API
+ *
+ * This file contains the \ref api_dec_hevc "HEVC decoding API".
+ */
+
+#ifndef VA_DEC_HEVC_H
+#define VA_DEC_HEVC_H
+
+#include <stdint.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_dec_hevc HEVC decoding API
+ *
+ * This HEVC decoding API supports Main and Main Still Picture profiles.
+ * And it supports both short slice format and long slice format.
+ *
+ * @{
+ */
+
+/**
+ * \brief HEVC Decoding Picture Parameter Buffer Structure
+ *
+ * This structure conveys picture level parameters and should be sent once
+ * per frame.
+ *
+ */
+typedef struct  _VAPictureParameterBufferHEVC
+{
+    /** \brief buffer description of decoded current picture
+     * only VA_PICTURE_HEVC_FIELD_PIC and VA_PICTURE_HEVC_BOTTOM_FIELD
+     * of "flags" fields are meaningful.
+     */
+    VAPictureHEVC           CurrPic;
+    /** \brief buffer description of reference frames in DPB */
+    VAPictureHEVC           ReferenceFrames[15];
+    /** \brief picture width, shall be integer multiple of minimum CB size. */
+    uint16_t                pic_width_in_luma_samples;
+    /** \brief picture height, shall be integer multiple of minimum CB size. */
+    uint16_t                pic_height_in_luma_samples;
+
+
+    union
+    {
+        struct
+        {
+        /** following flags have same syntax and semantic as those in HEVC spec */
+            uint32_t        chroma_format_idc                           : 2;
+            uint32_t        separate_colour_plane_flag                  : 1;
+            uint32_t        pcm_enabled_flag                            : 1;
+            uint32_t        scaling_list_enabled_flag                   : 1;
+            uint32_t        transform_skip_enabled_flag                 : 1;
+            uint32_t        amp_enabled_flag                            : 1;
+            uint32_t        strong_intra_smoothing_enabled_flag         : 1;
+            uint32_t        sign_data_hiding_enabled_flag               : 1;
+            uint32_t        constrained_intra_pred_flag                 : 1;
+            uint32_t        cu_qp_delta_enabled_flag                    : 1;
+            uint32_t        weighted_pred_flag                          : 1;
+            uint32_t        weighted_bipred_flag                        : 1;
+            uint32_t        transquant_bypass_enabled_flag              : 1;
+            uint32_t        tiles_enabled_flag                          : 1;
+            uint32_t        entropy_coding_sync_enabled_flag            : 1;
+            uint32_t        pps_loop_filter_across_slices_enabled_flag  : 1;
+            uint32_t        loop_filter_across_tiles_enabled_flag       : 1;
+            uint32_t        pcm_loop_filter_disabled_flag               : 1;
+            /** set based on sps_max_num_reorder_pics of current temporal layer. */
+            uint32_t        NoPicReorderingFlag                         : 1;
+            /** picture has no B slices */
+            uint32_t        NoBiPredFlag                                : 1;
+
+            uint32_t        ReservedBits                                : 11;
+        } bits;
+        uint32_t            value;
+    } pic_fields;
+
+    /** following parameters have same syntax with those in HEVC spec */
+    /** \brief DPB size for current temporal layer */
+    uint8_t                 sps_max_dec_pic_buffering_minus1;
+    uint8_t                 bit_depth_luma_minus8;
+    uint8_t                 bit_depth_chroma_minus8;
+    uint8_t                 pcm_sample_bit_depth_luma_minus1;
+    uint8_t                 pcm_sample_bit_depth_chroma_minus1;
+    uint8_t                 log2_min_luma_coding_block_size_minus3;
+    uint8_t                 log2_diff_max_min_luma_coding_block_size;
+    uint8_t                 log2_min_transform_block_size_minus2;
+    uint8_t                 log2_diff_max_min_transform_block_size;
+    uint8_t                 log2_min_pcm_luma_coding_block_size_minus3;
+    uint8_t                 log2_diff_max_min_pcm_luma_coding_block_size;
+    uint8_t                 max_transform_hierarchy_depth_intra;
+    uint8_t                 max_transform_hierarchy_depth_inter;
+    int8_t                  init_qp_minus26;
+    uint8_t                 diff_cu_qp_delta_depth;
+    int8_t                  pps_cb_qp_offset;
+    int8_t                  pps_cr_qp_offset;
+    uint8_t                 log2_parallel_merge_level_minus2;
+    uint8_t                 num_tile_columns_minus1;
+    uint8_t                 num_tile_rows_minus1;
+    /**
+     * when uniform_spacing_flag equals 1, application should populate
+     * column_width_minus[], and row_height_minus1[] with approperiate values.
+     */
+    uint16_t                column_width_minus1[19];
+    uint16_t                row_height_minus1[21];
+
+    /**
+     *  The Following Parameters are needed for Short Slice Format Only.
+     *  Only format decoding can ignore them.
+     */
+
+    /**
+     * \brief Parameters needed for parsing slice segment headers
+     */
+    union
+    {
+        struct
+        {
+            /** following parameters have same syntax with those in HEVC spec */
+            uint32_t        lists_modification_present_flag             : 1;
+            uint32_t        long_term_ref_pics_present_flag             : 1;
+            uint32_t        sps_temporal_mvp_enabled_flag               : 1;
+            uint32_t        cabac_init_present_flag                     : 1;
+            uint32_t        output_flag_present_flag                    : 1;
+            uint32_t        dependent_slice_segments_enabled_flag       : 1;
+            uint32_t        pps_slice_chroma_qp_offsets_present_flag    : 1;
+            uint32_t        sample_adaptive_offset_enabled_flag         : 1;
+            uint32_t        deblocking_filter_override_enabled_flag     : 1;
+            uint32_t        pps_disable_deblocking_filter_flag          : 1;
+            uint32_t        slice_segment_header_extension_present_flag : 1;
+
+            /** current picture with NUT between 16 and 21 inclusive */
+            uint32_t        RapPicFlag                                  : 1;
+            /** current picture with NUT between 19 and 20 inclusive */
+            uint32_t        IdrPicFlag                                  : 1;
+            /** current picture has only intra slices */
+            uint32_t        IntraPicFlag                                : 1;
+
+            uint32_t        ReservedBits                                : 18;
+        } bits;
+        uint32_t            value;
+    } slice_parsing_fields;
+
+    /** following parameters have same syntax with those in HEVC spec */
+    uint8_t                 log2_max_pic_order_cnt_lsb_minus4;
+    uint8_t                 num_short_term_ref_pic_sets;
+    uint8_t                 num_long_term_ref_pic_sps;
+    uint8_t                 num_ref_idx_l0_default_active_minus1;
+    uint8_t                 num_ref_idx_l1_default_active_minus1;
+    int8_t                  pps_beta_offset_div2;
+    int8_t                  pps_tc_offset_div2;
+    uint8_t                 num_extra_slice_header_bits;
+
+    /**
+     * \brief number of bits that structure
+     * short_term_ref_pic_set( num_short_term_ref_pic_sets ) takes in slice
+     * segment header when short_term_ref_pic_set_sps_flag equals 0.
+     * if short_term_ref_pic_set_sps_flag equals 1, the value should be 0.
+     * the bit count is calculated after emulation prevention bytes are removed
+     * from bit streams.
+     * This variable is used for accelorater to skip parsing the
+     * short_term_ref_pic_set( num_short_term_ref_pic_sets ) structure.
+     */
+    uint32_t                st_rps_bits;
+
+} VAPictureParameterBufferHEVC;
+
+
+
+/**
+ * \brief HEVC Slice Parameter Buffer Structure For Short Format
+ *
+ * VASliceParameterBufferBaseHEVC structure should be accompanied by a
+ * slice data buffer, which holds the whole raw slice NAL unit bit streams
+ * including start code prefix and emulation prevention bytes not removed.
+ *
+ * This structure conveys parameters related to slice segment header and should
+ * be sent once per slice.
+ *
+ * For long format, this data structure is not sent by application.
+ *
+ */
+typedef struct  _VASliceParameterBufferBaseHEVC
+{
+    /** @name Codec-independent Slice Parameter Buffer base. */
+
+    /**@{*/
+
+    /** \brief Number of bytes in the slice data buffer for this slice
+     *  counting from and including NAL unit header.
+     */
+    uint32_t                slice_data_size;
+    /** \brief The offset to the NAL unit header for this slice */
+    uint32_t                slice_data_offset;
+    /** \brief Slice data buffer flags. See \c VA_SLICE_DATA_FLAG_XXX. */
+    uint16_t                slice_data_flag;
+    /**@}*/
+
+} VASliceParameterBufferBaseHEVC;
+
+
+
+
+/**
+ * \brief HEVC Slice Parameter Buffer Structure For Long Format
+ *
+ * VASliceParameterBufferHEVC structure should be accompanied by a
+ * slice data buffer, which holds the whole raw slice NAL unit bit streams
+ * including start code prefix and emulation prevention bytes not removed.
+ *
+ * This structure conveys parameters related to slice segment header and should
+ * be sent once per slice.
+ *
+ * For short format, this data structure is not sent by application.
+ *
+ */
+typedef struct  _VASliceParameterBufferHEVC
+{
+    /** @name Codec-independent Slice Parameter Buffer base. */
+
+    /**@{*/
+
+    /** \brief Number of bytes in the slice data buffer for this slice
+     * counting from and including NAL unit header.
+     */
+    uint32_t                slice_data_size;
+    /** \brief The offset to the NAL unit header for this slice */
+    uint32_t                slice_data_offset;
+    /** \brief Slice data buffer flags. See \c VA_SLICE_DATA_FLAG_XXX. */
+    uint16_t                slice_data_flag;
+    /**
+     * \brief Byte offset from NAL unit header to the begining of slice_data().
+     *
+     * This byte offset is relative to and includes the NAL unit header
+     * and represents the number of bytes parsed in the slice_header()
+     * after the removal of any emulation prevention bytes in
+     * there. However, the slice data buffer passed to the hardware is
+     * the original bitstream, thus including any emulation prevention
+     * bytes.
+     * The slice bit stream may or may not include the start code prefix.
+     */
+    uint32_t                slice_data_byte_offset;
+    /** HEVC syntax element. */
+    uint32_t                slice_segment_address;
+    /** \brief index into ReferenceFrames[]
+     * RefPicList[0][] corresponds to RefPicList0[] of HEVC variable.
+     * RefPicList[1][] corresponds to RefPicList1[] of HEVC variable.
+     * value range [0..14, 0xFF], where 0xFF indicates invalid entry.
+     */
+    uint8_t                 RefPicList[2][15];
+    union
+    {
+        uint32_t            value;
+        struct
+        {
+            /** current slice is last slice of picture. */
+            uint32_t        LastSliceOfPic                              : 1;
+    /** HEVC syntax element. */
+            uint32_t        dependent_slice_segment_flag                : 1;
+    /** HEVC syntax element. */
+            uint32_t        slice_type                                  : 2;
+    /** HEVC syntax element. */
+            uint32_t        color_plane_id                              : 2;
+    /** HEVC syntax element. */
+            uint32_t        slice_sao_luma_flag                         : 1;
+    /** HEVC syntax element. */
+            uint32_t        slice_sao_chroma_flag                       : 1;
+    /** HEVC syntax element. */
+            uint32_t        mvd_l1_zero_flag                            : 1;
+    /** HEVC syntax element. */
+            uint32_t        cabac_init_flag                             : 1;
+    /** HEVC syntax element. */
+            uint32_t        slice_temporal_mvp_enabled_flag             : 1;
+    /** HEVC syntax element. */
+            uint32_t        slice_deblocking_filter_disabled_flag       : 1;
+    /** HEVC syntax element. */
+            uint32_t        collocated_from_l0_flag                     : 1;
+    /** HEVC syntax element. */
+            uint32_t        slice_loop_filter_across_slices_enabled_flag : 1;
+            uint32_t        reserved                                    : 18;
+        } fields;
+    } LongSliceFlags;
+
+    /** HEVC syntax element. Collocated Reference Picture Index.
+     * index to RefPicList[0][] or RefPicList[1][].
+     * when slice_temporal_mvp_enabled_flag equals 0, it should take value 0xFF.
+     * value range [0..14, 0xFF].
+     */
+    uint8_t                 collocated_ref_idx;
+    /** HEVC syntax element.
+     * if num_ref_idx_active_override_flag equals 0, host decoder should
+     * set its value to num_ref_idx_l0_default_minus1.
+     */
+    uint8_t                 num_ref_idx_l0_active_minus1;
+    /** HEVC syntax element.
+     * if num_ref_idx_active_override_flag equals 0, host decoder should
+     * set its value to num_ref_idx_l1_default_minus1.
+     */
+    uint8_t                 num_ref_idx_l1_active_minus1;
+    /** HEVC syntax element. */
+    int8_t                  slice_qp_delta;
+    /** HEVC syntax element. */
+    int8_t                  slice_cb_qp_offset;
+    /** HEVC syntax element. */
+    int8_t                  slice_cr_qp_offset;
+    /** HEVC syntax element. */
+    int8_t                  slice_beta_offset_div2;
+    /** HEVC syntax element. */
+    int8_t                  slice_tc_offset_div2;
+    /** HEVC syntax element. */
+    uint8_t                 luma_log2_weight_denom;
+    /** HEVC syntax element. */
+    uint8_t                 delta_chroma_log2_weight_denom;
+    /** HEVC syntax element. */
+    int8_t                  delta_luma_weight_l0[15];
+    /** HEVC syntax element. */
+    int8_t                  luma_offset_l0[15];
+    /** HEVC syntax element. */
+    int8_t                  delta_chroma_weight_l0[15][2];
+    /** corresponds to HEVC spec variable of the same name. */
+    int8_t                  ChromaOffsetL0[15][2];
+    /** HEVC syntax element. */
+    int8_t                  delta_luma_weight_l1[15];
+    /** HEVC syntax element. */
+    int8_t                  luma_offset_l1[15];
+    /** HEVC syntax element. */
+    int8_t                  delta_chroma_weight_l1[15][2];
+    /** corresponds to HEVC spec variable of the same name. */
+    int8_t                  ChromaOffsetL1[15][2];
+    /** HEVC syntax element. */
+    uint8_t                 five_minus_max_num_merge_cand;
+    /**@}*/
+
+} VASliceParameterBufferHEVC;
+
+
+
+/**
+ * \brief HEVC Inverse Quantization Matrix Buffer Structure
+ *
+ * This structure is sent once per frame,
+ * and only when scaling_list_enabled_flag = 1.
+ * When sps_scaling_list_data_present_flag = 0, app still
+ * needs to send in this structure with default matrix values.
+ *
+ * Matrix entries are in raster scan order which follows HEVC spec.
+ */
+typedef struct _VAIQMatrixBufferHEVC
+{
+    /**
+     * \brief scaling lists,
+     * corresponds to same HEVC spec syntax element
+     * ScalingList[ i ][ MatrixID ][ j ].
+     *
+     * \brief 4x4 scaling,
+     * correspongs i = 0, MatrixID is in the range of 0 to 5,
+     * inclusive. And j is in the range of 0 to 15, inclusive.
+     */
+    uint8_t                 ScalingList4x4[6][16];
+    /**
+     * \brief 8x8 scaling,
+     * correspongs i = 1, MatrixID is in the range of 0 to 5,
+     * inclusive. And j is in the range of 0 to 63, inclusive.
+     */
+    uint8_t                 ScalingList8x8[6][64];
+    /**
+     * \brief 16x16 scaling,
+     * correspongs i = 2, MatrixID is in the range of 0 to 5,
+     * inclusive. And j is in the range of 0 to 63, inclusive.
+     */
+    uint8_t                 ScalingList16x16[6][64];
+    /**
+     * \brief 32x32 scaling,
+     * correspongs i = 3, MatrixID is in the range of 0 to 1,
+     * inclusive. And j is in the range of 0 to 63, inclusive.
+     */
+    uint8_t                 ScalingList32x32[2][64];
+    /**
+     * \brief DC values of the 16x16 scaling lists,
+     * corresponds to HEVC spec syntax
+     * scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8
+     * with sizeID = 2 and matrixID in the range of 0 to 5, inclusive.
+     */
+    uint8_t                 ScalingListDC16x16[6];
+    /**
+     * \brief DC values of the 32x32 scaling lists,
+     * corresponds to HEVC spec syntax
+     * scaling_list_dc_coef_minus8[ sizeID - 2 ][ matrixID ] + 8
+     * with sizeID = 3 and matrixID in the range of 0 to 1, inclusive.
+     */
+    uint8_t                 ScalingListDC32x32[2];
+} VAIQMatrixBufferHEVC;
+
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_DEC_HEVC_H */
diff --git a/examples/thirdparty/libva/va/va_dec_jpeg.h b/examples/thirdparty/libva/va/va_dec_jpeg.h
new file mode 100644
index 0000000..380e0fe
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_dec_jpeg.h
@@ -0,0 +1,178 @@
+/*
+ * Copyright (c) 2007-2012 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 INTEL 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 va_dec_jpeg.h
+ * \brief The JPEG decoding API
+ *
+ * This file contains the \ref api_dec_jpeg "JPEG decoding API".
+ */
+
+#ifndef VA_DEC_JPEG_H
+#define VA_DEC_JPEG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <va/va.h>
+
+/**
+ * \defgroup api_dec_jpeg JPEG decoding API
+ *
+ * This JPEG decoding API supports Baseline profile only.
+ *
+ * @{
+ */
+
+/**
+ * \brief Picture parameter for JPEG decoding.
+ *
+ * This structure holds information from the frame header, along with
+ * definitions from additional segments.
+ */
+typedef struct _VAPictureParameterBufferJPEGBaseline {
+    /** \brief Picture width in pixels. */
+    unsigned short      picture_width;
+    /** \brief Picture height in pixels. */
+    unsigned short      picture_height;
+
+    struct {
+        /** \brief Component identifier (Ci). */
+        unsigned char   component_id;
+        /** \brief Horizontal sampling factor (Hi). */
+        unsigned char   h_sampling_factor;
+        /** \brief Vertical sampling factor (Vi). */
+        unsigned char   v_sampling_factor;
+        /* \brief Quantization table selector (Tqi). */
+        unsigned char   quantiser_table_selector;
+    }                   components[255];
+    /** \brief Number of components in frame (Nf). */
+    unsigned char       num_components;
+} VAPictureParameterBufferJPEGBaseline;
+
+/**
+ * \brief Quantization table for JPEG decoding.
+ *
+ * This structure holds the complete quantization tables. This is an
+ * aggregation of all quantization table (DQT) segments maintained by
+ * the application. i.e. up to 4 quantization tables are stored in
+ * there for baseline profile.
+ *
+ * The #load_quantization_table array can be used as a hint to notify
+ * the VA driver implementation about which table(s) actually changed
+ * since the last submission of this buffer.
+ *
+ * The #quantiser_table values are specified in zig-zag scan order.
+ */
+typedef struct _VAIQMatrixBufferJPEGBaseline {
+    /** \brief Specifies which #quantiser_table is valid. */
+    unsigned char       load_quantiser_table[4];
+    /** \brief Quanziation tables indexed by table identifier (Tqi). */
+    unsigned char       quantiser_table[4][64];
+} VAIQMatrixBufferJPEGBaseline;
+
+/**
+ * \brief Huffman table for JPEG decoding.
+ *
+ * This structure holds the complete Huffman tables. This is an
+ * aggregation of all Huffman table (DHT) segments maintained by the
+ * application. i.e. up to 2 Huffman tables are stored in there for
+ * baseline profile.
+ *
+ * The #load_huffman_table array can be used as a hint to notify the
+ * VA driver implementation about which table(s) actually changed
+ * since the last submission of this buffer.
+ */
+typedef struct _VAHuffmanTableBufferJPEGBaseline {
+    /** \brief Specifies which #huffman_table is valid. */
+    unsigned char       load_huffman_table[2];
+    /** \brief Huffman tables indexed by table identifier (Th). */
+    struct {
+        /** @name DC table (up to 12 categories) */
+        /**@{*/
+        /** \brief Number of Huffman codes of length i + 1 (Li). */
+        unsigned char   num_dc_codes[16];
+        /** \brief Value associated with each Huffman code (Vij). */
+        unsigned char   dc_values[12];
+        /**@}*/
+        /** @name AC table (2 special codes + up to 16 * 10 codes) */
+        /**@{*/
+        /** \brief Number of Huffman codes of length i + 1 (Li). */
+        unsigned char   num_ac_codes[16];
+        /** \brief Value associated with each Huffman code (Vij). */
+        unsigned char   ac_values[162];
+        /** \brief Padding to 4-byte boundaries. Must be set to zero. */
+        unsigned char   pad[2];
+        /**@}*/
+    }                   huffman_table[2];
+} VAHuffmanTableBufferJPEGBaseline;
+
+/**
+ * \brief Slice parameter for JPEG decoding.
+ *
+ * This structure holds information from the scan header, along with
+ * definitions from additional segments. The associated slice data
+ * buffer holds all entropy coded segments (ECS) in the scan.
+ */
+typedef struct _VASliceParameterBufferJPEGBaseline {
+    /** @name Codec-independent Slice Parameter Buffer base. */
+    /**@{*/
+    /** \brief Number of bytes in the slice data buffer for this slice. */
+    unsigned int        slice_data_size;
+    /** \brief The offset to the first byte of the first MCU. */
+    unsigned int        slice_data_offset;
+    /** \brief Slice data buffer flags. See \c VA_SLICE_DATA_FLAG_xxx. */
+    unsigned int        slice_data_flag;
+    /**@}*/
+
+    /** \brief Scan horizontal position. */
+    unsigned int        slice_horizontal_position;
+    /** \brief Scan vertical position. */
+    unsigned int        slice_vertical_position;
+
+    struct {
+        /** \brief Scan component selector (Csj). */
+        unsigned char   component_selector;
+        /** \brief DC entropy coding table selector (Tdj). */
+        unsigned char   dc_table_selector;
+        /** \brief AC entropy coding table selector (Taj). */
+        unsigned char   ac_table_selector;
+    }                   components[4];
+    /** \brief Number of components in scan (Ns). */
+    unsigned char       num_components;
+
+    /** \brief Restart interval definition (Ri). */
+    unsigned short      restart_interval;
+    /** \brief Number of MCUs in a scan. */
+    unsigned int        num_mcus;
+} VASliceParameterBufferJPEGBaseline;
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_DEC_JPEG_H */
diff --git a/examples/thirdparty/libva/va/va_dec_vp8.h b/examples/thirdparty/libva/va/va_dec_vp8.h
new file mode 100644
index 0000000..32830cb
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_dec_vp8.h
@@ -0,0 +1,243 @@
+/*
+ * Copyright (c) 2007-2012 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 INTEL 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 va_dec_vp.h
+ * \brief VP8 decoding API
+ *
+ * This file contains the \ref api_dec_vp8 "VP8 decoding API".
+ */
+
+#ifndef VA_DEC_VP8_H
+#define VA_DEC_VP8_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_dec_vp8 VP8 decoding API
+ *
+ * @{
+ */
+
+/**
+ * \brief VPX Bool Coder Context structure 
+ *
+ * This common structure is defined for potential sharing by other VP formats
+ *
+ */
+typedef struct _VABoolCoderContextVPX
+{
+    /* partition 0 "range" */
+    unsigned char range;
+    /* partition 0 "value" */
+    unsigned char value;
+    /*
+     * 'partition 0 number of shifts before an output byte is available'
+     * it is the number of remaining bits in 'value' for decoding, range [0, 7].
+     */
+
+    unsigned char count;
+} VABoolCoderContextVPX;
+
+/**
+ * \brief VP8 Decoding Picture Parameter Buffer Structure
+ *
+ * This structure conveys frame level parameters and should be sent once
+ * per frame.
+ *
+ */
+typedef struct  _VAPictureParameterBufferVP8
+{
+    /* frame width in pixels */
+    unsigned int frame_width;
+    /* frame height in pixels */
+    unsigned int frame_height;
+
+    /* specifies the "last" reference frame */
+    VASurfaceID last_ref_frame;
+    /* specifies the "golden" reference frame */
+    VASurfaceID golden_ref_frame;
+    /* specifies the "alternate" referrence frame */
+    VASurfaceID alt_ref_frame;
+    /* specifies the out-of-loop deblocked frame, not used currently */
+    VASurfaceID out_of_loop_frame;
+
+    union {
+        struct {
+	    /* same as key_frame in bitstream syntax, 0 means a key frame */
+            unsigned int key_frame			: 1; 
+	    /* same as version in bitstream syntax */
+            unsigned int version			: 3;
+	    /* same as segmentation_enabled in bitstream syntax */
+            unsigned int segmentation_enabled		: 1;
+	    /* same as update_mb_segmentation_map in bitstream syntax */
+            unsigned int update_mb_segmentation_map	: 1;
+	    /* same as update_segment_feature_data in bitstream syntax */
+            unsigned int update_segment_feature_data	: 1;
+	    /* same as filter_type in bitstream syntax */
+            unsigned int filter_type			: 1; 
+	    /* same as sharpness_level in bitstream syntax */
+            unsigned int sharpness_level		: 3; 
+	    /* same as loop_filter_adj_enable in bitstream syntax */
+            unsigned int loop_filter_adj_enable		: 1; 
+	    /* same as mode_ref_lf_delta_update in bitstream syntax */
+            unsigned int mode_ref_lf_delta_update	: 1; 
+	    /* same as sign_bias_golden in bitstream syntax */
+            unsigned int sign_bias_golden		: 1; 
+	    /* same as sign_bias_alternate in bitstream syntax */
+            unsigned int sign_bias_alternate		: 1; 
+	    /* same as mb_no_coeff_skip in bitstream syntax */
+            unsigned int mb_no_coeff_skip		: 1; 
+	    /* flag to indicate that loop filter should be disabled */
+            unsigned int loop_filter_disable		: 1; 
+        } bits;
+        unsigned int value;
+    } pic_fields;
+
+    /*
+     * probabilities of the segment_id decoding tree and same as 
+     * mb_segment_tree_probs in the spec.
+     */
+    unsigned char mb_segment_tree_probs[3];
+
+    /* Post-adjustment loop filter levels for the 4 segments */
+    unsigned char loop_filter_level[4];
+    /* loop filter deltas for reference frame based MB level adjustment */
+    char loop_filter_deltas_ref_frame[4];
+    /* loop filter deltas for coding mode based MB level adjustment */
+    char loop_filter_deltas_mode[4];
+
+    /* same as prob_skip_false in bitstream syntax */
+    unsigned char prob_skip_false;
+    /* same as prob_intra in bitstream syntax */
+    unsigned char prob_intra;
+    /* same as prob_last in bitstream syntax */
+    unsigned char prob_last;
+    /* same as prob_gf in bitstream syntax */
+    unsigned char prob_gf;
+
+    /* 
+     * list of 4 probabilities of the luma intra prediction mode decoding
+     * tree and same as y_mode_probs in frame header
+     */
+    unsigned char y_mode_probs[4]; 
+    /*
+     * list of 3 probabilities of the chroma intra prediction mode decoding
+     * tree and same as uv_mode_probs in frame header
+     */
+    unsigned char uv_mode_probs[3];
+    /* 
+     * updated mv decoding probabilities and same as mv_probs in 
+     * frame header
+     */
+    unsigned char mv_probs[2][19];
+
+    VABoolCoderContextVPX bool_coder_ctx;
+
+} VAPictureParameterBufferVP8;
+
+/**
+ * \brief VP8 Slice Parameter Buffer Structure
+ *
+ * This structure conveys parameters related to data partitions and should be 
+ * sent once per frame. Slice data buffer of VASliceDataBufferType is used
+ * to send the partition data.
+ *
+ */
+typedef struct  _VASliceParameterBufferVP8
+{
+    /*
+     * number of bytes in the slice data buffer for the partitions 
+     */
+    unsigned int slice_data_size;
+    /*
+     * offset to the first byte of partition data (control partition)
+     */
+    unsigned int slice_data_offset;
+    /*
+     * see VA_SLICE_DATA_FLAG_XXX definitions
+     */
+    unsigned int slice_data_flag; 
+    /*
+     * offset to the first bit of MB from the first byte of partition data(slice_data_offset)
+     */
+    unsigned int macroblock_offset;
+
+    /*
+     * Partitions
+     * (1<<log2_nbr_of_dct_partitions)+1, count both control partition (frame header) and toke partition
+     */
+    unsigned char num_of_partitions;
+    /*
+     * partition_size[0] is remaining bytes of control partition after parsed by application.
+     * exclude current byte for the remaining bits in bool_coder_ctx.
+     * exclude the uncompress data chunk since first_part_size 'excluding the uncompressed data chunk'
+     */
+    unsigned int partition_size[9];
+} VASliceParameterBufferVP8;
+
+/**
+ * \brief VP8 Coefficient Probability Data Buffer Structure
+ *
+ * Contains the contents of the token probability table, which may be 
+ * incrementally modified in the frame header. There are four dimensions to 
+ * the token probability array. The outermost dimension is indexed by the 
+ * type of plane being decoded; the next dimension is selected by the 
+ * position of the coefficient being decoded; the third dimension, * roughly 
+ * speaking, measures the "local complexity" or extent to which nearby 
+ * coefficients are non-zero; the fourth, and final, dimension of the token 
+ * probability array is indexed by the position in the token tree structure, 
+ * as are all tree probability arrays. This structure is sent once per frame.
+ *
+ */
+typedef struct _VAProbabilityDataBufferVP8
+{
+    unsigned char dct_coeff_probs[4][8][3][11];
+} VAProbabilityDataBufferVP8;
+
+/**
+ * \brief VP8 Inverse Quantization Matrix Buffer Structure
+ *
+ * Contains quantization indices for yac(0),ydc(1),y2dc(2),y2ac(3),uvdc(4),
+ * uvac(5) for each segment (0-3). When segmentation is disabled, only  
+ * quantization_index[0][] will be used. This structure is sent once per frame.
+ */
+typedef struct _VAIQMatrixBufferVP8
+{
+    /* 
+     * array first dimensional is segment and 2nd dimensional is Q index
+     * all Q indexs should be clipped to be range [0, 127]
+     */
+    unsigned short quantization_index[4][6];
+} VAIQMatrixBufferVP8;
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_DEC_VP8_H */
diff --git a/examples/thirdparty/libva/va/va_drmcommon.h b/examples/thirdparty/libva/va/va_drmcommon.h
new file mode 100644
index 0000000..76820a3
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_drmcommon.h
@@ -0,0 +1,76 @@
+/*
+ * va_drmcommon.h - Common utilities for DRM-based drivers
+ *
+ * Copyright (c) 2012 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 INTEL 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 VA_DRM_COMMON_H
+#define VA_DRM_COMMON_H
+
+/** \brief DRM authentication type. */
+enum {
+    /** \brief Disconnected. */
+    VA_DRM_AUTH_NONE    = 0,
+    /**
+     * \brief Connected. Authenticated with DRI1 protocol.
+     *
+     * @deprecated
+     * This is a deprecated authentication type. All DRI-based drivers have
+     * been migrated to use the DRI2 protocol. Newly written drivers shall
+     * use DRI2 protocol only, or a custom authentication means. e.g. opt
+     * for authenticating on the VA driver side, instead of libva side.
+     */
+    VA_DRM_AUTH_DRI1    = 1,
+    /**
+     * \brief Connected. Authenticated with DRI2 protocol.
+     *
+     * This is only useful to VA/X11 drivers. The libva-x11 library provides
+     * a helper function VA_DRI2Authenticate() for authenticating the
+     * connection. However, DRI2 conformant drivers don't need to call that
+     * function since authentication happens on the libva side, implicitly.
+     */
+    VA_DRM_AUTH_DRI2    = 2,
+    /**
+     * \brief Connected. Authenticated with some alternate raw protocol.
+     *
+     * This authentication mode is mainly used in non-VA/X11 drivers.
+     * Authentication happens through some alternative method, at the
+     * discretion of the VA driver implementation.
+     */
+    VA_DRM_AUTH_CUSTOM  = 3
+};
+
+/** \brief Base DRM state. */
+struct drm_state {
+    /** \brief DRM connection descriptor. */
+    int         fd;
+    /** \brief DRM authentication type. */
+    int         auth_type;
+};
+
+/** \brief Kernel DRM buffer memory type.  */
+#define VA_SURFACE_ATTRIB_MEM_TYPE_KERNEL_DRM		0x10000000
+/** \brief DRM PRIME memory type. */
+#define VA_SURFACE_ATTRIB_MEM_TYPE_DRM_PRIME		0x20000000
+
+#endif /* VA_DRM_COMMON_H */
diff --git a/examples/thirdparty/libva/va/va_enc_h264.h b/examples/thirdparty/libva/va/va_enc_h264.h
new file mode 100644
index 0000000..604877f
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_enc_h264.h
@@ -0,0 +1,592 @@
+/*
+ * Copyright (c) 2007-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 INTEL 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 va_enc_h264.h
+ * \brief The H.264 encoding API
+ *
+ * This file contains the \ref api_enc_h264 "H.264 encoding API".
+ */
+
+#ifndef VA_ENC_H264_H
+#define VA_ENC_H264_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_enc_h264 H.264 encoding API
+ *
+ * @{
+ */
+
+/**
+ * @name Picture flags
+ *
+ * Those flags flags are meant to signal when a picture marks the end
+ * of a sequence, a stream, or even both at once.
+ *
+ * @{
+ */
+/**
+ * \brief Marks the last picture in the sequence.
+ *
+ * i.e. the driver appends \c end_of_seq() NAL unit to the encoded frame.
+ */
+#define H264_LAST_PICTURE_EOSEQ     0x01
+/**
+ * \brief Marks the last picture in the stream.
+ *
+ * i.e. the driver appends \c end_of_stream() NAL unit to the encoded frame.
+ */
+#define H264_LAST_PICTURE_EOSTREAM  0x02
+/**@}*/
+
+/**
+ * \brief Packed header types specific to H.264 encoding.
+ *
+ * Types of packed headers generally used for H.264 encoding. Each
+ * associated packed header data buffer shall contain the start code
+ * prefix 0x000001 followed by the complete NAL unit, thus also
+ * including the \c nal_unit_type.
+ *
+ * Note: the start code prefix can contain an arbitrary number of leading
+ * zeros. The driver will skip them for emulation prevention bytes insertion,
+ * if necessary.
+ */
+typedef enum {
+    /**
+     * \brief Packed Sequence Parameter Set (SPS).
+     *
+     * The corresponding packed header data buffer shall contain the
+     * complete seq_parameter_set_rbsp() syntax element.
+     *
+     * Note: packed \c nal_unit_type shall be equal to 7.
+     */
+    VAEncPackedHeaderH264_SPS   = VAEncPackedHeaderSequence,
+    /**
+     * \brief Packed Picture Parameter Set (PPS).
+     *
+     * The corresponding packed header data buffer shall contain the
+     * complete pic_parameter_set_rbsp() syntax element.
+     *
+     * Note: packed \c nal_unit_type shall be equal to 8.
+     */
+    VAEncPackedHeaderH264_PPS   = VAEncPackedHeaderPicture,
+    /**
+     * \brief Packed slice header.
+     *
+     * The corresponding packed header data buffer shall contain the
+     * \c slice_header() syntax element only, along with any start
+     * code prefix and NAL unit type preceeding it. i.e. this means
+     * that the buffer does not contain any of the \c slice_data() or
+     * the \c rbsp_slice_trailing_bits().
+     *
+     * Note: packed \c nal_unit_type shall be equal to 1 (non-IDR
+     * picture), or 5 (IDR picture).
+     */
+    VAEncPackedHeaderH264_Slice = VAEncPackedHeaderSlice,
+    /**
+     * \brief Packed Supplemental Enhancement Information (SEI).
+     *
+     * The corresponding packed header data buffer shall contain the
+     * complete sei_rbsp() syntax element, thus including several
+     * sei_message() elements if necessary.
+     *
+     * Note: packed \c nal_unit_type shall be equal to 6.
+     */
+    VAEncPackedHeaderH264_SEI   = (VAEncPackedHeaderMiscMask | 1),
+} VAEncPackedHeaderTypeH264;
+
+/**
+ * \brief Sequence parameter for H.264 encoding in baseline, main & high 
+ * profiles.
+ *
+ * This structure holds information for \c seq_parameter_set_data() as
+ * defined by the H.264 specification.
+ *
+ * If packed sequence headers mode is used, i.e. if the encoding
+ * pipeline was configured with the #VA_ENC_PACKED_HEADER_SEQUENCE
+ * flag, then the driver expects two more buffers to be provided to
+ * the same \c vaRenderPicture() as this buffer:
+ * - a #VAEncPackedHeaderParameterBuffer with type set to
+ *   VAEncPackedHeaderType::VAEncPackedHeaderSequence ;
+ * - a #VAEncPackedHeaderDataBuffer which holds the actual packed
+ *   header data.
+ *
+ * If \c seq_scaling_matrix_present_flag is set to \c 1, then a
+ * #VAIQMatrixBufferH264 buffer shall also be provided within the same
+ * \c vaRenderPicture() call as this sequence parameter buffer.
+ */
+typedef struct _VAEncSequenceParameterBufferH264 {
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   seq_parameter_set_id;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   level_idc;
+    /** \brief Period between I frames. */
+    unsigned int    intra_period;
+    /** \brief Period between IDR frames. */
+    unsigned int    intra_idr_period;
+    /** \brief Period between I/P frames. */
+    unsigned int    ip_period;
+    /**
+     * \brief Initial bitrate set for this sequence in CBR or VBR modes.
+     *
+     * This field represents the initial bitrate value for this
+     * sequence if CBR or VBR mode is used, i.e. if the encoder
+     * pipeline was created with a #VAConfigAttribRateControl
+     * attribute set to either \ref VA_RC_CBR or \ref VA_RC_VBR.
+     *
+     * The bitrate can be modified later on through
+     * #VAEncMiscParameterRateControl buffers.
+     */
+    unsigned int    bits_per_second;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    max_num_ref_frames;
+    /** \brief Picture width in macroblocks. */
+    unsigned short  picture_width_in_mbs;
+    /** \brief Picture height in macroblocks. */
+    unsigned short  picture_height_in_mbs;
+
+    union {
+        struct {
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int chroma_format_idc                      : 2;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int frame_mbs_only_flag                    : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int mb_adaptive_frame_field_flag           : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int seq_scaling_matrix_present_flag        : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int direct_8x8_inference_flag              : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int log2_max_frame_num_minus4              : 4;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int pic_order_cnt_type                     : 2;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int log2_max_pic_order_cnt_lsb_minus4      : 4;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int delta_pic_order_always_zero_flag       : 1;
+        } bits;
+        unsigned int value;
+    } seq_fields;
+
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   bit_depth_luma_minus8;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   bit_depth_chroma_minus8;
+
+    /** if pic_order_cnt_type == 1 */
+    /**@{*/
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   num_ref_frames_in_pic_order_cnt_cycle;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    int             offset_for_non_ref_pic;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    int             offset_for_top_to_bottom_field;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    int             offset_for_ref_frame[256];
+    /**@}*/
+
+    /** @name Cropping (optional) */
+    /**@{*/
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   frame_cropping_flag;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    frame_crop_left_offset;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    frame_crop_right_offset;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    frame_crop_top_offset;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    frame_crop_bottom_offset;
+    /**@}*/
+
+    /** @name VUI parameters (optional) */
+    /**@{*/
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   vui_parameters_present_flag;
+    union {
+        struct {
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int aspect_ratio_info_present_flag         : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int timing_info_present_flag               : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int bitstream_restriction_flag             : 1;
+            /** \brief Range: 0 to 16, inclusive. */
+            unsigned int log2_max_mv_length_horizontal          : 5;
+            /** \brief Range: 0 to 16, inclusive. */
+            unsigned int log2_max_mv_length_vertical            : 5;
+        } bits;
+        unsigned int value;
+    } vui_fields;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   aspect_ratio_idc;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    sar_width;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    sar_height;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    num_units_in_tick;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned int    time_scale;
+    /**@}*/
+} VAEncSequenceParameterBufferH264;
+
+/**
+ * \brief Picture parameter for H.264 encoding in baseline, main & high 
+ * profiles.
+ *
+ * This structure holds information for \c pic_parameter_set_rbsp() as
+ * defined by the H.264 specification.
+ *
+ * If packed picture headers mode is used, i.e. if the encoding
+ * pipeline was configured with the #VA_ENC_PACKED_HEADER_PICTURE
+ * flag, then the driver expects two more buffers to be provided to
+ * the same \c vaRenderPicture() as this buffer:
+ * - a #VAEncPackedHeaderParameterBuffer with type set to
+ *   VAEncPackedHeaderType::VAEncPackedHeaderPicture ;
+ * - a #VAEncPackedHeaderDataBuffer which holds the actual packed
+ *   header data.
+ *
+ * If \c pic_scaling_matrix_present_flag is set to \c 1, then a
+ * #VAIQMatrixBufferH264 buffer shall also be provided within the same
+ * \c vaRenderPicture() call as this picture parameter buffer.
+ */
+typedef struct _VAEncPictureParameterBufferH264 {
+    /**
+     * \brief Information about the picture to be encoded.
+     *
+     * See #VAPictureH264 for further description of each field.
+     * Note that CurrPic.picture_id represents the reconstructed
+     * (decoded) picture. User provides a scratch VA surface ID here.
+     */
+    VAPictureH264   CurrPic;
+    /**
+     * \brief Decoded Picture Buffer (DPB).
+     *
+     * This array represents the list of reconstructed (decoded)
+     * frames used as reference. It is important to keep track of
+     * reconstructed frames so that they can be used later on as
+     * reference for P or B-frames encoding.
+     */
+    VAPictureH264   ReferenceFrames[16];
+    /**
+     * \brief Output encoded bitstream.
+     *
+     * \ref coded_buf has type #VAEncCodedBufferType. It should be
+     * large enough to hold the compressed NAL slice and possibly SPS
+     * and PPS NAL units.
+     */
+    VABufferID      coded_buf;
+
+    /** \brief The picture parameter set referred to in the slice header. */
+    unsigned char   pic_parameter_set_id;
+    /** \brief The active sequence parameter set. Range: 0 to 31, inclusive. */
+    unsigned char   seq_parameter_set_id;
+
+    /**
+     * \brief OR'd flags describing whether the picture is the last one or not.
+     *
+     * This fields holds 0 if the picture to be encoded is not the last
+     * one in the stream or sequence. Otherwise, it is a combination of
+     * \ref H264_LAST_PICTURE_EOSEQ or \ref H264_LAST_PICTURE_EOSTREAM.
+     */
+    unsigned char   last_picture;
+
+    /** \brief The picture identifier.
+     *   Range: 0 to \f$2^{log2\_max\_frame\_num\_minus4 + 4} - 1\f$, inclusive.
+     */
+    unsigned short  frame_num;
+
+    /** \brief \c pic_init_qp_minus26 + 26. */
+    unsigned char   pic_init_qp;
+    /** \brief Maximum reference index for reference picture list 0.
+     *   Range: 0 to 31, inclusive.
+     */
+    unsigned char   num_ref_idx_l0_active_minus1;
+    /** \brief Maximum reference index for reference picture list 1.
+     *  Range: 0 to 31, inclusive.
+     */
+    unsigned char   num_ref_idx_l1_active_minus1;
+
+    /** \brief Range: -12 to 12, inclusive. */
+    signed char     chroma_qp_index_offset;
+    /** \brief Range: -12 to 12, inclusive. */
+    signed char     second_chroma_qp_index_offset;
+
+    union {
+        struct {
+            /** \brief Is picture an IDR picture? */
+            unsigned int idr_pic_flag                           : 1;
+            /** \brief Is picture a reference picture? */
+            unsigned int reference_pic_flag                     : 2;
+            /** \brief Selects CAVLC (0) or CABAC (1) entropy coding mode. */
+            unsigned int entropy_coding_mode_flag               : 1;
+            /** \brief Is weighted prediction applied to P slices? */
+            unsigned int weighted_pred_flag                     : 1;
+            /** \brief Range: 0 to 2, inclusive. */
+            unsigned int weighted_bipred_idc                    : 2;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int constrained_intra_pred_flag            : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int transform_8x8_mode_flag                : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int deblocking_filter_control_present_flag : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int redundant_pic_cnt_present_flag         : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int pic_order_present_flag                 : 1;
+            /** \brief Same as the H.264 bitstream syntax element. */
+            unsigned int pic_scaling_matrix_present_flag        : 1;
+        } bits;
+        unsigned int value;
+    } pic_fields;
+} VAEncPictureParameterBufferH264;
+
+/**
+ * \brief Slice parameter for H.264 encoding in baseline, main & high profiles.
+ *
+ * This structure holds information for \c
+ * slice_layer_without_partitioning_rbsp() as defined by the H.264
+ * specification.
+ *
+ * If packed slice headers mode is used, i.e. if the encoding
+ * pipeline was configured with the #VA_ENC_PACKED_HEADER_SLICE
+ * flag, then the driver expects two more buffers to be provided to
+ * the same \c vaRenderPicture() as this buffer:
+ * - a #VAEncPackedHeaderParameterBuffer with type set to
+ *   VAEncPackedHeaderType::VAEncPackedHeaderSlice ;
+ * - a #VAEncPackedHeaderDataBuffer which holds the actual packed
+ *   header data.
+ *
+ * If per-macroblock encoder configuration is needed, \c macroblock_info
+ * references a buffer of type #VAEncMacroblockParameterBufferH264. This
+ * buffer is not passed to vaRenderPicture(). i.e. it is not destroyed
+ * by subsequent calls to vaRenderPicture() and then can be re-used
+ * without re-allocating the whole buffer.
+ */
+typedef struct _VAEncSliceParameterBufferH264 {
+    /** \brief Starting MB address for this slice. */
+    unsigned int    macroblock_address;
+    /** \brief Number of macroblocks in this slice. */
+    unsigned int    num_macroblocks;
+    /**
+     * \brief Per-MB encoder configuration buffer, or \c VA_INVALID_ID.
+     *
+     * If per-MB encoder configuration is needed, then \ref macroblock_info
+     * references a buffer of type #VAEncMacroblockParameterBufferH264
+     * (\c VAEncMacroblockParameterBufferType). Otherwise, buffer id
+     * is set to \c VA_INVALID_ID and per-MB configuration is derived
+     * from this slice parameter.
+     *
+     * The \c macroblock_info buffer must hold \ref num_macroblocks
+     * elements.
+     */
+    VABufferID      macroblock_info;
+    /** \brief Slice type.
+     *  Range: 0..2, 5..7, i.e. no switching slices.
+     */
+    unsigned char   slice_type;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   pic_parameter_set_id;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned short  idr_pic_id;
+
+    /** @name If pic_order_cnt_type == 0 */
+    /**@{*/
+    /** \brief The picture order count modulo MaxPicOrderCntLsb. */
+    unsigned short  pic_order_cnt_lsb;
+    /** \brief Valid if \c pic_order_present_flag and this is a bottom field. */
+    int             delta_pic_order_cnt_bottom;
+    /**@}*/
+    /** @name If pic_order_cnt_type == 1 && !delta_pic_order_always_zero_flag */
+    /**@{*/
+    /** \brief [0]: top, [1]: bottom. */
+    int             delta_pic_order_cnt[2];
+    /**@}*/
+
+    /** @name If slice_type == B */
+    /**@{*/
+    unsigned char   direct_spatial_mv_pred_flag;
+    /**@}*/
+
+    /** @name If slice_type == P */
+    /**@{*/
+    /** \brief Specifies if
+     * \ref _VAEncPictureParameterBufferH264::num_ref_idx_l0_active_minus1 or
+     * \ref _VAEncPictureParameterBufferH264::num_ref_idx_l1_active_minus1 are
+     * overriden by the values for this slice.
+     */
+    unsigned char   num_ref_idx_active_override_flag;
+    /** \brief Maximum reference index for reference picture list 0.
+     *  Range: 0 to 31, inclusive.
+     */
+    unsigned char   num_ref_idx_l0_active_minus1;
+    /** \brief Maximum reference index for reference picture list 1.
+     *  Range: 0 to 31, inclusive.
+     */
+    unsigned char   num_ref_idx_l1_active_minus1;
+    /** \brief Reference picture list 0 (for P slices). */
+    VAPictureH264   RefPicList0[32];
+    /** \brief Reference picture list 1 (for B slices). */
+    VAPictureH264   RefPicList1[32];
+    /**@}*/
+
+    /** @name pred_weight_table() */
+    /**@{*/
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   luma_log2_weight_denom;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   chroma_log2_weight_denom;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   luma_weight_l0_flag;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed short    luma_weight_l0[32];
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed short    luma_offset_l0[32];
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   chroma_weight_l0_flag;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed short    chroma_weight_l0[32][2];
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed short    chroma_offset_l0[32][2];
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   luma_weight_l1_flag;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed short    luma_weight_l1[32];
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed short    luma_offset_l1[32];
+    /** \brief Same as the H.264 bitstream syntax element. */
+    unsigned char   chroma_weight_l1_flag;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed short    chroma_weight_l1[32][2];
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed short    chroma_offset_l1[32][2];
+    /**@}*/
+
+    /** \brief Range: 0 to 2, inclusive. */
+    unsigned char   cabac_init_idc;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed char     slice_qp_delta;
+    /** @name If deblocking_filter_control_present_flag */
+    /**@{*/
+    /** \brief Range: 0 to 2, inclusive. */
+    unsigned char   disable_deblocking_filter_idc;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed char     slice_alpha_c0_offset_div2;
+    /** \brief Same as the H.264 bitstream syntax element. */
+    signed char     slice_beta_offset_div2;
+    /**@}*/
+} VAEncSliceParameterBufferH264;
+
+/**
+ * @name Macroblock neighbour availability bits
+ *
+ * \anchor api_enc_h264_mb_pred_avail_bits
+ * Definitions for macroblock neighbour availability bits used in
+ * intra prediction mode (non MBAFF only).
+ *
+ * @{
+ */
+/** \brief References macroblock in the top-left corner. */
+#define VA_MB_PRED_AVAIL_TOP_LEFT         (1 << 2)
+/** \brief References macroblock above the current macroblock. */
+#define VA_MB_PRED_AVAIL_TOP              (1 << 4)
+/** \brief References macroblock in the top-right corner. */
+#define VA_MB_PRED_AVAIL_TOP_RIGHT        (1 << 3)
+/** \brief References macroblock on the left of the current macroblock. */
+#define VA_MB_PRED_AVAIL_LEFT             (1 << 6)
+/**@}*/
+
+/**
+ * \brief Macroblock parameter for H.264 encoding in baseline, main & high 
+ * profiles.
+ *
+ * This structure holds per-macroblock information. The buffer must be
+ * allocated with as many elements (macroblocks) as necessary to fit
+ * the slice to be encoded. Besides, the per-macroblock records must
+ * be written in a strict raster order and with no gap. i.e. every
+ * macroblock, regardless of its type, shall have an entry.
+ */
+typedef struct _VAEncMacroblockParameterBufferH264 {
+    /**
+     * \brief Quantization parameter.
+     *
+     * Requested quantization parameter. Range: 0 to 51, inclusive.
+     * If \ref qp is set to 0xff, then the actual value is derived
+     * from the slice-level value: \c pic_init_qp + \c slice_qp_delta.
+     */
+    unsigned char   qp;
+
+    union {
+        /** @name Data for intra macroblock */
+        /**@{*/
+        struct {
+            union {
+                /**
+                 * \brief Flag specified to override MB neighbour
+                 * availability bits from VME stage.
+                 *
+                 * This flag specifies that macroblock neighbour
+                 * availability bits from the VME stage are overriden
+                 * by the \ref pred_avail_flags hereunder.
+                 */
+                unsigned int    pred_avail_override_flag        : 1;
+                /**
+                 * \brief Bitwise representation of which macroblocks
+                 * are available for intra prediction.
+                 *
+                 * If the slice is intra-coded, this field represents
+                 * the macroblocks available for intra prediction.
+                 * See \ref api_enc_h264_mb_pred_avail_bits
+                 * "macroblock neighbour availability" bit definitions.
+                 */
+                unsigned int    pred_avail_flags                : 8;
+            } bits;
+            unsigned int value;
+        } intra_fields;
+        /**@}*/
+
+        /** @name Data for inter macroblock */
+        /**@{*/
+        struct {
+            union {
+            } bits;
+            unsigned int value;
+        } inter_fields;
+        /**@}*/
+    } info;
+} VAEncMacroblockParameterBufferH264;
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_ENC_H264_H */
diff --git a/examples/thirdparty/libva/va/va_enc_jpeg.h b/examples/thirdparty/libva/va/va_enc_jpeg.h
new file mode 100644
index 0000000..be6b36e
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_enc_jpeg.h
@@ -0,0 +1,158 @@
+/*
+ * Copyright (c) 2007-2013 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 INTEL 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 va_enc_jpeg.h
+ * \brief JPEG encoding API
+ *
+ * This file contains the \ref api_enc_jpeg "JPEG encoding API".
+ */
+
+#ifndef VA_ENC_JPEG_H
+#define VA_ENC_JPEG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_enc_jpeg JPEG encoding API
+ *
+ * @{
+ */
+
+/**
+ * \brief JPEG Encoding Picture Parameter Buffer Structure
+ *
+ * This structure conveys picture level parameters.
+ *
+ */
+typedef struct  _VAEncPictureParameterBufferJPEG
+{
+    /** \brief holds reconstructed picture. */
+    VASurfaceID reconstructed_picture;
+    /** \brief picture width. */
+    unsigned short picture_width;
+    /** \brief picture height. */
+    unsigned short picture_height;
+    /** \brief holds coded data. */
+    VABufferID coded_buf;
+
+    /** 
+     * \brief pic_flags
+     *
+     */
+    union {
+        struct {
+            /** 
+             * \brief profile: 
+             * 0 - Baseline, 1 - Extended, 2 - Lossless, 3 - Hierarchical
+             */ 
+            unsigned int profile     : 2;
+            /** 
+             * \brief progressive: 
+             * 0 - sequential, 1 - extended, 2 - progressive
+             */ 
+            unsigned int progressive : 1;
+            /** 
+             * \brief huffman: 
+             * 0 - arithmetic, 1 - huffman
+             */ 
+            unsigned int huffman     : 1;
+            /** 
+             * \brief interleaved: 
+             * 0 - non interleaved, 1 - interleaved
+             */ 
+            unsigned int interleaved : 1;
+            /** 
+             * \brief differential: 
+             * 0 - non differential, 1 - differential
+             */ 
+            unsigned int differential   : 1;
+        } bits;
+        unsigned int value;
+    } pic_flags;
+
+    /** \brief number of bits per sample. */
+    unsigned char    sample_bit_depth;
+    /** \brief total number of scans in image. */
+    unsigned char    num_scan;
+    /** \brief number of image components in frame. */
+    unsigned short   num_components;
+    /** \brief Component identifier (Ci). */
+    unsigned char    component_id[4];
+    /** \brief Quantization table selector (Tqi). */
+    unsigned char    quantiser_table_selector[4];
+    /** \brief number from 1 to 100 that specifies quality of image. */
+    unsigned char    quality;
+
+} VAEncPictureParameterBufferJPEG;
+
+
+/**
+ * \brief Slice parameter for JPEG encoding. 
+ *
+ * This structure conveys slice (scan) level parameters.
+ *
+ */
+typedef struct _VAEncSliceParameterBufferJPEG {
+    /** \brief Restart interval definition (Ri). */
+    unsigned short    restart_interval;
+    /** \brief number of image components in a scan. */
+    unsigned short    num_components;
+    struct {
+        /** \brief Scan component selector (Csj). */
+        unsigned char   component_selector;
+        /** \brief DC entropy coding table selector (Tdj). */
+        unsigned char   dc_table_selector;
+        /** \brief AC entropy coding table selector (Taj). */
+        unsigned char   ac_table_selector;
+    } components[4];
+} VAEncSliceParameterBufferJPEG;
+
+/**
+ * \brief Quantization table for JPEG encoding.
+ *
+ */
+typedef struct _VAQMatrixBufferJPEG
+{
+    /** \brief load luma quantization table. */
+    int load_lum_quantiser_matrix;
+    /** \brief load chroma quantization table. */
+    int load_chroma_quantiser_matrix;
+    /** \brief luma quantization table. */
+    unsigned char lum_quantiser_matrix[64];
+    /** \brief chroma quantization table. */
+    unsigned char chroma_quantiser_matrix[64];
+} VAQMatrixBufferJPEG;
+
+/**@}*/
+
+#include <va/va_dec_jpeg.h>
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_ENC_JPEG_H */
diff --git a/examples/thirdparty/libva/va/va_enc_mpeg2.h b/examples/thirdparty/libva/va/va_enc_mpeg2.h
new file mode 100644
index 0000000..c12c8de
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_enc_mpeg2.h
@@ -0,0 +1,287 @@
+/*
+ * Copyright (c) 2012 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 INTEL 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 va_enc_mpeg2.h
+ * \brief The MPEG-2 encoding API
+ *
+ * This file contains the \ref api_enc_mpeg2 "MPEG-2 encoding API".
+ */
+
+#ifndef _VA_ENC_MPEG2_H_
+#define _VA_ENC_MPEG2_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_enc_mpeg2 MPEG-2 encoding API
+ *
+ * @{
+ */
+
+/**
+ * \brief MPEG-2 Quantization Matrix Buffer
+ *
+ */
+typedef VAIQMatrixBufferMPEG2 VAQMatrixBufferMPEG2;
+
+/**
+ * \brief Packed header types specific to MPEG-2 encoding.
+ *
+ * Types of packed headers generally used for MPEG-2 encoding.
+ */
+typedef enum {
+    /**
+     * \brief Packed Sequence Parameter Set (SPS).
+     *
+     */
+    VAEncPackedHeaderMPEG2_SPS = VAEncPackedHeaderSequence,
+    /**
+     * \brief Packed Picture Parameter Set (PPS).
+     *
+     */
+    VAEncPackedHeaderMPEG2_PPS = VAEncPackedHeaderPicture,
+    /**
+     * \brief Packed slice header.
+     *
+     */
+    VAEncPackedHeaderMPEG2_Slice = VAEncPackedHeaderSlice,
+} VAEncPackedHeaderTypeMPEG2;
+
+/**
+ * \brief Sequence parameter for MPEG-2 encoding
+ *
+ * This structure holds information for \c sequence_header() and
+ * sequence_extension().
+ *
+ * If packed sequence headers mode is used, i.e. if the encoding
+ * pipeline was configured with the #VA_ENC_PACKED_HEADER_SEQUENCE
+ * flag, then the driver expects two more buffers to be provided to
+ * the same \c vaRenderPicture() as this buffer:
+ * - a #VAEncPackedHeaderParameterBuffer with type set to
+ *   VAEncPackedHeaderType::VAEncPackedHeaderSequence ;
+ * - a #VAEncPackedHeaderDataBuffer which holds the actual packed
+ *   header data.
+ *
+ */
+typedef struct _VAEncSequenceParameterBufferMPEG2 {
+    /** \brief Period between I frames. */
+    unsigned int intra_period;
+    /** \brief Period between I/P frames. */
+    unsigned int ip_period;
+    /** \brief Picture width.
+     *
+     * A 14bits unsigned inter, the lower 12bits 
+     * is horizontal_size_value, and the upper 
+     * 2bits is \c horizontal_size_extension
+     *
+     */
+    unsigned short picture_width;
+    /** \brief Picture height.
+     *
+     * A 14bits unsigned inter, the lower 12bits
+     * is vertical_size_value, and the upper 2bits is 
+     * vertical_size_size_extension
+     *
+     */
+    unsigned short picture_height;
+    /**
+     * \brief Initial bitrate set for this sequence in CBR or VBR modes.
+     *
+     * This field represents the initial bitrate value for this
+     * sequence if CBR or VBR mode is used, i.e. if the encoder
+     * pipeline was created with a #VAConfigAttribRateControl
+     * attribute set to either \ref VA_RC_CBR or \ref VA_RC_VBR.
+     *
+     * bits_per_second may be derived from bit_rate.
+     *
+     */
+    unsigned int bits_per_second;
+    /**
+     * \brief Frame rate
+     * 
+     * Derived from frame_rate_value, frame_rate_extension_n and 
+     * frame_rate_extension_d
+     *
+     */
+    float frame_rate;
+    /** \brief Same as the element in sequence_header() */
+    unsigned short aspect_ratio_information;
+    /** \brief Define the size of VBV */
+    unsigned int vbv_buffer_size;
+
+    union {
+        struct {
+            /** \brief Same as the element in Sequence extension() */
+            unsigned int profile_and_level_indication   : 8;
+            /** \brief Same as the element in Sequence extension() */
+            unsigned int progressive_sequence           : 1;
+            /** \brief Same as the element in Sequence extension() */
+            unsigned int chroma_format                  : 2;
+            /** \brief Same as the element in Sequence extension() */
+            unsigned int low_delay                      : 1;
+            /** \brief Same as the element in Sequence extension() */
+            unsigned int frame_rate_extension_n         : 2;
+            /** \brief Same as the element in Sequence extension() */
+            unsigned int frame_rate_extension_d         : 5;
+        } bits;
+        unsigned int value;
+    } sequence_extension;
+
+    /** \brief Flag to indicate the following GOP header are being updated */
+    unsigned int new_gop_header;
+
+    union {
+        struct {
+            /** \brief Time code */
+            unsigned int time_code                      : 25;
+            /** \brief Same as the element in GOP header */
+            unsigned int closed_gop                     : 1;
+            /** \brief SAme as the element in GOP header */
+            unsigned int broken_link                    : 1;
+        } bits;
+        unsigned int value;
+    } gop_header;
+} VAEncSequenceParameterBufferMPEG2;
+
+/**
+ * \brief Picture parameter for MPEG-2 encoding
+ *
+ * This structure holds information for picture_header() and 
+ * picture_coding_extension()
+ *
+ * If packed picture headers mode is used, i.e. if the encoding
+ * pipeline was configured with the #VA_ENC_PACKED_HEADER_PICTURE
+ * flag, then the driver expects two more buffers to be provided to
+ * the same \c vaRenderPicture() as this buffer:
+ * - a #VAEncPackedHeaderParameterBuffer with type set to
+ *   VAEncPackedHeaderType::VAEncPackedHeaderPicture ;
+ * - a #VAEncPackedHeaderDataBuffer which holds the actual packed
+ *   header data.
+ *
+ */
+typedef struct _VAEncPictureParameterBufferMPEG2 {
+    /** \brief Forward reference picture */
+    VASurfaceID forward_reference_picture;
+    /** \brief Backward reference picture */
+    VASurfaceID backward_reference_picture;
+    /** \brief Reconstructed(decoded) picture */
+    VASurfaceID reconstructed_picture;
+    /**
+     * \brief Output encoded bitstream.
+     *
+     * \ref coded_buf has type #VAEncCodedBufferType. It should be
+     * large enough to hold the compressed NAL slice and possibly SPS
+     * and PPS NAL units.
+     */
+    VABufferID coded_buf;
+    /**
+     * \brief Flag to indicate the picture is the last one or not.
+     *
+     * This fields holds 0 if the picture to be encoded is not 
+     * the last one in the stream. Otherwise, it 
+     * is \ref MPEG2_LAST_PICTURE_EOSTREAM.
+     */
+    unsigned char last_picture;
+    /** \brief Picture type */
+    VAEncPictureType picture_type;
+    /** \brief Same as the element in picture_header() */
+    unsigned int temporal_reference;
+    /** \brief Same as the element in picture_header() */
+    unsigned int vbv_delay;
+    /** \brief Same as the element in Picture coding extension */
+    unsigned char f_code[2][2];
+    union {
+        struct {
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int intra_dc_precision             : 2; 
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int picture_structure              : 2; 
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int top_field_first                : 1; 
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int frame_pred_frame_dct           : 1; 
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int concealment_motion_vectors     : 1;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int q_scale_type                   : 1;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int intra_vlc_format               : 1;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int alternate_scan                 : 1;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int repeat_first_field             : 1;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int progressive_frame              : 1;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int composite_display_flag         : 1;
+        } bits;
+        unsigned int value;
+    } picture_coding_extension;
+
+    /* \brief Parameters for composite display
+     *
+     * Valid only when omposite_display_flag is 1
+     */
+    union {
+        struct {
+            /** \brief Same as the element in Picture coding extension */            
+            unsigned int v_axis                         : 1;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int field_sequence                 : 3;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int sub_carrier                    : 1;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int burst_amplitude                : 7;
+            /** \brief Same as the element in Picture coding extension */
+            unsigned int sub_carrier_phase              : 8;
+        } bits;
+        unsigned int value;
+    } composite_display;
+} VAEncPictureParameterBufferMPEG2;
+
+/**
+ * \brief Slice parameter for MPEG-2 encoding
+ *
+ */
+typedef struct _VAEncSliceParameterBufferMPEG2 {
+    /** \brief Starting MB address for this slice. */
+    unsigned int macroblock_address;
+    /** \brief Number of macroblocks in this slice. */
+    unsigned int num_macroblocks;
+    /** \brief Same as the element in slice() */
+    int quantiser_scale_code;
+    /** \brief Flag to indicate intra slice */
+    int is_intra_slice;
+} VAEncSliceParameterBufferMPEG2;
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VA_ENC_MPEG2_H_ */
diff --git a/examples/thirdparty/libva/va/va_enc_vp8.h b/examples/thirdparty/libva/va/va_enc_vp8.h
new file mode 100644
index 0000000..d294042
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_enc_vp8.h
@@ -0,0 +1,330 @@
+/*
+ * Copyright (c) 2007-2012 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 INTEL 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 va_enc_vp8.h
+ * \brief VP8 encoding API
+ *
+ * This file contains the \ref api_enc_vp8 "VP8 encoding API".
+ */
+
+#ifndef VA_ENC_VP8_H
+#define VA_ENC_VP8_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_enc_vp8 VP8 encoding API
+ *
+ * @{
+ */
+
+/**
+ * \brief VP8 Encoding Sequence Parameter Buffer Structure
+ *
+ * This structure conveys sequence level parameters.
+ *
+ */
+typedef struct  _VAEncSequenceParameterBufferVP8
+{
+    /* frame width in pixels */
+    unsigned int frame_width;
+    /* frame height in pixels */
+    unsigned int frame_height;
+    /* horizontal scale */
+    unsigned int frame_width_scale;
+    /* vertical scale */
+    unsigned int frame_height_scale;
+
+    /* whether to enable error resilience features */
+    unsigned int error_resilient;
+    /* auto keyframe placement, non-zero means enable auto keyframe placement */
+    unsigned int kf_auto;
+    /* keyframe minimum interval */
+    unsigned int kf_min_dist;
+    /* keyframe maximum interval */
+    unsigned int kf_max_dist;
+
+
+    /* RC related fields. RC modes are set with VAConfigAttribRateControl */
+    /* For VP8, CBR implies HRD conformance and VBR implies no HRD conformance */
+
+    /**
+     * Initial bitrate set for this sequence in CBR or VBR modes.
+     *
+     * This field represents the initial bitrate value for this
+     * sequence if CBR or VBR mode is used, i.e. if the encoder
+     * pipeline was created with a #VAConfigAttribRateControl
+     * attribute set to either \ref VA_RC_CBR or \ref VA_RC_VBR.
+     *
+     * The bitrate can be modified later on through
+     * #VAEncMiscParameterRateControl buffers.
+     */
+    unsigned int bits_per_second;
+    /* Period between I frames. */
+    unsigned int intra_period;
+
+    /* reference and reconstructed frame buffers
+     * Used for driver auto reference management when configured through 
+     * VAConfigAttribEncAutoReference. 
+     */
+    VASurfaceID reference_frames[4];
+
+} VAEncSequenceParameterBufferVP8;
+
+
+/**
+ * \brief VP8 Encoding Picture Parameter Buffer Structure
+ *
+ * This structure conveys picture level parameters.
+ *
+ */
+typedef struct  _VAEncPictureParameterBufferVP8
+{
+    /* surface to store reconstructed frame  */
+    VASurfaceID reconstructed_frame;
+
+    /* 
+     * surfaces to store reference frames in non auto reference mode
+     * VA_INVALID_SURFACE can be used to denote an invalid reference frame. 
+     */
+    VASurfaceID ref_last_frame;
+    VASurfaceID ref_gf_frame;
+    VASurfaceID ref_arf_frame;
+
+    /* buffer to store coded data */
+    VABufferID coded_buf;
+
+    union {
+        struct {
+            /* force this frame to be a keyframe */
+            unsigned int force_kf                       : 1;
+            /* don't reference the last frame */
+            unsigned int no_ref_last                    : 1;
+            /* don't reference the golden frame */
+            unsigned int no_ref_gf                      : 1;
+            /* don't reference the alternate reference frame */
+            unsigned int no_ref_arf                     : 1;
+            unsigned int reserved                       : 28;
+        } bits;
+        unsigned int value;
+    } ref_flags;
+
+    union {
+        struct {
+            /* version */
+            unsigned int frame_type                     : 1;
+            unsigned int version                        : 3;
+            /* show_frame */
+            unsigned int show_frame                     : 1;
+            /* color_space */						   
+            unsigned int color_space                    : 1;
+            /*  0: bicubic, 1: bilinear, other: none */
+            unsigned int recon_filter_type              : 2;
+            /*  0: no loop fitler, 1: simple loop filter */
+            unsigned int loop_filter_type               : 2;
+            /* 0: disabled, 1: normal, 2: simple */
+            unsigned int auto_partitions                : 1;
+            /* same as log2_nbr_of_dct_partitions in frame header syntax */
+            unsigned int num_token_partitions           : 2;
+
+            /** 
+             * The following fields correspond to the same VP8 syntax elements 
+             * in the frame header.
+             */
+	    /**
+             * 0: clamping of reconstruction pixels is disabled,
+             * 1: clamping enabled.
+             */
+            unsigned int clamping_type                  : 1;
+            /* indicate segmentation is enabled for the current frame. */
+            unsigned int segmentation_enabled           : 1;
+            /**
+             * Determines if the MB segmentation map is updated in the current 
+             * frame.
+             */
+            unsigned int update_mb_segmentation_map     : 1;
+            /**
+             * Indicates if the segment feature data is updated in the current 
+             * frame.
+             */
+            unsigned int update_segment_feature_data    : 1;
+            /**
+             * indicates if the MB level loop filter adjustment is enabled for 
+             * the current frame (0 off, 1 on).  
+             */
+	    unsigned int loop_filter_adj_enable         : 1;
+            /**
+             * Determines whether updated token probabilities are used only for 
+             * this frame or until further update. 
+             * It may be used by application to enable error resilient mode. 
+             * In this mode probability updates are allowed only at Key Frames.
+             */
+            unsigned int refresh_entropy_probs          : 1;
+            /**
+             * Determines if the current decoded frame refreshes the golden frame.
+             */
+            unsigned int refresh_golden_frame           : 1;
+            /** 
+             * Determines if the current decoded frame refreshes the alternate 
+             * reference frame.
+             */
+            unsigned int refresh_alternate_frame        : 1;
+            /**
+             * Determines if the current decoded frame refreshes the last frame 
+             * reference buffer.
+             */
+            unsigned int refresh_last                   : 1;
+            /**
+             * Determines if the golden reference is replaced by another reference.
+             */
+            unsigned int copy_buffer_to_golden          : 2;
+            /**
+             * Determines if the alternate reference is replaced by another reference.
+             */
+            unsigned int copy_buffer_to_alternate       : 2;
+            /** 
+             * Controls the sign of motion vectors when the golden frame is referenced.  
+             */
+            unsigned int sign_bias_golden               : 1;
+            /**
+             * Controls the sign of motion vectors when the alternate frame is 
+             * referenced. 
+             */
+	    unsigned int sign_bias_alternate            : 1;
+            /**
+             * Enables or disables the skipping of macroblocks containing no 
+             * non-zero coefficients. 
+             */
+	    unsigned int mb_no_coeff_skip               : 1;
+            /** 
+             * Enforces unconditional per-MB loop filter delta update setting frame 
+             * header flags mode_ref_lf_delta_update, all mb_mode_delta_update_flag[4], 
+             * and all ref_frame_delta_update_flag[4] to 1. 
+	     * Since loop filter deltas are not automatically refreshed to default 
+             * values at key frames, dropped frame with delta update may prevent 
+             * correct decoding from the next key frame. 
+	     * Encoder application is advised to set this flag to 1 at key frames.
+	     */
+            unsigned int forced_lf_adjustment           : 1;
+            unsigned int reserved                       : 2;
+        } bits;
+        unsigned int value;
+    } pic_flags;
+
+    /**
+     * Contains a list of 4 loop filter level values (updated value if applicable)
+     * controlling the deblocking filter strength. Each entry represents a segment.
+     * When segmentation is disabled, use entry 0. 
+     * When loop_filter_level is 0, loop filter shall be disabled. 
+     */
+    char loop_filter_level[4];
+
+    /** 
+     * Contains a list of 4 delta values for reference frame based MB-level 
+     * loop filter adjustment.  
+     * If no update, then set to 0.
+     */
+    char ref_lf_delta[4];
+
+    /**
+     * Contains a list of 4 delta values for coding mode based MB-level loop
+     * filter adjustment.  
+     * If no update, then set to 0. 
+     */
+    char mode_lf_delta[4];
+	
+    /**
+     * Controls the deblocking filter sensitivity. 
+     * Corresponds to the same VP8 syntax element in frame header.
+     */
+    unsigned char sharpness_level;
+	
+    /** 
+     * Application supplied maximum clamp value for Qindex used in quantization.  
+     * Qindex will not be allowed to exceed this value.  
+     * It has a valid range [0..127] inclusive.  
+     */
+    unsigned char clamp_qindex_high;
+	
+    /**
+     * Application supplied minimum clamp value for Qindex used in quantization.  
+     * Qindex will not be allowed to be lower than this value.  
+     * It has a valid range [0..127] inclusive.  
+     * Condition clamp_qindex_low <= clamp_qindex_high must be guaranteed, 
+     * otherwise they are ignored. 
+     */
+    unsigned char clamp_qindex_low;
+	
+} VAEncPictureParameterBufferVP8;
+
+
+/**
+ * \brief VP8 MB Segmentation ID Buffer
+ *
+ * application provides buffer containing the initial segmentation id for each 
+ * MB, in raster scan order. Rate control may reassign it.
+ * For an 640x480 video, the buffer has 1200 entries. 
+ * the value of each entry should be in the range [0..3], inclusive.
+ * If segmentation is not enabled, application does not need to provide it. 
+ */
+typedef struct _VAEncMBMapBufferVP8
+{
+    /** 
+     * number of MBs in the frame.
+     * It is also the number of entries of mb_segment_id[];
+     */
+    unsigned int num_mbs;
+    /**
+     * per MB Segmentation ID Buffer
+     */
+    unsigned char *mb_segment_id;
+} VAEncMBMapBufferVP8;
+
+
+/**
+ * \brief VP8 Quantization Matrix Buffer Structure
+ *
+ * Contains quantization index for yac(0-3) for each segment and quantization 
+ * index deltas, ydc(0), y2dc(1), y2ac(2), uvdc(3), uvac(4) that are applied 
+ * to all segments.  When segmentation is disabled, only quantization_index[0] 
+ * will be used. This structure is sent once per frame.
+ */
+typedef struct _VAQMatrixBufferVP8
+{
+    unsigned short quantization_index[4];
+    short quantization_index_delta[5];
+} VAQMatrixBufferVP8;
+
+
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_ENC_VP8_H */
diff --git a/examples/thirdparty/libva/va/va_fool.c b/examples/thirdparty/libva/va/va_fool.c
new file mode 100644
index 0000000..8dbe8dd
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_fool.c
@@ -0,0 +1,375 @@
+/*
+ * Copyright (c) 2009 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.
+ */
+
+#define _GNU_SOURCE 1
+#include "sysdeps.h"
+#include "va.h"
+#include "va_backend.h"
+#include "va_trace.h"
+#include "va_fool.h"
+
+#include <assert.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <string.h>
+#include <dlfcn.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <time.h>
+#include <fcntl.h>
+
+/*
+ * Do dummy decode/encode, ignore the input data
+ * In order to debug memory leak or low performance issues, we need to isolate driver problems
+ * We export env "VA_FOOL", with which, we can do fake decode/encode:
+ *
+ * LIBVA_FOOL_DECODE:
+ * . if set, decode does nothing
+ * LIBVA_FOOL_ENCODE=<framename>:
+ * . if set, encode does nothing, but fill in the coded buffer from the content of files with
+ *   name framename.0,framename.1,..., framename.N, framename.0,..., framename.N,...repeatly
+ *   Use file name to determine h264 or vp8
+ * LIBVA_FOOL_JPEG=<framename>:fill the content of filename to codedbuf for jpeg encoding
+ * LIBVA_FOOL_POSTP:
+ * . if set, do nothing for vaPutSurface
+ */
+
+
+/* global settings */
+int fool_codec = 0;
+int fool_postp  = 0;
+
+#define FOOL_BUFID_MAGIC   0x12345600
+#define FOOL_BUFID_MASK    0xffffff00
+
+struct fool_context {
+    int enabled; /* fool_codec is global, and it is for concurent encode/decode */
+    char *fn_enc;/* file pattern with codedbuf content for encode */
+    char *segbuf_enc; /* the segment buffer of coded buffer, load frome fn_enc */
+    int file_count;
+
+    char *fn_jpg;/* file name of JPEG fool with codedbuf content */
+    char *segbuf_jpg; /* the segment buffer of coded buffer, load frome fn_jpg */
+
+    VAEntrypoint entrypoint; /* current entrypoint */
+    
+    /* all buffers with same type share one malloc-ed memory
+     * bufferID = (buffer numbers with the same type << 8) || type
+     * the malloc-ed memory can be find by fool_buf[bufferID & 0xff]
+     * the size is ignored here
+     */
+    char *fool_buf[VABufferTypeMax]; /* memory of fool buffers */
+    unsigned int fool_buf_size[VABufferTypeMax]; /* size of memory of fool buffers */
+    unsigned int fool_buf_element[VABufferTypeMax]; /* element count of created buffers */
+    unsigned int fool_buf_count[VABufferTypeMax]; /* count of created buffers */
+    VAContextID context;
+};
+
+#define FOOL_CTX(dpy) ((struct fool_context *)((VADisplayContextP)dpy)->vafool)
+
+#define DPY2FOOLCTX(dpy)                                 \
+    struct fool_context *fool_ctx = FOOL_CTX(dpy);       \
+    if (fool_ctx == NULL)                                \
+        return 0; /* no fool for the context */          \
+
+#define DPY2FOOLCTX_CHK(dpy)                             \
+    struct fool_context *fool_ctx = FOOL_CTX(dpy);       \
+    if ((fool_ctx == NULL) || (fool_ctx->enabled == 0))  \
+        return 0; /* no fool for the context */          \
+
+/* Prototype declarations (functions defined in va.c) */
+
+void va_errorMessage(const char *msg, ...);
+void va_infoMessage(const char *msg, ...);
+
+int  va_parseConfig(char *env, char *env_value);
+
+void va_FoolInit(VADisplay dpy)
+{
+    char env_value[1024];
+
+    struct fool_context *fool_ctx = calloc(sizeof(struct fool_context), 1);
+    
+    if (fool_ctx == NULL)
+        return;
+    
+    if (va_parseConfig("LIBVA_FOOL_POSTP", NULL) == 0) {
+        fool_postp = 1;
+        va_infoMessage("LIBVA_FOOL_POSTP is on, dummy vaPutSurface\n");
+    }
+    
+    if (va_parseConfig("LIBVA_FOOL_DECODE", NULL) == 0) {
+        fool_codec  |= VA_FOOL_FLAG_DECODE;
+        va_infoMessage("LIBVA_FOOL_DECODE is on, dummy decode\n");
+    }
+    if (va_parseConfig("LIBVA_FOOL_ENCODE", &env_value[0]) == 0) {
+        fool_codec  |= VA_FOOL_FLAG_ENCODE;
+        fool_ctx->fn_enc = strdup(env_value);
+        va_infoMessage("LIBVA_FOOL_ENCODE is on, load encode data from file with patten %s\n",
+                       fool_ctx->fn_enc);
+    }
+    if (va_parseConfig("LIBVA_FOOL_JPEG", &env_value[0]) == 0) {
+        fool_codec  |= VA_FOOL_FLAG_JPEG;
+        fool_ctx->fn_jpg = strdup(env_value);
+        va_infoMessage("LIBVA_FOOL_JPEG is on, load encode data from file with patten %s\n",
+                       fool_ctx->fn_jpg);
+    }
+    
+    ((VADisplayContextP)dpy)->vafool = fool_ctx;
+}
+
+
+int va_FoolEnd(VADisplay dpy)
+{
+    int i;
+    DPY2FOOLCTX(dpy);
+
+    for (i = 0; i < VABufferTypeMax; i++) {/* free memory */
+        if (fool_ctx->fool_buf[i])
+            free(fool_ctx->fool_buf[i]);
+    }
+    if (fool_ctx->segbuf_enc)
+        free(fool_ctx->segbuf_enc);
+    if (fool_ctx->segbuf_jpg)
+        free(fool_ctx->segbuf_jpg);
+    if (fool_ctx->fn_enc)
+        free(fool_ctx->fn_enc);
+    if (fool_ctx->fn_jpg)
+        free(fool_ctx->fn_jpg);
+
+    free(fool_ctx);
+    ((VADisplayContextP)dpy)->vafool = NULL;
+    
+    return 0;
+}
+
+int va_FoolCreateConfig(
+        VADisplay dpy,
+        VAProfile profile, 
+        VAEntrypoint entrypoint, 
+        VAConfigAttrib *attrib_list,
+        int num_attribs,
+        VAConfigID *config_id /* out */
+)
+{
+    DPY2FOOLCTX(dpy);
+
+    fool_ctx->entrypoint = entrypoint;
+    
+    /*
+     * check fool_codec to align with current context
+     * e.g. fool_codec = decode then for encode, the
+     * vaBegin/vaRender/vaEnd also run into fool path
+     * which is not desired
+     */
+    if (((fool_codec & VA_FOOL_FLAG_DECODE) && (entrypoint == VAEntrypointVLD)) ||
+        ((fool_codec & VA_FOOL_FLAG_JPEG) && (entrypoint == VAEntrypointEncPicture)))
+        fool_ctx->enabled = 1;
+    else if ((fool_codec & VA_FOOL_FLAG_ENCODE) && (entrypoint == VAEntrypointEncSlice)) {
+        /* H264 is desired */
+        if (((profile == VAProfileH264Baseline ||
+              profile == VAProfileH264Main ||
+              profile == VAProfileH264High ||
+              profile == VAProfileH264ConstrainedBaseline)) &&
+            strstr(fool_ctx->fn_enc, "h264"))
+            fool_ctx->enabled = 1;
+
+        /* vp8 is desired */
+        if ((profile == VAProfileVP8Version0_3) &&
+            strstr(fool_ctx->fn_enc, "vp8"))
+            fool_ctx->enabled = 1;
+    }
+    if (fool_ctx->enabled)
+        va_infoMessage("FOOL is enabled for this context\n");
+    else
+        va_infoMessage("FOOL is not enabled for this context\n");
+
+    
+    return 0; /* continue */
+}
+
+
+VAStatus va_FoolCreateBuffer(
+    VADisplay dpy,
+    VAContextID context,	/* in */
+    VABufferType type,		/* in */
+    unsigned int size,		/* in */
+    unsigned int num_elements,	/* in */
+    void *data,			/* in */
+    VABufferID *buf_id		/* out */
+)
+{
+    unsigned int new_size = size * num_elements;
+    unsigned int old_size;
+    DPY2FOOLCTX_CHK(dpy);
+
+    old_size = fool_ctx->fool_buf_size[type] * fool_ctx->fool_buf_element[type];
+
+    if (old_size < new_size)
+        fool_ctx->fool_buf[type] = realloc(fool_ctx->fool_buf[type], new_size);
+    
+    fool_ctx->fool_buf_size[type] = size;
+    fool_ctx->fool_buf_element[type] = num_elements;
+    fool_ctx->fool_buf_count[type]++;
+    /* because we ignore the vaRenderPicture, 
+     * all buffers with same type share same real memory
+     * bufferID = (magic number) | type
+     */
+    *buf_id = FOOL_BUFID_MAGIC | type;
+
+    return 1; /* don't call into driver */
+}
+
+VAStatus va_FoolBufferInfo(
+    VADisplay dpy,
+    VABufferID buf_id,  /* in */
+    VABufferType *type, /* out */
+    unsigned int *size,         /* out */
+    unsigned int *num_elements /* out */
+)
+{
+    unsigned int magic;
+    
+    DPY2FOOLCTX_CHK(dpy);
+
+    magic = buf_id & FOOL_BUFID_MASK;
+    if (magic != FOOL_BUFID_MAGIC)
+        return 0; /* could be VAImageBufferType from vaDeriveImage */
+    
+    *type = buf_id & 0xff;
+    *size = fool_ctx->fool_buf_size[*type];
+    *num_elements = fool_ctx->fool_buf_element[*type];;
+    
+    return 1; /* fool is valid */
+}
+
+static int va_FoolFillCodedBufEnc(struct fool_context *fool_ctx)
+{
+    char file_name[1024];
+    struct stat file_stat = {0};
+    VACodedBufferSegment *codedbuf;
+    int i, fd = -1;
+
+    /* try file_name.file_count, if fail, try file_name.file_count-- */
+    for (i=0; i<=1; i++) {
+        snprintf(file_name, 1024, "%s.%d",
+                 fool_ctx->fn_enc,
+                 fool_ctx->file_count);
+
+        if ((fd = open(file_name, O_RDONLY)) != -1) {
+            fstat(fd, &file_stat);
+            fool_ctx->file_count++; /* open next file */
+            break;
+        } else /* fall back to the first file file */
+            fool_ctx->file_count = 0;
+    }
+    if (fd != -1) {
+        fool_ctx->segbuf_enc = realloc(fool_ctx->segbuf_enc, file_stat.st_size);
+        read(fd, fool_ctx->segbuf_enc, file_stat.st_size);
+        close(fd);
+    } else
+        va_errorMessage("Open file %s failed:%s\n", file_name, strerror(errno));
+
+    codedbuf = (VACodedBufferSegment *)fool_ctx->fool_buf[VAEncCodedBufferType];
+    codedbuf->size = file_stat.st_size;
+    codedbuf->bit_offset = 0;
+    codedbuf->status = 0;
+    codedbuf->reserved = 0;
+    codedbuf->buf = fool_ctx->segbuf_enc;
+    codedbuf->next = NULL;
+
+    return 0;
+}
+
+static int va_FoolFillCodedBufJPG(struct fool_context *fool_ctx)
+{
+    struct stat file_stat = {0};
+    VACodedBufferSegment *codedbuf;
+    int fd = -1;
+
+    if ((fd = open(fool_ctx->fn_jpg, O_RDONLY)) != -1) {
+        fstat(fd, &file_stat);
+        fool_ctx->segbuf_jpg = realloc(fool_ctx->segbuf_jpg, file_stat.st_size);
+        read(fd, fool_ctx->segbuf_jpg, file_stat.st_size);
+        close(fd);
+    } else
+        va_errorMessage("Open file %s failed:%s\n", fool_ctx->fn_jpg, strerror(errno));
+
+    codedbuf = (VACodedBufferSegment *)fool_ctx->fool_buf[VAEncCodedBufferType];
+    codedbuf->size = file_stat.st_size;
+    codedbuf->bit_offset = 0;
+    codedbuf->status = 0;
+    codedbuf->reserved = 0;
+    codedbuf->buf = fool_ctx->segbuf_jpg;
+    codedbuf->next = NULL;
+
+    return 0;
+}
+
+
+static int va_FoolFillCodedBuf(struct fool_context *fool_ctx)
+{
+    if (fool_ctx->entrypoint == VAEntrypointEncSlice)
+        va_FoolFillCodedBufEnc(fool_ctx);
+    else if (fool_ctx->entrypoint == VAEntrypointEncPicture)
+        va_FoolFillCodedBufJPG(fool_ctx);
+        
+    return 0;
+}
+
+
+VAStatus va_FoolMapBuffer(
+    VADisplay dpy,
+    VABufferID buf_id,	/* in */
+    void **pbuf 	/* out */
+)
+{
+    unsigned int magic, buftype;
+    DPY2FOOLCTX_CHK(dpy);
+
+    magic = buf_id & FOOL_BUFID_MASK;
+    if (magic != FOOL_BUFID_MAGIC)
+        return 0; /* could be VAImageBufferType from vaDeriveImage */
+    
+    buftype = buf_id & 0xff;
+    *pbuf = fool_ctx->fool_buf[buftype];
+
+    /* it is coded buffer, fill coded segment from file */
+    if (*pbuf && (buftype == VAEncCodedBufferType))
+        va_FoolFillCodedBuf(fool_ctx);
+    
+    return 1; /* fool is valid */
+}
+
+VAStatus va_FoolCheckContinuity(VADisplay dpy)
+{
+    DPY2FOOLCTX_CHK(dpy);
+
+    return 1; /* fool is valid */
+}
+
diff --git a/examples/thirdparty/libva/va/va_fool.h b/examples/thirdparty/libva/va/va_fool.h
new file mode 100644
index 0000000..6f4f917
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_fool.h
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2009 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.
+ */
+
+
+#ifndef VA_FOOL_H
+#define VA_FOOL_H
+
+#include <stdio.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int fool_codec;
+extern int fool_postp;
+
+#define VA_FOOL_FLAG_DECODE  0x1
+#define VA_FOOL_FLAG_ENCODE  0x2
+#define VA_FOOL_FLAG_JPEG    0x4
+
+#define VA_FOOL_FUNC(fool_func,...)            \
+    if (fool_codec) {                          \
+        if (fool_func(__VA_ARGS__))            \
+            return VA_STATUS_SUCCESS;          \
+    }
+    
+void va_FoolInit(VADisplay dpy);
+int va_FoolEnd(VADisplay dpy);
+
+int va_FoolCreateConfig(
+        VADisplay dpy,
+        VAProfile profile, 
+        VAEntrypoint entrypoint, 
+        VAConfigAttrib *attrib_list,
+        int num_attribs,
+        VAConfigID *config_id /* out */
+);
+
+
+VAStatus va_FoolCreateBuffer(
+    VADisplay dpy,
+    VAContextID context,	/* in */
+    VABufferType type,		/* in */
+    unsigned int size,		/* in */
+    unsigned int num_elements,	/* in */
+    void *data,			/* in */
+    VABufferID *buf_id		/* out */
+);
+
+VAStatus va_FoolMapBuffer (
+    VADisplay dpy,
+    VABufferID buf_id,	/* in */
+    void **pbuf 	/* out */
+);
+
+VAStatus va_FoolBufferInfo (
+    VADisplay dpy,
+    VABufferID buf_id,  /* in */
+    VABufferType *type, /* out */
+    unsigned int *size,         /* out */
+    unsigned int *num_elements /* out */
+);
+    
+VAStatus va_FoolCheckContinuity(VADisplay dpy);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/examples/thirdparty/libva/va/va_tpi.c b/examples/thirdparty/libva/va/va_tpi.c
new file mode 100644
index 0000000..21d547d
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_tpi.c
@@ -0,0 +1,98 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define _GNU_SOURCE 1
+#include "sysdeps.h"
+#include "va.h"
+#include "va_backend.h"
+#include "va_backend_tpi.h"
+
+#include <assert.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+#include <unistd.h>
+
+#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext)
+#define CHECK_DISPLAY(dpy) if( !vaDisplayIsValid(dpy) ) { return VA_STATUS_ERROR_INVALID_DISPLAY; }
+
+
+/*
+ * Create surfaces with special inputs/requirements
+ */
+VAStatus vaCreateSurfacesWithAttribute (
+        VADisplay dpy,
+        int width,
+        int height,
+        int format,
+        int num_surfaces,
+        VASurfaceID *surfaces,       /* out */
+        VASurfaceAttributeTPI *attribute_tpi
+)
+{
+  VADriverContextP ctx;
+  struct VADriverVTableTPI *tpi;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+
+  tpi = (struct VADriverVTableTPI *)ctx->vtable_tpi;
+  if (tpi && tpi->vaCreateSurfacesWithAttribute) {
+      return tpi->vaCreateSurfacesWithAttribute( ctx, width, height, format, num_surfaces, surfaces, attribute_tpi);
+  } else
+      return VA_STATUS_ERROR_UNIMPLEMENTED;
+}
+
+
+VAStatus vaPutSurfaceBuf (
+    VADisplay dpy,
+    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 */
+)
+{
+  VADriverContextP ctx;
+  struct VADriverVTableTPI *tpi;
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+  
+  tpi = ( struct VADriverVTableTPI *)ctx->vtable_tpi;
+  if (tpi && tpi->vaPutSurfaceBuf) {
+      return tpi->vaPutSurfaceBuf( ctx, surface, data, data_len, srcx, srcy, srcw, srch,
+                                  destx, desty, destw, desth, cliprects, number_cliprects, flags );
+  } else
+      return VA_STATUS_ERROR_UNIMPLEMENTED;
+}
diff --git a/examples/thirdparty/libva/va/va_tpi.h b/examples/thirdparty/libva/va/va_tpi.h
new file mode 100644
index 0000000..d4a9d06
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_tpi.h
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2007-2009 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 INTEL 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 _VA_TPI_H_
+#define _VA_TPI_H_
+
+#include <va/va.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+typedef enum {
+    VAExternalMemoryNULL, /* it is not external buffer, but requires the implementation allocates
+                           * the surface with the input attribute
+                           */
+    VAExternalMemoryV4L2Buffer,
+    VAExternalMemoryCIFrame, /* the memory is from camera frames and buffers points the frame ID list */
+    VAExternalMemoryUserPointer, /* the memory is malloc-ed and buffers points to the buffers */
+    VAExternalMemoryKernelDRMBufffer, /* the memory is from kernel DRM buffers and buffers points the
+                                       * DRM buffer handle list
+                                       */
+    VAExternalMemoryAndroidGrallocBuffer, /* the memory is from Android Gralloc memory, and buffers points
+                                           * the gralloc native_handle_t list
+                                           */
+} VASurfaceMemoryType;
+
+typedef struct _VASurfaceAttributeTPI {
+    VASurfaceMemoryType type;
+    unsigned int width;
+    unsigned int height;
+    unsigned int size;
+    unsigned int pixel_format; /* buffer format */
+    unsigned int tiling; /* the memory is tiling or not */
+    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; /* U offset from the beginning of the memory */
+    unsigned int chroma_v_offset; /* V offset from the beginning of the memory */
+    unsigned int count; /* buffer count for surface creation */
+    unsigned int *buffers; /* buffer handles or user pointers */
+    unsigned int reserved[4]; /* used to pass additional information, like
+                               * Android native window pointer
+                               */
+} VASurfaceAttributeTPI;
+
+
+VAStatus vaPutSurfaceBuf (
+    VADisplay dpy,
+    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 vaCreateSurfacesWithAttribute (
+    VADisplay dpy,
+    int width,
+    int height,
+    int format,
+    int num_surfaces,
+    VASurfaceID *surfaces,       /* out */
+    VASurfaceAttributeTPI *attribute_tpi
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif 
diff --git a/examples/thirdparty/libva/va/va_trace.c b/examples/thirdparty/libva/va/va_trace.c
new file mode 100644
index 0000000..91b95b2
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_trace.c
@@ -0,0 +1,3563 @@
+
+/*
+ * Copyright (c) 2009-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.
+ */
+
+#define _GNU_SOURCE 1
+#include "sysdeps.h"
+#include "va.h"
+#include "va_enc_h264.h"
+#include "va_backend.h"
+#include "va_trace.h"
+#include "va_enc_h264.h"
+#include "va_enc_jpeg.h"
+#include "va_dec_jpeg.h"
+#include "va_dec_vp8.h"
+#include "va_dec_hevc.h"
+#include "va_vpp.h"
+#include <assert.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <dlfcn.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <time.h>
+#include <errno.h>
+
+/*
+ * Env. to debug some issue, e.g. the decode/encode issue in a video conference scenerio:
+ * .LIBVA_TRACE=log_file: general VA parameters saved into log_file
+ * .LIBVA_TRACE_BUFDATA: dump all VA data buffer into log_file
+ * .LIBVA_TRACE_CODEDBUF=coded_clip_file: save the coded clip into file coded_clip_file
+ * .LIBVA_TRACE_SURFACE=yuv_file: save surface YUV into file yuv_file. Use file name to determine
+ *                                decode/encode or jpeg surfaces
+ * .LIBVA_TRACE_SURFACE_GEOMETRY=WIDTHxHEIGHT+XOFF+YOFF: only save part of surface context into file
+ *                                due to storage bandwidth limitation
+ */
+
+/* global settings */
+
+/* LIBVA_TRACE */
+int trace_flag = 0;
+
+/* per context settings */
+struct trace_context {
+    /* LIBVA_TRACE */
+    FILE *trace_fp_log; /* save the log into a file */
+    char *trace_log_fn; /* file name */
+    
+    /* LIBVA_TRACE_CODEDBUF */
+    FILE *trace_fp_codedbuf; /* save the encode result into a file */
+    char *trace_codedbuf_fn; /* file name */
+    
+    /* LIBVA_TRACE_SURFACE */
+    FILE *trace_fp_surface; /* save the surface YUV into a file */
+    char *trace_surface_fn; /* file name */
+
+    VAContextID  trace_context; /* current context */
+    
+    VASurfaceID  trace_rendertarget; /* current render target */
+    VAProfile trace_profile; /* current profile for buffers */
+    VAEntrypoint trace_entrypoint; /* current entrypoint */
+    
+    unsigned int trace_frame_no; /* current frame NO */
+    unsigned int trace_slice_no; /* current slice NO */
+    unsigned int trace_slice_size; /* current slice buffer size */
+
+    unsigned int trace_surface_width; /* surface dumping geometry */
+    unsigned int trace_surface_height;
+    unsigned int trace_surface_xoff;
+    unsigned int trace_surface_yoff;
+
+    unsigned int trace_frame_width; /* current frame width */
+    unsigned int trace_frame_height; /* current frame height */
+};
+
+#define TRACE_CTX(dpy) ((struct trace_context *)((VADisplayContextP)dpy)->vatrace)
+
+#define DPY2TRACECTX(dpy)                               \
+    struct trace_context *trace_ctx = TRACE_CTX(dpy);   \
+                                                        \
+    if (trace_ctx == NULL)                              \
+        return;                                         \
+
+#define TRACE_FUNCNAME(idx)    va_TraceMsg(trace_ctx, "==========%s\n", __func__); 
+
+/* Prototype declarations (functions defined in va.c) */
+
+void va_errorMessage(const char *msg, ...);
+void va_infoMessage(const char *msg, ...);
+
+int va_parseConfig(char *env, char *env_value);
+
+VAStatus vaBufferInfo(
+    VADisplay dpy,
+    VAContextID context,        /* in */
+    VABufferID buf_id,          /* in */
+    VABufferType *type,         /* out */
+    unsigned int *size,         /* out */
+    unsigned int *num_elements  /* out */
+    );
+
+VAStatus vaLockSurface(VADisplay dpy,
+                       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 
+                       );
+
+VAStatus vaUnlockSurface(VADisplay dpy,
+                         VASurfaceID surface
+                         );
+
+#define FILE_NAME_SUFFIX(env_value)                      \
+do {                                                    \
+    int tmp = strnlen(env_value, sizeof(env_value));    \
+    int left = sizeof(env_value) - tmp;                 \
+                                                        \
+    snprintf(env_value+tmp,                             \
+             left,                                      \
+             ".%04d.%08lx",                             \
+             suffix,                                    \
+             (unsigned long)trace_ctx);                 \
+} while (0)
+
+void va_TraceInit(VADisplay dpy)
+{
+    char env_value[1024];
+    unsigned short suffix = 0xffff & ((unsigned int)time(NULL));
+    int trace_index = 0;
+    FILE *tmp;    
+    struct trace_context *trace_ctx = calloc(sizeof(struct trace_context), 1);
+
+    if (trace_ctx == NULL)
+        return;
+    
+    if (va_parseConfig("LIBVA_TRACE", &env_value[0]) == 0) {
+        FILE_NAME_SUFFIX(env_value);
+        trace_ctx->trace_log_fn = strdup(env_value);
+        
+        tmp = fopen(env_value, "w");
+        if (tmp) {
+            trace_ctx->trace_fp_log = tmp;
+            va_infoMessage("LIBVA_TRACE is on, save log into %s\n", trace_ctx->trace_log_fn);
+            trace_flag = VA_TRACE_FLAG_LOG;
+        } else
+            va_errorMessage("Open file %s failed (%s)\n", env_value, strerror(errno));
+    }
+
+    /* may re-get the global settings for multiple context */
+    if ((trace_flag & VA_TRACE_FLAG_LOG) && (va_parseConfig("LIBVA_TRACE_BUFDATA", NULL) == 0)) {
+        trace_flag |= VA_TRACE_FLAG_BUFDATA;
+        va_infoMessage("LIBVA_TRACE_BUFDATA is on, dump buffer into log file\n");
+    }
+
+    /* per-context setting */
+    if (va_parseConfig("LIBVA_TRACE_CODEDBUF", &env_value[0]) == 0) {
+        FILE_NAME_SUFFIX(env_value);
+        trace_ctx->trace_codedbuf_fn = strdup(env_value);
+        va_infoMessage("LIBVA_TRACE_CODEDBUF is on, save codedbuf into log file %s\n",
+                       trace_ctx->trace_codedbuf_fn);
+        trace_flag |= VA_TRACE_FLAG_CODEDBUF;
+    }
+
+    if (va_parseConfig("LIBVA_TRACE_SURFACE", &env_value[0]) == 0) {
+        FILE_NAME_SUFFIX(env_value);
+        trace_ctx->trace_surface_fn = strdup(env_value);
+
+        va_infoMessage("LIBVA_TRACE_SURFACE is on, save surface into %s\n",
+                       trace_ctx->trace_surface_fn);
+
+        /* for surface data dump, it is time-consume, and may
+         * cause some side-effect, so only trace the needed surfaces
+         * to trace encode surface, set the trace file name to sth like *enc*
+         * to trace decode surface, set the trace file name to sth like *dec*
+         * if no dec/enc in file name, set both
+         */
+        if (strstr(env_value, "dec"))
+            trace_flag |= VA_TRACE_FLAG_SURFACE_DECODE;
+        if (strstr(env_value, "enc"))
+            trace_flag |= VA_TRACE_FLAG_SURFACE_ENCODE;
+        if (strstr(env_value, "jpeg") || strstr(env_value, "jpg"))
+            trace_flag |= VA_TRACE_FLAG_SURFACE_JPEG;
+
+        if (va_parseConfig("LIBVA_TRACE_SURFACE_GEOMETRY", &env_value[0]) == 0) {
+            char *p = env_value, *q;
+
+            trace_ctx->trace_surface_width = strtod(p, &q);
+            p = q+1; /* skip "x" */
+            trace_ctx->trace_surface_height = strtod(p, &q);
+            p = q+1; /* skip "+" */
+            trace_ctx->trace_surface_xoff = strtod(p, &q);
+            p = q+1; /* skip "+" */
+            trace_ctx->trace_surface_yoff = strtod(p, &q);
+
+            va_infoMessage("LIBVA_TRACE_SURFACE_GEOMETRY is on, only dump surface %dx%d+%d+%d content\n",
+                           trace_ctx->trace_surface_width,
+                           trace_ctx->trace_surface_height,
+                           trace_ctx->trace_surface_xoff,
+                           trace_ctx->trace_surface_yoff);
+        }
+    }
+
+    ((VADisplayContextP)dpy)->vatrace = trace_ctx;
+}
+
+
+void va_TraceEnd(VADisplay dpy)
+{
+    DPY2TRACECTX(dpy);
+    
+    if (trace_ctx->trace_fp_log)
+        fclose(trace_ctx->trace_fp_log);
+    
+    if (trace_ctx->trace_fp_codedbuf)
+        fclose(trace_ctx->trace_fp_codedbuf);
+    
+    if (trace_ctx->trace_fp_surface)
+        fclose(trace_ctx->trace_fp_surface);
+
+    if (trace_ctx->trace_log_fn)
+        free(trace_ctx->trace_log_fn);
+    
+    if (trace_ctx->trace_codedbuf_fn)
+        free(trace_ctx->trace_codedbuf_fn);
+    
+    if (trace_ctx->trace_surface_fn)
+        free(trace_ctx->trace_surface_fn);
+    
+    free(trace_ctx);
+    ((VADisplayContextP)dpy)->vatrace = NULL;
+}
+
+static void va_TraceMsg(struct trace_context *trace_ctx, const char *msg, ...)
+{
+    va_list args;
+
+    if (!(trace_flag & VA_TRACE_FLAG_LOG))
+        return;
+
+    if (msg)  {
+        struct timeval tv;
+
+        if (gettimeofday(&tv, NULL) == 0)
+            fprintf(trace_ctx->trace_fp_log, "[%04d.%06d] ",
+                    (unsigned int)tv.tv_sec & 0xffff, (unsigned int)tv.tv_usec);
+        va_start(args, msg);
+        vfprintf(trace_ctx->trace_fp_log, msg, args);
+        va_end(args);
+    } else
+        fflush(trace_ctx->trace_fp_log);
+}
+
+
+static void va_TraceSurface(VADisplay dpy)
+{
+    unsigned int i, j;
+    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 = NULL;
+    unsigned char *Y_data, *UV_data, *tmp;
+    VAStatus va_status;
+    unsigned char check_sum = 0;
+    DPY2TRACECTX(dpy);
+
+    if (!trace_ctx->trace_fp_surface)
+        return;
+
+    va_TraceMsg(trace_ctx, "==========dump surface data in file %s\n", trace_ctx->trace_surface_fn);
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    va_status = vaLockSurface(
+        dpy,
+        trace_ctx->trace_rendertarget,
+        &fourcc,
+        &luma_stride, &chroma_u_stride, &chroma_v_stride,
+        &luma_offset, &chroma_u_offset, &chroma_v_offset,
+        &buffer_name, &buffer);
+
+    if (va_status != VA_STATUS_SUCCESS) {
+        va_TraceMsg(trace_ctx, "Error:vaLockSurface failed\n");
+        return;
+    }
+
+    va_TraceMsg(trace_ctx, "\tfourcc = 0x%08x\n", fourcc);
+    va_TraceMsg(trace_ctx, "\twidth = %d\n", trace_ctx->trace_frame_width);
+    va_TraceMsg(trace_ctx, "\theight = %d\n", trace_ctx->trace_frame_height);
+    va_TraceMsg(trace_ctx, "\tluma_stride = %d\n", luma_stride);
+    va_TraceMsg(trace_ctx, "\tchroma_u_stride = %d\n", chroma_u_stride);
+    va_TraceMsg(trace_ctx, "\tchroma_v_stride = %d\n", chroma_v_stride);
+    va_TraceMsg(trace_ctx, "\tluma_offset = %d\n", luma_offset);
+    va_TraceMsg(trace_ctx, "\tchroma_u_offset = %d\n", chroma_u_offset);
+    va_TraceMsg(trace_ctx, "\tchroma_v_offset = %d\n", chroma_v_offset);
+
+    if (buffer == NULL) {
+        va_TraceMsg(trace_ctx, "Error:vaLockSurface return NULL buffer\n");
+        va_TraceMsg(trace_ctx, NULL);
+
+        vaUnlockSurface(dpy, trace_ctx->trace_rendertarget);
+        return;
+    }
+    va_TraceMsg(trace_ctx, "\tbuffer location = 0x%08x\n", buffer);
+    va_TraceMsg(trace_ctx, NULL);
+
+    Y_data = (unsigned char*)buffer;
+    UV_data = (unsigned char*)buffer + chroma_u_offset;
+
+    tmp = Y_data + luma_stride * trace_ctx->trace_surface_yoff;
+    for (i=0; i<trace_ctx->trace_surface_height; i++) {
+        fwrite(tmp + trace_ctx->trace_surface_xoff,
+               trace_ctx->trace_surface_width,
+               1, trace_ctx->trace_fp_surface);
+        
+        tmp += luma_stride;
+    }
+    tmp = UV_data + chroma_u_stride * trace_ctx->trace_surface_yoff / 2;
+    if (fourcc == VA_FOURCC_NV12) {
+        for (i=0; i<trace_ctx->trace_surface_height/2; i++) {
+            fwrite(tmp + trace_ctx->trace_surface_xoff,
+                   trace_ctx->trace_surface_width,
+                   1, trace_ctx->trace_fp_surface);
+            
+            tmp += chroma_u_stride;
+        }
+    }
+
+    vaUnlockSurface(dpy, trace_ctx->trace_rendertarget);
+
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+void va_TraceInitialize (
+    VADisplay dpy,
+    int *major_version,     /* out */
+    int *minor_version      /* out */
+)
+{
+    DPY2TRACECTX(dpy);    
+    TRACE_FUNCNAME(idx);
+}
+
+void va_TraceTerminate (
+    VADisplay dpy
+)
+{
+    DPY2TRACECTX(dpy);    
+    TRACE_FUNCNAME(idx);
+}
+
+
+void va_TraceCreateConfig(
+    VADisplay dpy,
+    VAProfile profile, 
+    VAEntrypoint entrypoint, 
+    VAConfigAttrib *attrib_list,
+    int num_attribs,
+    VAConfigID *config_id /* out */
+)
+{
+    int i;
+    int encode, decode, jpeg;
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+    
+    va_TraceMsg(trace_ctx, "\tprofile = %d\n", profile);
+    va_TraceMsg(trace_ctx, "\tentrypoint = %d\n", entrypoint);
+    va_TraceMsg(trace_ctx, "\tnum_attribs = %d\n", num_attribs);
+    if (attrib_list) {
+        for (i = 0; i < num_attribs; i++) {
+            va_TraceMsg(trace_ctx, "\t\tattrib_list[%d].type = 0x%08x\n", i, attrib_list[i].type);
+            va_TraceMsg(trace_ctx, "\t\tattrib_list[%d].value = 0x%08x\n", i, attrib_list[i].value);
+        }
+    }
+    va_TraceMsg(trace_ctx, NULL);
+
+    trace_ctx->trace_profile = profile;
+    trace_ctx->trace_entrypoint = entrypoint;
+
+    /* avoid to create so many empty files */
+    encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice);
+    decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD);
+    jpeg = (trace_ctx->trace_entrypoint == VAEntrypointEncPicture);
+    if ((encode && (trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE)) ||
+        (decode && (trace_flag & VA_TRACE_FLAG_SURFACE_DECODE)) ||
+        (jpeg && (trace_flag & VA_TRACE_FLAG_SURFACE_JPEG))) {
+        FILE *tmp = fopen(trace_ctx->trace_surface_fn, "w");
+        
+        if (tmp)
+            trace_ctx->trace_fp_surface = tmp;
+        else {
+            va_errorMessage("Open file %s failed (%s)\n",
+                            trace_ctx->trace_surface_fn,
+                            strerror(errno));
+            trace_ctx->trace_fp_surface = NULL;
+            trace_flag &= ~(VA_TRACE_FLAG_SURFACE);
+        }
+    }
+
+    if (encode && (trace_flag & VA_TRACE_FLAG_CODEDBUF)) {
+        FILE *tmp = fopen(trace_ctx->trace_codedbuf_fn, "w");
+        
+        if (tmp)
+            trace_ctx->trace_fp_codedbuf = tmp;
+        else {
+            va_errorMessage("Open file %s failed (%s)\n",
+                            trace_ctx->trace_codedbuf_fn,
+                            strerror(errno));
+            trace_ctx->trace_fp_codedbuf = NULL;
+            trace_flag &= ~VA_TRACE_FLAG_CODEDBUF;
+        }
+    }
+}
+
+static void va_TraceSurfaceAttributes(
+    struct trace_context *trace_ctx,
+    VASurfaceAttrib    *attrib_list,
+    unsigned int       *num_attribs
+)
+{
+    int i, num;
+    VASurfaceAttrib *p;
+    
+    if (!attrib_list || !num_attribs)
+        return;
+    
+    p = attrib_list;
+    num = *num_attribs;
+    if (num > VASurfaceAttribCount)
+        num = VASurfaceAttribCount;
+
+    for (i=0; i<num; i++) {
+        int type = p->value.type;
+        
+        va_TraceMsg(trace_ctx, "\tattrib_list[%i] =\n", i);
+        
+        va_TraceMsg(trace_ctx, "\t\ttype = %d\n", p->type);
+        va_TraceMsg(trace_ctx, "\t\tflags = %d\n", p->flags);
+        va_TraceMsg(trace_ctx, "\t\tvalue.type = %d\n", type);
+        switch (type) {
+        case VAGenericValueTypeInteger:
+            va_TraceMsg(trace_ctx, "\t\tvalue.value.i = 0x%08x\n", p->value.value.i);
+            break;
+        case VAGenericValueTypeFloat:
+            va_TraceMsg(trace_ctx, "\t\tvalue.value.f = %f\n", p->value.value.f);
+            break;
+        case VAGenericValueTypePointer:
+            va_TraceMsg(trace_ctx, "\t\tvalue.value.p = %p\n", p->value.value.p);
+            if ((p->type == VASurfaceAttribExternalBufferDescriptor) && p->value.value.p) {
+                VASurfaceAttribExternalBuffers *tmp = (VASurfaceAttribExternalBuffers *) p->value.value.p;
+                int j;
+                
+                va_TraceMsg(trace_ctx, "\t\t--VASurfaceAttribExternalBufferDescriptor\n");
+                va_TraceMsg(trace_ctx, "\t\t  pixel_format=0x%08x\n", tmp->pixel_format);
+                va_TraceMsg(trace_ctx, "\t\t  width=%d\n", tmp->width);
+                va_TraceMsg(trace_ctx, "\t\t  height=%d\n", tmp->height);
+                va_TraceMsg(trace_ctx, "\t\t  data_size=%d\n", tmp->data_size);
+                va_TraceMsg(trace_ctx, "\t\t  num_planes=%d\n", tmp->num_planes);
+                va_TraceMsg(trace_ctx, "\t\t  pitches[4]=%d %d %d %d\n",
+                            tmp->pitches[0], tmp->pitches[1], tmp->pitches[2], tmp->pitches[3]);
+                va_TraceMsg(trace_ctx, "\t\t  offsets[4]=%d %d %d %d\n",
+                            tmp->offsets[0], tmp->offsets[1], tmp->offsets[2], tmp->offsets[3]);
+                va_TraceMsg(trace_ctx, "\t\t  flags=0x%08x\n", tmp->flags);
+                va_TraceMsg(trace_ctx, "\t\t  num_buffers=0x%08x\n", tmp->num_buffers);
+                va_TraceMsg(trace_ctx, "\t\t  buffers=%p\n", tmp->buffers);
+                for (j = 0; j < tmp->num_buffers; j++) {
+                    va_TraceMsg(trace_ctx, "\t\t\tbuffers[%d]=%p\n", j, tmp->buffers[j]);
+                }
+            }
+            break;
+        case VAGenericValueTypeFunc:
+            va_TraceMsg(trace_ctx, "\t\tvalue.value.fn = %p\n", p->value.value.fn);
+            break;
+        default:
+            break;
+        }
+
+        p++;
+    }
+}
+
+void va_TraceCreateSurfaces(
+    VADisplay dpy,
+    int width,
+    int height,
+    int format,
+    int num_surfaces,
+    VASurfaceID *surfaces,    /* out */
+    VASurfaceAttrib    *attrib_list,
+    unsigned int        num_attribs
+)
+{
+    int i;
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+    
+    va_TraceMsg(trace_ctx, "\twidth = %d\n", width);
+    va_TraceMsg(trace_ctx, "\theight = %d\n", height);
+    va_TraceMsg(trace_ctx, "\tformat = %d\n", format);
+    va_TraceMsg(trace_ctx, "\tnum_surfaces = %d\n", num_surfaces);
+
+    if (surfaces) {
+        for (i = 0; i < num_surfaces; i++)
+            va_TraceMsg(trace_ctx, "\t\tsurfaces[%d] = 0x%08x\n", i, surfaces[i]);
+    }
+    
+    va_TraceSurfaceAttributes(trace_ctx, attrib_list, &num_attribs);
+
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+void va_TraceDestroySurfaces(
+    VADisplay dpy,
+    VASurfaceID *surface_list,
+    int num_surfaces
+)
+{
+    int i;
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+
+    if (surface_list) {
+        for (i = 0; i < num_surfaces; i++)
+            va_TraceMsg(trace_ctx, "\t\tsurfaces[%d] = 0x%08x\n", i, surface_list[i]);
+    }
+    
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+void va_TraceCreateContext(
+    VADisplay dpy,
+    VAConfigID config_id,
+    int picture_width,
+    int picture_height,
+    int flag,
+    VASurfaceID *render_targets,
+    int num_render_targets,
+    VAContextID *context        /* out */
+)
+{
+    int i;
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+
+    va_TraceMsg(trace_ctx, "\tconfig = 0x%08x\n", config_id);
+    va_TraceMsg(trace_ctx, "\twidth = %d\n", picture_width);
+    va_TraceMsg(trace_ctx, "\theight = %d\n", picture_height);
+    va_TraceMsg(trace_ctx, "\tflag = 0x%08x\n", flag);
+    va_TraceMsg(trace_ctx, "\tnum_render_targets = %d\n", num_render_targets);
+    if (render_targets) {
+        for (i=0; i<num_render_targets; i++)
+            va_TraceMsg(trace_ctx, "\t\trender_targets[%d] = 0x%08x\n", i, render_targets[i]);
+    }
+    if (context) {
+        va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", *context);
+        trace_ctx->trace_context = *context;
+    } else
+        trace_ctx->trace_context = VA_INVALID_ID;
+    
+    trace_ctx->trace_frame_no = 0;
+    trace_ctx->trace_slice_no = 0;
+
+    trace_ctx->trace_frame_width = picture_width;
+    trace_ctx->trace_frame_height = picture_height;
+
+    if (trace_ctx->trace_surface_width == 0)
+        trace_ctx->trace_surface_width = picture_width;
+    if (trace_ctx->trace_surface_height == 0)
+        trace_ctx->trace_surface_height = picture_height;
+}
+
+
+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 VAQMatrixBufferType: return "VAQMatrixBufferType";
+    case VAHuffmanTableBufferType: return "VAHuffmanTableBufferType";
+/* Following are encode buffer types */
+    case VAEncCodedBufferType: return "VAEncCodedBufferType";
+    case VAEncSequenceParameterBufferType: return "VAEncSequenceParameterBufferType";
+    case VAEncPictureParameterBufferType: return "VAEncPictureParameterBufferType";
+    case VAEncSliceParameterBufferType: return "VAEncSliceParameterBufferType";
+    case VAEncPackedHeaderParameterBufferType: return "VAEncPackedHeaderParameterBufferType";
+    case VAEncPackedHeaderDataBufferType: return "VAEncPackedHeaderDataBufferType";
+    case VAEncMiscParameterBufferType: return "VAEncMiscParameterBufferType";
+    case VAEncMacroblockParameterBufferType: return "VAEncMacroblockParameterBufferType";
+    case VAProcPipelineParameterBufferType: return "VAProcPipelineParameterBufferType";
+    case VAProcFilterParameterBufferType: return "VAProcFilterParameterBufferType";
+    default: return "UnknowBuffer";
+    }
+}
+
+void va_TraceCreateBuffer (
+    VADisplay dpy,
+    VAContextID context,	/* in */
+    VABufferType type,		/* in */
+    unsigned int size,		/* in */
+    unsigned int num_elements,	/* in */
+    void *data,			/* in */
+    VABufferID *buf_id		/* out */
+)
+{
+    DPY2TRACECTX(dpy);
+
+    /* only trace CodedBuffer */
+    if (type != VAEncCodedBufferType)
+        return;
+
+    TRACE_FUNCNAME(idx);
+    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
+    if (buf_id)
+        va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", *buf_id);
+    va_TraceMsg(trace_ctx, "\tsize=%d\n", size);
+    va_TraceMsg(trace_ctx, "\tnum_elements=%d\n", num_elements);
+    
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+void va_TraceDestroyBuffer (
+    VADisplay dpy,
+    VABufferID buf_id    /* in */
+)
+{
+    VABufferType type;
+    unsigned int size;
+    unsigned int num_elements;
+    
+    VACodedBufferSegment *buf_list;
+    int i = 0;
+    
+    DPY2TRACECTX(dpy);
+
+    vaBufferInfo(dpy, trace_ctx->trace_context, buf_id, &type, &size, &num_elements);    
+    
+    /* only trace CodedBuffer */
+    if (type != VAEncCodedBufferType)
+        return;
+
+    TRACE_FUNCNAME(idx);
+    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
+    va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", buf_id);
+    va_TraceMsg(trace_ctx, "\tsize=%d\n", size);
+    va_TraceMsg(trace_ctx, "\tnum_elements=%d\n", num_elements);
+    
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+void va_TraceMapBuffer (
+    VADisplay dpy,
+    VABufferID buf_id,    /* in */
+    void **pbuf           /* out */
+)
+{
+    VABufferType type;
+    unsigned int size;
+    unsigned int num_elements;
+    
+    VACodedBufferSegment *buf_list;
+    int i = 0;
+    
+    DPY2TRACECTX(dpy);
+
+    vaBufferInfo(dpy, trace_ctx->trace_context, buf_id, &type, &size, &num_elements);    
+    
+    /* only trace CodedBuffer */
+    if (type != VAEncCodedBufferType)
+        return;
+
+    TRACE_FUNCNAME(idx);
+    va_TraceMsg(trace_ctx, "\tbuf_id=0x%x\n", buf_id);
+    va_TraceMsg(trace_ctx, "\tbuf_type=%s\n", buffer_type_to_string(type));
+    if ((pbuf == NULL) || (*pbuf == NULL))
+        return;
+    
+    buf_list = (VACodedBufferSegment *)(*pbuf);
+    while (buf_list != NULL) {
+        va_TraceMsg(trace_ctx, "\tCodedbuf[%d] =\n", i++);
+        
+        va_TraceMsg(trace_ctx, "\t   size = %d\n", buf_list->size);
+        va_TraceMsg(trace_ctx, "\t   bit_offset = %d\n", buf_list->bit_offset);
+        va_TraceMsg(trace_ctx, "\t   status = 0x%08x\n", buf_list->status);
+        va_TraceMsg(trace_ctx, "\t   reserved = 0x%08x\n", buf_list->reserved);
+        va_TraceMsg(trace_ctx, "\t   buf = 0x%08x\n", buf_list->buf);
+
+        if (trace_ctx->trace_fp_codedbuf) {
+            va_TraceMsg(trace_ctx, "\tDump the content to file\n");
+            fwrite(buf_list->buf, buf_list->size, 1, trace_ctx->trace_fp_codedbuf);
+        }
+        
+        buf_list = buf_list->next;
+    }
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+static void va_TraceVABuffers(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    unsigned int i;
+    unsigned char *p = pbuf;
+
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "--%s\n",  buffer_type_to_string(type));
+
+    if ((trace_flag & VA_TRACE_FLAG_BUFDATA) && trace_ctx->trace_fp_log) {
+        for (i=0; i<size; i++) {
+            unsigned char value =  p[i];
+
+            if (i==0)
+                fprintf(trace_ctx->trace_fp_log, "\t\t0x%04x:", i);
+            else if ((i%16) == 0)
+                fprintf(trace_ctx->trace_fp_log, "\n\t\t0x%04x:", i);
+
+            fprintf(trace_ctx->trace_fp_log, " %02x", value);
+        }
+        fprintf(trace_ctx->trace_fp_log, "\n");
+    }
+    
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVAPictureParameterBufferMPEG2(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAPictureParameterBufferMPEG2 *p=(VAPictureParameterBufferMPEG2 *)data;
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx,"VAPictureParameterBufferMPEG2\n");
+
+    va_TraceMsg(trace_ctx,"\thorizontal size= %d\n", p->horizontal_size);
+    va_TraceMsg(trace_ctx,"\tvertical size= %d\n", p->vertical_size);
+    va_TraceMsg(trace_ctx,"\tforward reference picture= %d\n", p->forward_reference_picture);
+    va_TraceMsg(trace_ctx,"\tbackward reference picture= %d\n", p->backward_reference_picture);
+    va_TraceMsg(trace_ctx,"\tpicture coding type= %d\n", p->picture_coding_type);
+    va_TraceMsg(trace_ctx,"\tf mode= %d\n", p->f_code);
+
+    va_TraceMsg(trace_ctx,"\tpicture coding extension = %d\n", p->picture_coding_extension.value);
+    va_TraceMsg(trace_ctx,"\tintra_dc_precision= %d\n", p->picture_coding_extension.bits.intra_dc_precision);
+    va_TraceMsg(trace_ctx,"\tpicture_structure= %d\n", p->picture_coding_extension.bits.picture_structure);
+    va_TraceMsg(trace_ctx,"\ttop_field_first= %d\n", p->picture_coding_extension.bits.top_field_first);
+    va_TraceMsg(trace_ctx,"\tframe_pred_frame_dct= %d\n", p->picture_coding_extension.bits.frame_pred_frame_dct);
+    va_TraceMsg(trace_ctx,"\tconcealment_motion_vectors= %d\n", p->picture_coding_extension.bits.concealment_motion_vectors);
+    va_TraceMsg(trace_ctx,"\tq_scale_type= %d\n", p->picture_coding_extension.bits.q_scale_type);
+    va_TraceMsg(trace_ctx,"\tintra_vlc_format= %d\n", p->picture_coding_extension.bits.intra_vlc_format);
+    va_TraceMsg(trace_ctx,"\talternate_scan= %d\n", p->picture_coding_extension.bits.alternate_scan);
+    va_TraceMsg(trace_ctx,"\trepeat_first_field= %d\n", p->picture_coding_extension.bits.repeat_first_field);
+    va_TraceMsg(trace_ctx,"\tprogressive_frame= %d\n", p->picture_coding_extension.bits.progressive_frame);
+    va_TraceMsg(trace_ctx,"\tis_first_field= %d\n", p->picture_coding_extension.bits.is_first_field);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVAIQMatrixBufferMPEG2(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAIQMatrixBufferMPEG2 *p=(VAIQMatrixBufferMPEG2 *)data;
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx,"VAIQMatrixBufferMPEG2\n");
+
+    va_TraceMsg(trace_ctx,"\tload_intra_quantiser_matrix = %d\n", p->load_intra_quantiser_matrix);
+    va_TraceMsg(trace_ctx,"\tload_non_intra_quantiser_matrix = %d\n", p->load_non_intra_quantiser_matrix);
+    va_TraceMsg(trace_ctx,"\tload_chroma_intra_quantiser_matrix = %d\n", p->load_chroma_intra_quantiser_matrix);
+    va_TraceMsg(trace_ctx,"\tload_chroma_non_intra_quantiser_matrix = %d\n", p->load_chroma_non_intra_quantiser_matrix);
+    va_TraceMsg(trace_ctx,"\tintra_quantiser_matrix = %d\n", p->intra_quantiser_matrix);
+    va_TraceMsg(trace_ctx,"\tnon_intra_quantiser_matrix = %d\n", p->non_intra_quantiser_matrix);
+    va_TraceMsg(trace_ctx,"\tchroma_intra_quantiser_matrix = %d\n", p->chroma_intra_quantiser_matrix);
+    va_TraceMsg(trace_ctx,"\tchroma_non_intra_quantiser_matrix = %d\n", p->chroma_non_intra_quantiser_matrix);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVASliceParameterBufferMPEG2(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VASliceParameterBufferMPEG2 *p=(VASliceParameterBufferMPEG2 *)data;
+
+    DPY2TRACECTX(dpy);
+
+    trace_ctx->trace_slice_no++;
+    
+    trace_ctx->trace_slice_size = p->slice_data_size;
+
+    va_TraceMsg(trace_ctx,"VASliceParameterBufferMPEG2\n");
+
+    va_TraceMsg(trace_ctx,"\tslice_data_size = %d\n", p->slice_data_size);
+    va_TraceMsg(trace_ctx,"\tslice_data_offset = %d\n", p->slice_data_offset);
+    va_TraceMsg(trace_ctx,"\tslice_data_flag = %d\n", p->slice_data_flag);
+    va_TraceMsg(trace_ctx,"\tmacroblock_offset = %d\n", p->macroblock_offset);
+    va_TraceMsg(trace_ctx,"\tslice_horizontal_position = %d\n", p->slice_horizontal_position);
+    va_TraceMsg(trace_ctx,"\tslice_vertical_position = %d\n", p->slice_vertical_position);
+    va_TraceMsg(trace_ctx,"\tquantiser_scale_code = %d\n", p->quantiser_scale_code);
+    va_TraceMsg(trace_ctx,"\tintra_slice_flag = %d\n", p->intra_slice_flag);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAPictureParameterBufferJPEG(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i;
+    VAPictureParameterBufferJPEGBaseline *p=(VAPictureParameterBufferJPEGBaseline *)data;
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx,"*VAPictureParameterBufferJPEG\n");
+    va_TraceMsg(trace_ctx,"\tpicture_width = %u\n", p->picture_width);
+    va_TraceMsg(trace_ctx,"\tpicture_height = %u\n", p->picture_height);
+    va_TraceMsg(trace_ctx,"\tcomponents = \n");
+    for (i = 0; i < p->num_components && i < 255; ++i) {
+        va_TraceMsg(trace_ctx,"\t\t[%d] component_id = %u\n", i, p->components[i].component_id);
+        va_TraceMsg(trace_ctx,"\t\t[%d] h_sampling_factor = %u\n", i, p->components[i].h_sampling_factor);
+        va_TraceMsg(trace_ctx,"\t\t[%d] v_sampling_factor = %u\n", i, p->components[i].v_sampling_factor);
+        va_TraceMsg(trace_ctx,"\t\t[%d] quantiser_table_selector = %u\n", i, p->components[i].quantiser_table_selector);
+    }
+}
+
+static void va_TraceVAIQMatrixBufferJPEG(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i, j;
+    static char tmp[1024];
+    VAIQMatrixBufferJPEGBaseline *p=(VAIQMatrixBufferJPEGBaseline *)data;
+    DPY2TRACECTX(dpy);
+    va_TraceMsg(trace_ctx,"*VAIQMatrixParameterBufferJPEG\n");
+    va_TraceMsg(trace_ctx,"\tload_quantiser_table =\n");
+    for (i = 0; i < 4; ++i) {
+        va_TraceMsg(trace_ctx,"\t\t[%d] = %u\n", i, p->load_quantiser_table[i]);
+    }
+    va_TraceMsg(trace_ctx,"\tquantiser_table =\n");
+    for (i = 0; i < 4; ++i) {
+        memset(tmp, 0, sizeof tmp);
+        for (j = 0; j < 64; ++j) {
+            sprintf(tmp + strlen(tmp), "%u ", p->quantiser_table[i][j]);
+        }
+        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
+    }
+}
+
+static void va_TraceVASliceParameterBufferJPEG(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i;
+    VASliceParameterBufferJPEGBaseline *p=(VASliceParameterBufferJPEGBaseline *)data;
+    DPY2TRACECTX(dpy);
+    va_TraceMsg(trace_ctx,"*VASliceParameterBufferJPEG\n");
+    va_TraceMsg(trace_ctx,"\tslice_data_size = %u\n", p->slice_data_size);
+    va_TraceMsg(trace_ctx,"\tslice_data_offset = %u\n", p->slice_data_offset);
+    va_TraceMsg(trace_ctx,"\tslice_data_flag = %u\n", p->slice_data_flag);
+    va_TraceMsg(trace_ctx,"\tslice_horizontal_position = %u\n", p->slice_horizontal_position);
+    va_TraceMsg(trace_ctx,"\tslice_vertical_position = %u\n", p->slice_vertical_position);
+    va_TraceMsg(trace_ctx,"\tcomponents = \n");
+    for (i = 0; i < p->num_components && i < 4; ++i) {
+        va_TraceMsg(trace_ctx,"\t\t[%d] component_selector = %u\n", i, p->components[i].component_selector);
+        va_TraceMsg(trace_ctx,"\t\t[%d] dc_table_selector = %u\n", i, p->components[i].dc_table_selector);
+        va_TraceMsg(trace_ctx,"\t\t[%d] ac_table_selector = %u\n", i, p->components[i].ac_table_selector);
+    }
+    va_TraceMsg(trace_ctx,"\trestart_interval = %u\n", p->restart_interval);
+    va_TraceMsg(trace_ctx,"\tnum_mcus = %u\n", p->num_mcus);
+}
+
+static void va_TraceVAHuffmanTableBufferJPEG(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i, j;
+    static char tmp[1024];
+    VAHuffmanTableBufferJPEGBaseline *p=(VAHuffmanTableBufferJPEGBaseline *)data;
+    DPY2TRACECTX(dpy);
+    va_TraceMsg(trace_ctx,"*VAHuffmanTableBufferJPEG\n");
+
+    for (i = 0; i < 2; ++i) {
+        va_TraceMsg(trace_ctx,"\tload_huffman_table[%d] =%u\n", i, p->load_huffman_table[0]);
+        va_TraceMsg(trace_ctx,"\thuffman_table[%d] =\n", i);
+        memset(tmp, 0, sizeof tmp);
+        for (j = 0; j < 16; ++j) {
+            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].num_dc_codes[j]);
+        }
+        va_TraceMsg(trace_ctx,"\t\tnum_dc_codes =%s\n", tmp);
+        memset(tmp, 0, sizeof tmp);
+        for (j = 0; j < 12; ++j) {
+            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].dc_values[j]);
+        }
+        va_TraceMsg(trace_ctx,"\t\tdc_values =%s\n", tmp);
+        memset(tmp, 0, sizeof tmp);
+        for (j = 0; j < 16; ++j) {
+            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].num_ac_codes[j]);
+        }
+        va_TraceMsg(trace_ctx,"\t\tnum_dc_codes =%s\n", tmp);
+        memset(tmp, 0, sizeof tmp);
+        for (j = 0; j < 162; ++j) {
+            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].ac_values[j]);
+        }
+        va_TraceMsg(trace_ctx,"\t\tnum_dc_codes =%s\n", tmp);
+        memset(tmp, 0, sizeof tmp);
+        for (j = 0; j < 2; ++j) {
+            sprintf(tmp + strlen(tmp), "%u ", p->huffman_table[i].pad[j]);
+        }
+        va_TraceMsg(trace_ctx,"\t\tnum_dc_codes =%s\n", tmp);
+    }
+}
+
+static void va_TraceVAPictureParameterBufferMPEG4(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i;
+    VAPictureParameterBufferMPEG4 *p=(VAPictureParameterBufferMPEG4 *)data;
+    
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx,"*VAPictureParameterBufferMPEG4\n");
+    va_TraceMsg(trace_ctx,"\tvop_width = %d\n", p->vop_width);
+    va_TraceMsg(trace_ctx,"\tvop_height = %d\n", p->vop_height);
+    va_TraceMsg(trace_ctx,"\tforward_reference_picture = %d\n", p->forward_reference_picture);
+    va_TraceMsg(trace_ctx,"\tbackward_reference_picture = %d\n", p->backward_reference_picture);
+    va_TraceMsg(trace_ctx,"\tvol_fields value = %d\n", p->vol_fields.value);
+    va_TraceMsg(trace_ctx,"\tshort_video_header= %d\n", p->vol_fields.bits.short_video_header);
+    va_TraceMsg(trace_ctx,"\tchroma_format= %d\n", p->vol_fields.bits.chroma_format);
+    va_TraceMsg(trace_ctx,"\tinterlaced= %d\n", p->vol_fields.bits.interlaced);
+    va_TraceMsg(trace_ctx,"\tobmc_disable= %d\n", p->vol_fields.bits.obmc_disable);
+    va_TraceMsg(trace_ctx,"\tsprite_enable= %d\n", p->vol_fields.bits.sprite_enable);
+    va_TraceMsg(trace_ctx,"\tsprite_warping_accuracy= %d\n", p->vol_fields.bits.sprite_warping_accuracy);
+    va_TraceMsg(trace_ctx,"\tquant_type= %d\n", p->vol_fields.bits.quant_type);
+    va_TraceMsg(trace_ctx,"\tquarter_sample= %d\n", p->vol_fields.bits.quarter_sample);
+    va_TraceMsg(trace_ctx,"\tdata_partitioned= %d\n", p->vol_fields.bits.data_partitioned);
+    va_TraceMsg(trace_ctx,"\treversible_vlc= %d\n", p->vol_fields.bits.reversible_vlc);
+    va_TraceMsg(trace_ctx,"\tresync_marker_disable= %d\n", p->vol_fields.bits.resync_marker_disable);
+    va_TraceMsg(trace_ctx,"\tno_of_sprite_warping_points = %d\n", p->no_of_sprite_warping_points);
+    va_TraceMsg(trace_ctx,"\tsprite_trajectory_du =");
+    for(i=0;i<3;i++)
+        va_TraceMsg(trace_ctx,"\t%d", p->sprite_trajectory_du[i]);
+
+    va_TraceMsg(trace_ctx,"\n");
+    va_TraceMsg(trace_ctx,"\tsprite_trajectory_dv =");
+    for(i=0;i<3;i++)
+        va_TraceMsg(trace_ctx,"\t%d", p->sprite_trajectory_dv[i]);
+    va_TraceMsg(trace_ctx,"\n");
+    va_TraceMsg(trace_ctx,"\tvop_fields value = %d\n", p->vop_fields.value);
+    va_TraceMsg(trace_ctx,"\tvop_coding_type= %d\n", p->vop_fields.bits.vop_coding_type);
+    va_TraceMsg(trace_ctx,"\tbackward_reference_vop_coding_type= %d\n", p->vop_fields.bits.backward_reference_vop_coding_type);
+    va_TraceMsg(trace_ctx,"\tvop_rounding_type= %d\n", p->vop_fields.bits.vop_rounding_type);
+    va_TraceMsg(trace_ctx,"\tintra_dc_vlc_thr= %d\n", p->vop_fields.bits.intra_dc_vlc_thr);
+    va_TraceMsg(trace_ctx,"\ttop_field_first= %d\n", p->vop_fields.bits.top_field_first);
+    va_TraceMsg(trace_ctx,"\talternate_vertical_scan_flag= %d\n", p->vop_fields.bits.alternate_vertical_scan_flag);
+    va_TraceMsg(trace_ctx,"\tvop_fcode_forward = %d\n", p->vop_fcode_forward);
+    va_TraceMsg(trace_ctx,"\tvop_fcode_backward = %d\n", p->vop_fcode_backward);
+    va_TraceMsg(trace_ctx,"\tnum_gobs_in_vop = %d\n", p->num_gobs_in_vop);
+    va_TraceMsg(trace_ctx,"\tnum_macroblocks_in_gob = %d\n", p->num_macroblocks_in_gob);
+    va_TraceMsg(trace_ctx,"\tTRB = %d\n", p->TRB);
+    va_TraceMsg(trace_ctx,"\tTRD = %d\n", p->TRD);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVAIQMatrixBufferMPEG4(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i;
+    VAIQMatrixBufferMPEG4 *p=(VAIQMatrixBufferMPEG4 *)data;
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx,"VAIQMatrixBufferMPEG4\n");
+
+    va_TraceMsg(trace_ctx,"\tload_intra_quant_mat = %d\n", p->load_intra_quant_mat);
+    va_TraceMsg(trace_ctx,"\tload_non_intra_quant_mat = %d\n", p->load_non_intra_quant_mat);
+    va_TraceMsg(trace_ctx,"\tintra_quant_mat =\n");
+    for(i=0;i<64;i++)
+        va_TraceMsg(trace_ctx,"\t\t%d\n", p->intra_quant_mat[i]);
+
+    va_TraceMsg(trace_ctx,"\tnon_intra_quant_mat =\n");
+    for(i=0;i<64;i++)
+        va_TraceMsg(trace_ctx,"\t\t%d\n", p->non_intra_quant_mat[i]);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAEncSequenceParameterBufferMPEG4(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncSequenceParameterBufferMPEG4 *p = (VAEncSequenceParameterBufferMPEG4 *)data;
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferMPEG4\n");
+    
+    va_TraceMsg(trace_ctx, "\tprofile_and_level_indication = %d\n", p->profile_and_level_indication);
+    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
+    va_TraceMsg(trace_ctx, "\tvideo_object_layer_width = %d\n", p->video_object_layer_width);
+    va_TraceMsg(trace_ctx, "\tvideo_object_layer_height = %d\n", p->video_object_layer_height);
+    va_TraceMsg(trace_ctx, "\tvop_time_increment_resolution = %d\n", p->vop_time_increment_resolution);
+    va_TraceMsg(trace_ctx, "\tfixed_vop_rate = %d\n", p->fixed_vop_rate);
+    va_TraceMsg(trace_ctx, "\tfixed_vop_time_increment = %d\n", p->fixed_vop_time_increment);
+    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
+    va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate);
+    va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
+    va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAEncPictureParameterBufferMPEG4(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncPictureParameterBufferMPEG4 *p = (VAEncPictureParameterBufferMPEG4 *)data;
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferMPEG4\n");
+    va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
+    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
+    va_TraceMsg(trace_ctx, "\tcoded_buf = 0x%08x\n", p->coded_buf);
+    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
+    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
+    va_TraceMsg(trace_ctx, "\tmodulo_time_base = %d\n", p->modulo_time_base);
+    va_TraceMsg(trace_ctx, "\tvop_time_increment = %d\n", p->vop_time_increment);
+    va_TraceMsg(trace_ctx, "\tpicture_type = %d\n", p->picture_type);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVASliceParameterBufferMPEG4(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VASliceParameterBufferMPEG4 *p=(VASliceParameterBufferMPEG4 *)data;
+    
+    DPY2TRACECTX(dpy);
+
+    trace_ctx->trace_slice_no++;
+
+    trace_ctx->trace_slice_size = p->slice_data_size;
+
+    va_TraceMsg(trace_ctx,"VASliceParameterBufferMPEG4\n");
+
+    va_TraceMsg(trace_ctx,"\tslice_data_size = %d\n", p->slice_data_size);
+    va_TraceMsg(trace_ctx,"\tslice_data_offset = %d\n", p->slice_data_offset);
+    va_TraceMsg(trace_ctx,"\tslice_data_flag = %d\n", p->slice_data_flag);
+    va_TraceMsg(trace_ctx,"\tmacroblock_offset = %d\n", p->macroblock_offset);
+    va_TraceMsg(trace_ctx,"\tmacroblock_number = %d\n", p->macroblock_number);
+    va_TraceMsg(trace_ctx,"\tquant_scale = %d\n", p->quant_scale);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static inline void va_TraceFlagIfNotZero(
+    struct trace_context *trace_ctx,
+    const char *name,   /* in */
+    unsigned int flag   /* in */
+)
+{
+    if (flag != 0) {
+        va_TraceMsg(trace_ctx, "%s = %x\n", name, flag);
+    }
+}
+
+
+static void va_TraceVAPictureParameterBufferHEVC(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i;
+    VAPictureParameterBufferHEVC *p = (VAPictureParameterBufferHEVC*)data;
+
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx, "VAPictureParameterBufferHEVC\n");
+
+    va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
+    va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.pic_order_cnt);
+    va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
+
+    va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags:\n");
+    for (i = 0; i < 15; i++)
+    {
+        if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
+            ((p->ReferenceFrames[i].flags & VA_PICTURE_HEVC_INVALID) == 0)) {
+            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x\n",
+                        p->ReferenceFrames[i].picture_id,
+                        p->ReferenceFrames[i].pic_order_cnt,
+                        p->ReferenceFrames[i].flags);
+        } else
+            va_TraceMsg(trace_ctx, "\t\tinv-inv-inv-inv-inv\n");
+    }
+    va_TraceMsg(trace_ctx, "\n");
+
+    va_TraceMsg(trace_ctx, "\tpic_width_in_luma_samples = %d\n", p->pic_width_in_luma_samples);
+    va_TraceMsg(trace_ctx, "\tpic_height_in_luma_samples = %d\n", p->pic_height_in_luma_samples);
+    va_TraceMsg(trace_ctx, "\tpic_fields = %d\n", p->pic_fields.value);
+
+    va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->pic_fields.bits.chroma_format_idc);
+    va_TraceMsg(trace_ctx, "\tseparate_colour_plane_flag = %d\n", p->pic_fields.bits.separate_colour_plane_flag);
+    va_TraceMsg(trace_ctx, "\tpcm_enabled_flag = %d\n", p->pic_fields.bits.pcm_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tscaling_list_enabled_flag = %d\n", p->pic_fields.bits.scaling_list_enabled_flag);
+    va_TraceMsg(trace_ctx, "\ttransform_skip_enabled_flag = %d\n", p->pic_fields.bits.transform_skip_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tamp_enabled_flag = %d\n", p->pic_fields.bits.amp_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tstrong_intra_smoothing_enabled_flag = %d\n", p->pic_fields.bits.strong_intra_smoothing_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tsign_data_hiding_enabled_flag = %d\n", p->pic_fields.bits.sign_data_hiding_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
+    va_TraceMsg(trace_ctx, "\tcu_qp_delta_enabled_flag = %d\n", p->pic_fields.bits.cu_qp_delta_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
+    va_TraceMsg(trace_ctx, "\tweighted_bipred_flag = %d\n", p->pic_fields.bits.weighted_bipred_flag);
+    va_TraceMsg(trace_ctx, "\ttransquant_bypass_enabled_flag = %d\n", p->pic_fields.bits.transquant_bypass_enabled_flag);
+    va_TraceMsg(trace_ctx, "\ttiles_enabled_flag = %d\n", p->pic_fields.bits.tiles_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tentropy_coding_sync_enabled_flag = %d\n", p->pic_fields.bits.entropy_coding_sync_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tpps_loop_filter_across_slices_enabled_flag = %d\n", p->pic_fields.bits.pps_loop_filter_across_slices_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tloop_filter_across_tiles_enabled_flag = %d\n", p->pic_fields.bits.loop_filter_across_tiles_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tpcm_loop_filter_disabled_flag = %d\n", p->pic_fields.bits.pcm_loop_filter_disabled_flag);
+    va_TraceMsg(trace_ctx, "\tNoPicReorderingFlag = %d\n", p->pic_fields.bits.NoPicReorderingFlag);
+    va_TraceMsg(trace_ctx, "\tNoBiPredFlag = %d\n", p->pic_fields.bits.NoBiPredFlag);
+    va_TraceMsg(trace_ctx, "\tReservedBits = %d\n", p->pic_fields.bits.ReservedBits);
+
+    va_TraceMsg(trace_ctx, "\tsps_max_dec_pic_buffering_minus1 = %d\n", p->sps_max_dec_pic_buffering_minus1);
+    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
+    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
+    va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_luma_minus1 = %d\n", p->pcm_sample_bit_depth_luma_minus1);
+    va_TraceMsg(trace_ctx, "\tpcm_sample_bit_depth_chroma_minus1 = %d\n", p->pcm_sample_bit_depth_chroma_minus1);
+    va_TraceMsg(trace_ctx, "\tlog2_min_luma_coding_block_size_minus3 = %d\n", p->log2_min_luma_coding_block_size_minus3);
+    va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_luma_coding_block_size = %d\n", p->log2_diff_max_min_luma_coding_block_size);
+    va_TraceMsg(trace_ctx, "\tlog2_min_transform_block_size_minus2 = %d\n", p->log2_min_transform_block_size_minus2);
+    va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_transform_block_size = %d\n", p->log2_diff_max_min_transform_block_size);
+    va_TraceMsg(trace_ctx, "\tlog2_min_pcm_luma_coding_block_size_minus3 = %d\n", p->log2_min_pcm_luma_coding_block_size_minus3);
+    va_TraceMsg(trace_ctx, "\tlog2_diff_max_min_pcm_luma_coding_block_size = %d\n", p->log2_diff_max_min_pcm_luma_coding_block_size);
+    va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_intra = %d\n", p->max_transform_hierarchy_depth_intra);
+    va_TraceMsg(trace_ctx, "\tmax_transform_hierarchy_depth_inter = %d\n", p->max_transform_hierarchy_depth_inter);
+    va_TraceMsg(trace_ctx, "\tinit_qp_minus26 = %d\n", p->init_qp_minus26);
+    va_TraceMsg(trace_ctx, "\tdiff_cu_qp_delta_depth = %d\n", p->diff_cu_qp_delta_depth);
+    va_TraceMsg(trace_ctx, "\tpps_cb_qp_offset = %d\n", p->pps_cb_qp_offset);
+    va_TraceMsg(trace_ctx, "\tpps_cr_qp_offset = %d\n", p->pps_cr_qp_offset);
+    va_TraceMsg(trace_ctx, "\tlog2_parallel_merge_level_minus2 = %d\n", p->log2_parallel_merge_level_minus2);
+    va_TraceMsg(trace_ctx, "\tnum_tile_columns_minus1 = %d\n", p->num_tile_columns_minus1);
+    va_TraceMsg(trace_ctx, "\tnum_tile_rows_minus1 = %d\n", p->num_tile_rows_minus1);
+
+    va_TraceMsg(trace_ctx, "\tcolumn_width_minus1[19]=\n");
+    for (i = 0; i < 19; i++) {
+        va_TraceMsg(trace_ctx, "\t%d", p->column_width_minus1[i]);
+        if ((i + 1) % 8 == 0)
+            va_TraceMsg(trace_ctx, "\n");
+    }
+    va_TraceMsg(trace_ctx, "\n");
+    va_TraceMsg(trace_ctx, "\trow_height_minus1[21]=\n");
+    for (i = 0; i < 21; i++) {
+        va_TraceMsg(trace_ctx, "\t%d", p->row_height_minus1[i]);
+        if ((i + 1) % 8 == 0)
+            va_TraceMsg(trace_ctx, "\n");
+    }
+    va_TraceMsg(trace_ctx, "\n");
+
+    va_TraceMsg(trace_ctx, "\tslice_parsing_fields = %d\n", p->slice_parsing_fields.value);
+    va_TraceMsg(trace_ctx, "\tlists_modification_present_flag = %d\n", p->slice_parsing_fields.bits.lists_modification_present_flag);
+    va_TraceMsg(trace_ctx, "\tlong_term_ref_pics_present_flag = %d\n", p->slice_parsing_fields.bits.long_term_ref_pics_present_flag);
+    va_TraceMsg(trace_ctx, "\tsps_temporal_mvp_enabled_flag = %d\n", p->slice_parsing_fields.bits.sps_temporal_mvp_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tcabac_init_present_flag = %d\n", p->slice_parsing_fields.bits.cabac_init_present_flag);
+    va_TraceMsg(trace_ctx, "\toutput_flag_present_flag = %d\n", p->slice_parsing_fields.bits.output_flag_present_flag);
+    va_TraceMsg(trace_ctx, "\tdependent_slice_segments_enabled_flag = %d\n", p->slice_parsing_fields.bits.dependent_slice_segments_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tpps_slice_chroma_qp_offsets_present_flag = %d\n", p->slice_parsing_fields.bits.pps_slice_chroma_qp_offsets_present_flag);
+    va_TraceMsg(trace_ctx, "\tsample_adaptive_offset_enabled_flag = %d\n", p->slice_parsing_fields.bits.sample_adaptive_offset_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tdeblocking_filter_override_enabled_flag = %d\n", p->slice_parsing_fields.bits.deblocking_filter_override_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tpps_disable_deblocking_filter_flag = %d\n", p->slice_parsing_fields.bits.pps_disable_deblocking_filter_flag);
+    va_TraceMsg(trace_ctx, "\tslice_segment_header_extension_present_flag = %d\n", p->slice_parsing_fields.bits.slice_segment_header_extension_present_flag);
+    va_TraceMsg(trace_ctx, "\tRapPicFlag = %d\n", p->slice_parsing_fields.bits.RapPicFlag);
+    va_TraceMsg(trace_ctx, "\tIdrPicFlag = %d\n", p->slice_parsing_fields.bits.IdrPicFlag);
+    va_TraceMsg(trace_ctx, "\tIntraPicFlag = %d\n", p->slice_parsing_fields.bits.IntraPicFlag);
+    va_TraceMsg(trace_ctx, "\tReservedBits = %d\n", p->slice_parsing_fields.bits.ReservedBits);
+
+    va_TraceMsg(trace_ctx, "\tlog2_max_pic_order_cnt_lsb_minus4 = %d\n", p->log2_max_pic_order_cnt_lsb_minus4);
+    va_TraceMsg(trace_ctx, "\tnum_short_term_ref_pic_sets = %d\n", p->num_short_term_ref_pic_sets);
+    va_TraceMsg(trace_ctx, "\tnum_long_term_ref_pic_sps = %d\n", p->num_long_term_ref_pic_sps);
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_default_active_minus1 = %d\n", p->num_ref_idx_l0_default_active_minus1);
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_default_active_minus1 = %d\n", p->num_ref_idx_l1_default_active_minus1);
+    va_TraceMsg(trace_ctx, "\tpps_beta_offset_div2 = %d\n", p->pps_beta_offset_div2);
+    va_TraceMsg(trace_ctx, "\tpps_tc_offset_div2 = %d\n", p->pps_tc_offset_div2);
+    va_TraceMsg(trace_ctx, "\tnum_extra_slice_header_bits = %d\n", p->num_extra_slice_header_bits);
+    va_TraceMsg(trace_ctx, "\tst_rps_bits = %d\n", p->st_rps_bits);
+
+    return;
+}
+
+static void va_TraceVASliceParameterBufferHEVC(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i,j;
+    VASliceParameterBufferHEVC* p = (VASliceParameterBufferHEVC*)data;
+
+    DPY2TRACECTX(dpy);
+
+    trace_ctx->trace_slice_no++;
+    trace_ctx->trace_slice_size = p->slice_data_size;
+
+    va_TraceMsg(trace_ctx, "VASliceParameterBufferHEVC\n");
+    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
+    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
+    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
+    va_TraceMsg(trace_ctx, "\tslice_data_byte_offset = %d\n", p->slice_data_byte_offset);
+    va_TraceMsg(trace_ctx, "\tslice_segment_address = %d\n", p->slice_segment_address);
+
+    va_TraceMsg(trace_ctx, "\tRefPicList[2][15]=\n");
+    for (i = 0; i < 2; i++) {
+        for (j = 0; j < 15; j++) {
+            va_TraceMsg(trace_ctx, "\t%d", p->RefPicList[i][j]);
+            if ((i*8 + j + 1) % 8 == 0)
+                va_TraceMsg(trace_ctx, "\n");
+        }
+    }
+    va_TraceMsg(trace_ctx, "\n");
+
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.value = %d\n", p->LongSliceFlags.value);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.LastSliceOfPic = %d\n", p->LongSliceFlags.fields.LastSliceOfPic);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.dependent_slice_segment_flag = %d\n", p->LongSliceFlags.fields.dependent_slice_segment_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_type = %d\n", p->LongSliceFlags.fields.slice_type);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.color_plane_id = %d\n", p->LongSliceFlags.fields.color_plane_id);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_sao_luma_flag = %d\n", p->LongSliceFlags.fields.slice_sao_luma_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_sao_chroma_flag = %d\n", p->LongSliceFlags.fields.slice_sao_chroma_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.mvd_l1_zero_flag = %d\n", p->LongSliceFlags.fields.mvd_l1_zero_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.cabac_init_flag = %d\n", p->LongSliceFlags.fields.cabac_init_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_temporal_mvp_enabled_flag = %d\n", p->LongSliceFlags.fields.slice_temporal_mvp_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_deblocking_filter_disabled_flag = %d\n", p->LongSliceFlags.fields.slice_deblocking_filter_disabled_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.collocated_from_l0_flag = %d\n", p->LongSliceFlags.fields.collocated_from_l0_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.slice_loop_filter_across_slices_enabled_flag = %d\n", p->LongSliceFlags.fields.slice_loop_filter_across_slices_enabled_flag);
+    va_TraceMsg(trace_ctx, "\tLongSliceFlags.fields.reserved = %d\n", p->LongSliceFlags.fields.reserved);
+
+    va_TraceMsg(trace_ctx, "\tcollocated_ref_idx = %d\n", p->collocated_ref_idx);
+
+    va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
+    va_TraceMsg(trace_ctx, "\tslice_cb_qp_offset = %d\n", p->slice_cb_qp_offset);
+    va_TraceMsg(trace_ctx, "\tslice_cr_qp_offset = %d\n", p->slice_cr_qp_offset);
+    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
+    va_TraceMsg(trace_ctx, "\tslice_tc_offset_div2 = %d\n", p->slice_tc_offset_div2);
+    va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
+    va_TraceMsg(trace_ctx, "\tdelta_chroma_log2_weight_denom = %d\n", p->delta_chroma_log2_weight_denom);
+
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
+    for (i = 0; i <=  p->num_ref_idx_l0_active_minus1; i++) {
+        va_TraceMsg(trace_ctx, "\t%d ", p->delta_luma_weight_l0[i]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->luma_offset_l0[i]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->delta_chroma_weight_l0[i][0]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->delta_chroma_weight_l0[i][1]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->ChromaOffsetL0[i][0]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->ChromaOffsetL0[i][1]);
+        va_TraceMsg(trace_ctx, "\n");
+    }
+
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
+    for (i = 0; i <=  p->num_ref_idx_l1_active_minus1; i++) {
+        va_TraceMsg(trace_ctx, "\t%d ", p->delta_luma_weight_l1[i]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->luma_offset_l1[i]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->delta_chroma_weight_l1[i][0]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->delta_chroma_weight_l1[i][1]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->ChromaOffsetL1[i][0]);
+        va_TraceMsg(trace_ctx, "\t%d ", p->ChromaOffsetL1[i][1]);
+        va_TraceMsg(trace_ctx, "\n");
+    }
+
+    va_TraceMsg(trace_ctx, "\tfive_minus_max_num_merge_cand = %d\n", p->five_minus_max_num_merge_cand);
+
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+static void va_TraceVAIQMatrixBufferHEVC(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data
+)
+{
+    int i, j;
+    VAIQMatrixBufferHEVC* p = (VAIQMatrixBufferHEVC* )data;
+
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx, "VAIQMatrixBufferHEVC\n");
+
+    va_TraceMsg(trace_ctx, "\tScalingList4x4[6][16]=\n");
+    for (i = 0; i < 6; i++) {
+        for (j = 0; j < 16; j++) {
+            va_TraceMsg(trace_ctx, "\t%d\t", p->ScalingList4x4[i][j]);
+            if ((j + 1) % 8 == 0)
+                va_TraceMsg(trace_ctx, "\n");
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\tScalingList8x8[6][64]=\n");
+    for (i = 0; i < 6; i++) {
+        for (j = 0; j < 64; j++) {
+            va_TraceMsg(trace_ctx, "\t%d", p->ScalingList8x8[i][j]);
+            if ((j + 1) % 8 == 0)
+                va_TraceMsg(trace_ctx, "\n");
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\tScalingList16x16[6][64]=\n");
+    for (i = 0; i < 6; i++) {
+        for (j = 0; j < 64; j++) {
+            va_TraceMsg(trace_ctx, "\t%d", p->ScalingList16x16[i][j]);
+            if ((j + 1) % 8 == 0)
+                va_TraceMsg(trace_ctx, "\n");
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\tScalingList32x32[2][64]=\n");
+    for (i = 0; i < 2; i++) {
+        for (j = 0; j < 64; j++) {
+            va_TraceMsg(trace_ctx, "\t%d", p->ScalingList32x32[i][j]);
+            if ((j + 1) % 8 == 0)
+                va_TraceMsg(trace_ctx, "\n");
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\tScalingListDC16x16[6]=\n");
+    for (j = 0; j < 6; j++) {
+        va_TraceMsg(trace_ctx, "\t%d", p->ScalingListDC16x16[j]);
+    }
+    va_TraceMsg(trace_ctx, "\tScalingListDC32x32[2]=\n");
+    for (j = 0; j < 2; j++) {
+        va_TraceMsg(trace_ctx, "\t%d", p->ScalingListDC32x32[j]);
+    }
+
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+static void va_TraceVAPictureParameterBufferH264(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i;
+    VAPictureParameterBufferH264 *p = (VAPictureParameterBufferH264*)data;
+    
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferH264\n");
+
+    va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
+    va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx);
+    va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
+    va_TraceMsg(trace_ctx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
+    va_TraceMsg(trace_ctx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
+
+    va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags:\n");
+    for (i = 0; i < 16; i++)
+    {
+        if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
+            ((p->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID) == 0)) {
+            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08x\n",
+                        p->ReferenceFrames[i].TopFieldOrderCnt,
+                        p->ReferenceFrames[i].BottomFieldOrderCnt,
+                        p->ReferenceFrames[i].picture_id,
+                        p->ReferenceFrames[i].frame_idx,
+                        p->ReferenceFrames[i].flags);
+        } else
+            break;
+    }
+    va_TraceMsg(trace_ctx, "\tpicture_width_in_mbs_minus1 = %d\n", p->picture_width_in_mbs_minus1);
+    va_TraceMsg(trace_ctx, "\tpicture_height_in_mbs_minus1 = %d\n", p->picture_height_in_mbs_minus1);
+    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
+    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
+    va_TraceMsg(trace_ctx, "\tnum_ref_frames = %d\n", p->num_ref_frames);
+    va_TraceMsg(trace_ctx, "\tseq fields = %d\n", p->seq_fields.value);
+    va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
+    va_TraceMsg(trace_ctx, "\tresidual_colour_transform_flag = %d\n", p->seq_fields.bits.residual_colour_transform_flag);
+    va_TraceMsg(trace_ctx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
+    va_TraceMsg(trace_ctx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
+    va_TraceMsg(trace_ctx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
+    va_TraceMsg(trace_ctx, "\tMinLumaBiPredSize8x8 = %d\n", p->seq_fields.bits.MinLumaBiPredSize8x8);
+    va_TraceMsg(trace_ctx, "\tnum_slice_groups_minus1 = %d\n", p->num_slice_groups_minus1);
+    va_TraceMsg(trace_ctx, "\tslice_group_map_type = %d\n", p->slice_group_map_type);
+    va_TraceMsg(trace_ctx, "\tslice_group_change_rate_minus1 = %d\n", p->slice_group_change_rate_minus1);
+    va_TraceMsg(trace_ctx, "\tpic_init_qp_minus26 = %d\n", p->pic_init_qp_minus26);
+    va_TraceMsg(trace_ctx, "\tpic_init_qs_minus26 = %d\n", p->pic_init_qs_minus26);
+    va_TraceMsg(trace_ctx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
+    va_TraceMsg(trace_ctx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
+    va_TraceMsg(trace_ctx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\tentropy_coding_mode_flag", p->pic_fields.bits.entropy_coding_mode_flag);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\tweighted_pred_flag", p->pic_fields.bits.weighted_pred_flag);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\tweighted_bipred_idc", p->pic_fields.bits.weighted_bipred_idc);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\ttransform_8x8_mode_flag", p->pic_fields.bits.transform_8x8_mode_flag);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\tfield_pic_flag", p->pic_fields.bits.field_pic_flag);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\tconstrained_intra_pred_flag", p->pic_fields.bits.constrained_intra_pred_flag);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\tpic_order_present_flag", p->pic_fields.bits.pic_order_present_flag);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\tdeblocking_filter_control_present_flag", p->pic_fields.bits.deblocking_filter_control_present_flag);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\tredundant_pic_cnt_present_flag", p->pic_fields.bits.redundant_pic_cnt_present_flag);
+    va_TraceFlagIfNotZero(trace_ctx, "\t\treference_pic_flag", p->pic_fields.bits.reference_pic_flag);
+    va_TraceMsg(trace_ctx, "\tframe_num = %d\n", p->frame_num);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVASliceParameterBufferH264(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    int i;
+    VASliceParameterBufferH264* p = (VASliceParameterBufferH264*)data;
+    DPY2TRACECTX(dpy);
+
+    trace_ctx->trace_slice_no++;
+    trace_ctx->trace_slice_size = p->slice_data_size;
+
+    va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferH264\n");
+    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
+    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
+    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
+    va_TraceMsg(trace_ctx, "\tslice_data_bit_offset = %d\n", p->slice_data_bit_offset);
+    va_TraceMsg(trace_ctx, "\tfirst_mb_in_slice = %d\n", p->first_mb_in_slice);
+    va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
+    va_TraceMsg(trace_ctx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
+    va_TraceMsg(trace_ctx, "\tcabac_init_idc = %d\n", p->cabac_init_idc);
+    va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
+    va_TraceMsg(trace_ctx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
+    va_TraceMsg(trace_ctx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
+    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
+
+    va_TraceMsg(trace_ctx, "\tRefPicList0 =\n");
+    for (i = 0; i < 32; i++) {
+        if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
+            ((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
+        va_TraceMsg(trace_ctx, "%08d-%08d-0x%08x-%08d-0x%08x\n", p->RefPicList0[i].TopFieldOrderCnt, p->RefPicList0[i].BottomFieldOrderCnt, p->RefPicList0[i].picture_id, p->RefPicList0[i].frame_idx,  p->RefPicList0[i].flags);
+        else
+            break;
+    }
+    va_TraceMsg(trace_ctx, "\tRefPicList1 =\n");
+    for (i = 0; i < 32; i++) {
+        if ((p->RefPicList1[i].picture_id != VA_INVALID_SURFACE) &&
+            ((p->RefPicList1[i].flags & VA_PICTURE_H264_INVALID) == 0))
+            va_TraceMsg(trace_ctx, "%08d-%08d-0x%08x-%08d-0x%08x\n", p->RefPicList1[i].TopFieldOrderCnt, p->RefPicList1[i].BottomFieldOrderCnt, p->RefPicList1[i].picture_id, p->RefPicList1[i].frame_idx, p->RefPicList1[i].flags);
+        else
+            break;
+    }
+
+    va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
+    va_TraceMsg(trace_ctx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
+    va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
+
+    for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
+        va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
+            p->luma_weight_l0[i],
+            p->luma_offset_l0[i]);
+    }
+
+
+    va_TraceMsg(trace_ctx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag);
+
+    for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
+        va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
+            p->chroma_weight_l0[i][0],
+            p->chroma_offset_l0[i][0],
+            p->chroma_weight_l0[i][1],
+            p->chroma_offset_l0[i][1]);
+    }
+
+
+    va_TraceMsg(trace_ctx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag);
+
+    for (i = 0; (i <=  p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
+        va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
+            p->luma_weight_l1[i],
+            p->luma_offset_l1[i]);
+    }
+
+
+    va_TraceMsg(trace_ctx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag);
+
+    for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
+        va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
+            p->chroma_weight_l1[i][0],
+            p->chroma_offset_l1[i][0],
+            p->chroma_weight_l1[i][1],
+            p->chroma_offset_l1[i][1]);
+
+    }
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+static void va_TraceVAIQMatrixBufferH264(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data
+)
+{
+    int i, j;
+    VAIQMatrixBufferH264* p = (VAIQMatrixBufferH264* )data;
+
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx, "\t--VAIQMatrixBufferH264\n");
+
+    va_TraceMsg(trace_ctx, "\tScalingList4x4[6][16]=\n");
+    for (i = 0; i < 6; i++) {
+        for (j = 0; j < 16; j++) {
+            if (trace_ctx->trace_fp_log) {
+                fprintf(trace_ctx->trace_fp_log, "\t%d", p->ScalingList4x4[i][j]);
+                if ((j + 1) % 8 == 0)
+                    fprintf(trace_ctx->trace_fp_log, "\n");
+            }
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\tScalingList8x8[2][64]=\n");
+    for (i = 0; i < 2; i++) {
+        for (j = 0; j < 64; j++) {
+            if (trace_ctx->trace_fp_log) {
+                fprintf(trace_ctx->trace_fp_log,"\t%d", p->ScalingList8x8[i][j]);
+                if ((j + 1) % 8 == 0)
+                    fprintf(trace_ctx->trace_fp_log, "\n");
+            }
+        }
+    }
+
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+
+static void va_TraceVAEncSequenceParameterBufferH264(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncSequenceParameterBufferH264 *p = (VAEncSequenceParameterBufferH264 *)data;
+    DPY2TRACECTX(dpy);
+    unsigned int i;
+
+    va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferH264\n");
+
+    va_TraceMsg(trace_ctx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
+    va_TraceMsg(trace_ctx, "\tlevel_idc = %d\n", p->level_idc);
+    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
+    va_TraceMsg(trace_ctx, "\tintra_idr_period = %d\n", p->intra_idr_period);
+    va_TraceMsg(trace_ctx, "\tip_period = %d\n", p->ip_period);
+    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
+    va_TraceMsg(trace_ctx, "\tmax_num_ref_frames = %d\n", p->max_num_ref_frames);
+    va_TraceMsg(trace_ctx, "\tpicture_width_in_mbs = %d\n", p->picture_width_in_mbs);
+    va_TraceMsg(trace_ctx, "\tpicture_height_in_mbs = %d\n", p->picture_height_in_mbs);
+    va_TraceMsg(trace_ctx, "\tchroma_format_idc = %d\n", p->seq_fields.bits.chroma_format_idc);
+    va_TraceMsg(trace_ctx, "\tframe_mbs_only_flag = %d\n", p->seq_fields.bits.frame_mbs_only_flag);
+    va_TraceMsg(trace_ctx, "\tmb_adaptive_frame_field_flag = %d\n", p->seq_fields.bits.mb_adaptive_frame_field_flag);
+    va_TraceMsg(trace_ctx, "\tseq_scaling_matrix_present_flag = %d\n", p->seq_fields.bits.seq_scaling_matrix_present_flag);
+    va_TraceMsg(trace_ctx, "\tdirect_8x8_inference_flag = %d\n", p->seq_fields.bits.direct_8x8_inference_flag);
+    va_TraceMsg(trace_ctx, "\tlog2_max_frame_num_minus4 = %d\n", p->seq_fields.bits.log2_max_frame_num_minus4);
+    va_TraceMsg(trace_ctx, "\tpic_order_cnt_type = %d\n", p->seq_fields.bits.pic_order_cnt_type);
+    va_TraceMsg(trace_ctx, "\tlog2_max_pic_order_cnt_lsb_minus4 = %d\n", p->seq_fields.bits.log2_max_pic_order_cnt_lsb_minus4);
+    va_TraceMsg(trace_ctx, "\tdelta_pic_order_always_zero_flag = %d\n", p->seq_fields.bits.delta_pic_order_always_zero_flag);
+    va_TraceMsg(trace_ctx, "\tbit_depth_luma_minus8 = %d\n", p->bit_depth_luma_minus8);
+    va_TraceMsg(trace_ctx, "\tbit_depth_chroma_minus8 = %d\n", p->bit_depth_chroma_minus8);
+    va_TraceMsg(trace_ctx, "\tnum_ref_frames_in_pic_order_cnt_cycle = %d\n", p->num_ref_frames_in_pic_order_cnt_cycle);
+    va_TraceMsg(trace_ctx, "\toffset_for_non_ref_pic = %d\n", p->offset_for_non_ref_pic);
+    va_TraceMsg(trace_ctx, "\toffset_for_top_to_bottom_field = %d\n", p->offset_for_top_to_bottom_field);
+    for(i = 0; (i < p->max_num_ref_frames) && (i < 32); ++i)
+        va_TraceMsg(trace_ctx, "\toffset_for_ref_frame[%d] = %d\n", i, p->offset_for_ref_frame[i]);
+    va_TraceMsg(trace_ctx, "\tframe_cropping_flag = %d\n", p->frame_cropping_flag);
+    va_TraceMsg(trace_ctx, "\tframe_crop_left_offset = %d\n", p->frame_crop_left_offset);
+    va_TraceMsg(trace_ctx, "\tframe_crop_right_offset = %d\n", p->frame_crop_right_offset);
+    va_TraceMsg(trace_ctx, "\tframe_crop_top_offset = %d\n", p->frame_crop_top_offset);
+    va_TraceMsg(trace_ctx, "\tframe_crop_bottom_offset = %d\n", p->frame_crop_bottom_offset);
+    va_TraceMsg(trace_ctx, "\tvui_parameters_present_flag = %d\n", p->vui_parameters_present_flag);
+    va_TraceMsg(trace_ctx, "\taspect_ratio_info_present_flag = %d\n", p->vui_fields.bits.aspect_ratio_info_present_flag);
+    va_TraceMsg(trace_ctx, "\ttiming_info_present_flag = %d\n", p->vui_fields.bits.timing_info_present_flag);
+    va_TraceMsg(trace_ctx, "\tbitstream_restriction_flag = %d\n", p->vui_fields.bits.bitstream_restriction_flag);
+    va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_horizontal = %d\n", p->vui_fields.bits.log2_max_mv_length_horizontal);
+    va_TraceMsg(trace_ctx, "\tlog2_max_mv_length_vertical = %d\n", p->vui_fields.bits.log2_max_mv_length_vertical);
+    va_TraceMsg(trace_ctx, "\taspect_ratio_idc = %d\n", p->aspect_ratio_idc);
+    va_TraceMsg(trace_ctx, "\tsar_width = %d\n", p->sar_width);
+    va_TraceMsg(trace_ctx, "\tsar_height = %d\n", p->sar_height);
+    va_TraceMsg(trace_ctx, "\tnum_units_in_tick = %d\n", p->num_units_in_tick);
+    va_TraceMsg(trace_ctx, "\ttime_scale = %d\n", p->time_scale);
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVAEncPictureParameterBufferH264(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncPictureParameterBufferH264 *p = (VAEncPictureParameterBufferH264 *)data;
+    DPY2TRACECTX(dpy);
+    int i;
+
+    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferH264\n");
+
+    va_TraceMsg(trace_ctx, "\tCurrPic.picture_id = 0x%08x\n", p->CurrPic.picture_id);
+    va_TraceMsg(trace_ctx, "\tCurrPic.frame_idx = %d\n", p->CurrPic.frame_idx);
+    va_TraceMsg(trace_ctx, "\tCurrPic.flags = %d\n", p->CurrPic.flags);
+    va_TraceMsg(trace_ctx, "\tCurrPic.TopFieldOrderCnt = %d\n", p->CurrPic.TopFieldOrderCnt);
+    va_TraceMsg(trace_ctx, "\tCurrPic.BottomFieldOrderCnt = %d\n", p->CurrPic.BottomFieldOrderCnt);
+    va_TraceMsg(trace_ctx, "\tReferenceFrames (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
+    for (i = 0; i < 16; i++)
+    {
+        if ((p->ReferenceFrames[i].picture_id != VA_INVALID_SURFACE) &&
+            ((p->ReferenceFrames[i].flags & VA_PICTURE_H264_INVALID) == 0)) {
+            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08x\n",
+                        p->ReferenceFrames[i].TopFieldOrderCnt,
+                        p->ReferenceFrames[i].BottomFieldOrderCnt,
+                        p->ReferenceFrames[i].picture_id,
+                        p->ReferenceFrames[i].frame_idx,
+                        p->ReferenceFrames[i].flags
+                        );
+        } else
+            break;
+    }
+    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
+    va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
+    va_TraceMsg(trace_ctx, "\tseq_parameter_set_id = %d\n", p->seq_parameter_set_id);
+    va_TraceMsg(trace_ctx, "\tlast_picture = 0x%08x\n", p->last_picture);
+    va_TraceMsg(trace_ctx, "\tframe_num = %d\n", p->frame_num);
+    va_TraceMsg(trace_ctx, "\tpic_init_qp = %d\n", p->pic_init_qp);
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l0_active_minus1 = %d\n", p->num_ref_idx_l0_active_minus1);
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
+    va_TraceMsg(trace_ctx, "\tchroma_qp_index_offset = %d\n", p->chroma_qp_index_offset);
+    va_TraceMsg(trace_ctx, "\tsecond_chroma_qp_index_offset = %d\n", p->second_chroma_qp_index_offset);
+    va_TraceMsg(trace_ctx, "\tpic_fields = 0x%03x\n", p->pic_fields.value);
+    va_TraceMsg(trace_ctx, "\tidr_pic_flag = %d\n", p->pic_fields.bits.idr_pic_flag);
+    va_TraceMsg(trace_ctx, "\treference_pic_flag = %d\n", p->pic_fields.bits.reference_pic_flag);
+    va_TraceMsg(trace_ctx, "\tentropy_coding_mode_flag = %d\n", p->pic_fields.bits.entropy_coding_mode_flag);
+    va_TraceMsg(trace_ctx, "\tweighted_pred_flag = %d\n", p->pic_fields.bits.weighted_pred_flag);
+    va_TraceMsg(trace_ctx, "\tweighted_bipred_idc = %d\n", p->pic_fields.bits.weighted_bipred_idc);
+    va_TraceMsg(trace_ctx, "\tconstrained_intra_pred_flag = %d\n", p->pic_fields.bits.constrained_intra_pred_flag);
+    va_TraceMsg(trace_ctx, "\ttransform_8x8_mode_flag = %d\n", p->pic_fields.bits.transform_8x8_mode_flag);
+    va_TraceMsg(trace_ctx, "\tdeblocking_filter_control_present_flag = %d\n", p->pic_fields.bits.deblocking_filter_control_present_flag);
+    va_TraceMsg(trace_ctx, "\tredundant_pic_cnt_present_flag = %d\n", p->pic_fields.bits.redundant_pic_cnt_present_flag);
+    va_TraceMsg(trace_ctx, "\tpic_order_present_flag = %d\n", p->pic_fields.bits.pic_order_present_flag);
+    va_TraceMsg(trace_ctx, "\tpic_scaling_matrix_present_flag = %d\n", p->pic_fields.bits.pic_scaling_matrix_present_flag);
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAEncSliceParameterBuffer(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncSliceParameterBuffer* p = (VAEncSliceParameterBuffer*)data;
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBuffer\n");
+    
+    va_TraceMsg(trace_ctx, "\tstart_row_number = %d\n", p->start_row_number);
+    va_TraceMsg(trace_ctx, "\tslice_height = %d\n", p->slice_height);
+    va_TraceMsg(trace_ctx, "\tslice_flags.is_intra = %d\n", p->slice_flags.bits.is_intra);
+    va_TraceMsg(trace_ctx, "\tslice_flags.disable_deblocking_filter_idc = %d\n", p->slice_flags.bits.disable_deblocking_filter_idc);
+    va_TraceMsg(trace_ctx, "\tslice_flags.uses_long_term_ref = %d\n", p->slice_flags.bits.uses_long_term_ref);
+    va_TraceMsg(trace_ctx, "\tslice_flags.is_long_term_ref = %d\n", p->slice_flags.bits.is_long_term_ref);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAEncSliceParameterBufferH264(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncSliceParameterBufferH264* p = (VAEncSliceParameterBufferH264*)data;
+    DPY2TRACECTX(dpy);
+    int i;
+
+    if (!p)
+        return;
+    
+    va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBufferH264\n");
+    va_TraceMsg(trace_ctx, "\tmacroblock_address = %d\n", p->macroblock_address);
+    va_TraceMsg(trace_ctx, "\tnum_macroblocks = %d\n", p->num_macroblocks);
+    va_TraceMsg(trace_ctx, "\tmacroblock_info = %08x\n", p->macroblock_info);
+    va_TraceMsg(trace_ctx, "\tslice_type = %d\n", p->slice_type);
+    va_TraceMsg(trace_ctx, "\tpic_parameter_set_id = %d\n", p->pic_parameter_set_id);
+    va_TraceMsg(trace_ctx, "\tidr_pic_id = %d\n", p->idr_pic_id);
+    va_TraceMsg(trace_ctx, "\tpic_order_cnt_lsb = %d\n", p->pic_order_cnt_lsb);
+    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt_bottom = %d\n", p->delta_pic_order_cnt_bottom);
+    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt[0] = %d\n", p->delta_pic_order_cnt[0]);
+    va_TraceMsg(trace_ctx, "\tdelta_pic_order_cnt[1] = %d\n", p->delta_pic_order_cnt[1]);
+    va_TraceMsg(trace_ctx, "\tdirect_spatial_mv_pred_flag = %d\n", p->direct_spatial_mv_pred_flag);
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_active_override_flag = %d\n", p->num_ref_idx_active_override_flag);
+    va_TraceMsg(trace_ctx, "\tnum_ref_idx_l1_active_minus1 = %d\n", p->num_ref_idx_l1_active_minus1);
+    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
+
+    va_TraceMsg(trace_ctx, "\tRefPicList0 (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
+
+    
+    
+    for (i = 0; i < 32; i++) {
+        if ((p->RefPicList0[i].picture_id != VA_INVALID_SURFACE) &&
+            ((p->RefPicList0[i].flags & VA_PICTURE_H264_INVALID) == 0))
+            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08x\n",
+                        p->RefPicList0[i].TopFieldOrderCnt,
+                        p->RefPicList0[i].BottomFieldOrderCnt,
+                        p->RefPicList0[i].picture_id,
+                        p->RefPicList0[i].frame_idx,
+                        p->RefPicList0[i].flags);
+        else
+            break;
+    }
+    
+    va_TraceMsg(trace_ctx, "\tRefPicList1 (TopFieldOrderCnt-BottomFieldOrderCnt-picture_id-frame_idx-flags):\n");
+    for (i = 0; i < 32; i++) {
+        if ((p->RefPicList1[i].picture_id != VA_INVALID_SURFACE) &&
+            ((p->RefPicList1[i].flags & VA_PICTURE_H264_INVALID) == 0))
+            va_TraceMsg(trace_ctx, "\t\t%08d-%08d-0x%08x-%08d-0x%08d\n",
+                        p->RefPicList1[i].TopFieldOrderCnt,
+                        p->RefPicList1[i].BottomFieldOrderCnt,
+                        p->RefPicList1[i].picture_id,
+                        p->RefPicList1[i].frame_idx,
+                        p->RefPicList1[i].flags
+                        );
+        else
+            break;
+    }
+    
+    va_TraceMsg(trace_ctx, "\tluma_log2_weight_denom = %d\n", p->luma_log2_weight_denom);
+    va_TraceMsg(trace_ctx, "\tchroma_log2_weight_denom = %d\n", p->chroma_log2_weight_denom);
+    va_TraceMsg(trace_ctx, "\tluma_weight_l0_flag = %d\n", p->luma_weight_l0_flag);
+    if (p->luma_weight_l0_flag) {
+        for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
+            va_TraceMsg(trace_ctx, "\t\t%d\t%d\n",
+                        p->luma_weight_l0[i],
+                        p->luma_offset_l0[i]);
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\tchroma_weight_l0_flag = %d\n", p->chroma_weight_l0_flag);
+    if (p->chroma_weight_l0_flag) {
+        for (i = 0; (i <= p->num_ref_idx_l0_active_minus1) && (i<32); i++) {
+            va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
+                        p->chroma_weight_l0[i][0],
+                        p->chroma_offset_l0[i][0],
+                        p->chroma_weight_l0[i][1],
+                        p->chroma_offset_l0[i][1]);
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\tluma_weight_l1_flag = %d\n", p->luma_weight_l1_flag);
+    if (p->luma_weight_l1_flag) {
+        for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
+            va_TraceMsg(trace_ctx, "\t\t%d\t\t%d\n",
+                        p->luma_weight_l1[i],
+                        p->luma_offset_l1[i]);
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\tchroma_weight_l1_flag = %d\n", p->chroma_weight_l1_flag);
+    if (p->chroma_weight_l1_flag && p->num_ref_idx_l1_active_minus1 < 32) {
+        for (i = 0; (i <= p->num_ref_idx_l1_active_minus1) && (i<32); i++) {
+            va_TraceMsg(trace_ctx, "\t\t%d\t%d\t%d\t%d\n",
+                        p->chroma_weight_l1[i][0],
+                        p->chroma_offset_l1[i][0],
+                        p->chroma_weight_l1[i][1],
+                        p->chroma_offset_l1[i][1]);
+        }
+    }
+    va_TraceMsg(trace_ctx, NULL);
+
+    va_TraceMsg(trace_ctx, "\tcabac_init_idc = %d\n", p->cabac_init_idc);
+    va_TraceMsg(trace_ctx, "\tslice_qp_delta = %d\n", p->slice_qp_delta);
+    va_TraceMsg(trace_ctx, "\tdisable_deblocking_filter_idc = %d\n", p->disable_deblocking_filter_idc);
+    va_TraceMsg(trace_ctx, "\tslice_alpha_c0_offset_div2 = %d\n", p->slice_alpha_c0_offset_div2);
+    va_TraceMsg(trace_ctx, "\tslice_beta_offset_div2 = %d\n", p->slice_beta_offset_div2);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVAEncPackedHeaderParameterBufferType(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncPackedHeaderParameterBuffer* p = (VAEncPackedHeaderParameterBuffer*)data;
+    DPY2TRACECTX(dpy);
+    int i;
+
+    if (!p)
+        return;
+    va_TraceMsg(trace_ctx, "\t--VAEncPackedHeaderParameterBuffer\n");
+    va_TraceMsg(trace_ctx, "\ttype = 0x%08x\n", p->type);
+    va_TraceMsg(trace_ctx, "\tbit_length = %d\n", p->bit_length);
+    va_TraceMsg(trace_ctx, "\thas_emulation_bytes = %d\n", p->has_emulation_bytes);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAEncMiscParameterBuffer(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncMiscParameterBuffer* tmp = (VAEncMiscParameterBuffer*)data;
+    DPY2TRACECTX(dpy);
+    
+    switch (tmp->type) {
+    case VAEncMiscParameterTypeFrameRate:
+    {
+        VAEncMiscParameterFrameRate *p = (VAEncMiscParameterFrameRate *)tmp->data;
+        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterFrameRate\n");
+        va_TraceMsg(trace_ctx, "\tframerate = %d\n", p->framerate);
+        
+        break;
+    }
+    case VAEncMiscParameterTypeRateControl:
+    {
+        VAEncMiscParameterRateControl *p = (VAEncMiscParameterRateControl *)tmp->data;
+
+        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterRateControl\n");
+        va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
+        va_TraceMsg(trace_ctx, "\ttarget_percentage = %d\n", p->target_percentage);
+        va_TraceMsg(trace_ctx, "\twindow_size = %d\n", p->window_size);
+        va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
+        va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
+        va_TraceMsg(trace_ctx, "\tbasic_unit_size = %d\n", p->basic_unit_size);
+        va_TraceMsg(trace_ctx, "\trc_flags.reset = %d \n", p->rc_flags.bits.reset);
+        va_TraceMsg(trace_ctx, "\trc_flags.disable_frame_skip = %d\n", p->rc_flags.bits.disable_frame_skip);
+        va_TraceMsg(trace_ctx, "\trc_flags.disable_bit_stuffing = %d\n", p->rc_flags.bits.disable_bit_stuffing);
+        break;
+    }
+    case VAEncMiscParameterTypeMaxSliceSize:
+    {
+        VAEncMiscParameterMaxSliceSize *p = (VAEncMiscParameterMaxSliceSize *)tmp->data;
+        
+        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMaxSliceSize\n");
+        va_TraceMsg(trace_ctx, "\tmax_slice_size = %d\n", p->max_slice_size);
+        break;
+    }
+    case VAEncMiscParameterTypeAIR:
+    {
+        VAEncMiscParameterAIR *p = (VAEncMiscParameterAIR *)tmp->data;
+        
+        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterAIR\n");
+        va_TraceMsg(trace_ctx, "\tair_num_mbs = %d\n", p->air_num_mbs);
+        va_TraceMsg(trace_ctx, "\tair_threshold = %d\n", p->air_threshold);
+        va_TraceMsg(trace_ctx, "\tair_auto = %d\n", p->air_auto);
+        break;
+    }
+    case VAEncMiscParameterTypeHRD:
+    {
+        VAEncMiscParameterHRD *p = (VAEncMiscParameterHRD *)tmp->data;
+
+        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterHRD\n");
+        va_TraceMsg(trace_ctx, "\tinitial_buffer_fullness = %d\n", p->initial_buffer_fullness);
+        va_TraceMsg(trace_ctx, "\tbuffer_size = %d\n", p->buffer_size);
+        break;
+    }
+    case VAEncMiscParameterTypeMaxFrameSize:
+    {
+        VAEncMiscParameterBufferMaxFrameSize *p = (VAEncMiscParameterBufferMaxFrameSize *)tmp->data;
+
+        va_TraceMsg(trace_ctx, "\t--VAEncMiscParameterTypeMaxFrameSize\n");
+        va_TraceMsg(trace_ctx, "\tmax_frame_size = %d\n", p->max_frame_size);
+        break;
+    }
+    default:
+        va_TraceMsg(trace_ctx, "Unknown VAEncMiscParameterBuffer(type = %d):\n", tmp->type);
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, data);
+        break;
+    }
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVAPictureParameterBufferVC1(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data
+)
+{
+    VAPictureParameterBufferVC1* p = (VAPictureParameterBufferVC1*)data;
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVC1\n");
+    
+    va_TraceMsg(trace_ctx, "\tforward_reference_picture = 0x%08x\n", p->forward_reference_picture);
+    va_TraceMsg(trace_ctx, "\tbackward_reference_picture = 0x%08x\n", p->backward_reference_picture);
+    va_TraceMsg(trace_ctx, "\tinloop_decoded_picture = 0x%08x\n", p->inloop_decoded_picture);
+    
+    va_TraceMsg(trace_ctx, "\tpulldown = %d\n", p->sequence_fields.bits.pulldown);
+    va_TraceMsg(trace_ctx, "\tinterlace = %d\n", p->sequence_fields.bits.interlace);
+    va_TraceMsg(trace_ctx, "\ttfcntrflag = %d\n", p->sequence_fields.bits.tfcntrflag);
+    va_TraceMsg(trace_ctx, "\tfinterpflag = %d\n", p->sequence_fields.bits.finterpflag);
+    va_TraceMsg(trace_ctx, "\tpsf = %d\n", p->sequence_fields.bits.psf);
+    va_TraceMsg(trace_ctx, "\tmultires = %d\n", p->sequence_fields.bits.multires);
+    va_TraceMsg(trace_ctx, "\toverlap = %d\n", p->sequence_fields.bits.overlap);
+    va_TraceMsg(trace_ctx, "\tsyncmarker = %d\n", p->sequence_fields.bits.syncmarker);
+    va_TraceMsg(trace_ctx, "\trangered = %d\n", p->sequence_fields.bits.rangered);
+    va_TraceMsg(trace_ctx, "\tmax_b_frames = %d\n", p->sequence_fields.bits.max_b_frames);
+    va_TraceMsg(trace_ctx, "\tprofile = %d\n", p->sequence_fields.bits.profile);
+    va_TraceMsg(trace_ctx, "\tcoded_width = %d\n", p->coded_width);
+    va_TraceMsg(trace_ctx, "\tcoded_height = %d\n", p->coded_height);
+    va_TraceMsg(trace_ctx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry);
+    va_TraceMsg(trace_ctx, "\tbroken_link = %d\n", p->entrypoint_fields.bits.broken_link);
+    va_TraceMsg(trace_ctx, "\tclosed_entry = %d\n", p->entrypoint_fields.bits.closed_entry);
+    va_TraceMsg(trace_ctx, "\tpanscan_flag = %d\n", p->entrypoint_fields.bits.panscan_flag);
+    va_TraceMsg(trace_ctx, "\tloopfilter = %d\n", p->entrypoint_fields.bits.loopfilter);
+    va_TraceMsg(trace_ctx, "\tconditional_overlap_flag = %d\n", p->conditional_overlap_flag);
+    va_TraceMsg(trace_ctx, "\tfast_uvmc_flag = %d\n", p->fast_uvmc_flag);
+    va_TraceMsg(trace_ctx, "\trange_mapping_luma_flag = %d\n", p->range_mapping_fields.bits.luma_flag);
+    va_TraceMsg(trace_ctx, "\trange_mapping_luma = %d\n", p->range_mapping_fields.bits.luma);
+    va_TraceMsg(trace_ctx, "\trange_mapping_chroma_flag = %d\n", p->range_mapping_fields.bits.chroma_flag);
+    va_TraceMsg(trace_ctx, "\trange_mapping_chroma = %d\n", p->range_mapping_fields.bits.chroma);
+    va_TraceMsg(trace_ctx, "\tb_picture_fraction = %d\n", p->b_picture_fraction);
+    va_TraceMsg(trace_ctx, "\tcbp_table = %d\n", p->cbp_table);
+    va_TraceMsg(trace_ctx, "\tmb_mode_table = %d\n", p->mb_mode_table);
+    va_TraceMsg(trace_ctx, "\trange_reduction_frame = %d\n", p->range_reduction_frame);
+    va_TraceMsg(trace_ctx, "\trounding_control = %d\n", p->rounding_control);
+    va_TraceMsg(trace_ctx, "\tpost_processing = %d\n", p->post_processing);
+    va_TraceMsg(trace_ctx, "\tpicture_resolution_index = %d\n", p->picture_resolution_index);
+    va_TraceMsg(trace_ctx, "\tluma_scale = %d\n", p->luma_scale);
+    va_TraceMsg(trace_ctx, "\tluma_shift = %d\n", p->luma_shift);
+    va_TraceMsg(trace_ctx, "\tpicture_type = %d\n", p->picture_fields.bits.picture_type);
+    va_TraceMsg(trace_ctx, "\tframe_coding_mode = %d\n", p->picture_fields.bits.frame_coding_mode);
+    va_TraceMsg(trace_ctx, "\ttop_field_first = %d\n", p->picture_fields.bits.top_field_first);
+    va_TraceMsg(trace_ctx, "\tis_first_field = %d\n", p->picture_fields.bits.is_first_field);
+    va_TraceMsg(trace_ctx, "\tintensity_compensation = %d\n", p->picture_fields.bits.intensity_compensation);
+    va_TraceMsg(trace_ctx, "\tmv_type_mb = %d\n", p->raw_coding.flags.mv_type_mb);
+    va_TraceMsg(trace_ctx, "\tdirect_mb = %d\n", p->raw_coding.flags.direct_mb);
+    va_TraceMsg(trace_ctx, "\tskip_mb = %d\n", p->raw_coding.flags.skip_mb);
+    va_TraceMsg(trace_ctx, "\tfield_tx = %d\n", p->raw_coding.flags.field_tx);
+    va_TraceMsg(trace_ctx, "\tforward_mb = %d\n", p->raw_coding.flags.forward_mb);
+    va_TraceMsg(trace_ctx, "\tac_pred = %d\n", p->raw_coding.flags.ac_pred);
+    va_TraceMsg(trace_ctx, "\toverflags = %d\n", p->raw_coding.flags.overflags);
+    va_TraceMsg(trace_ctx, "\tbp_mv_type_mb = %d\n", p->bitplane_present.flags.bp_mv_type_mb);
+    va_TraceMsg(trace_ctx, "\tbp_direct_mb = %d\n", p->bitplane_present.flags.bp_direct_mb);
+    va_TraceMsg(trace_ctx, "\tbp_skip_mb = %d\n", p->bitplane_present.flags.bp_skip_mb);
+    va_TraceMsg(trace_ctx, "\tbp_field_tx = %d\n", p->bitplane_present.flags.bp_field_tx);
+    va_TraceMsg(trace_ctx, "\tbp_forward_mb = %d\n", p->bitplane_present.flags.bp_forward_mb);
+    va_TraceMsg(trace_ctx, "\tbp_ac_pred = %d\n", p->bitplane_present.flags.bp_ac_pred);
+    va_TraceMsg(trace_ctx, "\tbp_overflags = %d\n", p->bitplane_present.flags.bp_overflags);
+    va_TraceMsg(trace_ctx, "\treference_distance_flag = %d\n", p->reference_fields.bits.reference_distance_flag);
+    va_TraceMsg(trace_ctx, "\treference_distance = %d\n", p->reference_fields.bits.reference_distance);
+    va_TraceMsg(trace_ctx, "\tnum_reference_pictures = %d\n", p->reference_fields.bits.num_reference_pictures);
+    va_TraceMsg(trace_ctx, "\treference_field_pic_indicator = %d\n", p->reference_fields.bits.reference_field_pic_indicator);
+    va_TraceMsg(trace_ctx, "\tmv_mode = %d\n", p->mv_fields.bits.mv_mode);
+    va_TraceMsg(trace_ctx, "\tmv_mode2 = %d\n", p->mv_fields.bits.mv_mode2);
+    va_TraceMsg(trace_ctx, "\tmv_table = %d\n", p->mv_fields.bits.mv_table);
+    va_TraceMsg(trace_ctx, "\ttwo_mv_block_pattern_table = %d\n", p->mv_fields.bits.two_mv_block_pattern_table);
+    va_TraceMsg(trace_ctx, "\tfour_mv_switch = %d\n", p->mv_fields.bits.four_mv_switch);
+    va_TraceMsg(trace_ctx, "\tfour_mv_block_pattern_table = %d\n", p->mv_fields.bits.four_mv_block_pattern_table);
+    va_TraceMsg(trace_ctx, "\textended_mv_flag = %d\n", p->mv_fields.bits.extended_mv_flag);
+    va_TraceMsg(trace_ctx, "\textended_mv_range = %d\n", p->mv_fields.bits.extended_mv_range);
+    va_TraceMsg(trace_ctx, "\textended_dmv_flag = %d\n", p->mv_fields.bits.extended_dmv_flag);
+    va_TraceMsg(trace_ctx, "\textended_dmv_range = %d\n", p->mv_fields.bits.extended_dmv_range);
+    va_TraceMsg(trace_ctx, "\tdquant = %d\n", p->pic_quantizer_fields.bits.dquant);
+    va_TraceMsg(trace_ctx, "\tquantizer = %d\n", p->pic_quantizer_fields.bits.quantizer);
+    va_TraceMsg(trace_ctx, "\thalf_qp = %d\n", p->pic_quantizer_fields.bits.half_qp);
+    va_TraceMsg(trace_ctx, "\tpic_quantizer_scale = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_scale);
+    va_TraceMsg(trace_ctx, "\tpic_quantizer_type = %d\n", p->pic_quantizer_fields.bits.pic_quantizer_type);
+    va_TraceMsg(trace_ctx, "\tdq_frame = %d\n", p->pic_quantizer_fields.bits.dq_frame);
+    va_TraceMsg(trace_ctx, "\tdq_profile = %d\n", p->pic_quantizer_fields.bits.dq_profile);
+    va_TraceMsg(trace_ctx, "\tdq_sb_edge = %d\n", p->pic_quantizer_fields.bits.dq_sb_edge);
+    va_TraceMsg(trace_ctx, "\tdq_db_edge = %d\n", p->pic_quantizer_fields.bits.dq_db_edge);
+    va_TraceMsg(trace_ctx, "\tdq_binary_level = %d\n", p->pic_quantizer_fields.bits.dq_binary_level);
+    va_TraceMsg(trace_ctx, "\talt_pic_quantizer = %d\n", p->pic_quantizer_fields.bits.alt_pic_quantizer);
+    va_TraceMsg(trace_ctx, "\tvariable_sized_transform_flag = %d\n", p->transform_fields.bits.variable_sized_transform_flag);
+    va_TraceMsg(trace_ctx, "\tmb_level_transform_type_flag = %d\n", p->transform_fields.bits.mb_level_transform_type_flag);
+    va_TraceMsg(trace_ctx, "\tframe_level_transform_type = %d\n", p->transform_fields.bits.frame_level_transform_type);
+    va_TraceMsg(trace_ctx, "\ttransform_ac_codingset_idx1 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx1);
+    va_TraceMsg(trace_ctx, "\ttransform_ac_codingset_idx2 = %d\n", p->transform_fields.bits.transform_ac_codingset_idx2);
+    va_TraceMsg(trace_ctx, "\tintra_transform_dc_table = %d\n", p->transform_fields.bits.intra_transform_dc_table);
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+static void va_TraceVASliceParameterBufferVC1(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void* data
+)
+{
+    VASliceParameterBufferVC1 *p = (VASliceParameterBufferVC1*)data;
+    DPY2TRACECTX(dpy);
+
+    trace_ctx->trace_slice_no++;
+    trace_ctx->trace_slice_size = p->slice_data_size;
+
+    va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVC1\n");
+    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
+    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
+    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
+    va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
+    va_TraceMsg(trace_ctx, "\tslice_vertical_position = %d\n", p->slice_vertical_position);
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+static void va_TraceVAPictureParameterBufferVP8(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    char tmp[1024];
+    VAPictureParameterBufferVP8 *p = (VAPictureParameterBufferVP8 *)data;
+    DPY2TRACECTX(dpy);
+    int i,j;
+
+    va_TraceMsg(trace_ctx, "\t--VAPictureParameterBufferVP8\n");
+
+    va_TraceMsg(trace_ctx, "\tframe_width = %d\n", p->frame_width);
+    va_TraceMsg(trace_ctx, "\tframe_height = %d\n", p->frame_height);
+    va_TraceMsg(trace_ctx, "\tlast_ref_frame = %x\n", p->last_ref_frame);
+    va_TraceMsg(trace_ctx, "\tgolden_ref_frame = %x\n", p->golden_ref_frame);
+    va_TraceMsg(trace_ctx, "\talt_ref_frame = %x\n", p->alt_ref_frame);
+    va_TraceMsg(trace_ctx, "\tout_of_loop_frame = %x\n", p->out_of_loop_frame);
+
+    va_TraceMsg(trace_ctx, "\tkey_frame = %d\n", p->pic_fields.bits.key_frame);
+    va_TraceMsg(trace_ctx, "\tversion = %d\n", p->pic_fields.bits.version);
+    va_TraceMsg(trace_ctx, "\tsegmentation_enabled = %d\n", p->pic_fields.bits.segmentation_enabled);
+    va_TraceMsg(trace_ctx, "\tupdate_mb_segmentation_map = %d\n", p->pic_fields.bits.update_mb_segmentation_map);
+    va_TraceMsg(trace_ctx, "\tupdate_segment_feature_data = %d\n", p->pic_fields.bits.update_segment_feature_data);
+    va_TraceMsg(trace_ctx, "\tfilter_type = %d\n", p->pic_fields.bits.filter_type);
+    va_TraceMsg(trace_ctx, "\tsharpness_level = %d\n", p->pic_fields.bits.sharpness_level);
+    va_TraceMsg(trace_ctx, "\tloop_filter_adj_enable = %d\n", p->pic_fields.bits.loop_filter_adj_enable);
+    va_TraceMsg(trace_ctx, "\tmode_ref_lf_delta_update = %d\n", p->pic_fields.bits.mode_ref_lf_delta_update);
+    va_TraceMsg(trace_ctx, "\tsign_bias_golden = %d\n", p->pic_fields.bits.sign_bias_golden);
+    va_TraceMsg(trace_ctx, "\tsign_bias_alternate = %d\n", p->pic_fields.bits.sign_bias_alternate);
+    va_TraceMsg(trace_ctx, "\tmb_no_coeff_skip = %d\n", p->pic_fields.bits.mb_no_coeff_skip);
+    va_TraceMsg(trace_ctx, "\tloop_filter_disable = %d\n", p->pic_fields.bits.loop_filter_disable);
+
+    va_TraceMsg(trace_ctx, "\tmb_segment_tree_probs: 0x%2x, 0x%2x, 0x%2x\n",
+        p->mb_segment_tree_probs[0], p->mb_segment_tree_probs[1], p->mb_segment_tree_probs[2]);
+
+    va_TraceMsg(trace_ctx, "\tloop_filter_level: %d, %d, %d, %d\n",
+        p->loop_filter_level[0], p->loop_filter_level[1], p->loop_filter_level[2], p->loop_filter_level[3]);
+
+    va_TraceMsg(trace_ctx, "\tloop_filter_deltas_ref_frame: %d, %d, %d, %d\n",
+        p->loop_filter_deltas_ref_frame[0], p->loop_filter_deltas_ref_frame[1], p->loop_filter_deltas_ref_frame[2], p->loop_filter_deltas_ref_frame[3]);
+
+    va_TraceMsg(trace_ctx, "\tloop_filter_deltas_mode: %d, %d, %d, %d\n",
+        p->loop_filter_deltas_mode[0], p->loop_filter_deltas_mode[1], p->loop_filter_deltas_mode[2], p->loop_filter_deltas_mode[3]);
+
+    va_TraceMsg(trace_ctx, "\tprob_skip_false = %2x\n", p->prob_skip_false);
+    va_TraceMsg(trace_ctx, "\tprob_intra = %2x\n", p->prob_intra);
+    va_TraceMsg(trace_ctx, "\tprob_last = %2x\n", p->prob_last);
+    va_TraceMsg(trace_ctx, "\tprob_gf = %2x\n", p->prob_gf);
+
+    va_TraceMsg(trace_ctx, "\ty_mode_probs: 0x%2x, 0x%2x, 0x%2x, 0x%2x\n",
+        p->y_mode_probs[0], p->y_mode_probs[1], p->y_mode_probs[2], p->y_mode_probs[3]);
+
+    va_TraceMsg(trace_ctx, "\tuv_mode_probs: 0x%2x, 0x%2x, 0x%2x\n",
+        p->uv_mode_probs[0], p->uv_mode_probs[1], p->uv_mode_probs[2]);
+
+    va_TraceMsg(trace_ctx, "\tmv_probs[2][19]:\n");
+    for(i = 0; i<2; ++i) {
+        memset(tmp, 0, sizeof tmp);
+        for (j=0; j<19; j++)
+            sprintf(tmp + strlen(tmp), "%2x ", p->mv_probs[i][j]);
+        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
+    }
+
+    va_TraceMsg(trace_ctx, "\tbool_coder_ctx: range = %02x, value = %02x, count = %d\n",
+        p->bool_coder_ctx.range, p->bool_coder_ctx.value, p->bool_coder_ctx.count);
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVASliceParameterBufferVP8(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VASliceParameterBufferVP8 *p = (VASliceParameterBufferVP8 *)data;
+    DPY2TRACECTX(dpy);
+    int i;
+
+    va_TraceMsg(trace_ctx, "\t--VASliceParameterBufferVP8\n");
+
+    va_TraceMsg(trace_ctx, "\tslice_data_size = %d\n", p->slice_data_size);
+    va_TraceMsg(trace_ctx, "\tslice_data_offset = %d\n", p->slice_data_offset);
+    va_TraceMsg(trace_ctx, "\tslice_data_flag = %d\n", p->slice_data_flag);
+    va_TraceMsg(trace_ctx, "\tmacroblock_offset = %d\n", p->macroblock_offset);
+    va_TraceMsg(trace_ctx, "\tnum_of_partitions = %d\n", p->num_of_partitions);
+
+    for(i = 0; i<9; ++i)
+        va_TraceMsg(trace_ctx, "\tpartition_size[%d] = %d\n", i, p->partition_size[i]);
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAIQMatrixBufferVP8(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    char tmp[1024];
+    VAIQMatrixBufferVP8 *p = (VAIQMatrixBufferVP8 *)data;
+    DPY2TRACECTX(dpy);
+    int i,j;
+
+    va_TraceMsg(trace_ctx, "\t--VAIQMatrixBufferVP8\n");
+
+    va_TraceMsg(trace_ctx, "\tquantization_index[4][6]=\n");
+    for (i = 0; i < 4; i++) {
+        memset(tmp, 0, sizeof tmp);
+        for (j = 0; j < 6; j++)
+            sprintf(tmp + strlen(tmp), "%4x, ", p->quantization_index[i][j]);
+        va_TraceMsg(trace_ctx,"\t\t[%d] = %s\n", i, tmp);
+    }
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+static void va_TraceVAProbabilityBufferVP8(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    char tmp[1024];
+    VAProbabilityDataBufferVP8 *p = (VAProbabilityDataBufferVP8 *)data;
+    DPY2TRACECTX(dpy);
+    int i,j,k,l;
+
+    va_TraceMsg(trace_ctx, "\t--VAProbabilityDataBufferVP8\n");
+
+    for (i = 0; i < 4; i++)
+        for (j = 0; j < 8; j++) {
+            memset(tmp, 0, sizeof tmp);
+            for (k=0; k<3; k++)
+                for (l=0; l<11; l++)
+                    sprintf(tmp + strlen(tmp), "%2x, ", p->dct_coeff_probs[i][j][k][l]);
+            va_TraceMsg(trace_ctx,"\t\t[%d, %d] = %s\n", i, j, tmp);
+        }
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+void va_TraceBeginPicture(
+    VADisplay dpy,
+    VAContextID context,
+    VASurfaceID render_target
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+
+    va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context);
+    va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", render_target);
+    va_TraceMsg(trace_ctx, "\tframe_count  = #%d\n", trace_ctx->trace_frame_no);
+    va_TraceMsg(trace_ctx, NULL);
+
+    trace_ctx->trace_rendertarget = render_target; /* for surface data dump after vaEndPicture */
+
+    trace_ctx->trace_frame_no++;
+    trace_ctx->trace_slice_no = 0;
+}
+
+static void va_TraceMPEG2Buf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    switch (type) {
+    case VAPictureParameterBufferType:
+        va_TraceVAPictureParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAIQMatrixBufferType:
+        va_TraceVAIQMatrixBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VABitPlaneBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceGroupMapBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceParameterBufferType:
+        va_TraceVASliceParameterBufferMPEG2(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAMacroblockParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAResidualDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VADeblockingParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAImageBufferType:
+        break;
+    case VAProtectedSliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncCodedBufferType:
+        break;
+    case VAEncSequenceParameterBufferType:
+        break;
+    case VAEncPictureParameterBufferType:
+        break;
+    case VAEncSliceParameterBufferType:
+        break;
+    default:
+        break;
+    }
+}
+
+static void va_TraceVAEncSequenceParameterBufferH263(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncSequenceParameterBufferH263 *p = (VAEncSequenceParameterBufferH263 *)data;
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAEncSequenceParameterBufferH263\n");
+    
+    va_TraceMsg(trace_ctx, "\tintra_period = %d\n", p->intra_period);
+    va_TraceMsg(trace_ctx, "\tbits_per_second = %d\n", p->bits_per_second);
+    va_TraceMsg(trace_ctx, "\tframe_rate = %d\n", p->frame_rate);
+    va_TraceMsg(trace_ctx, "\tinitial_qp = %d\n", p->initial_qp);
+    va_TraceMsg(trace_ctx, "\tmin_qp = %d\n", p->min_qp);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+
+static void va_TraceVAEncPictureParameterBufferH263(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncPictureParameterBufferH263 *p = (VAEncPictureParameterBufferH263 *)data;
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferH263\n");
+    va_TraceMsg(trace_ctx, "\treference_picture = 0x%08x\n", p->reference_picture);
+    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
+    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
+    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
+    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
+    va_TraceMsg(trace_ctx, "\tpicture_type = 0x%08x\n", p->picture_type);
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAEncPictureParameterBufferJPEG(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncPictureParameterBufferJPEG *p = (VAEncPictureParameterBufferJPEG *)data;
+    int i;
+    
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAEncPictureParameterBufferJPEG\n");
+    va_TraceMsg(trace_ctx, "\treconstructed_picture = 0x%08x\n", p->reconstructed_picture);
+    va_TraceMsg(trace_ctx, "\tcoded_buf = %08x\n", p->coded_buf);
+    va_TraceMsg(trace_ctx, "\tpicture_width = %d\n", p->picture_width);
+    va_TraceMsg(trace_ctx, "\tpicture_height = %d\n", p->picture_height);
+    va_TraceMsg(trace_ctx, "\tpic_flags.bits.profile = %d\n", p->pic_flags.bits.profile);
+    va_TraceMsg(trace_ctx, "\tpic_flags.bits.progressive = %d\n", p->pic_flags.bits.profile);
+    va_TraceMsg(trace_ctx, "\tpic_flags.bits.huffman = %d\n", p->pic_flags.bits.huffman);
+    va_TraceMsg(trace_ctx, "\tpic_flags.bits.interleaved = %d\n", p->pic_flags.bits.interleaved);
+    va_TraceMsg(trace_ctx, "\tpic_flags.bits.differential = %d\n", p->pic_flags.bits.differential);
+    va_TraceMsg(trace_ctx, "\tsample_bit_depth = %d\n", p->sample_bit_depth);
+    va_TraceMsg(trace_ctx, "\tnum_scan = %d\n", p->num_scan);
+    va_TraceMsg(trace_ctx, "\tnum_components = %d\n", p->num_components);
+    for (i=0; i<p->num_components; i++)
+        va_TraceMsg(trace_ctx, "\tcomponent_id[%d] = %d\n", i, p->component_id[i]);
+
+    if (p->quality > 0)
+        va_TraceMsg(trace_ctx, "\tquality = %d\n", p->quality);
+    else
+        va_TraceMsg(trace_ctx, "\tquantiser_table_selector[] = %d %d %d %d\n",
+                    p->quantiser_table_selector[0],
+                    p->quantiser_table_selector[1],
+                    p->quantiser_table_selector[2],
+                    p->quantiser_table_selector[3]);
+
+    va_TraceMsg(trace_ctx, NULL);
+
+    return;
+}
+
+static void va_TraceVAEncQMatrixBufferJPEG(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAQMatrixBufferJPEG *p = (VAQMatrixBufferJPEG *)data;
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAQMatrixBufferJPEG\n");
+    va_TraceMsg(trace_ctx, "\tload_lum_quantiser_matrix = %d", p->load_lum_quantiser_matrix);
+    if (p->load_lum_quantiser_matrix) {
+        int i;
+        for (i = 0; i < 64; i++) {
+            if ((i % 8) == 0)
+                va_TraceMsg(trace_ctx, "\n\t");
+            va_TraceMsg(trace_ctx, "\t0x%02x", p->lum_quantiser_matrix[i]);
+        }
+        va_TraceMsg(trace_ctx, "\n");
+    }
+    va_TraceMsg(trace_ctx, "\tload_chroma_quantiser_matrix = %08x\n", p->load_chroma_quantiser_matrix);
+    if (p->load_chroma_quantiser_matrix) {
+        int i;
+        for (i = 0; i < 64; i++) {
+            if ((i % 8) == 0)
+                va_TraceMsg(trace_ctx, "\n\t");
+            va_TraceMsg(trace_ctx, "\t0x%02x", p->chroma_quantiser_matrix[i]);
+        }
+        va_TraceMsg(trace_ctx, "\n");
+    }
+    
+    va_TraceMsg(trace_ctx, NULL);
+    
+    return;
+}
+
+
+static void va_TraceVAEncSliceParameterBufferJPEG(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data)
+{
+    VAEncSliceParameterBufferJPEG *p = (VAEncSliceParameterBufferJPEG *)data;
+    int i;
+    
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\t--VAEncSliceParameterBufferJPEG\n");
+    va_TraceMsg(trace_ctx, "\trestart_interval = 0x%04x\n", p->restart_interval);
+    va_TraceMsg(trace_ctx, "\tnum_components = 0x%08x\n", p->num_components);
+    for (i=0; i<4; i++) {
+        va_TraceMsg(trace_ctx, "\tcomponents[%i] =\n ");
+        va_TraceMsg(trace_ctx, "\t\tcomponent_selector = %d\n", p->components[i].component_selector);
+        va_TraceMsg(trace_ctx, "\t\tdc_table_selector = %d\n", p->components[i].dc_table_selector);
+        va_TraceMsg(trace_ctx, "\t\tac_table_selector = %d\n", p->components[i].ac_table_selector);
+    }
+    
+    va_TraceMsg(trace_ctx, NULL);
+    
+    return;
+}
+
+
+static void va_TraceH263Buf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    switch (type) {
+    case VAPictureParameterBufferType:/* print MPEG4 buffer */
+        va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAIQMatrixBufferType:/* print MPEG4 buffer */
+        va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VABitPlaneBufferType:/* print MPEG4 buffer */
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceGroupMapBufferType:
+        break;
+    case VASliceParameterBufferType:/* print MPEG4 buffer */
+        va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAMacroblockParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAResidualDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VADeblockingParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAImageBufferType:
+        break;
+    case VAProtectedSliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncCodedBufferType:
+        break;
+    case VAEncSequenceParameterBufferType:
+        va_TraceVAEncSequenceParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncPictureParameterBufferType:
+        va_TraceVAEncPictureParameterBufferH263(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncSliceParameterBufferType:
+        va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncPackedHeaderParameterBufferType:
+        va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    default:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    }
+}
+
+
+static void va_TraceJPEGBuf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    switch (type) {
+    case VABitPlaneBufferType:
+    case VASliceGroupMapBufferType:
+    case VASliceDataBufferType:
+    case VAMacroblockParameterBufferType:
+    case VAResidualDataBufferType:
+    case VADeblockingParameterBufferType:
+    case VAImageBufferType:
+    case VAProtectedSliceDataBufferType:
+    case VAEncCodedBufferType:
+    case VAEncSequenceParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncSliceParameterBufferType:
+        va_TraceVAEncSliceParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAPictureParameterBufferType:
+        va_TraceVAPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAIQMatrixBufferType:
+        va_TraceVAIQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceParameterBufferType:
+        va_TraceVASliceParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAHuffmanTableBufferType:
+        va_TraceVAHuffmanTableBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncPictureParameterBufferType:
+        va_TraceVAEncPictureParameterBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAQMatrixBufferType:
+        va_TraceVAEncQMatrixBufferJPEG(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    default:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    }
+}
+
+static void va_TraceMPEG4Buf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    switch (type) {
+    case VAPictureParameterBufferType:
+        va_TraceVAPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAIQMatrixBufferType:
+        va_TraceVAIQMatrixBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VABitPlaneBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceGroupMapBufferType:
+        break;
+    case VASliceParameterBufferType:
+        va_TraceVASliceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAMacroblockParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAResidualDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VADeblockingParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAImageBufferType:
+        break;
+    case VAProtectedSliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncCodedBufferType:
+        break;
+    case VAEncSequenceParameterBufferType:
+        va_TraceVAEncSequenceParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncPictureParameterBufferType:
+        va_TraceVAEncPictureParameterBufferMPEG4(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncSliceParameterBufferType:
+        va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    default:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    }
+}
+
+static void va_TraceHEVCBuf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    DPY2TRACECTX(dpy);
+
+    switch (type) {
+        case VAPictureParameterBufferType:
+            va_TraceVAPictureParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
+            break;
+        case VASliceParameterBufferType:
+            va_TraceVASliceParameterBufferHEVC(dpy, context, buffer, type, size, num_elements, pbuf);
+            break;
+        case VAIQMatrixBufferType:
+            va_TraceVAIQMatrixBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
+            break;
+        default:
+            va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+            break;
+    }
+}
+
+static void va_TraceH264Buf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    DPY2TRACECTX(dpy);
+    
+    switch (type) {
+    case VAPictureParameterBufferType:
+        va_TraceVAPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAIQMatrixBufferType:
+        va_TraceVAIQMatrixBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VABitPlaneBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);        
+        break;
+    case VASliceGroupMapBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceParameterBufferType:
+        va_TraceVASliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, trace_ctx->trace_slice_size, num_elements, pbuf);
+        break;
+    case VAMacroblockParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);        
+        break;
+    case VAResidualDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);        
+        break;
+    case VADeblockingParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAImageBufferType:
+        break;
+    case VAProtectedSliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncCodedBufferType:
+        break;
+    case VAEncSequenceParameterBufferType:
+        va_TraceVAEncSequenceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncPictureParameterBufferType:
+        va_TraceVAEncPictureParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncSliceParameterBufferType:
+        if (size == sizeof(VAEncSliceParameterBuffer))
+            va_TraceVAEncSliceParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
+        else
+            va_TraceVAEncSliceParameterBufferH264(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncPackedHeaderParameterBufferType:
+        va_TraceVAEncPackedHeaderParameterBufferType(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+        
+    case VAEncMiscParameterBufferType:
+        va_TraceVAEncMiscParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    default:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    }
+}
+
+static void va_TraceVP8Buf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    DPY2TRACECTX(dpy);
+
+    switch (type) {
+    case VAPictureParameterBufferType:
+        va_TraceVAPictureParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAIQMatrixBufferType:
+        va_TraceVAIQMatrixBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VABitPlaneBufferType:
+        break;
+    case VASliceGroupMapBufferType:
+        break;
+    case VASliceParameterBufferType:
+        va_TraceVASliceParameterBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceDataBufferType:
+        break;
+    case VAProbabilityBufferType:
+        va_TraceVAProbabilityBufferVP8(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAMacroblockParameterBufferType:
+        break;
+    case VAResidualDataBufferType:
+        break;
+    case VADeblockingParameterBufferType:
+        break;
+    case VAImageBufferType:
+        break;
+    case VAProtectedSliceDataBufferType:
+        break;
+    case VAEncCodedBufferType:
+        break;
+    case VAEncSequenceParameterBufferType:
+        break;
+    case VAEncPictureParameterBufferType:
+        break;
+    case VAEncSliceParameterBufferType:
+        break;
+    case VAEncPackedHeaderParameterBufferType:
+        break;
+    case VAEncMiscParameterBufferType:
+        break;
+    default:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    }
+}
+
+static void va_TraceVC1Buf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    DPY2TRACECTX(dpy);
+
+    switch (type) {
+    case VAPictureParameterBufferType:
+        va_TraceVAPictureParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAIQMatrixBufferType:
+        break;
+    case VABitPlaneBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceGroupMapBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceParameterBufferType:
+        va_TraceVASliceParameterBufferVC1(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VASliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, trace_ctx->trace_slice_size, num_elements, pbuf);
+        break;
+    case VAMacroblockParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAResidualDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VADeblockingParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAImageBufferType:
+        break;
+    case VAProtectedSliceDataBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncCodedBufferType:
+        break;
+    case VAEncSequenceParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncPictureParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    case VAEncSliceParameterBufferType:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    default:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    }
+}
+
+static void
+va_TraceProcFilterParameterBufferDeinterlacing(
+    VADisplay dpy,
+    VAContextID context,
+    VAProcFilterParameterBufferBase *base
+)
+{
+    VAProcFilterParameterBufferDeinterlacing *deint = (VAProcFilterParameterBufferDeinterlacing *)base;
+
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx, "\t    type = %d\n", deint->type);
+    va_TraceMsg(trace_ctx, "\t    algorithm = %d\n", deint->algorithm);
+    va_TraceMsg(trace_ctx, "\t    flags = %d\n", deint->flags);
+}
+
+static void
+va_TraceProcFilterParameterBufferColorBalance(
+    VADisplay dpy,
+    VAContextID context,
+    VAProcFilterParameterBufferBase *base
+)
+{
+    VAProcFilterParameterBufferColorBalance *color_balance = (VAProcFilterParameterBufferColorBalance *)base;
+
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx, "\t    type = %d\n", color_balance->type);
+    va_TraceMsg(trace_ctx, "\t    attrib = %d\n", color_balance->attrib);
+    va_TraceMsg(trace_ctx, "\t    value = %f\n", color_balance->value);
+}
+
+static void
+va_TraceProcFilterParameterBufferBase(
+    VADisplay dpy,
+    VAContextID context,
+    VAProcFilterParameterBufferBase *base
+)
+{
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx, "\t    type = %d\n", base->type);
+}
+
+static void
+va_TraceProcFilterParameterBuffer(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID *filters,
+    unsigned int num_filters
+)
+{
+    VABufferType type;
+    unsigned int size;
+    unsigned int num_elements;
+    VAProcFilterParameterBufferBase *base_filter = NULL;
+    int i;
+
+    DPY2TRACECTX(dpy);
+
+    if (num_filters == 0 || filters == NULL) {
+        va_TraceMsg(trace_ctx, "\t  num_filters = %d\n", num_filters);
+        va_TraceMsg(trace_ctx, "\t  filters = %p\n", filters);
+        return;
+    }
+
+    va_TraceMsg(trace_ctx, "\t  num_filters = %d\n", num_filters);
+
+    /* get buffer type information */
+    for (i = 0; i < num_filters; i++) {
+        vaBufferInfo(dpy, context, filters[i], &type, &size, &num_elements);
+
+        if (type != VAProcFilterParameterBufferType) {
+            va_TraceMsg(trace_ctx, "\t  filters[%d] = 0x%08x (INVALID)\n", i, filters[i]);
+            return;
+        } else {
+            va_TraceMsg(trace_ctx, "\t  filters[%d] = 0x%08x\n", i, filters[i]);
+        }
+
+        base_filter = NULL;
+        vaMapBuffer(dpy, filters[i], (void **)&base_filter);
+
+        if (base_filter == NULL) {
+            vaUnmapBuffer(dpy, filters[i]);
+            return;
+        }
+
+        switch (base_filter->type) {
+        case VAProcFilterDeinterlacing:
+            va_TraceProcFilterParameterBufferDeinterlacing(dpy,
+                                                           context,
+                                                           base_filter);
+            break;
+        case VAProcFilterColorBalance:
+            va_TraceProcFilterParameterBufferColorBalance(dpy,
+                                                          context,
+                                                          base_filter);
+            break;
+        default:
+            va_TraceProcFilterParameterBufferBase(dpy,
+                                                  context,
+                                                  base_filter);
+            break;
+        }
+
+        vaUnmapBuffer(dpy, filters[i]);
+    }
+}
+
+static void
+va_TraceVAProcPipelineParameterBuffer(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *data
+)
+{
+    VAProcPipelineParameterBuffer *p = (VAProcPipelineParameterBuffer *)data;
+    int i;
+
+    DPY2TRACECTX(dpy);
+
+    va_TraceMsg(trace_ctx, "\t--VAProcPipelineParameterBuffer\n");
+
+    va_TraceMsg(trace_ctx, "\t  surface = 0x%08x\n", p->surface);
+
+    if (p->surface_region) {
+        va_TraceMsg(trace_ctx, "\t  surface_region\n");
+        va_TraceMsg(trace_ctx, "\t    x = %d\n", p->surface_region->x);
+        va_TraceMsg(trace_ctx, "\t    y = %d\n", p->surface_region->y);
+        va_TraceMsg(trace_ctx, "\t    width = %d\n", p->surface_region->width);
+        va_TraceMsg(trace_ctx, "\t    height = %d\n", p->surface_region->height);
+    } else {
+        va_TraceMsg(trace_ctx, "\t  surface_region = (NULL)\n");
+    }
+
+    va_TraceMsg(trace_ctx, "\t  surface_color_standard = %d\n", p->surface_color_standard);
+
+    if (p->output_region) {
+        va_TraceMsg(trace_ctx, "\t  output_region\n");
+        va_TraceMsg(trace_ctx, "\t    x = %d\n", p->output_region->x);
+        va_TraceMsg(trace_ctx, "\t    y = %d\n", p->output_region->y);
+        va_TraceMsg(trace_ctx, "\t    width = %d\n", p->output_region->width);
+        va_TraceMsg(trace_ctx, "\t    height = %d\n", p->output_region->height);
+    } else {
+        va_TraceMsg(trace_ctx, "\t  output_region = (NULL)\n");
+    }
+
+    va_TraceMsg(trace_ctx, "\t  output_background_color = 0x%08x\n", p->output_background_color);
+    va_TraceMsg(trace_ctx, "\t  output_color_standard = %d\n", p->output_color_standard);
+    va_TraceMsg(trace_ctx, "\t  pipeline_flags = 0x%08x\n", p->pipeline_flags);
+    va_TraceMsg(trace_ctx, "\t  filter_flags = 0x%08x\n", p->filter_flags);
+
+    va_TraceProcFilterParameterBuffer(dpy, context, p->filters, p->num_filters);
+
+    va_TraceMsg(trace_ctx, "\t  num_forward_references = 0x%08x\n", p->num_forward_references);
+
+    if (p->num_forward_references) {
+        va_TraceMsg(trace_ctx, "\t  forward_references\n");
+
+        if (p->forward_references) {
+            /* only dump the first 5 forward references */
+            for (i = 0; i < p->num_forward_references && i < 5; i++) {
+                va_TraceMsg(trace_ctx, "\t    forward_references[%d] = 0x%08x\n", i, p->forward_references[i]);
+            }
+        } else {
+            for (i = 0; i < p->num_forward_references && i < 5; i++) {
+                va_TraceMsg(trace_ctx, "\t    forward_references[%d] = (NULL)\n", i);
+            }
+        }
+    }
+
+    va_TraceMsg(trace_ctx, "\t  num_backward_references = 0x%08x\n", p->num_backward_references);
+
+    if (p->num_backward_references) {
+        va_TraceMsg(trace_ctx, "\t  backward_references\n");
+
+        if (p->backward_references) {
+            /* only dump the first 5 backward references */
+            for (i = 0; i < p->num_backward_references && i < 5; i++) {
+                va_TraceMsg(trace_ctx, "\t    backward_references[%d] = 0x%08x\n", i, p->backward_references[i]);
+            }
+        } else {
+            for (i = 0; i < p->num_backward_references && i < 5; i++) {
+                va_TraceMsg(trace_ctx, "\t    backward_references[%d] = (NULL)\n", i);
+            }
+        }
+    }
+
+    /* FIXME: add other info later */
+
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+static void
+va_TraceNoneBuf(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID buffer,
+    VABufferType type,
+    unsigned int size,
+    unsigned int num_elements,
+    void *pbuf
+)
+{
+    DPY2TRACECTX(dpy);
+
+    switch (type) {
+    case VAProcPipelineParameterBufferType:
+        va_TraceVAProcPipelineParameterBuffer(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    default:
+        va_TraceVABuffers(dpy, context, buffer, type, size, num_elements, pbuf);
+        break;
+    }
+}
+
+void va_TraceRenderPicture(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID *buffers,
+    int num_buffers
+)
+{
+    VABufferType type;
+    unsigned int size;
+    unsigned int num_elements;
+    int i;
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+    
+    va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context);
+    va_TraceMsg(trace_ctx, "\tnum_buffers = %d\n", num_buffers);
+    if (buffers == NULL)
+        return;
+    
+    for (i = 0; i < num_buffers; i++) {
+        unsigned char *pbuf = NULL;
+        unsigned int j;
+        
+        /* get buffer type information */
+        vaBufferInfo(dpy, context, buffers[i], &type, &size, &num_elements);
+
+        va_TraceMsg(trace_ctx, "\t---------------------------\n");
+        va_TraceMsg(trace_ctx, "\tbuffers[%d] = 0x%08x\n", i, buffers[i]);
+        va_TraceMsg(trace_ctx, "\t  type = %s\n", buffer_type_to_string(type));
+        va_TraceMsg(trace_ctx, "\t  size = %d\n", size);
+        va_TraceMsg(trace_ctx, "\t  num_elements = %d\n", num_elements);
+
+        vaMapBuffer(dpy, buffers[i], (void **)&pbuf);
+        if (pbuf == NULL)
+            continue;
+        
+        switch (trace_ctx->trace_profile) {
+        case VAProfileMPEG2Simple:
+        case VAProfileMPEG2Main:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
+                va_TraceMPEG2Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+        case VAProfileMPEG4Simple:
+        case VAProfileMPEG4AdvancedSimple:
+        case VAProfileMPEG4Main:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
+                va_TraceMPEG4Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+        case VAProfileH264Baseline:
+        case VAProfileH264Main:
+        case VAProfileH264High:
+        case VAProfileH264ConstrainedBaseline:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
+                
+                va_TraceH264Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+        case VAProfileVC1Simple:
+        case VAProfileVC1Main:
+        case VAProfileVC1Advanced:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
+                
+                va_TraceVC1Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+        case VAProfileH263Baseline:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
+                
+                va_TraceH263Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+        case VAProfileJPEGBaseline:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
+                
+                va_TraceJPEGBuf (dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+
+        case VAProfileNone:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
+
+                va_TraceNoneBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+
+        case VAProfileVP8Version0_3:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] =\n", j);
+
+                va_TraceVP8Buf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+
+        case VAProfileHEVCMain:
+        case VAProfileHEVCMain10:
+            for (j=0; j<num_elements; j++) {
+                va_TraceMsg(trace_ctx, "\telement[%d] = ", j);
+
+                va_TraceHEVCBuf(dpy, context, buffers[i], type, size, num_elements, pbuf + size*j);
+            }
+            break;
+        default:
+            break;
+        }
+
+        vaUnmapBuffer(dpy, buffers[i]);
+    }
+
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+void va_TraceEndPicture(
+    VADisplay dpy,
+    VAContextID context,
+    int endpic_done
+)
+{
+    int encode, decode, jpeg;
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+
+    va_TraceMsg(trace_ctx, "\tcontext = 0x%08x\n", context);
+    va_TraceMsg(trace_ctx, "\trender_targets = 0x%08x\n", trace_ctx->trace_rendertarget);
+
+    /* avoid to create so many empty files */
+    encode = (trace_ctx->trace_entrypoint == VAEntrypointEncSlice);
+    decode = (trace_ctx->trace_entrypoint == VAEntrypointVLD);
+    jpeg = (trace_ctx->trace_entrypoint == VAEntrypointEncPicture);
+
+    /* trace encode source surface, can do it before HW completes rendering */
+    if ((encode && (trace_flag & VA_TRACE_FLAG_SURFACE_ENCODE))||
+        (jpeg && (trace_flag & VA_TRACE_FLAG_SURFACE_JPEG)))
+        va_TraceSurface(dpy);
+    
+    /* trace decoded surface, do it after HW completes rendering */
+    if (decode && ((trace_flag & VA_TRACE_FLAG_SURFACE_DECODE))) {
+        vaSyncSurface(dpy, trace_ctx->trace_rendertarget);
+        va_TraceSurface(dpy);
+    }
+
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+void va_TraceSyncSurface(
+    VADisplay dpy,
+    VASurfaceID render_target
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+
+    va_TraceMsg(trace_ctx, "\trender_target = 0x%08x\n", render_target);
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+void va_TraceQuerySurfaceAttributes(
+    VADisplay           dpy,
+    VAConfigID          config,
+    VASurfaceAttrib    *attrib_list,
+    unsigned int       *num_attribs
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+    va_TraceMsg(trace_ctx, "\tconfig = 0x%08x\n", config);
+    va_TraceSurfaceAttributes(trace_ctx, attrib_list, num_attribs);
+    
+    va_TraceMsg(trace_ctx, NULL);
+
+}
+
+
+void va_TraceQuerySurfaceStatus(
+    VADisplay dpy,
+    VASurfaceID render_target,
+    VASurfaceStatus *status    /* out */
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+
+    va_TraceMsg(trace_ctx, "\trender_target = 0x%08x\n", render_target);
+    if (status)
+        va_TraceMsg(trace_ctx, "\tstatus = 0x%08x\n", *status);
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+void va_TraceQuerySurfaceError(
+    VADisplay dpy,
+    VASurfaceID surface,
+    VAStatus error_status,
+    void **error_info       /*out*/
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+    va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface);
+    va_TraceMsg(trace_ctx, "\terror_status = 0x%08x\n", error_status);
+    if (error_info && (error_status == VA_STATUS_ERROR_DECODING_ERROR)) {
+        VASurfaceDecodeMBErrors *p = *error_info;
+        while (p && (p->status != -1)) {
+            va_TraceMsg(trace_ctx, "\t\tstatus = %d\n", p->status);
+            va_TraceMsg(trace_ctx, "\t\tstart_mb = %d\n", p->start_mb);
+            va_TraceMsg(trace_ctx, "\t\tend_mb = %d\n", p->end_mb);
+            p++; /* next error record */
+        }
+    }
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+void va_TraceMaxNumDisplayAttributes (
+    VADisplay dpy,
+    int number
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+    
+    va_TraceMsg(trace_ctx, "\tmax_display_attributes = %d\n", number);
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+void va_TraceQueryDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,    /* out */
+    int *num_attributes               /* out */
+)
+{
+    int i;
+    
+    DPY2TRACECTX(dpy);
+    
+    if (attr_list == NULL || num_attributes == NULL)
+        return;
+
+    va_TraceMsg(trace_ctx, "\tnum_attributes = %d\n", *num_attributes);
+    
+    for (i=0; i<*num_attributes; i++) {
+        va_TraceMsg(trace_ctx, "\tattr_list[%d] =\n");
+        va_TraceMsg(trace_ctx, "\t  typ = 0x%08x\n", attr_list[i].type);
+        va_TraceMsg(trace_ctx, "\t  min_value = %d\n", attr_list[i].min_value);
+        va_TraceMsg(trace_ctx, "\t  max_value = %d\n", attr_list[i].max_value);
+        va_TraceMsg(trace_ctx, "\t  value = %d\n", attr_list[i].value);
+        va_TraceMsg(trace_ctx, "\t  flags = %d\n", attr_list[i].flags);
+    }
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+static void va_TraceDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,
+    int num_attributes
+)
+{
+    int i;
+    
+    DPY2TRACECTX(dpy);
+    
+    va_TraceMsg(trace_ctx, "\tnum_attributes = %d\n", num_attributes);
+    if (attr_list == NULL)
+        return;
+    
+    for (i=0; i<num_attributes; i++) {
+        va_TraceMsg(trace_ctx, "\tattr_list[%d] =\n");
+        va_TraceMsg(trace_ctx, "\t  typ = 0x%08x\n", attr_list[i].type);
+        va_TraceMsg(trace_ctx, "\t  min_value = %d\n", attr_list[i].min_value);
+        va_TraceMsg(trace_ctx, "\t  max_value = %d\n", attr_list[i].max_value);
+        va_TraceMsg(trace_ctx, "\t  value = %d\n", attr_list[i].value);
+        va_TraceMsg(trace_ctx, "\t  flags = %d\n", attr_list[i].flags);
+    }
+    va_TraceMsg(trace_ctx, NULL);
+}
+
+
+void va_TraceGetDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,
+    int num_attributes
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+
+    va_TraceDisplayAttributes (dpy, attr_list, num_attributes);
+}
+
+void va_TraceSetDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,
+    int num_attributes
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+
+    va_TraceDisplayAttributes (dpy, attr_list, num_attributes);
+}
+
+
+void va_TracePutSurface (
+    VADisplay dpy,
+    VASurfaceID surface,
+    void *draw, /* the target 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 */
+)
+{
+    DPY2TRACECTX(dpy);
+
+    TRACE_FUNCNAME(idx);
+    
+    va_TraceMsg(trace_ctx, "\tsurface = 0x%08x\n", surface);
+    va_TraceMsg(trace_ctx, "\tdraw = 0x%08x\n", draw);
+    va_TraceMsg(trace_ctx, "\tsrcx = %d\n", srcx);
+    va_TraceMsg(trace_ctx, "\tsrcy = %d\n", srcy);
+    va_TraceMsg(trace_ctx, "\tsrcw = %d\n", srcw);
+    va_TraceMsg(trace_ctx, "\tsrch = %d\n", srch);
+    va_TraceMsg(trace_ctx, "\tdestx = %d\n", destx);
+    va_TraceMsg(trace_ctx, "\tdesty = %d\n", desty);
+    va_TraceMsg(trace_ctx, "\tdestw = %d\n", destw);
+    va_TraceMsg(trace_ctx, "\tdesth = %d\n", desth);
+    va_TraceMsg(trace_ctx, "\tcliprects = 0x%08x\n", cliprects);
+    va_TraceMsg(trace_ctx, "\tnumber_cliprects = %d\n", number_cliprects);
+    va_TraceMsg(trace_ctx, "\tflags = 0x%08x\n", flags);
+    va_TraceMsg(trace_ctx, NULL);
+}
diff --git a/examples/thirdparty/libva/va/va_trace.h b/examples/thirdparty/libva/va/va_trace.h
new file mode 100644
index 0000000..141e7c3
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_trace.h
@@ -0,0 +1,238 @@
+/*
+ * Copyright (c) 2009 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.
+ */
+
+#ifndef VA_TRACE_H
+#define VA_TRACE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern int trace_flag;
+
+#define VA_TRACE_FLAG_LOG             0x1
+#define VA_TRACE_FLAG_BUFDATA         0x2
+#define VA_TRACE_FLAG_CODEDBUF        0x4
+#define VA_TRACE_FLAG_SURFACE_DECODE  0x8
+#define VA_TRACE_FLAG_SURFACE_ENCODE  0x10
+#define VA_TRACE_FLAG_SURFACE_JPEG    0x20
+#define VA_TRACE_FLAG_SURFACE         (VA_TRACE_FLAG_SURFACE_DECODE | \
+                                       VA_TRACE_FLAG_SURFACE_ENCODE | \
+                                       VA_TRACE_FLAG_SURFACE_JPEG)
+
+#define VA_TRACE_LOG(trace_func,...)            \
+    if (trace_flag & VA_TRACE_FLAG_LOG) {       \
+        trace_func(__VA_ARGS__);                \
+    }
+#define VA_TRACE_ALL(trace_func,...)            \
+    if (trace_flag) {                           \
+        trace_func(__VA_ARGS__);                \
+    }
+
+DLL_HIDDEN
+void va_TraceInit(VADisplay dpy);
+DLL_HIDDEN
+void va_TraceEnd(VADisplay dpy);
+
+DLL_HIDDEN
+void va_TraceInitialize (
+    VADisplay dpy,
+    int *major_version,	 /* out */
+    int *minor_version 	 /* out */
+);
+
+DLL_HIDDEN
+void va_TraceTerminate (
+    VADisplay dpy
+);
+
+DLL_HIDDEN
+void va_TraceCreateConfig(
+    VADisplay dpy,
+    VAProfile profile, 
+    VAEntrypoint entrypoint, 
+    VAConfigAttrib *attrib_list,
+    int num_attribs,
+    VAConfigID *config_id /* out */
+);
+
+DLL_HIDDEN
+void va_TraceCreateSurfaces(
+    VADisplay dpy,
+    int width,
+    int height,
+    int format,
+    int num_surfaces,
+    VASurfaceID *surfaces,	/* out */
+    VASurfaceAttrib    *attrib_list,
+    unsigned int        num_attribs
+);
+
+DLL_HIDDEN
+void va_TraceDestroySurfaces(
+    VADisplay dpy,
+    VASurfaceID *surface_list,
+    int num_surfaces
+);
+
+DLL_HIDDEN
+void va_TraceCreateContext(
+    VADisplay dpy,
+    VAConfigID config_id,
+    int picture_width,
+    int picture_height,
+    int flag,
+    VASurfaceID *render_targets,
+    int num_render_targets,
+    VAContextID *context		/* out */
+);
+
+DLL_HIDDEN
+void va_TraceCreateBuffer (
+    VADisplay dpy,
+    VAContextID context,	/* in */
+    VABufferType type,		/* in */
+    unsigned int size,		/* in */
+    unsigned int num_elements,	/* in */
+    void *data,			/* in */
+    VABufferID *buf_id		/* out */
+);
+
+DLL_HIDDEN
+void va_TraceDestroyBuffer (
+    VADisplay dpy,
+    VABufferID buf_id    /* in */
+);
+
+DLL_HIDDEN
+void va_TraceMapBuffer (
+    VADisplay dpy,
+    VABufferID buf_id,	/* in */
+    void **pbuf 	/* out */
+);
+
+
+DLL_HIDDEN
+void va_TraceBeginPicture(
+    VADisplay dpy,
+    VAContextID context,
+    VASurfaceID render_target
+);
+
+DLL_HIDDEN
+void va_TraceRenderPicture(
+    VADisplay dpy,
+    VAContextID context,
+    VABufferID *buffers,
+    int num_buffers
+);
+
+DLL_HIDDEN
+void va_TraceEndPicture(
+    VADisplay dpy,
+    VAContextID context,
+    int endpic_done
+);
+
+DLL_HIDDEN
+void va_TraceSyncSurface(
+    VADisplay dpy,
+    VASurfaceID render_target
+);
+
+DLL_HIDDEN
+void va_TraceQuerySurfaceAttributes(
+    VADisplay           dpy,
+    VAConfigID          config,
+    VASurfaceAttrib    *attrib_list,
+    unsigned int       *num_attribs
+);
+
+DLL_HIDDEN
+void va_TraceQuerySurfaceStatus(
+    VADisplay dpy,
+    VASurfaceID render_target,
+    VASurfaceStatus *status	/* out */
+);
+
+DLL_HIDDEN
+void va_TraceQuerySurfaceError(
+	VADisplay dpy,
+	VASurfaceID surface,
+	VAStatus error_status,
+	void **error_info /*out*/
+);
+
+
+DLL_HIDDEN
+void va_TraceMaxNumDisplayAttributes (
+    VADisplay dpy,
+    int number
+);
+
+DLL_HIDDEN
+void va_TraceQueryDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,	/* out */
+    int *num_attributes			/* out */
+);
+
+DLL_HIDDEN
+void va_TraceGetDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,
+    int num_attributes
+);
+
+DLL_HIDDEN
+void va_TraceSetDisplayAttributes (
+    VADisplay dpy,
+    VADisplayAttribute *attr_list,
+    int num_attributes
+);
+
+/* extern function called by display side */
+void va_TracePutSurface (
+    VADisplay dpy,
+    VASurfaceID surface,
+    void *draw, /* the target 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 */
+);
+
+#ifdef __cplusplus
+}
+#endif
+    
+
+#endif /* VA_TRACE_H */
diff --git a/examples/thirdparty/libva/va/va_version.h.in b/examples/thirdparty/libva/va/va_version.h.in
new file mode 100644
index 0000000..0cc5ea7
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_version.h.in
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2009 Splitted-Desktop Systems. 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.
+ */
+
+#ifndef VA_VERSION_H
+#define VA_VERSION_H
+
+/**
+ * VA_MAJOR_VERSION:
+ *
+ * The major version of VA-API (1, if %VA_VERSION is 1.2.3)
+ */
+#define VA_MAJOR_VERSION    @VA_API_MAJOR_VERSION@
+
+/**
+ * VA_MINOR_VERSION:
+ *
+ * The minor version of VA-API (2, if %VA_VERSION is 1.2.3)
+ */
+#define VA_MINOR_VERSION    @VA_API_MINOR_VERSION@
+
+/**
+ * VA_MICRO_VERSION:
+ *
+ * The micro version of VA-API (3, if %VA_VERSION is 1.2.3)
+ */
+#define VA_MICRO_VERSION    @VA_API_MICRO_VERSION@
+
+/**
+ * VA_VERSION:
+ *
+ * The full version of VA-API, like 1.2.3
+ */
+#define VA_VERSION          @VA_API_VERSION@
+
+/**
+ * VA_VERSION_S:
+ *
+ * The full version of VA-API, in string form (suited for string
+ * concatenation)
+ */
+#define VA_VERSION_S       "@VA_API_VERSION@"
+
+/**
+ * VA_VERSION_HEX:
+ *
+ * Numerically encoded version of VA-API, like 0x010203
+ */
+#define VA_VERSION_HEX     ((VA_MAJOR_VERSION << 24) | \
+                            (VA_MINOR_VERSION << 16) | \
+                            (VA_MICRO_VERSION << 8))
+
+/**
+ * VA_CHECK_VERSION:
+ * @major: major version, like 1 in 1.2.3
+ * @minor: minor version, like 2 in 1.2.3
+ * @micro: micro version, like 3 in 1.2.3
+ *
+ * Evaluates to %TRUE if the version of VA-API is greater than
+ * @major, @minor and @micro
+ */
+#define VA_CHECK_VERSION(major,minor,micro) \
+        (VA_MAJOR_VERSION > (major) || \
+         (VA_MAJOR_VERSION == (major) && VA_MINOR_VERSION > (minor)) || \
+         (VA_MAJOR_VERSION == (major) && VA_MINOR_VERSION == (minor) && VA_MICRO_VERSION >= (micro)))
+
+#endif /* VA_VERSION_H */
diff --git a/examples/thirdparty/libva/va/va_vpp.h b/examples/thirdparty/libva/va/va_vpp.h
new file mode 100644
index 0000000..8ac0923
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_vpp.h
@@ -0,0 +1,750 @@
+/*
+ * Copyright (c) 2007-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 INTEL 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 va_vpp.h
+ * \brief The video processing API
+ *
+ * This file contains the \ref api_vpp "Video processing API".
+ */
+
+#ifndef VA_VPP_H
+#define VA_VPP_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_vpp Video processing API
+ *
+ * @{
+ *
+ * The video processing API uses the same paradigm as for decoding:
+ * - Query for supported filters;
+ * - Set up a video processing pipeline;
+ * - Send video processing parameters through VA buffers.
+ *
+ * \section api_vpp_caps Query for supported filters
+ *
+ * Checking whether video processing is supported can be performed
+ * with vaQueryConfigEntrypoints() and the profile argument set to
+ * #VAProfileNone. If video processing is supported, then the list of
+ * returned entry-points will include #VAEntrypointVideoProc.
+ *
+ * \code
+ * VAEntrypoint *entrypoints;
+ * int i, num_entrypoints, supportsVideoProcessing = 0;
+ *
+ * num_entrypoints = vaMaxNumEntrypoints();
+ * entrypoints = malloc(num_entrypoints * sizeof(entrypoints[0]);
+ * vaQueryConfigEntrypoints(va_dpy, VAProfileNone,
+ *     entrypoints, &num_entrypoints);
+ *
+ * for (i = 0; !supportsVideoProcessing && i < num_entrypoints; i++) {
+ *     if (entrypoints[i] == VAEntrypointVideoProc)
+ *         supportsVideoProcessing = 1;
+ * }
+ * \endcode
+ *
+ * Then, the vaQueryVideoProcFilters() function is used to query the
+ * list of video processing filters.
+ *
+ * \code
+ * VAProcFilterType filters[VAProcFilterCount];
+ * unsigned int num_filters = VAProcFilterCount;
+ *
+ * // num_filters shall be initialized to the length of the array
+ * vaQueryVideoProcFilters(va_dpy, vpp_ctx, &filters, &num_filters);
+ * \endcode
+ *
+ * Finally, individual filter capabilities can be checked with
+ * vaQueryVideoProcFilterCaps().
+ *
+ * \code
+ * VAProcFilterCap denoise_caps;
+ * unsigned int num_denoise_caps = 1;
+ * vaQueryVideoProcFilterCaps(va_dpy, vpp_ctx,
+ *     VAProcFilterNoiseReduction,
+ *     &denoise_caps, &num_denoise_caps
+ * );
+ *
+ * VAProcFilterCapDeinterlacing deinterlacing_caps[VAProcDeinterlacingCount];
+ * unsigned int num_deinterlacing_caps = VAProcDeinterlacingCount;
+ * vaQueryVideoProcFilterCaps(va_dpy, vpp_ctx,
+ *     VAProcFilterDeinterlacing,
+ *     &deinterlacing_caps, &num_deinterlacing_caps
+ * );
+ * \endcode
+ *
+ * \section api_vpp_setup Set up a video processing pipeline
+ *
+ * A video processing pipeline buffer is created for each source
+ * surface we want to process. However, buffers holding filter
+ * parameters can be created once and for all. Rationale is to avoid
+ * multiple creation/destruction chains of filter buffers and also
+ * because filter parameters generally won't change frame after
+ * frame. e.g. this makes it possible to implement a checkerboard of
+ * videos where the same filters are applied to each video source.
+ *
+ * The general control flow is demonstrated by the following pseudo-code:
+ * \code
+ * // Create filters
+ * VABufferID denoise_filter, deint_filter;
+ * VABufferID filter_bufs[VAProcFilterCount];
+ * unsigned int num_filter_bufs;
+ *
+ * for (i = 0; i < num_filters; i++) {
+ *     switch (filters[i]) {
+ *     case VAProcFilterNoiseReduction: {       // Noise reduction filter
+ *         VAProcFilterParameterBuffer denoise;
+ *         denoise.type  = VAProcFilterNoiseReduction;
+ *         denoise.value = 0.5;
+ *         vaCreateBuffer(va_dpy, vpp_ctx,
+ *             VAProcFilterParameterBufferType, sizeof(denoise), 1,
+ *             &denoise, &denoise_filter
+ *         );
+ *         filter_bufs[num_filter_bufs++] = denoise_filter;
+ *         break;
+ *     }
+ *
+ *     case VAProcFilterDeinterlacing:          // Motion-adaptive deinterlacing
+ *         for (j = 0; j < num_deinterlacing_caps; j++) {
+ *             VAProcFilterCapDeinterlacing * const cap = &deinterlacing_caps[j];
+ *             if (cap->type != VAProcDeinterlacingMotionAdaptive)
+ *                 continue;
+ *
+ *             VAProcFilterParameterBufferDeinterlacing deint;
+ *             deint.type                   = VAProcFilterDeinterlacing;
+ *             deint.algorithm              = VAProcDeinterlacingMotionAdaptive;
+ *             vaCreateBuffer(va_dpy, vpp_ctx,
+ *                 VAProcFilterParameterBufferType, sizeof(deint), 1,
+ *                 &deint, &deint_filter
+ *             );
+ *             filter_bufs[num_filter_bufs++] = deint_filter;
+ *         }
+ *     }
+ * }
+ * \endcode
+ *
+ * Once the video processing pipeline is set up, the caller shall check the
+ * implied capabilities and requirements with vaQueryVideoProcPipelineCaps().
+ * This function can be used to validate the number of reference frames are
+ * needed by the specified deinterlacing algorithm, the supported color
+ * primaries, etc.
+ * \code
+ * // Create filters
+ * VAProcPipelineCaps pipeline_caps;
+ * VASurfaceID *forward_references;
+ * unsigned int num_forward_references;
+ * VASurfaceID *backward_references;
+ * unsigned int num_backward_references;
+ * VAProcColorStandardType in_color_standards[VAProcColorStandardCount];
+ * VAProcColorStandardType out_color_standards[VAProcColorStandardCount];
+ *
+ * pipeline_caps.input_color_standards      = NULL;
+ * pipeline_caps.num_input_color_standards  = ARRAY_ELEMS(in_color_standards);
+ * pipeline_caps.output_color_standards     = NULL;
+ * pipeline_caps.num_output_color_standards = ARRAY_ELEMS(out_color_standards);
+ * vaQueryVideoProcPipelineCaps(va_dpy, vpp_ctx,
+ *     filter_bufs, num_filter_bufs,
+ *     &pipeline_caps
+ * );
+ *
+ * num_forward_references  = pipeline_caps.num_forward_references;
+ * forward_references      =
+ *     malloc(num__forward_references * sizeof(VASurfaceID));
+ * num_backward_references = pipeline_caps.num_backward_references;
+ * backward_references     =
+ *     malloc(num_backward_references * sizeof(VASurfaceID));
+ * \endcode
+ *
+ * \section api_vpp_submit Send video processing parameters through VA buffers
+ *
+ * Video processing pipeline parameters are submitted for each source
+ * surface to process. Video filter parameters can also change, per-surface.
+ * e.g. the list of reference frames used for deinterlacing.
+ *
+ * \code
+ * foreach (iteration) {
+ *     vaBeginPicture(va_dpy, vpp_ctx, vpp_surface);
+ *     foreach (surface) {
+ *         VARectangle output_region;
+ *         VABufferID pipeline_buf;
+ *         VAProcPipelineParameterBuffer *pipeline_param;
+ *
+ *         vaCreateBuffer(va_dpy, vpp_ctx,
+ *             VAProcPipelineParameterBuffer, sizeof(*pipeline_param), 1,
+ *             NULL, &pipeline_buf
+ *         );
+ *
+ *         // Setup output region for this surface
+ *         // e.g. upper left corner for the first surface
+ *         output_region.x     = BORDER;
+ *         output_region.y     = BORDER;
+ *         output_region.width =
+ *             (vpp_surface_width - (Nx_surfaces + 1) * BORDER) / Nx_surfaces;
+ *         output_region.height =
+ *             (vpp_surface_height - (Ny_surfaces + 1) * BORDER) / Ny_surfaces;
+ *
+ *         vaMapBuffer(va_dpy, pipeline_buf, &pipeline_param);
+ *         pipeline_param->surface              = surface;
+ *         pipeline_param->surface_region       = NULL;
+ *         pipeline_param->output_region        = &output_region;
+ *         pipeline_param->output_background_color = 0;
+ *         if (first surface to render)
+ *             pipeline_param->output_background_color = 0xff000000; // black
+ *         pipeline_param->filter_flags         = VA_FILTER_SCALING_HQ;
+ *         pipeline_param->filters              = filter_bufs;
+ *         pipeline_param->num_filters          = num_filter_bufs;
+ *         vaUnmapBuffer(va_dpy, pipeline_buf);
+ *
+ *         // Update reference frames for deinterlacing, if necessary
+ *         pipeline_param->forward_references      = forward_references;
+ *         pipeline_param->num_forward_references  = num_forward_references_used;
+ *         pipeline_param->backward_references     = backward_references;
+ *         pipeline_param->num_backward_references = num_bacward_references_used;
+ *
+ *         // Apply filters
+ *         vaRenderPicture(va_dpy, vpp_ctx, &pipeline_buf, 1);
+ *     }
+ *     vaEndPicture(va_dpy, vpp_ctx);
+ * }
+ * \endcode
+ */
+
+/** \brief Video filter types. */
+typedef enum _VAProcFilterType {
+    VAProcFilterNone = 0,
+    /** \brief Noise reduction filter. */
+    VAProcFilterNoiseReduction,
+    /** \brief Deinterlacing filter. */
+    VAProcFilterDeinterlacing,
+    /** \brief Sharpening filter. */
+    VAProcFilterSharpening,
+    /** \brief Color balance parameters. */
+    VAProcFilterColorBalance,
+    /** \brief Skin Tone Enhancement. */
+    VAProcFilterSkinToneEnhancement,
+    VAProcFilterCount
+} VAProcFilterType;
+
+/** \brief Deinterlacing types. */
+typedef enum _VAProcDeinterlacingType {
+    VAProcDeinterlacingNone = 0,
+    /** \brief Bob deinterlacing algorithm. */
+    VAProcDeinterlacingBob,
+    /** \brief Weave deinterlacing algorithm. */
+    VAProcDeinterlacingWeave,
+    /** \brief Motion adaptive deinterlacing algorithm. */
+    VAProcDeinterlacingMotionAdaptive,
+    /** \brief Motion compensated deinterlacing algorithm. */
+    VAProcDeinterlacingMotionCompensated,
+    /** \brief Number of deinterlacing algorithms. */
+    VAProcDeinterlacingCount
+} VAProcDeinterlacingType;
+
+/** \brief Color balance types. */
+typedef enum _VAProcColorBalanceType {
+    VAProcColorBalanceNone = 0,
+    /** \brief Hue. */
+    VAProcColorBalanceHue,
+    /** \brief Saturation. */
+    VAProcColorBalanceSaturation,
+    /** \brief Brightness. */
+    VAProcColorBalanceBrightness,
+    /** \brief Contrast. */
+    VAProcColorBalanceContrast,
+    /** \brief Automatically adjusted saturation. */
+    VAProcColorBalanceAutoSaturation,
+    /** \brief Automatically adjusted brightness. */
+    VAProcColorBalanceAutoBrightness,
+    /** \brief Automatically adjusted contrast. */
+    VAProcColorBalanceAutoContrast,
+    /** \brief Number of color balance attributes. */
+    VAProcColorBalanceCount
+} VAProcColorBalanceType;
+
+/** \brief Color standard types. */
+typedef enum _VAProcColorStandardType {
+    VAProcColorStandardNone = 0,
+    /** \brief ITU-R BT.601. */
+    VAProcColorStandardBT601,
+    /** \brief ITU-R BT.709. */
+    VAProcColorStandardBT709,
+    /** \brief ITU-R BT.470-2 System M. */
+    VAProcColorStandardBT470M,
+    /** \brief ITU-R BT.470-2 System B, G. */
+    VAProcColorStandardBT470BG,
+    /** \brief SMPTE-170M. */
+    VAProcColorStandardSMPTE170M,
+    /** \brief SMPTE-240M. */
+    VAProcColorStandardSMPTE240M,
+    /** \brief Generic film. */
+    VAProcColorStandardGenericFilm,
+    /** \brief Number of color standards. */
+    VAProcColorStandardCount
+} VAProcColorStandardType;
+
+/** @name Video pipeline flags */
+/**@{*/
+/** \brief Specifies whether to apply subpictures when processing a surface. */
+#define VA_PROC_PIPELINE_SUBPICTURES    0x00000001
+/**
+ * \brief Specifies whether to apply power or performance
+ * optimizations to a pipeline.
+ *
+ * When processing several surfaces, it may be necessary to prioritize
+ * more certain pipelines than others. This flag is only a hint to the
+ * video processor so that it can omit certain filters to save power
+ * for example. Typically, this flag could be used with video surfaces
+ * decoded from a secondary bitstream.
+ */
+#define VA_PROC_PIPELINE_FAST           0x00000002
+/**@}*/
+
+/** @name Video filter flags */
+/**@{*/
+/** \brief Specifies whether the filter shall be present in the pipeline. */
+#define VA_PROC_FILTER_MANDATORY        0x00000001
+/**@}*/
+
+/** @name Pipeline end flags */
+/**@{*/
+/** \brief Specifies the pipeline is the last. */
+#define VA_PIPELINE_FLAG_END		0x00000004
+/**@}*/
+
+/** \brief Video processing pipeline capabilities. */
+typedef struct _VAProcPipelineCaps {
+    /** \brief Pipeline flags. See VAProcPipelineParameterBuffer::pipeline_flags. */
+    unsigned int        pipeline_flags;
+    /** \brief Extra filter flags. See VAProcPipelineParameterBuffer::filter_flags. */
+    unsigned int        filter_flags;
+    /** \brief Number of forward reference frames that are needed. */
+    unsigned int        num_forward_references;
+    /** \brief Number of backward reference frames that are needed. */
+    unsigned int        num_backward_references;
+    /** \brief List of color standards supported on input. */
+    VAProcColorStandardType *input_color_standards;
+    /** \brief Number of elements in \ref input_color_standards array. */
+    unsigned int        num_input_color_standards;
+    /** \brief List of color standards supported on output. */
+    VAProcColorStandardType *output_color_standards;
+    /** \brief Number of elements in \ref output_color_standards array. */
+    unsigned int        num_output_color_standards;
+} VAProcPipelineCaps;
+
+/** \brief Specification of values supported by the filter. */
+typedef struct _VAProcFilterValueRange {
+    /** \brief Minimum value supported, inclusive. */
+    float               min_value;
+    /** \brief Maximum value supported, inclusive. */
+    float               max_value;
+    /** \brief Default value. */
+    float               default_value;
+    /** \brief Step value that alters the filter behaviour in a sensible way. */
+    float               step;
+} VAProcFilterValueRange;
+
+/**
+ * \brief Video processing pipeline configuration.
+ *
+ * This buffer defines a video processing pipeline. As for any buffer
+ * passed to \c vaRenderPicture(), this is a one-time usage model.
+ * However, the actual filters to be applied are provided in the
+ * \c filters field, so they can be re-used in other processing
+ * pipelines.
+ *
+ * The target surface is specified by the \c render_target argument of
+ * \c vaBeginPicture(). The general usage model is described as follows:
+ * - \c vaBeginPicture(): specify the target surface that receives the
+ *   processed output;
+ * - \c vaRenderPicture(): specify a surface to be processed and composed
+ *   into the \c render_target. Use as many \c vaRenderPicture() calls as
+ *   necessary surfaces to compose ;
+ * - \c vaEndPicture(): tell the driver to start processing the surfaces
+ *   with the requested filters.
+ *
+ * If a filter (e.g. noise reduction) needs to be applied with different
+ * values for multiple surfaces, the application needs to create as many
+ * filter parameter buffers as necessary. i.e. the filter parameters shall
+ * not change between two calls to \c vaRenderPicture().
+ *
+ * For composition usage models, the first surface to process will generally
+ * use an opaque background color, i.e. \c output_background_color set with
+ * the most significant byte set to \c 0xff. For instance, \c 0xff000000 for
+ * a black background. Then, subsequent surfaces would use a transparent
+ * background color.
+ */
+typedef struct _VAProcPipelineParameterBuffer {
+    /**
+     * \brief Source surface ID.
+     *
+     * ID of the source surface to process. If subpictures are associated
+     * with the video surfaces then they shall be rendered to the target
+     * surface, if the #VA_PROC_PIPELINE_SUBPICTURES pipeline flag is set.
+     */
+    VASurfaceID         surface;
+    /**
+     * \brief Region within the source surface to be processed.
+     *
+     * Pointer to a #VARectangle defining the region within the source
+     * surface to be processed. If NULL, \c surface_region implies the
+     * whole surface.
+     */
+    const VARectangle  *surface_region;
+    /**
+     * \brief Requested input color primaries.
+     *
+     * Color primaries are implicitly converted throughout the processing
+     * pipeline. The video processor chooses the best moment to apply
+     * this conversion. The set of supported color primaries primaries
+     * for input shall be queried with vaQueryVideoProcPipelineCaps().
+     */
+    VAProcColorStandardType surface_color_standard;
+    /**
+     * \brief Region within the output surface.
+     *
+     * Pointer to a #VARectangle defining the region within the output
+     * surface that receives the processed pixels. If NULL, \c output_region
+     * implies the whole surface. 
+     *
+     * Note that any pixels residing outside the specified region will
+     * be filled in with the \ref output_background_color.
+     */
+    const VARectangle  *output_region;
+    /**
+     * \brief Background color.
+     *
+     * Background color used to fill in pixels that reside outside of the
+     * specified \ref output_region. The color is specified in ARGB format:
+     * [31:24] alpha, [23:16] red, [15:8] green, [7:0] blue.
+     *
+     * Unless the alpha value is zero or the \ref output_region represents
+     * the whole target surface size, implementations shall not render the
+     * source surface to the target surface directly. Rather, in order to
+     * maintain the exact semantics of \ref output_background_color, the
+     * driver shall use a temporary surface and fill it in with the
+     * appropriate background color. Next, the driver will blend this
+     * temporary surface into the target surface.
+     */
+    unsigned int        output_background_color;
+    /**
+     * \brief Requested output color primaries.
+     */
+    VAProcColorStandardType output_color_standard;
+    /**
+     * \brief Pipeline filters. See video pipeline flags.
+     *
+     * Flags to control the pipeline, like whether to apply subpictures
+     * or not, notify the driver that it can opt for power optimizations,
+     * should this be needed.
+     */
+    unsigned int        pipeline_flags;
+    /**
+     * \brief Extra filter flags. See vaPutSurface() flags.
+     *
+     * Filter flags are used as a fast path, wherever possible, to use
+     * vaPutSurface() flags instead of explicit filter parameter buffers.
+     *
+     * Allowed filter flags API-wise. Use vaQueryVideoProcPipelineCaps()
+     * to check for implementation details:
+     * - Bob-deinterlacing: \c VA_FRAME_PICTURE, \c VA_TOP_FIELD,
+     *   \c VA_BOTTOM_FIELD. Note that any deinterlacing filter
+     *   (#VAProcFilterDeinterlacing) will override those flags.
+     * - Color space conversion: \c VA_SRC_BT601, \c VA_SRC_BT709,
+     *   \c VA_SRC_SMPTE_240. 
+     * - Scaling: \c VA_FILTER_SCALING_DEFAULT, \c VA_FILTER_SCALING_FAST,
+     *   \c VA_FILTER_SCALING_HQ, \c VA_FILTER_SCALING_NL_ANAMORPHIC.
+     */
+    unsigned int        filter_flags;
+    /**
+     * \brief Array of filters to apply to the surface.
+     *
+     * The list of filters shall be ordered in the same way the driver expects
+     * them. i.e. as was returned from vaQueryVideoProcFilters().
+     * Otherwise, a #VA_STATUS_ERROR_INVALID_FILTER_CHAIN is returned
+     * from vaRenderPicture() with this buffer.
+     *
+     * #VA_STATUS_ERROR_UNSUPPORTED_FILTER is returned if the list
+     * contains an unsupported filter.
+     *
+     * Note: no filter buffer is destroyed after a call to vaRenderPicture(),
+     * only this pipeline buffer will be destroyed as per the core API
+     * specification. This allows for flexibility in re-using the filter for
+     * other surfaces to be processed.
+     */
+    VABufferID         *filters;
+    /** \brief Actual number of filters. */
+    unsigned int        num_filters;
+    /** \brief Array of forward reference frames. */
+    VASurfaceID        *forward_references;
+    /** \brief Number of forward reference frames that were supplied. */
+    unsigned int        num_forward_references;
+    /** \brief Array of backward reference frames. */
+    VASurfaceID        *backward_references;
+    /** \brief Number of backward reference frames that were supplied. */
+    unsigned int        num_backward_references;
+} VAProcPipelineParameterBuffer;
+
+/**
+ * \brief Filter parameter buffer base.
+ *
+ * This is a helper structure used by driver implementations only.
+ * Users are not supposed to allocate filter parameter buffers of this
+ * type.
+ */
+typedef struct _VAProcFilterParameterBufferBase {
+    /** \brief Filter type. */
+    VAProcFilterType    type;
+} VAProcFilterParameterBufferBase;
+
+/**
+ * \brief Default filter parametrization.
+ *
+ * Unless there is a filter-specific parameter buffer,
+ * #VAProcFilterParameterBuffer is the default type to use.
+ */
+typedef struct _VAProcFilterParameterBuffer {
+    /** \brief Filter type. */
+    VAProcFilterType    type;
+    /** \brief Value. */
+    float               value;
+} VAProcFilterParameterBuffer;
+
+/** @name De-interlacing flags */
+/**@{*/
+/** 
+ * \brief Bottom field first in the input frame. 
+ * if this is not set then assumes top field first.
+ */
+#define VA_DEINTERLACING_BOTTOM_FIELD_FIRST	0x0001
+/** 
+ * \brief Bottom field used in deinterlacing. 
+ * if this is not set then assumes top field is used.
+ */
+#define VA_DEINTERLACING_BOTTOM_FIELD		0x0002
+/** 
+ * \brief A single field is stored in the input frame. 
+ * if this is not set then assumes the frame contains two interleaved fields.
+ */
+#define VA_DEINTERLACING_ONE_FIELD		0x0004
+/**@}*/
+
+/** \brief Deinterlacing filter parametrization. */
+typedef struct _VAProcFilterParameterBufferDeinterlacing {
+    /** \brief Filter type. Shall be set to #VAProcFilterDeinterlacing. */
+    VAProcFilterType            type;
+    /** \brief Deinterlacing algorithm. */
+    VAProcDeinterlacingType     algorithm;
+    /** \brief Deinterlacing flags. */
+    unsigned int     		flags;
+} VAProcFilterParameterBufferDeinterlacing;
+
+/**
+ * \brief Color balance filter parametrization.
+ *
+ * This buffer defines color balance attributes. A VA buffer can hold
+ * several color balance attributes by creating a VA buffer of desired
+ * number of elements. This can be achieved by the following pseudo-code:
+ *
+ * \code
+ * enum { kHue, kSaturation, kBrightness, kContrast };
+ *
+ * // Initial color balance parameters
+ * static const VAProcFilterParameterBufferColorBalance colorBalanceParams[4] =
+ * {
+ *     [kHue] =
+ *         { VAProcFilterColorBalance, VAProcColorBalanceHue, 0.5 },
+ *     [kSaturation] =
+ *         { VAProcFilterColorBalance, VAProcColorBalanceSaturation, 0.5 },
+ *     [kBrightness] =
+ *         { VAProcFilterColorBalance, VAProcColorBalanceBrightness, 0.5 },
+ *     [kSaturation] =
+ *         { VAProcFilterColorBalance, VAProcColorBalanceSaturation, 0.5 }
+ * };
+ *
+ * // Create buffer
+ * VABufferID colorBalanceBuffer;
+ * vaCreateBuffer(va_dpy, vpp_ctx,
+ *     VAProcFilterParameterBufferType, sizeof(*pColorBalanceParam), 4,
+ *     colorBalanceParams,
+ *     &colorBalanceBuffer
+ * );
+ *
+ * VAProcFilterParameterBufferColorBalance *pColorBalanceParam;
+ * vaMapBuffer(va_dpy, colorBalanceBuffer, &pColorBalanceParam);
+ * {
+ *     // Change brightness only
+ *     pColorBalanceBuffer[kBrightness].value = 0.75;
+ * }
+ * vaUnmapBuffer(va_dpy, colorBalanceBuffer);
+ * \endcode
+ */
+typedef struct _VAProcFilterParameterBufferColorBalance {
+    /** \brief Filter type. Shall be set to #VAProcFilterColorBalance. */
+    VAProcFilterType            type;
+    /** \brief Color balance attribute. */
+    VAProcColorBalanceType      attrib;
+    /**
+     * \brief Color balance value.
+     *
+     * Special case for automatically adjusted attributes. e.g. 
+     * #VAProcColorBalanceAutoSaturation,
+     * #VAProcColorBalanceAutoBrightness,
+     * #VAProcColorBalanceAutoContrast.
+     * - If \ref value is \c 1.0 +/- \c FLT_EPSILON, the attribute is
+     *   automatically adjusted and overrides any other attribute of
+     *   the same type that would have been set explicitly;
+     * - If \ref value is \c 0.0 +/- \c FLT_EPSILON, the attribute is
+     *   disabled and other attribute of the same type is used instead.
+     */
+    float                       value;
+} VAProcFilterParameterBufferColorBalance;
+
+/**
+ * \brief Default filter cap specification (single range value).
+ *
+ * Unless there is a filter-specific cap structure, #VAProcFilterCap is the
+ * default type to use for output caps from vaQueryVideoProcFilterCaps().
+ */
+typedef struct _VAProcFilterCap {
+    /** \brief Range of supported values for the filter. */
+    VAProcFilterValueRange      range;
+} VAProcFilterCap;
+
+/** \brief Capabilities specification for the deinterlacing filter. */
+typedef struct _VAProcFilterCapDeinterlacing {
+    /** \brief Deinterlacing algorithm. */
+    VAProcDeinterlacingType     type;
+} VAProcFilterCapDeinterlacing;
+
+/** \brief Capabilities specification for the color balance filter. */
+typedef struct _VAProcFilterCapColorBalance {
+    /** \brief Color balance operation. */
+    VAProcColorBalanceType      type;
+    /** \brief Range of supported values for the specified operation. */
+    VAProcFilterValueRange      range;
+} VAProcFilterCapColorBalance;
+
+/**
+ * \brief Queries video processing filters.
+ *
+ * This function returns the list of video processing filters supported
+ * by the driver. The \c filters array is allocated by the user and
+ * \c num_filters shall be initialized to the number of allocated
+ * elements in that array. Upon successful return, the actual number
+ * of filters will be overwritten into \c num_filters. Otherwise,
+ * \c VA_STATUS_ERROR_MAX_NUM_EXCEEDED is returned and \c num_filters
+ * is adjusted to the number of elements that would be returned if enough
+ * space was available.
+ *
+ * The list of video processing filters supported by the driver shall
+ * be ordered in the way they can be iteratively applied. This is needed
+ * for both correctness, i.e. some filters would not mean anything if
+ * applied at the beginning of the pipeline; but also for performance
+ * since some filters can be applied in a single pass (e.g. noise
+ * reduction + deinterlacing).
+ *
+ * @param[in] dpy               the VA display
+ * @param[in] context           the video processing context
+ * @param[out] filters          the output array of #VAProcFilterType elements
+ * @param[in,out] num_filters the number of elements allocated on input,
+ *      the number of elements actually filled in on output
+ */
+VAStatus
+vaQueryVideoProcFilters(
+    VADisplay           dpy,
+    VAContextID         context,
+    VAProcFilterType   *filters,
+    unsigned int       *num_filters
+);
+
+/**
+ * \brief Queries video filter capabilities.
+ *
+ * This function returns the list of capabilities supported by the driver
+ * for a specific video filter. The \c filter_caps array is allocated by
+ * the user and \c num_filter_caps shall be initialized to the number
+ * of allocated elements in that array. Upon successful return, the
+ * actual number of filters will be overwritten into \c num_filter_caps.
+ * Otherwise, \c VA_STATUS_ERROR_MAX_NUM_EXCEEDED is returned and
+ * \c num_filter_caps is adjusted to the number of elements that would be
+ * returned if enough space was available.
+ *
+ * @param[in] dpy               the VA display
+ * @param[in] context           the video processing context
+ * @param[in] type              the video filter type
+ * @param[out] filter_caps      the output array of #VAProcFilterCap elements
+ * @param[in,out] num_filter_caps the number of elements allocated on input,
+ *      the number of elements actually filled in output
+ */
+VAStatus
+vaQueryVideoProcFilterCaps(
+    VADisplay           dpy,
+    VAContextID         context,
+    VAProcFilterType    type,
+    void               *filter_caps,
+    unsigned int       *num_filter_caps
+);
+
+/**
+ * \brief Queries video processing pipeline capabilities.
+ *
+ * This function returns the video processing pipeline capabilities. The
+ * \c filters array defines the video processing pipeline and is an array
+ * of buffers holding filter parameters.
+ *
+ * Note: the #VAProcPipelineCaps structure contains user-provided arrays.
+ * If non-NULL, the corresponding \c num_* fields shall be filled in on
+ * input with the number of elements allocated. Upon successful return,
+ * the actual number of elements will be overwritten into the \c num_*
+ * fields. Otherwise, \c VA_STATUS_ERROR_MAX_NUM_EXCEEDED is returned
+ * and \c num_* fields are adjusted to the number of elements that would
+ * be returned if enough space was available.
+ *
+ * @param[in] dpy               the VA display
+ * @param[in] context           the video processing context
+ * @param[in] filters           the array of VA buffers defining the video
+ *      processing pipeline
+ * @param[in] num_filters       the number of elements in filters
+ * @param[in,out] pipeline_caps the video processing pipeline capabilities
+ */
+VAStatus
+vaQueryVideoProcPipelineCaps(
+    VADisplay           dpy,
+    VAContextID         context,
+    VABufferID         *filters,
+    unsigned int        num_filters,
+    VAProcPipelineCaps *pipeline_caps
+);
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_VPP_H */
diff --git a/examples/thirdparty/libva/va/va_x11.h b/examples/thirdparty/libva/va/va_x11.h
new file mode 100644
index 0000000..c9be38d
--- /dev/null
+++ b/examples/thirdparty/libva/va/va_x11.h
@@ -0,0 +1,70 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+#ifndef _VA_X11_H_
+#define _VA_X11_H_
+
+#include <va/va.h>
+#include <X11/Xlib.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Returns a suitable VADisplay for VA API
+ */
+VADisplay vaGetDisplay (
+    Display *dpy
+);
+
+/*
+ * Output rendering
+ * Following is the rendering interface for X windows, 
+ * to get the decode output surface to a X drawable
+ * It basically performs a de-interlacing (if needed), 
+ * color space conversion and scaling to the destination
+ * rectangle
+ */
+VAStatus vaPutSurface (
+    VADisplay dpy,
+    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 destination clip list */
+    unsigned int number_cliprects, /* number of clip rects in the clip list */
+    unsigned int flags /* PutSurface flags */
+);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VA_X11_H_ */
diff --git a/examples/thirdparty/libva/va/wayland/Makefile.am b/examples/thirdparty/libva/va/wayland/Makefile.am
new file mode 100644
index 0000000..ca6c594
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/Makefile.am
@@ -0,0 +1,66 @@
+# Copyright (C) 2012 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.
+
+SUBDIRS = protocol
+
+AM_CPPFLAGS = \
+	-DLINUX			\
+	-I$(top_srcdir)		\
+	-I$(top_srcdir)/va	\
+	$(WAYLAND_CFLAGS)	\
+	$(DRM_CFLAGS)		\
+	$(NULL)
+
+source_c = \
+	va_wayland.c		\
+	va_wayland_drm.c	\
+	va_wayland_emgd.c	\
+	$(top_srcdir)/va/drm/va_drm_utils.c \
+	$(NULL)
+
+source_h = \
+	va_backend_wayland.h	\
+	va_wayland.h		\
+	$(NULL)
+
+source_h_priv = \
+	va_wayland_drm.h	\
+	va_wayland_emgd.h	\
+	va_wayland_private.h	\
+	$(NULL)
+
+protocol_source_h = \
+	wayland-drm-client-protocol.h	\
+	$(NULL)
+
+noinst_LTLIBRARIES		= libva_wayland.la
+libva_waylandincludedir		= ${includedir}/va
+libva_waylandinclude_HEADERS	= $(source_h)
+libva_wayland_la_SOURCES	= $(source_c) $(protocol_source_h)
+noinst_HEADERS			= $(source_h_priv)
+
+# Wayland protocol
+va_wayland_drm.c: $(protocol_source_h)
+ at wayland_scanner_rules@
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/examples/thirdparty/libva/va/wayland/protocol/Makefile.am b/examples/thirdparty/libva/va/wayland/protocol/Makefile.am
new file mode 100644
index 0000000..614d8a4
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/protocol/Makefile.am
@@ -0,0 +1,28 @@
+# Copyright (C) 2012 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.
+
+EXTRA_DIST = \
+	wayland-drm.xml		\
+	$(NULL)
+
+# Extra clean files so that maintainer-clean removes *everything*
+MAINTAINERCLEANFILES = Makefile.in
diff --git a/examples/thirdparty/libva/va/wayland/protocol/wayland-drm.xml b/examples/thirdparty/libva/va/wayland/protocol/wayland-drm.xml
new file mode 100644
index 0000000..265d4f8
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/protocol/wayland-drm.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="drm">
+
+  <copyright>
+    Copyright © 2008-2011 Kristian Høgsberg
+    Copyright © 2010-2011 Intel Corporation
+
+    Permission to use, copy, modify, distribute, and sell this
+    software and its documentation for any purpose is hereby granted
+    without fee, provided that\n the above copyright notice appear in
+    all copies and that both that copyright notice and this permission
+    notice appear in supporting documentation, and that the name of
+    the copyright holders not be used in advertising or publicity
+    pertaining to distribution of the software without specific,
+    written prior permission.  The copyright holders make no
+    representations about the suitability of this software for any
+    purpose.  It is provided "as is" without express or implied
+    warranty.
+
+    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+    THIS SOFTWARE.
+  </copyright>
+
+  <!-- drm support. This object is created by the server and published
+       using the display's global event. -->
+  <interface name="wl_drm" version="1">
+    <enum name="error">
+      <entry name="authenticate_fail" value="0"/>
+      <entry name="invalid_format" value="1"/>
+      <entry name="invalid_name" value="2"/>
+    </enum>
+
+    <enum name="format">
+      <!-- The drm format codes match the #defines in drm_fourcc.h.
+           The formats actually supported by the compositor will be
+           reported by the format event. -->
+      <entry name="c8" value="0x20203843"/>
+      <entry name="rgb332" value="0x38424752"/>
+      <entry name="bgr233" value="0x38524742"/>
+      <entry name="xrgb4444" value="0x32315258"/>
+      <entry name="xbgr4444" value="0x32314258"/>
+      <entry name="rgbx4444" value="0x32315852"/>
+      <entry name="bgrx4444" value="0x32315842"/>
+      <entry name="argb4444" value="0x32315241"/>
+      <entry name="abgr4444" value="0x32314241"/>
+      <entry name="rgba4444" value="0x32314152"/>
+      <entry name="bgra4444" value="0x32314142"/>
+      <entry name="xrgb1555" value="0x35315258"/>
+      <entry name="xbgr1555" value="0x35314258"/>
+      <entry name="rgbx5551" value="0x35315852"/>
+      <entry name="bgrx5551" value="0x35315842"/>
+      <entry name="argb1555" value="0x35315241"/>
+      <entry name="abgr1555" value="0x35314241"/>
+      <entry name="rgba5551" value="0x35314152"/>
+      <entry name="bgra5551" value="0x35314142"/>
+      <entry name="rgb565" value="0x36314752"/>
+      <entry name="bgr565" value="0x36314742"/>
+      <entry name="rgb888" value="0x34324752"/>
+      <entry name="bgr888" value="0x34324742"/>
+      <entry name="xrgb8888" value="0x34325258"/>
+      <entry name="xbgr8888" value="0x34324258"/>
+      <entry name="rgbx8888" value="0x34325852"/>
+      <entry name="bgrx8888" value="0x34325842"/>
+      <entry name="argb8888" value="0x34325241"/>
+      <entry name="abgr8888" value="0x34324241"/>
+      <entry name="rgba8888" value="0x34324152"/>
+      <entry name="bgra8888" value="0x34324142"/>
+      <entry name="xrgb2101010" value="0x30335258"/>
+      <entry name="xbgr2101010" value="0x30334258"/>
+      <entry name="rgbx1010102" value="0x30335852"/>
+      <entry name="bgrx1010102" value="0x30335842"/>
+      <entry name="argb2101010" value="0x30335241"/>
+      <entry name="abgr2101010" value="0x30334241"/>
+      <entry name="rgba1010102" value="0x30334152"/>
+      <entry name="bgra1010102" value="0x30334142"/>
+      <entry name="yuyv" value="0x56595559"/>
+      <entry name="yvyu" value="0x55595659"/>
+      <entry name="uyvy" value="0x59565955"/>
+      <entry name="vyuy" value="0x59555956"/>
+      <entry name="ayuv" value="0x56555941"/>
+      <entry name="nv12" value="0x3231564e"/>
+      <entry name="nv21" value="0x3132564e"/>
+      <entry name="nv16" value="0x3631564e"/>
+      <entry name="nv61" value="0x3136564e"/>
+      <entry name="yuv410" value="0x39565559"/>
+      <entry name="yvu410" value="0x39555659"/>
+      <entry name="yuv411" value="0x31315559"/>
+      <entry name="yvu411" value="0x31315659"/>
+      <entry name="yuv420" value="0x32315559"/>
+      <entry name="yvu420" value="0x32315659"/>
+      <entry name="yuv422" value="0x36315559"/>
+      <entry name="yvu422" value="0x36315659"/>
+      <entry name="yuv444" value="0x34325559"/>
+      <entry name="yvu444" value="0x34325659"/>
+    </enum>
+
+    <!-- Call this request with the magic received from drmGetMagic().
+         It will be passed on to the drmAuthMagic() or
+         DRIAuthConnection() call.  This authentication must be
+         completed before create_buffer could be used. -->
+    <request name="authenticate">
+      <arg name="id" type="uint"/>
+    </request>
+
+    <!-- Create a wayland buffer for the named DRM buffer.  The DRM
+         surface must have a name using the flink ioctl -->
+    <request name="create_buffer">
+      <arg name="id" type="new_id" interface="wl_buffer"/>
+      <arg name="name" type="uint"/>
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
+      <arg name="stride" type="uint"/>
+      <arg name="format" type="uint"/>
+    </request>
+
+    <!-- Create a wayland buffer for the named DRM buffer.  The DRM
+         surface must have a name using the flink ioctl -->
+    <request name="create_planar_buffer">
+      <arg name="id" type="new_id" interface="wl_buffer"/>
+      <arg name="name" type="uint"/>
+      <arg name="width" type="int"/>
+      <arg name="height" type="int"/>
+      <arg name="format" type="uint"/>
+      <arg name="offset0" type="int"/>
+      <arg name="stride0" type="int"/>
+      <arg name="offset1" type="int"/>
+      <arg name="stride1" type="int"/>
+      <arg name="offset2" type="int"/>
+      <arg name="stride2" type="int"/>
+    </request>
+
+    <!-- Notification of the path of the drm device which is used by
+         the server.  The client should use this device for creating
+         local buffers.  Only buffers created from this device should
+         be be passed to the server using this drm object's
+         create_buffer request. -->
+    <event name="device">
+      <arg name="name" type="string"/>
+    </event>
+
+    <event name="format">
+      <arg name="format" type="uint"/>
+    </event>
+
+    <!-- Raised if the authenticate request succeeded -->
+    <event name="authenticated"/>
+  </interface>
+
+</protocol>
diff --git a/examples/thirdparty/libva/va/wayland/va_backend_wayland.h b/examples/thirdparty/libva/va/wayland/va_backend_wayland.h
new file mode 100644
index 0000000..b33e3a1
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/va_backend_wayland.h
@@ -0,0 +1,65 @@
+/*
+ * va_backend_wayland.h - VA driver implementation hooks for Wayland
+ *
+ * Copyright (c) 2012 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 INTEL 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 VA_BACKEND_WAYLAND_H
+#define VA_BACKEND_WAYLAND_H
+
+#include <va/va.h>
+#include <wayland-client.h>
+
+/** \brief VA/Wayland API version. */
+#define VA_WAYLAND_API_VERSION  (0x574c4400) /* WLD0 */
+
+/* Forward declarations */
+struct VADriverContext;
+
+/** \brief VA/Wayland implementation hooks. */
+struct VADriverVTableWayland {
+    /**
+     * \brief Interface version.
+     *
+     * Implementations shall set this field to \ref VA_WAYLAND_API_VERSION.
+     */
+    unsigned int version;
+
+    /** \brief Hook to return Wayland buffer associated with the VA surface. */
+    VAStatus (*vaGetSurfaceBufferWl)(
+        struct VADriverContext *ctx,
+        VASurfaceID             surface,
+        unsigned int            flags,
+        struct wl_buffer      **out_buffer
+    );
+
+    /** \brief Hook to return Wayland buffer associated with the VA image. */
+    VAStatus (*vaGetImageBufferWl)(
+        struct VADriverContext *ctx,
+        VAImageID               image,
+        unsigned int            flags,
+        struct wl_buffer      **out_buffer
+    );
+};
+
+#endif /* VA_BACKEND_WAYLAND_H */
diff --git a/examples/thirdparty/libva/va/wayland/va_wayland.c b/examples/thirdparty/libva/va/wayland/va_wayland.c
new file mode 100644
index 0000000..88a841f
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/va_wayland.c
@@ -0,0 +1,194 @@
+/*
+ * va_wayland.c - Wayland API
+ *
+ * Copyright (c) 2012 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 INTEL 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 "sysdeps.h"
+#include <stdarg.h>
+#include "va_wayland.h"
+#include "va_wayland_drm.h"
+#include "va_wayland_emgd.h"
+#include "va_wayland_private.h"
+#include "va_backend.h"
+#include "va_backend_wayland.h"
+
+static inline VADriverContextP
+get_driver_context(VADisplay dpy)
+{
+    if (!vaDisplayIsValid(dpy))
+        return NULL;
+    return ((VADisplayContextP)dpy)->pDriverContext;
+}
+
+void
+va_wayland_error(const char *format, ...)
+{
+    va_list args;
+
+    va_start(args, format);
+    fprintf(stderr, "VA error: wayland: ");
+    vfprintf(stderr, format, args);
+    fprintf(stderr, "\n");
+    va_end(args);
+}
+
+static int
+va_DisplayContextIsValid(VADisplayContextP pDisplayContext)
+{
+    VADriverContextP const pDriverContext = pDisplayContext->pDriverContext;
+
+    return (pDriverContext &&
+            pDriverContext->display_type == VA_DISPLAY_WAYLAND);
+}
+
+static void
+va_DisplayContextDestroy(VADisplayContextP pDisplayContext)
+{
+    VADriverContextP pDriverContext;
+    VADisplayContextWaylandP pDisplayContextWl;
+
+    if (!pDisplayContext)
+        return;
+
+    pDisplayContextWl = pDisplayContext->opaque;
+    if (pDisplayContextWl && pDisplayContextWl->destroy)
+        pDisplayContextWl->destroy(pDisplayContext);
+
+    pDriverContext = pDisplayContext->pDriverContext;
+    if (pDriverContext) {
+        free(pDriverContext->vtable_wayland);
+        pDriverContext->vtable_wayland = NULL;
+        free(pDriverContext);
+        pDisplayContext->pDriverContext = NULL;
+    }
+
+    free(pDisplayContext->opaque);
+    pDisplayContext->opaque = NULL;
+    free(pDisplayContext);
+}
+
+static VAStatus
+va_DisplayContextGetDriverName(VADisplayContextP pDisplayContext, char **name)
+{
+    *name = NULL;
+    return VA_STATUS_ERROR_UNKNOWN;
+}
+
+/* -------------------------------------------------------------------------- */
+/* --- Public interface                                                   --- */
+/* -------------------------------------------------------------------------- */
+
+struct va_wayland_backend {
+    VADisplayContextCreateFunc  create;
+    VADisplayContextDestroyFunc destroy;
+};
+
+static const struct va_wayland_backend g_backends[] = {
+    { va_wayland_drm_create,
+      va_wayland_drm_destroy },
+    { va_wayland_emgd_create,
+      va_wayland_emgd_destroy },
+    { NULL, }
+};
+
+VADisplay
+vaGetDisplayWl(struct wl_display *display)
+{
+    VADisplayContextP pDisplayContext = NULL;
+    VADriverContextP pDriverContext;
+    struct VADriverVTableWayland *vtable;
+    unsigned int i;
+
+    pDisplayContext = calloc(1, sizeof(*pDisplayContext));
+    if (!pDisplayContext)
+        return NULL;
+
+    pDisplayContext->vadpy_magic        = VA_DISPLAY_MAGIC;
+    pDisplayContext->vaIsValid          = va_DisplayContextIsValid;
+    pDisplayContext->vaDestroy          = va_DisplayContextDestroy;
+    pDisplayContext->vaGetDriverName    = va_DisplayContextGetDriverName;
+
+    pDriverContext = calloc(1, sizeof(*pDriverContext));
+    if (!pDriverContext)
+        goto error;
+    pDisplayContext->pDriverContext     = pDriverContext;
+
+    pDriverContext->native_dpy          = display;
+    pDriverContext->display_type        = VA_DISPLAY_WAYLAND;
+
+    vtable = calloc(1, sizeof(*vtable));
+    if (!vtable)
+        goto error;
+    pDriverContext->vtable_wayland      = vtable;
+
+    vtable->version                     = VA_WAYLAND_API_VERSION;
+
+    for (i = 0; g_backends[i].create != NULL; i++) {
+        if (g_backends[i].create(pDisplayContext))
+            break;
+        g_backends[i].destroy(pDisplayContext);
+    }
+
+    return (VADisplay)pDisplayContext;
+
+error:
+    va_DisplayContextDestroy(pDisplayContext);
+    return NULL;
+}
+
+VAStatus
+vaGetSurfaceBufferWl(
+    VADisplay           dpy,
+    VASurfaceID         surface,
+    unsigned int        flags,
+    struct wl_buffer  **out_buffer
+)
+{
+    VADriverContextP const ctx = get_driver_context(dpy);
+
+    if (!ctx)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+    if (!ctx->vtable_wayland || !ctx->vtable_wayland->vaGetSurfaceBufferWl)
+        return VA_STATUS_ERROR_UNIMPLEMENTED;
+    return ctx->vtable_wayland->vaGetSurfaceBufferWl(ctx, surface, flags,
+                                                     out_buffer);
+}
+
+VAStatus
+vaGetImageBufferWl(
+    VADisplay           dpy,
+    VAImageID           image,
+    unsigned int        flags,
+    struct wl_buffer  **out_buffer
+)
+{
+    VADriverContextP const ctx = get_driver_context(dpy);
+
+    if (!ctx)
+        return VA_STATUS_ERROR_INVALID_DISPLAY;
+    if (!ctx->vtable_wayland || !ctx->vtable_wayland->vaGetImageBufferWl)
+        return VA_STATUS_ERROR_UNIMPLEMENTED;
+    return ctx->vtable_wayland->vaGetImageBufferWl(ctx, image, flags,
+                                                   out_buffer);
+}
diff --git a/examples/thirdparty/libva/va/wayland/va_wayland.h b/examples/thirdparty/libva/va/wayland/va_wayland.h
new file mode 100644
index 0000000..46fbf2c
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/va_wayland.h
@@ -0,0 +1,131 @@
+/*
+ * va_wayland.h - Wayland API
+ *
+ * Copyright (c) 2012 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 INTEL 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 VA_WAYLAND_H
+#define VA_WAYLAND_H
+
+#include <va/va.h>
+#include <wayland-client.h>
+
+/**
+ * \file va_wayland.h
+ * \brief The Wayland rendering API
+ *
+ * This file contains the \ref api_wayland "Wayland rendering API".
+ */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \defgroup api_wayland Wayland rendering API
+ *
+ * @{
+ *
+ * Theory of operations:
+ * - Create a VA display for an active Wayland display ;
+ * - Perform normal VA-API operations, e.g. decode to a VA surface ;
+ * - Get wl_buffer associated to the VA surface ;
+ * - Attach wl_buffer to wl_surface ;
+ */
+
+/**
+ * \brief Returns a VA display wrapping the specified Wayland display.
+ *
+ * This functions returns a (possibly cached) VA display from the
+ * specified Wayland @display.
+ *
+ * @param[in]   display         the native Wayland display
+ * @return the VA display
+ */
+VADisplay
+vaGetDisplayWl(struct wl_display *display);
+
+/**
+ * \brief Returns the Wayland buffer associated with a VA surface.
+ *
+ * This function returns a wl_buffer handle that can be used as an
+ * argument to wl_surface_attach(). This buffer references the
+ * underlying VA @surface. As such, the VA @surface and Wayland
+ * @out_buffer have the same size and color format. Should specific
+ * color conversion be needed, then VA/VPP API can fulfill this
+ * purpose.
+ *
+ * The @flags describe the desired picture structure. This is useful
+ * to expose a de-interlaced buffer. If the VA driver does not support
+ * any of the supplied flags, then #VA_STATUS_ERROR_FLAG_NOT_SUPPORTED
+ * is returned. The following flags are allowed: \c VA_FRAME_PICTURE,
+ * \c VA_TOP_FIELD, \c VA_BOTTOM_FIELD.
+ *
+ * @param[in]   dpy         the VA display
+ * @param[in]   surface     the VA surface
+ * @param[in]   flags       the deinterlacing flags
+ * @param[out]  out_buffer  a wl_buffer wrapping the VA @surface
+ * @return VA_STATUS_SUCCESS if successful
+ */
+VAStatus
+vaGetSurfaceBufferWl(
+    VADisplay           dpy,
+    VASurfaceID         surface,
+    unsigned int        flags,
+    struct wl_buffer  **out_buffer
+);
+
+/**
+ * \brief Returns the Wayland buffer associated with a VA image.
+ *
+ * This function returns a wl_buffer handle that can be used as an
+ * argument to wl_surface_attach(). This buffer references the
+ * underlying VA @image. As such, the VA @image and Wayland
+ * @out_buffer have the same size and color format. Should specific
+ * color conversion be needed, then VA/VPP API can fulfill this
+ * purpose.
+ *
+ * The @flags describe the desired picture structure. See
+ * vaGetSurfaceBufferWl() description for more details.
+ *
+ * @param[in]   dpy         the VA display
+ * @param[in]   image       the VA image
+ * @param[in]   flags       the deinterlacing flags
+ * @param[out]  out_buffer  a wl_buffer wrapping the VA @image
+ * @return VA_STATUS_SUCCESS if successful
+ */
+VAStatus
+vaGetImageBufferWl(
+    VADisplay           dpy,
+    VAImageID           image,
+    unsigned int        flags,
+    struct wl_buffer  **out_buffer
+);
+
+/**@}*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* VA_WAYLAND_H */
diff --git a/examples/thirdparty/libva/va/wayland/va_wayland_drm.c b/examples/thirdparty/libva/va/wayland/va_wayland_drm.c
new file mode 100644
index 0000000..d292316
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/va_wayland_drm.c
@@ -0,0 +1,223 @@
+/*
+ * va_wayland_drm.c - Wayland/DRM helpers
+ *
+ * Copyright (c) 2012 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 INTEL 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 "sysdeps.h"
+#include <unistd.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <dlfcn.h>
+#include <sys/stat.h>
+#include <xf86drm.h>
+#include "va_drmcommon.h"
+#include "drm/va_drm_utils.h"
+#include "va_wayland_drm.h"
+#include "va_wayland_private.h"
+#include "wayland-drm-client-protocol.h"
+
+/* XXX: Wayland/DRM support currently lives in Mesa libEGL.so.* library */
+#define LIBWAYLAND_DRM_NAME "libEGL.so.1"
+
+typedef struct va_wayland_drm_context {
+    struct va_wayland_context   base;
+    void                       *handle;
+    struct wl_drm              *drm;
+    struct wl_registry         *registry;
+    void                       *drm_interface;
+    unsigned int                is_authenticated        : 1;
+} VADisplayContextWaylandDRM;
+
+static void
+drm_handle_device(void *data, struct wl_drm *drm, const char *device)
+{
+    VADisplayContextP const pDisplayContext = data;
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+    VADisplayContextWaylandDRM * const wl_drm_ctx = pDisplayContext->opaque;
+    struct drm_state * const drm_state = ctx->drm_state;
+    drm_magic_t magic;
+    struct stat st;
+
+    if (stat(device, &st) < 0) {
+        va_wayland_error("failed to identify %s: %s (errno %d)",
+                         device, strerror(errno), errno);
+        return;
+    }
+
+    if (!S_ISCHR(st.st_mode)) {
+        va_wayland_error("%s is not a device", device);
+        return;
+    }
+
+    drm_state->fd = open(device, O_RDWR);
+    if (drm_state->fd < 0) {
+        va_wayland_error("failed to open %s: %s (errno %d)",
+                         device, strerror(errno), errno);
+        return;
+    }
+
+    drmGetMagic(drm_state->fd, &magic);
+    wl_drm_authenticate(wl_drm_ctx->drm, magic);
+}
+
+static void
+drm_handle_format(void *data, struct wl_drm *drm, uint32_t format)
+{
+}
+
+static void
+drm_handle_authenticated(void *data, struct wl_drm *drm)
+{
+    VADisplayContextP const pDisplayContext = data;
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+    VADisplayContextWaylandDRM * const wl_drm_ctx = pDisplayContext->opaque;
+    struct drm_state * const drm_state = ctx->drm_state;
+
+    wl_drm_ctx->is_authenticated = 1;
+    drm_state->auth_type         = VA_DRM_AUTH_CUSTOM;
+}
+
+static const struct wl_drm_listener drm_listener = {
+    drm_handle_device,
+    drm_handle_format,
+    drm_handle_authenticated
+};
+
+static VAStatus
+va_DisplayContextGetDriverName(
+    VADisplayContextP pDisplayContext,
+    char            **driver_name_ptr
+)
+{
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+
+    return VA_DRM_GetDriverName(ctx, driver_name_ptr);
+}
+
+void
+va_wayland_drm_destroy(VADisplayContextP pDisplayContext)
+{
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+    struct va_wayland_drm_context * const wl_drm_ctx = pDisplayContext->opaque;
+    struct drm_state * const drm_state = ctx->drm_state;
+
+    if (wl_drm_ctx->drm) {
+        wl_drm_destroy(wl_drm_ctx->drm);
+        wl_drm_ctx->drm = NULL;
+    }
+    wl_drm_ctx->is_authenticated = 0;
+
+    if (wl_drm_ctx->handle) {
+        dlclose(wl_drm_ctx->handle);
+        wl_drm_ctx->handle = NULL;
+    }
+
+    if (drm_state) {
+        if (drm_state->fd >= 0) {
+            close(drm_state->fd);
+            drm_state->fd = -1;
+        }
+        free(ctx->drm_state);
+        ctx->drm_state = NULL;
+    }
+}
+
+static void
+registry_handle_global(
+    void               *data,
+    struct wl_registry *registry,
+    uint32_t            id,
+    const char         *interface,
+    uint32_t            version
+)
+{
+    struct va_wayland_drm_context *wl_drm_ctx = data;
+
+    if (strcmp(interface, "wl_drm") == 0) {
+        wl_drm_ctx->drm =
+            wl_registry_bind(wl_drm_ctx->registry, id, wl_drm_ctx->drm_interface, 1);
+    }
+}
+
+static const struct wl_registry_listener registry_listener = {
+    registry_handle_global,
+    NULL,
+};
+
+bool
+va_wayland_drm_create(VADisplayContextP pDisplayContext)
+{
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+    struct va_wayland_drm_context *wl_drm_ctx;
+    struct drm_state *drm_state;
+    uint32_t id;
+
+    wl_drm_ctx = malloc(sizeof(*wl_drm_ctx));
+    if (!wl_drm_ctx)
+        return false;
+    wl_drm_ctx->base.destroy            = va_wayland_drm_destroy;
+    wl_drm_ctx->handle                  = NULL;
+    wl_drm_ctx->drm                     = NULL;
+    wl_drm_ctx->drm_interface           = NULL;
+    wl_drm_ctx->is_authenticated        = 0;
+    pDisplayContext->opaque             = wl_drm_ctx;
+    pDisplayContext->vaGetDriverName    = va_DisplayContextGetDriverName;
+
+    drm_state = calloc(1, sizeof(struct drm_state));
+    if (!drm_state)
+        return false;
+    drm_state->fd        = -1;
+    drm_state->auth_type = 0;
+    ctx->drm_state       = drm_state;
+
+    wl_drm_ctx->handle = dlopen(LIBWAYLAND_DRM_NAME, RTLD_LAZY|RTLD_LOCAL);
+    if (!wl_drm_ctx->handle)
+        return false;
+
+    wl_drm_ctx->drm_interface =
+        dlsym(wl_drm_ctx->handle, "wl_drm_interface");
+    if (!wl_drm_ctx->drm_interface)
+        return false;
+
+    wl_drm_ctx->registry = wl_display_get_registry(ctx->native_dpy);
+    wl_registry_add_listener(wl_drm_ctx->registry, &registry_listener, wl_drm_ctx);
+    wl_display_roundtrip(ctx->native_dpy);
+
+    /* registry_handle_global should have been called by the
+     * wl_display_roundtrip above
+     */
+
+    if (!wl_drm_ctx->drm)
+        return false;
+
+    wl_drm_add_listener(wl_drm_ctx->drm, &drm_listener, pDisplayContext);
+    wl_display_roundtrip(ctx->native_dpy);
+    if (drm_state->fd < 0)
+        return false;
+
+    wl_display_roundtrip(ctx->native_dpy);
+    if (!wl_drm_ctx->is_authenticated)
+        return false;
+    return true;
+}
diff --git a/examples/thirdparty/libva/va/wayland/va_wayland_drm.h b/examples/thirdparty/libva/va/wayland/va_wayland_drm.h
new file mode 100644
index 0000000..6fb8f52
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/va_wayland_drm.h
@@ -0,0 +1,52 @@
+/*
+ * va_wayland_drm.h - Wayland/DRM helpers
+ *
+ * Copyright (c) 2012 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 INTEL 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 VA_WAYLAND_DRM_H
+#define VA_WAYLAND_DRM_H
+
+#include <stdbool.h>
+#include "va_wayland.h"
+#include "va_backend.h"
+#include "va_backend_wayland.h"
+
+/**
+ * \brief Initializes Wayland/DRM layer.
+ *
+ * This is an internal function used to initialize the VA/DRM subsystem
+ * if the application is running on a DRM-based server.
+ *
+ * @param[in]   pDisplayContext the VA display context
+ * @return true if successful
+ */
+DLL_HIDDEN
+bool
+va_wayland_drm_create(VADisplayContextP pDisplayContext);
+
+DLL_HIDDEN
+void
+va_wayland_drm_destroy(VADisplayContextP pDisplayContext);
+
+#endif /* VA_WAYLAND_DRM_H */
diff --git a/examples/thirdparty/libva/va/wayland/va_wayland_emgd.c b/examples/thirdparty/libva/va/wayland/va_wayland_emgd.c
new file mode 100644
index 0000000..cb885d1
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/va_wayland_emgd.c
@@ -0,0 +1,157 @@
+/*
+ * va_wayland_emgd.c - Wayland/EMGD helpers
+ *
+ * Copyright (c) 2012 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 INTEL 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 "sysdeps.h"
+#include <unistd.h>
+#include <dlfcn.h>
+#include "va_drmcommon.h"
+#include "va_wayland_emgd.h"
+#include "va_wayland_private.h"
+
+/* XXX: Wayland/EMGD support currently lives in libwayland-emgd.so.* library */
+#define LIBWAYLAND_EMGD_NAME "libwayland-emgd.so.1"
+
+typedef struct va_wayland_emgd_context {
+    struct va_wayland_context   base;
+    void                       *handle;
+    struct wl_emgd             *emgd;
+    void                       *emgd_interface;
+    unsigned int                is_created      : 1;
+    struct wl_registry         *registry;
+} VADisplayContextWaylandEMGD;
+
+static inline void
+wl_emgd_destroy(struct wl_emgd *emgd)
+{
+    wl_proxy_destroy((struct wl_proxy *)emgd);
+}
+
+static VAStatus
+va_DisplayContextGetDriverName(
+    VADisplayContextP pDisplayContext,
+    char            **driver_name_ptr
+)
+{
+    *driver_name_ptr = strdup("emgd");
+    return VA_STATUS_SUCCESS;
+}
+
+void
+va_wayland_emgd_destroy(VADisplayContextP pDisplayContext)
+{
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+    VADisplayContextWaylandEMGD * const wl_emgd_ctx = pDisplayContext->opaque;
+    struct drm_state * const drm_state = ctx->drm_state;
+
+    if (wl_emgd_ctx->emgd) {
+        wl_emgd_destroy(wl_emgd_ctx->emgd);
+        wl_emgd_ctx->emgd = NULL;
+    }
+    wl_emgd_ctx->is_created = 0;
+
+    if (wl_emgd_ctx->handle) {
+        dlclose(wl_emgd_ctx->handle);
+        wl_emgd_ctx->handle = NULL;
+    }
+
+    if (drm_state) {
+        if (drm_state->fd >= 0) {
+            close(drm_state->fd);
+            drm_state->fd = -1;
+        }
+        free(ctx->drm_state);
+        ctx->drm_state = NULL;
+    }
+}
+
+static void
+registry_handle_global(
+    void               *data,
+    struct wl_registry *registry,
+    uint32_t            id,
+    const char         *interface,
+    uint32_t            version
+)
+{
+    VADisplayContextWaylandEMGD *wl_emgd_ctx = data;
+
+    if (strcmp(interface, "wl_emgd") == 0) {
+        wl_emgd_ctx->emgd =
+            wl_registry_bind(registry, id, wl_emgd_ctx->emgd_interface, 1);
+    }
+}
+
+static const struct wl_registry_listener registry_listener = {
+    registry_handle_global,
+    NULL,
+};
+
+bool
+va_wayland_emgd_create(VADisplayContextP pDisplayContext)
+{
+    VADriverContextP const ctx = pDisplayContext->pDriverContext;
+    VADisplayContextWaylandEMGD *wl_emgd_ctx;
+    struct drm_state *drm_state;
+    uint32_t id;
+
+    wl_emgd_ctx = malloc(sizeof(*wl_emgd_ctx));
+    if (!wl_emgd_ctx)
+        return false;
+    wl_emgd_ctx->base.destroy           = va_wayland_emgd_destroy;
+    wl_emgd_ctx->handle                 = NULL;
+    wl_emgd_ctx->emgd                   = NULL;
+    wl_emgd_ctx->emgd_interface         = NULL;
+    wl_emgd_ctx->is_created             = 0;
+    pDisplayContext->opaque             = wl_emgd_ctx;
+    pDisplayContext->vaGetDriverName    = va_DisplayContextGetDriverName;
+
+    drm_state = calloc(1, sizeof(struct drm_state));
+    if (!drm_state)
+        return false;
+    drm_state->fd        = -1;
+    drm_state->auth_type = 0;
+    ctx->drm_state       = drm_state;
+
+    wl_emgd_ctx->handle = dlopen(LIBWAYLAND_EMGD_NAME, RTLD_LAZY|RTLD_LOCAL);
+    if (!wl_emgd_ctx->handle)
+        return false;
+
+    wl_emgd_ctx->emgd_interface =
+        dlsym(wl_emgd_ctx->handle, "wl_emgd_interface");
+    if (!wl_emgd_ctx->emgd_interface)
+        return false;
+
+    wl_emgd_ctx->registry = wl_display_get_registry(ctx->native_dpy);
+    wl_registry_add_listener(wl_emgd_ctx->registry, &registry_listener, wl_emgd_ctx);
+    wl_display_roundtrip(ctx->native_dpy);
+
+    /* registry_handle_global should have been called by the
+     * wl_display_roundtrip above
+     */
+    if (!wl_emgd_ctx->emgd)
+        return false;
+    return true;
+}
diff --git a/examples/thirdparty/libva/va/wayland/va_wayland_emgd.h b/examples/thirdparty/libva/va/wayland/va_wayland_emgd.h
new file mode 100644
index 0000000..053b6b4
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/va_wayland_emgd.h
@@ -0,0 +1,52 @@
+/*
+ * va_wayland_emgd.h - Wayland/EMGD helpers
+ *
+ * Copyright (c) 2012 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 INTEL 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 VA_WAYLAND_EMGD_H
+#define VA_WAYLAND_EMGD_H
+
+#include <stdbool.h>
+#include "va_wayland.h"
+#include "va_backend.h"
+#include "va_backend_wayland.h"
+
+/**
+ * \brief Initializes Wayland/EMGD layer.
+ *
+ * This is an internal function used to initialize the VA/EMGD subsystem
+ * if the application is running on an EMGD-based server.
+ *
+ * @param[in]   pDisplayContext the VA display context
+ * @return true if successful
+ */
+DLL_HIDDEN
+bool
+va_wayland_emgd_create(VADisplayContextP pDisplayContext);
+
+DLL_HIDDEN
+void
+va_wayland_emgd_destroy(VADisplayContextP pDisplayContext);
+
+#endif /* VA_WAYLAND_EMGD_H */
diff --git a/examples/thirdparty/libva/va/wayland/va_wayland_private.h b/examples/thirdparty/libva/va/wayland/va_wayland_private.h
new file mode 100644
index 0000000..f09f4b7
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/va_wayland_private.h
@@ -0,0 +1,44 @@
+/*
+ * va_wayland_private.h - Wayland private API
+ *
+ * Copyright (c) 2012 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 INTEL 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 VA_WAYLAND_PRIVATE_H
+#define VA_WAYLAND_PRIVATE_H
+
+struct va_wayland_context;
+
+typedef bool (*VADisplayContextCreateFunc)(VADisplayContextP pDisplayContext);
+typedef void (*VADisplayContextDestroyFunc)(VADisplayContextP pDisplayContext);
+
+/* VA/Wayland base display context */
+typedef struct va_wayland_context {
+    VADisplayContextDestroyFunc destroy;
+} VADisplayContextWayland, *VADisplayContextWaylandP;
+
+DLL_HIDDEN
+void
+va_wayland_error(const char *format, ...);
+
+#endif /* VA_WAYLAND_PRIVATE_H */
diff --git a/examples/thirdparty/libva/va/wayland/wayland-drm-client-protocol.h b/examples/thirdparty/libva/va/wayland/wayland-drm-client-protocol.h
new file mode 100644
index 0000000..cba188e
--- /dev/null
+++ b/examples/thirdparty/libva/va/wayland/wayland-drm-client-protocol.h
@@ -0,0 +1,213 @@
+/* 
+ * Copyright © 2008-2011 Kristian Høgsberg
+ * Copyright © 2010-2011 Intel Corporation
+ * 
+ * Permission to use, copy, modify, distribute, and sell this
+ * software and its documentation for any purpose is hereby granted
+ * without fee, provided that\n the above copyright notice appear in
+ * all copies and that both that copyright notice and this permission
+ * notice appear in supporting documentation, and that the name of
+ * the copyright holders not be used in advertising or publicity
+ * pertaining to distribution of the software without specific,
+ * written prior permission.  The copyright holders make no
+ * representations about the suitability of this software for any
+ * purpose.  It is provided "as is" without express or implied
+ * warranty.
+ * 
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
+ * ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+ * THIS SOFTWARE.
+ */
+
+#ifndef DRM_CLIENT_PROTOCOL_H
+#define DRM_CLIENT_PROTOCOL_H
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+#include <stdint.h>
+#include <stddef.h>
+#include "wayland-client.h"
+
+struct wl_client;
+struct wl_resource;
+
+struct wl_drm;
+
+extern const struct wl_interface wl_drm_interface;
+
+#ifndef WL_DRM_ERROR_ENUM
+#define WL_DRM_ERROR_ENUM
+enum wl_drm_error {
+	WL_DRM_ERROR_AUTHENTICATE_FAIL = 0,
+	WL_DRM_ERROR_INVALID_FORMAT = 1,
+	WL_DRM_ERROR_INVALID_NAME = 2,
+};
+#endif /* WL_DRM_ERROR_ENUM */
+
+#ifndef WL_DRM_FORMAT_ENUM
+#define WL_DRM_FORMAT_ENUM
+enum wl_drm_format {
+	WL_DRM_FORMAT_C8 = 0x20203843,
+	WL_DRM_FORMAT_RGB332 = 0x38424752,
+	WL_DRM_FORMAT_BGR233 = 0x38524742,
+	WL_DRM_FORMAT_XRGB4444 = 0x32315258,
+	WL_DRM_FORMAT_XBGR4444 = 0x32314258,
+	WL_DRM_FORMAT_RGBX4444 = 0x32315852,
+	WL_DRM_FORMAT_BGRX4444 = 0x32315842,
+	WL_DRM_FORMAT_ARGB4444 = 0x32315241,
+	WL_DRM_FORMAT_ABGR4444 = 0x32314241,
+	WL_DRM_FORMAT_RGBA4444 = 0x32314152,
+	WL_DRM_FORMAT_BGRA4444 = 0x32314142,
+	WL_DRM_FORMAT_XRGB1555 = 0x35315258,
+	WL_DRM_FORMAT_XBGR1555 = 0x35314258,
+	WL_DRM_FORMAT_RGBX5551 = 0x35315852,
+	WL_DRM_FORMAT_BGRX5551 = 0x35315842,
+	WL_DRM_FORMAT_ARGB1555 = 0x35315241,
+	WL_DRM_FORMAT_ABGR1555 = 0x35314241,
+	WL_DRM_FORMAT_RGBA5551 = 0x35314152,
+	WL_DRM_FORMAT_BGRA5551 = 0x35314142,
+	WL_DRM_FORMAT_RGB565 = 0x36314752,
+	WL_DRM_FORMAT_BGR565 = 0x36314742,
+	WL_DRM_FORMAT_RGB888 = 0x34324752,
+	WL_DRM_FORMAT_BGR888 = 0x34324742,
+	WL_DRM_FORMAT_XRGB8888 = 0x34325258,
+	WL_DRM_FORMAT_XBGR8888 = 0x34324258,
+	WL_DRM_FORMAT_RGBX8888 = 0x34325852,
+	WL_DRM_FORMAT_BGRX8888 = 0x34325842,
+	WL_DRM_FORMAT_ARGB8888 = 0x34325241,
+	WL_DRM_FORMAT_ABGR8888 = 0x34324241,
+	WL_DRM_FORMAT_RGBA8888 = 0x34324152,
+	WL_DRM_FORMAT_BGRA8888 = 0x34324142,
+	WL_DRM_FORMAT_XRGB2101010 = 0x30335258,
+	WL_DRM_FORMAT_XBGR2101010 = 0x30334258,
+	WL_DRM_FORMAT_RGBX1010102 = 0x30335852,
+	WL_DRM_FORMAT_BGRX1010102 = 0x30335842,
+	WL_DRM_FORMAT_ARGB2101010 = 0x30335241,
+	WL_DRM_FORMAT_ABGR2101010 = 0x30334241,
+	WL_DRM_FORMAT_RGBA1010102 = 0x30334152,
+	WL_DRM_FORMAT_BGRA1010102 = 0x30334142,
+	WL_DRM_FORMAT_YUYV = 0x56595559,
+	WL_DRM_FORMAT_YVYU = 0x55595659,
+	WL_DRM_FORMAT_UYVY = 0x59565955,
+	WL_DRM_FORMAT_VYUY = 0x59555956,
+	WL_DRM_FORMAT_AYUV = 0x56555941,
+	WL_DRM_FORMAT_NV12 = 0x3231564e,
+	WL_DRM_FORMAT_NV21 = 0x3132564e,
+	WL_DRM_FORMAT_NV16 = 0x3631564e,
+	WL_DRM_FORMAT_NV61 = 0x3136564e,
+	WL_DRM_FORMAT_YUV410 = 0x39565559,
+	WL_DRM_FORMAT_YVU410 = 0x39555659,
+	WL_DRM_FORMAT_YUV411 = 0x31315559,
+	WL_DRM_FORMAT_YVU411 = 0x31315659,
+	WL_DRM_FORMAT_YUV420 = 0x32315559,
+	WL_DRM_FORMAT_YVU420 = 0x32315659,
+	WL_DRM_FORMAT_YUV422 = 0x36315559,
+	WL_DRM_FORMAT_YVU422 = 0x36315659,
+	WL_DRM_FORMAT_YUV444 = 0x34325559,
+	WL_DRM_FORMAT_YVU444 = 0x34325659,
+};
+#endif /* WL_DRM_FORMAT_ENUM */
+
+struct wl_drm_listener {
+	/**
+	 * device - device
+	 * @name: name
+	 */
+	void (*device)(void *data,
+		       struct wl_drm *wl_drm,
+		       const char *name);
+	/**
+	 * format - format
+	 * @format: format
+	 */
+	void (*format)(void *data,
+		       struct wl_drm *wl_drm,
+		       uint32_t format);
+	/**
+	 * authenticated - authenticated
+	 */
+	void (*authenticated)(void *data,
+			      struct wl_drm *wl_drm);
+};
+
+static inline int
+wl_drm_add_listener(struct wl_drm *wl_drm,
+		    const struct wl_drm_listener *listener, void *data)
+{
+	return wl_proxy_add_listener((struct wl_proxy *) wl_drm,
+				     (void (**)(void)) listener, data);
+}
+
+#define WL_DRM_AUTHENTICATE	0
+#define WL_DRM_CREATE_BUFFER	1
+#define WL_DRM_CREATE_PLANAR_BUFFER	2
+
+static inline void
+wl_drm_set_user_data(struct wl_drm *wl_drm, void *user_data)
+{
+	wl_proxy_set_user_data((struct wl_proxy *) wl_drm, user_data);
+}
+
+static inline void *
+wl_drm_get_user_data(struct wl_drm *wl_drm)
+{
+	return wl_proxy_get_user_data((struct wl_proxy *) wl_drm);
+}
+
+static inline void
+wl_drm_destroy(struct wl_drm *wl_drm)
+{
+	wl_proxy_destroy((struct wl_proxy *) wl_drm);
+}
+
+static inline void
+wl_drm_authenticate(struct wl_drm *wl_drm, uint32_t id)
+{
+	wl_proxy_marshal((struct wl_proxy *) wl_drm,
+			 WL_DRM_AUTHENTICATE, id);
+}
+
+static inline struct wl_buffer *
+wl_drm_create_buffer(struct wl_drm *wl_drm, uint32_t name, int32_t width, int32_t height, uint32_t stride, uint32_t format)
+{
+	struct wl_proxy *id;
+
+	id = wl_proxy_create((struct wl_proxy *) wl_drm,
+			     &wl_buffer_interface);
+	if (!id)
+		return NULL;
+
+	wl_proxy_marshal((struct wl_proxy *) wl_drm,
+			 WL_DRM_CREATE_BUFFER, id, name, width, height, stride, format);
+
+	return (struct wl_buffer *) id;
+}
+
+static inline struct wl_buffer *
+wl_drm_create_planar_buffer(struct wl_drm *wl_drm, uint32_t name, int32_t width, int32_t height, uint32_t format, int32_t offset0, int32_t stride0, int32_t offset1, int32_t stride1, int32_t offset2, int32_t stride2)
+{
+	struct wl_proxy *id;
+
+	id = wl_proxy_create((struct wl_proxy *) wl_drm,
+			     &wl_buffer_interface);
+	if (!id)
+		return NULL;
+
+	wl_proxy_marshal((struct wl_proxy *) wl_drm,
+			 WL_DRM_CREATE_PLANAR_BUFFER, id, name, width, height, format, offset0, stride0, offset1, stride1, offset2, stride2);
+
+	return (struct wl_buffer *) id;
+}
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif
diff --git a/examples/thirdparty/libva/va/x11/Makefile.am b/examples/thirdparty/libva/va/x11/Makefile.am
new file mode 100644
index 0000000..0853016
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/Makefile.am
@@ -0,0 +1,58 @@
+# Copyright (c) 2007 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.
+
+AM_CPPFLAGS = \
+	-DLINUX			\
+	-I$(top_srcdir)		\
+	-I$(top_srcdir)/va	\
+	$(X11_CFLAGS)		\
+	$(XEXT_CFLAGS)		\
+	$(XFIXES_CFLAGS)	\
+	$(DRM_CFLAGS)		\
+	$(NULL)
+
+source_c = \
+	dri2_util.c		\
+	va_dri2.c		\
+	va_dricommon.c		\
+	va_fglrx.c		\
+	va_nvctrl.c		\
+	va_x11.c		\
+	$(NULL)
+
+source_h = \
+	va_dri2.h		\
+	va_dricommon.h		\
+	$(NULL)
+
+source_h_priv = \
+	va_dri2str.h		\
+	va_dri2tokens.h		\
+	va_fglrx.h		\
+	va_nvctrl.h		\
+	$(NULL)
+
+noinst_LTLIBRARIES		= libva_x11.la	
+libva_x11includedir		= ${includedir}/va
+libva_x11include_HEADERS	= $(source_h)
+libva_x11_la_SOURCES		= $(source_c)
+noinst_HEADERS			= $(source_h_priv)
diff --git a/examples/thirdparty/libva/va/x11/dri2_util.c b/examples/thirdparty/libva/va/x11/dri2_util.c
new file mode 100644
index 0000000..9f0dc76
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/dri2_util.c
@@ -0,0 +1,239 @@
+/*
+ * Copyright (c) 2012 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 <stdlib.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <assert.h>
+
+#include <xf86drm.h>
+
+#include <X11/Xlibint.h>
+#include <X11/Xlib.h>
+#include "va.h"
+#include "va_backend.h"
+
+#include "va_dri2.h"
+#include "va_dri2tokens.h"
+#include "va_dricommon.h"
+
+#define __DRI_BUFFER_FRONT_LEFT         0
+#define __DRI_BUFFER_BACK_LEFT          1
+#define __DRI_BUFFER_FRONT_RIGHT        2
+#define __DRI_BUFFER_BACK_RIGHT         3
+#define __DRI_BUFFER_DEPTH              4
+#define __DRI_BUFFER_STENCIL            5
+#define __DRI_BUFFER_ACCUM              6
+#define __DRI_BUFFER_FAKE_FRONT_LEFT    7
+#define __DRI_BUFFER_FAKE_FRONT_RIGHT   8
+
+struct dri2_drawable 
+{
+    struct dri_drawable base;
+    union dri_buffer buffers[5];
+    int width;
+    int height;
+    int has_backbuffer;
+    int back_index;
+    int front_index;
+};
+
+static int gsDRI2SwapAvailable;
+
+static struct dri_drawable * 
+dri2CreateDrawable(VADriverContextP ctx, XID x_drawable)
+{
+    struct dri2_drawable *dri2_drawable;
+
+    dri2_drawable = calloc(1, sizeof(*dri2_drawable));
+
+    if (!dri2_drawable)
+        return NULL;
+
+    dri2_drawable->base.x_drawable = x_drawable;
+    dri2_drawable->base.x = 0;
+    dri2_drawable->base.y = 0;
+    VA_DRI2CreateDrawable(ctx->native_dpy, x_drawable);
+
+    return &dri2_drawable->base;
+}
+
+static void 
+dri2DestroyDrawable(VADriverContextP ctx, struct dri_drawable *dri_drawable)
+{
+    VA_DRI2DestroyDrawable(ctx->native_dpy, dri_drawable->x_drawable);
+    free(dri_drawable);
+}
+
+static void 
+dri2SwapBuffer(VADriverContextP ctx, struct dri_drawable *dri_drawable)
+{
+    struct dri2_drawable *dri2_drawable = (struct dri2_drawable *)dri_drawable;
+    XRectangle xrect;
+    XserverRegion region;
+
+    if (dri2_drawable->has_backbuffer) {
+        if (gsDRI2SwapAvailable) {
+            CARD64 ret;
+            VA_DRI2SwapBuffers(ctx->native_dpy, dri_drawable->x_drawable, 0, 0,
+                               0, &ret);
+        } else {
+            xrect.x = 0;
+            xrect.y = 0;
+            xrect.width = dri2_drawable->width;
+            xrect.height = dri2_drawable->height;
+
+            region = XFixesCreateRegion(ctx->native_dpy, &xrect, 1);
+            VA_DRI2CopyRegion(ctx->native_dpy, dri_drawable->x_drawable, region,
+                              DRI2BufferFrontLeft, DRI2BufferBackLeft);
+            XFixesDestroyRegion(ctx->native_dpy, region);
+        }
+    }
+}
+
+static union dri_buffer *
+dri2GetRenderingBuffer(VADriverContextP ctx, struct dri_drawable *dri_drawable)
+{
+    struct dri2_drawable *dri2_drawable = (struct dri2_drawable *)dri_drawable;
+    int i;
+    int count;
+    unsigned int attachments[5];
+    VA_DRI2Buffer *buffers;
+    
+    i = 0;
+    if (dri_drawable->is_window)
+        attachments[i++] = __DRI_BUFFER_BACK_LEFT;
+    else
+        attachments[i++] = __DRI_BUFFER_FRONT_LEFT;
+
+    buffers = VA_DRI2GetBuffers(ctx->native_dpy, dri_drawable->x_drawable,
+			     &dri2_drawable->width, &dri2_drawable->height, 
+                             attachments, i, &count);
+    assert(buffers);
+    if (buffers == NULL)
+        return NULL;
+
+    dri2_drawable->has_backbuffer = 0;
+
+    for (i = 0; i < count; i++) {
+        dri2_drawable->buffers[i].dri2.attachment = buffers[i].attachment;
+        dri2_drawable->buffers[i].dri2.name = buffers[i].name;
+        dri2_drawable->buffers[i].dri2.pitch = buffers[i].pitch;
+        dri2_drawable->buffers[i].dri2.cpp = buffers[i].cpp;
+        dri2_drawable->buffers[i].dri2.flags = buffers[i].flags;
+        
+        if (buffers[i].attachment == __DRI_BUFFER_BACK_LEFT) {
+            dri2_drawable->has_backbuffer = 1;
+            dri2_drawable->back_index = i;
+        }
+
+        if (buffers[i].attachment == __DRI_BUFFER_FRONT_LEFT)
+            dri2_drawable->front_index = i;
+    }
+    
+    dri_drawable->width = dri2_drawable->width;
+    dri_drawable->height = dri2_drawable->height;
+    Xfree(buffers);
+
+    if (dri2_drawable->has_backbuffer)
+        return &dri2_drawable->buffers[dri2_drawable->back_index];
+
+    return &dri2_drawable->buffers[dri2_drawable->front_index];
+}
+
+static void
+dri2Close(VADriverContextP ctx)
+{
+    struct dri_state *dri_state = (struct dri_state *)ctx->drm_state;
+
+    free_drawable_hashtable(ctx);
+
+    if (dri_state->base.fd >= 0);
+	close(dri_state->base.fd);
+}
+
+Bool 
+isDRI2Connected(VADriverContextP ctx, char **driver_name)
+{
+    struct dri_state *dri_state = (struct dri_state *)ctx->drm_state;
+    int major, minor;
+    int error_base;
+    int event_base;
+    char *device_name = NULL;
+    drm_magic_t magic;        
+    *driver_name = NULL;
+    dri_state->base.fd = -1;
+    dri_state->base.auth_type = VA_NONE;
+    if (!VA_DRI2QueryExtension(ctx->native_dpy, &event_base, &error_base))
+        goto err_out;
+
+    if (!VA_DRI2QueryVersion(ctx->native_dpy, &major, &minor))
+        goto err_out;
+
+
+    if (!VA_DRI2Connect(ctx->native_dpy, RootWindow(ctx->native_dpy, ctx->x11_screen),
+                     driver_name, &device_name))
+        goto err_out;
+
+    dri_state->base.fd = open(device_name, O_RDWR);
+    assert(dri_state->base.fd >= 0);
+
+    if (dri_state->base.fd < 0)
+        goto err_out;
+
+    if (drmGetMagic(dri_state->base.fd, &magic))
+        goto err_out;
+
+    if (!VA_DRI2Authenticate(ctx->native_dpy, RootWindow(ctx->native_dpy, ctx->x11_screen),
+                          magic))
+        goto err_out;
+
+    dri_state->base.auth_type = VA_DRI2;
+    dri_state->createDrawable = dri2CreateDrawable;
+    dri_state->destroyDrawable = dri2DestroyDrawable;
+    dri_state->swapBuffer = dri2SwapBuffer;
+    dri_state->getRenderingBuffer = dri2GetRenderingBuffer;
+    dri_state->close = dri2Close;
+    gsDRI2SwapAvailable = (minor >= 2);
+
+    if (device_name)
+        Xfree(device_name);
+
+    return True;
+
+err_out:
+    if (device_name)
+        Xfree(device_name);
+
+    if (*driver_name)
+        Xfree(*driver_name);
+
+    if (dri_state->base.fd >= 0)
+        close(dri_state->base.fd);
+
+    *driver_name = NULL;
+    dri_state->base.fd = -1;
+    
+    return False;
+}
+
diff --git a/examples/thirdparty/libva/va/x11/va_dri2.c b/examples/thirdparty/libva/va/x11/va_dri2.c
new file mode 100644
index 0000000..b4a4398
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_dri2.c
@@ -0,0 +1,428 @@
+/*
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Soft-
+ * ware"), to deal in the Software without restriction, including without
+ * limitation the rights to use, copy, modify, merge, publish, distribute,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, provided that the above copyright
+ * notice(s) and this permission notice appear in all copies of the Soft-
+ * ware and that both the above copyright notice(s) and this permission
+ * notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+ * MANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization of
+ * the copyright holder.
+ *
+ * Authors:
+ *   Kristian Høgsberg (krh at redhat.com)
+ */
+
+
+#define NEED_REPLIES
+#include <X11/Xlibint.h>
+#include <X11/extensions/Xext.h>
+#include <X11/extensions/extutil.h>
+#include "xf86drm.h"
+#include "va_dri2.h"
+#include "va_dri2str.h"
+#include "va_dri2tokens.h"
+
+#ifndef DRI2DriverDRI
+#define DRI2DriverDRI 0
+#endif
+
+static int
+VA_DRI2Error(Display *dpy, xError *err, XExtCodes *codes, int *ret_code);
+
+static VA_DRI2Buffer *
+VA_DRI2GetBuffers_internal(XExtDisplayInfo *info,
+                           Display *dpy, XID drawable,
+                           int *width, int *height,
+                           unsigned int *attachments,
+                           int count,
+                           int *outCount);
+
+static char va_dri2ExtensionName[] = DRI2_NAME;
+static XExtensionInfo _va_dri2_info_data;
+static XExtensionInfo *va_dri2Info = &_va_dri2_info_data;
+static XEXT_GENERATE_CLOSE_DISPLAY (VA_DRI2CloseDisplay, va_dri2Info)
+static /* const */ XExtensionHooks va_dri2ExtensionHooks = {
+    NULL,				/* create_gc */
+    NULL,				/* copy_gc */
+    NULL,				/* flush_gc */
+    NULL,				/* free_gc */
+    NULL,				/* create_font */
+    NULL,				/* free_font */
+    VA_DRI2CloseDisplay,		/* close_display */
+    NULL,				/* wire_to_event */
+    NULL,				/* event_to_wire */
+    VA_DRI2Error,			/* error */
+    NULL,				/* error_string */
+};
+
+static XEXT_GENERATE_FIND_DISPLAY (DRI2FindDisplay, va_dri2Info, 
+				   va_dri2ExtensionName, 
+				   &va_dri2ExtensionHooks, 
+				   0, NULL)
+
+static CARD32 _va_resource_x_error_drawable = 0;
+static Bool   _va_resource_x_error_matched = False;
+
+#define VA_EnterResourceError(drawable)                 \
+  do {                                                  \
+    _va_resource_x_error_drawable = (drawable);         \
+    _va_resource_x_error_matched = False;               \
+  } while (0)
+
+#define VA_LeaveResourceError()                 \
+  do {                                          \
+    _va_resource_x_error_drawable = 0;          \
+  } while (0)
+
+#define VA_ResourceErrorMatched()               \
+  (_va_resource_x_error_matched)
+
+static int
+VA_DRI2Error(Display *dpy, xError *err, XExtCodes *codes, int *ret_code)
+{
+    if (_va_resource_x_error_drawable == err->resourceID) {
+      _va_resource_x_error_matched = True;
+      return True;
+    }
+
+    return False;
+}
+
+Bool VA_DRI2QueryExtension(Display *dpy, int *eventBase, int *errorBase)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+
+    if (XextHasExtension(info)) {
+	*eventBase = info->codes->first_event;
+	*errorBase = info->codes->first_error;
+	return True;
+    }
+
+    return False;
+}
+
+Bool VA_DRI2QueryVersion(Display *dpy, int *major, int *minor)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay (dpy);
+    xDRI2QueryVersionReply rep;
+    xDRI2QueryVersionReq *req;
+
+    XextCheckExtension (dpy, info, va_dri2ExtensionName, False);
+
+    LockDisplay(dpy);
+    GetReq(DRI2QueryVersion, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2QueryVersion;
+    req->majorVersion = DRI2_MAJOR;
+    req->minorVersion = DRI2_MINOR;
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+    *major = rep.majorVersion;
+    *minor = rep.minorVersion;
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return True;
+}
+
+Bool VA_DRI2Connect(Display *dpy, XID window,
+		 char **driverName, char **deviceName)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2ConnectReply rep;
+    xDRI2ConnectReq *req;
+
+    XextCheckExtension (dpy, info, va_dri2ExtensionName, False);
+
+    LockDisplay(dpy);
+    GetReq(DRI2Connect, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2Connect;
+    req->window = window;
+    req->driverType = DRI2DriverDRI;
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+
+    if (rep.driverNameLength == 0 && rep.deviceNameLength == 0) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+
+    *driverName = Xmalloc(rep.driverNameLength + 1);
+    if (*driverName == NULL) {
+	_XEatData(dpy, 
+		  ((rep.driverNameLength + 3) & ~3) +
+		  ((rep.deviceNameLength + 3) & ~3));
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+    _XReadPad(dpy, *driverName, rep.driverNameLength);
+    (*driverName)[rep.driverNameLength] = '\0';
+
+    *deviceName = Xmalloc(rep.deviceNameLength + 1);
+    if (*deviceName == NULL) {
+	Xfree(*driverName);
+	_XEatData(dpy, ((rep.deviceNameLength + 3) & ~3));
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+    _XReadPad(dpy, *deviceName, rep.deviceNameLength);
+    (*deviceName)[rep.deviceNameLength] = '\0';
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return True;
+}
+
+Bool VA_DRI2Authenticate(Display *dpy, XID window, drm_magic_t magic)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2AuthenticateReq *req;
+    xDRI2AuthenticateReply rep;
+
+    XextCheckExtension (dpy, info, va_dri2ExtensionName, False);
+
+    LockDisplay(dpy);
+    GetReq(DRI2Authenticate, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2Authenticate;
+    req->window = window;
+    req->magic = magic;
+
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return False;
+    }
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return rep.authenticated;
+}
+
+void VA_DRI2CreateDrawable(Display *dpy, XID drawable)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2CreateDrawableReq *req;
+
+    XextSimpleCheckExtension (dpy, info, va_dri2ExtensionName);
+
+    LockDisplay(dpy);
+    GetReq(DRI2CreateDrawable, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2CreateDrawable;
+    req->drawable = drawable;
+    UnlockDisplay(dpy);
+    SyncHandle();
+}
+
+void VA_DRI2DestroyDrawable(Display *dpy, XID drawable)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2DestroyDrawableReq *req;
+    unsigned int attachement = 0; // FRONT_LEFT
+    VA_DRI2Buffer *buffers;
+
+    XextSimpleCheckExtension (dpy, info, va_dri2ExtensionName);
+
+    XSync(dpy, False);
+
+    LockDisplay(dpy);
+    /*
+     * We have no way of catching DRI2DestroyDrawable errors because
+     * this message doesn't have a defined answer. So we test whether
+     * the drawable is still alive by sending DRIGetBuffers first and
+     * checking whether we get an error.
+     */
+    VA_EnterResourceError(drawable);
+
+    buffers = VA_DRI2GetBuffers_internal(info, dpy, drawable,
+                                         NULL, NULL,
+                                         &attachement, 1, NULL);
+    VA_LeaveResourceError();
+    if (buffers)
+      XFree(buffers);
+    if (VA_ResourceErrorMatched()) {
+      UnlockDisplay(dpy);
+      SyncHandle();
+      return;
+    }
+
+    GetReq(DRI2DestroyDrawable, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2DestroyDrawable;
+    req->drawable = drawable;
+    UnlockDisplay(dpy);
+    SyncHandle();
+}
+
+VA_DRI2Buffer *VA_DRI2GetBuffers_internal(XExtDisplayInfo *info,
+                                          Display *dpy, XID drawable,
+                                          int *width, int *height,
+                                          unsigned int *attachments, int count,
+                                          int *outCount)
+{
+    xDRI2GetBuffersReply rep;
+    xDRI2GetBuffersReq *req;
+    VA_DRI2Buffer *buffers;
+    xDRI2Buffer repBuffer;
+    CARD32 *p;
+    int i;
+
+    GetReqExtra(DRI2GetBuffers, count * 4, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2GetBuffers;
+    req->drawable = drawable;
+    req->count = count;
+    p = (CARD32 *) &req[1];
+    for (i = 0; i < count; i++)
+	p[i] = attachments[i];
+
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return NULL;
+    }
+
+    if (width)
+      *width = rep.width;
+    if (height)
+      *height = rep.height;
+    if (outCount)
+      *outCount = rep.count;
+
+    buffers = Xmalloc(rep.count * sizeof buffers[0]);
+    if (buffers == NULL) {
+	_XEatData(dpy, rep.count * sizeof repBuffer);
+	UnlockDisplay(dpy);
+	SyncHandle();
+	return NULL;
+    }
+
+    for (i = 0; i < rep.count; i++) {
+	_XReadPad(dpy, (char *) &repBuffer, sizeof repBuffer);
+	buffers[i].attachment = repBuffer.attachment;
+	buffers[i].name = repBuffer.name;
+	buffers[i].pitch = repBuffer.pitch;
+	buffers[i].cpp = repBuffer.cpp;
+	buffers[i].flags = repBuffer.flags;
+    }
+
+    return buffers;
+}
+
+VA_DRI2Buffer *VA_DRI2GetBuffers(Display *dpy, XID drawable,
+			   int *width, int *height,
+			   unsigned int *attachments, int count,
+			   int *outCount)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    VA_DRI2Buffer *buffers;
+
+    XextCheckExtension (dpy, info, va_dri2ExtensionName, False);
+
+    LockDisplay(dpy);
+
+    buffers = VA_DRI2GetBuffers_internal(info, dpy, drawable, width, height,
+                                         attachments, count, outCount);
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+
+    return buffers;
+}
+
+void VA_DRI2CopyRegion(Display *dpy, XID drawable, XserverRegion region,
+		    CARD32 dest, CARD32 src)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2CopyRegionReq *req;
+    xDRI2CopyRegionReply rep;
+
+    XextSimpleCheckExtension (dpy, info, va_dri2ExtensionName);
+
+    LockDisplay(dpy);
+    GetReq(DRI2CopyRegion, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2CopyRegion;
+    req->drawable = drawable;
+    req->region = region;
+    req->dest = dest;
+    req->src = src;
+
+    _XReply(dpy, (xReply *)&rep, 0, xFalse);
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+}
+
+static void
+load_swap_req(xDRI2SwapBuffersReq *req, CARD64 target, CARD64 divisor,
+              CARD64 remainder)
+{
+    req->target_msc_hi = target >> 32;
+    req->target_msc_lo = target & 0xffffffff;
+    req->divisor_hi = divisor >> 32;
+    req->divisor_lo = divisor & 0xffffffff;
+    req->remainder_hi = remainder >> 32;
+    req->remainder_lo = remainder & 0xffffffff;
+}
+
+static CARD64
+vals_to_card64(CARD32 lo, CARD32 hi)
+{
+    return (CARD64)hi << 32 | lo;
+}
+
+void VA_DRI2SwapBuffers(Display *dpy, XID drawable, CARD64 target_msc,
+                        CARD64 divisor, CARD64 remainder, CARD64 *count)
+{
+    XExtDisplayInfo *info = DRI2FindDisplay(dpy);
+    xDRI2SwapBuffersReq *req;
+    xDRI2SwapBuffersReply rep;
+
+    XextSimpleCheckExtension (dpy, info, va_dri2ExtensionName);
+
+    LockDisplay(dpy);
+    GetReq(DRI2SwapBuffers, req);
+    req->reqType = info->codes->major_opcode;
+    req->dri2ReqType = X_DRI2SwapBuffers;
+    req->drawable = drawable;
+    load_swap_req(req, target_msc, divisor, remainder);
+
+    _XReply(dpy, (xReply *)&rep, 0, xFalse);
+
+    *count = vals_to_card64(rep.swap_lo, rep.swap_hi);
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+}
diff --git a/examples/thirdparty/libva/va/x11/va_dri2.h b/examples/thirdparty/libva/va/x11/va_dri2.h
new file mode 100644
index 0000000..165f3fe
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_dri2.h
@@ -0,0 +1,73 @@
+/*
+ * Copyright © 2007,2008 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Soft-
+ * ware"), to deal in the Software without restriction, including without
+ * limitation the rights to use, copy, modify, merge, publish, distribute,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, provided that the above copyright
+ * notice(s) and this permission notice appear in all copies of the Soft-
+ * ware and that both the above copyright notice(s) and this permission
+ * notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+ * MANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization of
+ * the copyright holder.
+ *
+ * Authors:
+ *   Kristian Høgsberg (krh at redhat.com)
+ */
+
+#ifndef _VA_DRI2_H_
+#define _VA_DRI2_H_
+
+#include <X11/Xproto.h>
+#include <X11/extensions/Xfixes.h>
+#include <X11/Xfuncproto.h>
+#include <xf86drm.h>
+
+typedef struct {
+    unsigned int attachment;
+    unsigned int name;
+    unsigned int pitch;
+    unsigned int cpp;
+    unsigned int flags;
+} VA_DRI2Buffer;
+
+extern Bool
+VA_DRI2QueryExtension(Display *display, int *eventBase, int *errorBase);
+extern Bool
+VA_DRI2QueryVersion(Display *display, int *major, int *minor);
+extern Bool
+VA_DRI2Connect(Display *display, XID window,
+	    char **driverName, char **deviceName);
+extern Bool
+VA_DRI2Authenticate(Display *display, XID window, drm_magic_t magic);
+extern void
+VA_DRI2CreateDrawable(Display *display, XID drawable);
+extern void
+VA_DRI2DestroyDrawable(Display *display, XID handle);
+extern VA_DRI2Buffer *
+VA_DRI2GetBuffers(Display *dpy, XID drawable,
+	       int *width, int *height,
+	       unsigned int *attachments, int count,
+	       int *outCount);
+extern void
+VA_DRI2CopyRegion(Display *dpy, XID drawable, XserverRegion region,
+                  CARD32 dest, CARD32 src);
+extern void
+VA_DRI2SwapBuffers(Display *dpy, XID drawable, CARD64 target_msc, CARD64 divisor,
+                   CARD64 remainder, CARD64 *count);
+#endif
diff --git a/examples/thirdparty/libva/va/x11/va_dri2str.h b/examples/thirdparty/libva/va/x11/va_dri2str.h
new file mode 100644
index 0000000..1515eeb
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_dri2str.h
@@ -0,0 +1,227 @@
+/*
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Soft-
+ * ware"), to deal in the Software without restriction, including without
+ * limitation the rights to use, copy, modify, merge, publish, distribute,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, provided that the above copyright
+ * notice(s) and this permission notice appear in all copies of the Soft-
+ * ware and that both the above copyright notice(s) and this permission
+ * notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+ * MANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization of
+ * the copyright holder.
+ *
+ * Authors:
+ *   Kristian Høgsberg (krh at redhat.com)
+ */
+
+#ifndef _DRI2_PROTO_H_
+#define _DRI2_PROTO_H_
+
+#define DRI2_NAME			"DRI2"
+#define DRI2_MAJOR			1
+#define DRI2_MINOR			2
+
+#define DRI2NumberErrors		0
+#define DRI2NumberEvents		2
+#define DRI2NumberRequests		13
+
+#define X_DRI2QueryVersion		0
+#define X_DRI2Connect			1
+#define X_DRI2Authenticate		2
+#define X_DRI2CreateDrawable		3
+#define X_DRI2DestroyDrawable		4
+#define X_DRI2GetBuffers		5
+#define X_DRI2CopyRegion		6
+#define X_DRI2GetBuffersWithFormat	7
+#define X_DRI2SwapBuffers		8
+#define X_DRI2GetMSC			9
+#define X_DRI2WaitMSC			10
+#define X_DRI2WaitSBC			11
+#define X_DRI2SwapInterval		12
+
+typedef struct {
+    CARD32  attachment B32;
+    CARD32  name B32;
+    CARD32  pitch B32;
+    CARD32  cpp B32;
+    CARD32  flags B32;
+} xDRI2Buffer;
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  majorVersion B32;
+    CARD32  minorVersion B32;
+} xDRI2QueryVersionReq;
+#define sz_xDRI2QueryVersionReq   12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  majorVersion B32;
+    CARD32  minorVersion B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+} xDRI2QueryVersionReply;
+#define sz_xDRI2QueryVersionReply	32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  window B32;
+    CARD32  driverType B32;
+} xDRI2ConnectReq;
+#define sz_xDRI2ConnectReq	12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  driverNameLength B32;
+    CARD32  deviceNameLength B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+} xDRI2ConnectReply;
+#define sz_xDRI2ConnectReply	32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  window B32;
+    CARD32  magic B32;
+} xDRI2AuthenticateReq;
+#define sz_xDRI2AuthenticateReq   12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  authenticated B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+    CARD32  pad6 B32;
+} xDRI2AuthenticateReply;
+#define sz_xDRI2AuthenticateReply	32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+} xDRI2CreateDrawableReq;
+#define sz_xDRI2CreateDrawableReq   8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+} xDRI2DestroyDrawableReq;
+#define sz_xDRI2DestroyDrawableReq   8
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  count B32;
+} xDRI2GetBuffersReq;
+#define sz_xDRI2GetBuffersReq   12
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  width B32;
+    CARD32  height B32;
+    CARD32  count B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+} xDRI2GetBuffersReply;
+#define sz_xDRI2GetBuffersReply	32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  region B32;
+    CARD32  dest B32;
+    CARD32  src B32;
+} xDRI2CopyRegionReq;
+#define sz_xDRI2CopyRegionReq   20
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+    CARD32  pad6 B32;
+    CARD32  pad7 B32;
+} xDRI2CopyRegionReply;
+#define sz_xDRI2CopyRegionReply	32
+
+typedef struct {
+    CARD8   reqType;
+    CARD8   dri2ReqType;
+    CARD16  length B16;
+    CARD32  drawable B32;
+    CARD32  target_msc_hi B32;
+    CARD32  target_msc_lo B32;
+    CARD32  divisor_hi B32;
+    CARD32  divisor_lo B32;
+    CARD32  remainder_hi B32;
+    CARD32  remainder_lo B32;
+} xDRI2SwapBuffersReq;
+#define sz_xDRI2SwapBuffersReq  32
+
+typedef struct {
+    BYTE    type;   /* X_Reply */
+    BYTE    pad1;
+    CARD16  sequenceNumber B16;
+    CARD32  length B32;
+    CARD32  swap_hi B32;
+    CARD32  swap_lo B32;
+    CARD32  pad2 B32;
+    CARD32  pad3 B32;
+    CARD32  pad4 B32;
+    CARD32  pad5 B32;
+} xDRI2SwapBuffersReply;
+#define sz_xDRI2SwapBuffersReply 32
+
+#endif
diff --git a/examples/thirdparty/libva/va/x11/va_dri2tokens.h b/examples/thirdparty/libva/va/x11/va_dri2tokens.h
new file mode 100644
index 0000000..087159f
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_dri2tokens.h
@@ -0,0 +1,48 @@
+/*
+ * Copyright © 2008 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Soft-
+ * ware"), to deal in the Software without restriction, including without
+ * limitation the rights to use, copy, modify, merge, publish, distribute,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, provided that the above copyright
+ * notice(s) and this permission notice appear in all copies of the Soft-
+ * ware and that both the above copyright notice(s) and this permission
+ * notice appear in supporting documentation.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
+ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
+ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
+ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
+ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
+ * MANCE OF THIS SOFTWARE.
+ *
+ * Except as contained in this notice, the name of a copyright holder shall
+ * not be used in advertising or otherwise to promote the sale, use or
+ * other dealings in this Software without prior written authorization of
+ * the copyright holder.
+ *
+ * Authors:
+ *   Kristian Høgsberg (krh at redhat.com)
+ */
+
+#ifndef _DRI2_TOKENS_H_
+#define _DRI2_TOKENS_H_
+
+#define DRI2BufferFrontLeft		0
+#define DRI2BufferBackLeft		1
+#define DRI2BufferFrontRight		2
+#define DRI2BufferBackRight		3
+#define DRI2BufferDepth			4
+#define DRI2BufferStencil		5
+#define DRI2BufferAccum			6
+#define DRI2BufferFakeFrontLeft		7
+#define DRI2BufferFakeFrontRight	8
+
+#define DRI2DriverDRI			0
+
+#endif
diff --git a/examples/thirdparty/libva/va/x11/va_dricommon.c b/examples/thirdparty/libva/va/x11/va_dricommon.c
new file mode 100644
index 0000000..379e3d4
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_dricommon.c
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2012 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 "va_dricommon.h"
+
+// X error trap
+static int x11_error_code = 0;
+static int (*old_error_handler)(Display *, XErrorEvent *);
+
+static int 
+error_handler(Display *dpy, XErrorEvent *error)
+{
+    x11_error_code = error->error_code;
+    return 0;
+}
+
+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 struct dri_drawable *
+do_drawable_hash(VADriverContextP ctx, XID drawable)
+{
+    struct dri_state *dri_state = (struct dri_state *)ctx->drm_state;
+    int index = drawable % DRAWABLE_HASH_SZ;
+    struct dri_drawable *dri_drawable = dri_state->drawable_hash[index];
+
+    while (dri_drawable) {
+        if (dri_drawable->x_drawable == drawable)
+            return dri_drawable;
+        dri_drawable = dri_drawable->next;
+    }
+
+    dri_drawable = dri_state->createDrawable(ctx, drawable);
+    dri_drawable->x_drawable = drawable;
+    dri_drawable->is_window = is_window(ctx->native_dpy, drawable);
+    dri_drawable->next = dri_state->drawable_hash[index];
+    dri_state->drawable_hash[index] = dri_drawable;
+
+    return dri_drawable;
+}
+
+void
+free_drawable(VADriverContextP ctx, struct dri_drawable* dri_drawable)
+{
+    struct dri_state *dri_state = (struct dri_state *)ctx->drm_state;
+    int i = 0;
+
+    while (i < DRAWABLE_HASH_SZ) {
+	if (dri_drawable == dri_state->drawable_hash[i]) {
+	    dri_state->destroyDrawable(ctx, dri_drawable);
+	    dri_state->drawable_hash[i] = NULL;
+	}
+	i++;
+    }
+}
+
+void
+free_drawable_hashtable(VADriverContextP ctx)
+{
+    struct dri_state *dri_state = (struct dri_state *)ctx->drm_state;
+    int i;
+    struct dri_drawable *dri_drawable, *prev;
+
+    for (i = 0; i < DRAWABLE_HASH_SZ; i++) {
+        dri_drawable = dri_state->drawable_hash[i];
+
+        while (dri_drawable) {
+            prev = dri_drawable;
+            dri_drawable = prev->next;
+            dri_state->destroyDrawable(ctx, prev);
+        }
+
+	dri_state->drawable_hash[i] = NULL;
+    }
+}
+
+struct dri_drawable *
+dri_get_drawable(VADriverContextP ctx, XID drawable)
+{
+    return do_drawable_hash(ctx, drawable);
+}
+
+void 
+dri_swap_buffer(VADriverContextP ctx, struct dri_drawable *dri_drawable)
+{
+    struct dri_state *dri_state = (struct dri_state *)ctx->drm_state;
+
+    dri_state->swapBuffer(ctx, dri_drawable);
+}
+
+union dri_buffer *
+dri_get_rendering_buffer(VADriverContextP ctx, struct dri_drawable *dri_drawable)
+{
+    struct dri_state *dri_state = (struct dri_state *)ctx->drm_state;
+    
+    return dri_state->getRenderingBuffer(ctx, dri_drawable);
+}
diff --git a/examples/thirdparty/libva/va/x11/va_dricommon.h b/examples/thirdparty/libva/va/x11/va_dricommon.h
new file mode 100644
index 0000000..eb6ddad
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_dricommon.h
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2012 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.
+ */
+#ifndef _VA_DRICOMMON_H_
+#define _VA_DRICOMMON_H_
+
+#ifndef ANDROID
+#include <X11/Xlib.h>
+#include <xf86drm.h>
+#include <drm.h>
+#include <drm_sarea.h>
+#endif
+
+#include <va/va_backend.h>
+#include <va/va_drmcommon.h>
+
+#ifdef ANDROID
+#define XID unsigned int
+#define Bool int
+#endif
+
+enum {
+    /* Compatibility. Do not use for newly-written code. */
+    VA_NONE     = VA_DRM_AUTH_NONE,
+    VA_DRI1     = VA_DRM_AUTH_DRI1,
+    VA_DRI2     = VA_DRM_AUTH_DRI2,
+    VA_DUMMY    = VA_DRM_AUTH_CUSTOM
+};
+
+union dri_buffer 
+{
+    struct {
+        unsigned int attachment;
+        unsigned int name;
+        unsigned int pitch;
+        unsigned int cpp;
+        unsigned int flags;
+    } dri2;
+};
+
+struct dri_drawable 
+{
+    XID x_drawable;
+    int is_window;
+    int x;
+    int y;
+    unsigned int width;
+    unsigned int height;
+    struct dri_drawable *next;
+};
+
+#define DRAWABLE_HASH_SZ 32
+struct dri_state 
+{
+    struct drm_state base;
+#ifndef ANDROID
+    struct dri_drawable *drawable_hash[DRAWABLE_HASH_SZ];
+
+    struct dri_drawable *(*createDrawable)(VADriverContextP ctx, XID x_drawable);
+    void (*destroyDrawable)(VADriverContextP ctx, struct dri_drawable *dri_drawable);
+    void (*swapBuffer)(VADriverContextP ctx, struct dri_drawable *dri_drawable);
+    union dri_buffer *(*getRenderingBuffer)(VADriverContextP ctx, struct dri_drawable *dri_drawable);
+    void (*close)(VADriverContextP ctx);
+#endif
+};
+
+Bool isDRI2Connected(VADriverContextP ctx, char **driver_name);
+void free_drawable(VADriverContextP ctx, struct dri_drawable* dri_drawable);
+void free_drawable_hashtable(VADriverContextP ctx);
+struct dri_drawable *dri_get_drawable(VADriverContextP ctx, XID drawable);
+void dri_swap_buffer(VADriverContextP ctx, struct dri_drawable *dri_drawable);
+union dri_buffer *dri_get_rendering_buffer(VADriverContextP ctx, struct dri_drawable *dri_drawable);
+
+#endif /* _VA_DRICOMMON_H_ */
diff --git a/examples/thirdparty/libva/va/x11/va_fglrx.c b/examples/thirdparty/libva/va/x11/va_fglrx.c
new file mode 100644
index 0000000..058e23d
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_fglrx.c
@@ -0,0 +1,247 @@
+/*
+ * Copyright (C) 2010 Splitted-Desktop Systems. 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 "sysdeps.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <dlfcn.h>
+#include <X11/Xlib.h>
+
+#define ADL_OK 0
+#define ADL_MAX_PATH 256
+
+/*
+ * Based on public AMD Display Library (ADL) SDK:
+ * <http://developer.amd.com/gpu/adlsdk/Pages/default.aspx>
+ */
+typedef struct AdapterInfo {
+    int iSize;
+    int iAdapterIndex;
+    char strUDID[ADL_MAX_PATH]; 
+    int iBusNumber;
+    int iDeviceNumber;
+    int iFunctionNumber;
+    int iVendorID;
+    char strAdapterName[ADL_MAX_PATH];
+    char strDisplayName[ADL_MAX_PATH];
+    int iPresent;
+    int iXScreenNum;
+    int iDrvIndex;
+    char strXScreenConfigName[ADL_MAX_PATH];
+} AdapterInfo, *LPAdapterInfo;
+
+typedef struct XScreenInfo {
+    int iXScreenNum;
+    char strXScreenConfigName[ADL_MAX_PATH];
+} XScreenInfo, *LPXScreenInfo;
+
+typedef void *(*ADL_MAIN_MALLOC_CALLBACK)(int);
+typedef int (*ADL_MAIN_CONTROL_CREATE)(ADL_MAIN_MALLOC_CALLBACK, int);
+typedef int (*ADL_MAIN_CONTROL_DESTROY)(void);
+typedef int (*ADL_ADAPTER_NUMBEROFADAPTERS_GET)(int *);
+typedef int (*ADL_ADAPTER_ADAPTERINFO_GET)(LPAdapterInfo, int);
+typedef int (*ADL_ADAPTER_XSCREENINFO_GET)(LPXScreenInfo, int);
+
+static void *ADL_Main_Memory_Alloc(int iSize)
+{
+    return malloc(iSize);
+}
+
+static void ADL_Main_Memory_Free(void *arg)
+{
+    void ** const lpBuffer = arg;
+
+    if (lpBuffer && *lpBuffer) {
+        free(*lpBuffer);
+        *lpBuffer = NULL;
+    }
+}
+
+static int get_display_name_length(const char *name)
+{
+    const char *m;
+
+    if (!name)
+        return 0;
+
+    /* Strip out screen number */
+    m = strchr(name, ':');
+    if (m) {
+        m = strchr(m, '.');
+        if (m)
+            return m - name;
+    }
+    return strlen(name);
+}
+
+static int match_display_name(Display *x11_dpy, const char *display_name)
+{
+    Display *test_dpy;
+    char *test_dpy_name, *x11_dpy_name;
+    int test_dpy_namelen, x11_dpy_namelen;
+    int m;
+
+    test_dpy = XOpenDisplay(display_name);
+    if (!test_dpy)
+        return 0;
+
+    test_dpy_name    = XDisplayString(test_dpy);
+    test_dpy_namelen = get_display_name_length(test_dpy_name);
+    x11_dpy_name     = XDisplayString(x11_dpy);
+    x11_dpy_namelen  = get_display_name_length(x11_dpy_name);
+
+    m = (test_dpy_namelen == x11_dpy_namelen &&
+         (test_dpy_namelen == 0 ||
+          (test_dpy_namelen > 0 &&
+           strncmp(test_dpy_name, x11_dpy_name, test_dpy_namelen) == 0)));
+
+    XCloseDisplay(test_dpy);
+    return m;
+}
+
+Bool VA_FGLRXGetClientDriverName( Display *dpy, int screen,
+    int *ddxDriverMajorVersion, int *ddxDriverMinorVersion,
+    int *ddxDriverPatchVersion, char **clientDriverName )
+{
+    ADL_MAIN_CONTROL_CREATE          ADL_Main_Control_Create;
+    ADL_MAIN_CONTROL_DESTROY         ADL_Main_Control_Destroy;
+    ADL_ADAPTER_NUMBEROFADAPTERS_GET ADL_Adapter_NumberOfAdapters_Get;
+    ADL_ADAPTER_ADAPTERINFO_GET      ADL_Adapter_AdapterInfo_Get;
+    ADL_ADAPTER_XSCREENINFO_GET      ADL_Adapter_XScreenInfo_Get;
+
+    LPAdapterInfo lpAdapterInfo = NULL;
+    LPXScreenInfo lpXScreenInfo = NULL;
+    void *libadl_handle = NULL;
+    Bool success = False;
+    int is_adl_initialized = 0;
+    int i, num_adapters, lpAdapterInfo_size, lpXScreenInfo_size;
+
+    if (ddxDriverMajorVersion)
+        *ddxDriverMajorVersion = 0;
+    if (ddxDriverMinorVersion)
+        *ddxDriverMinorVersion = 0;
+    if (ddxDriverPatchVersion)
+        *ddxDriverPatchVersion = 0;
+    if (clientDriverName)
+        *clientDriverName = NULL;
+
+    libadl_handle = dlopen("libatiadlxx.so", RTLD_LAZY|RTLD_GLOBAL);
+    if (!libadl_handle)
+        goto end;
+
+    dlerror();
+    ADL_Main_Control_Create = (ADL_MAIN_CONTROL_CREATE)
+        dlsym(libadl_handle,"ADL_Main_Control_Create");
+    if (dlerror())
+        goto end;
+
+    ADL_Main_Control_Destroy = (ADL_MAIN_CONTROL_DESTROY)
+        dlsym(libadl_handle,"ADL_Main_Control_Destroy");
+    if (dlerror())
+        goto end;
+
+    ADL_Adapter_NumberOfAdapters_Get = (ADL_ADAPTER_NUMBEROFADAPTERS_GET)
+        dlsym(libadl_handle,"ADL_Adapter_NumberOfAdapters_Get");
+    if (dlerror())
+        goto end;
+
+    ADL_Adapter_AdapterInfo_Get = (ADL_ADAPTER_ADAPTERINFO_GET)
+        dlsym(libadl_handle,"ADL_Adapter_AdapterInfo_Get");
+    if (dlerror())
+        goto end;
+
+    ADL_Adapter_XScreenInfo_Get = (ADL_ADAPTER_XSCREENINFO_GET)
+        dlsym(libadl_handle,"ADL_Adapter_XScreenInfo_Get");
+    if (dlerror())
+        goto end;
+
+    if (ADL_Main_Control_Create(ADL_Main_Memory_Alloc, 1) != ADL_OK)
+        goto end;
+    is_adl_initialized = 1;
+
+    if (ADL_Adapter_NumberOfAdapters_Get(&num_adapters) != ADL_OK)
+        goto end;
+    if (num_adapters <= 0)
+        goto end;
+
+    lpAdapterInfo_size = num_adapters * sizeof(*lpAdapterInfo);
+    lpAdapterInfo = ADL_Main_Memory_Alloc(lpAdapterInfo_size);
+    if (!lpAdapterInfo)
+        goto end;
+    memset(lpAdapterInfo, 0, lpAdapterInfo_size);
+
+    for (i = 0; i < num_adapters; i++)
+        lpAdapterInfo[i].iSize = sizeof(lpAdapterInfo[i]);
+
+    lpXScreenInfo_size = num_adapters * sizeof(*lpXScreenInfo);
+    lpXScreenInfo = ADL_Main_Memory_Alloc(lpXScreenInfo_size);
+    if (!lpXScreenInfo)
+        goto end;
+    memset(lpXScreenInfo, 0, lpXScreenInfo_size);
+
+    if (ADL_Adapter_AdapterInfo_Get(lpAdapterInfo, lpAdapterInfo_size) != ADL_OK)
+        goto end;
+
+    if (ADL_Adapter_XScreenInfo_Get(lpXScreenInfo, lpXScreenInfo_size) != ADL_OK)
+        goto end;
+
+    for (i = 0; i < num_adapters; i++) {
+        LPXScreenInfo const lpCurrXScreenInfo = &lpXScreenInfo[i];
+        LPAdapterInfo const lpCurrAdapterInfo = &lpAdapterInfo[i];
+        if (!lpCurrAdapterInfo->iPresent)
+            continue;
+#if 0
+        printf("Adapter %d:\n", i);
+        printf("  iAdapterIndex: %d\n",    lpCurrAdapterInfo->iAdapterIndex);
+        printf("  strUDID: '%s'\n",        lpCurrAdapterInfo->strUDID);
+        printf("  iBusNumber: %d\n",       lpCurrAdapterInfo->iBusNumber);
+        printf("  iDeviceNumber: %d\n",    lpCurrAdapterInfo->iDeviceNumber);
+        printf("  iFunctionNumber: %d\n",  lpCurrAdapterInfo->iFunctionNumber);
+        printf("  iVendorID: 0x%04x\n",    lpCurrAdapterInfo->iVendorID);
+        printf("  strAdapterName: '%s'\n", lpCurrAdapterInfo->strAdapterName);
+        printf("  strDisplayName: '%s'\n", lpCurrAdapterInfo->strDisplayName);
+        printf("  iPresent: %d\n",         lpCurrAdapterInfo->iPresent);
+        printf("  iXScreenNum: %d\n",      lpCurrXScreenInfo->iXScreenNum);
+#endif
+        if (screen == lpCurrXScreenInfo->iXScreenNum &&
+            match_display_name(dpy, lpCurrAdapterInfo->strDisplayName)) {
+            if (clientDriverName)
+                *clientDriverName = strdup("fglrx");
+            success = True;
+            break;
+        }
+    }
+
+end:
+    if (lpXScreenInfo)
+        ADL_Main_Memory_Free(&lpXScreenInfo);
+    if (lpAdapterInfo)
+        ADL_Main_Memory_Free(&lpAdapterInfo);
+    if (is_adl_initialized)
+        ADL_Main_Control_Destroy();
+    if (libadl_handle)
+        dlclose(libadl_handle);
+    return success;
+}
diff --git a/examples/thirdparty/libva/va/x11/va_fglrx.h b/examples/thirdparty/libva/va/x11/va_fglrx.h
new file mode 100644
index 0000000..93ddd4b
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_fglrx.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2010 Splitted-Desktop Systems. 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.
+ */
+
+#ifndef VA_FGLRX_H
+#define VA_FGLRX_H
+
+#include <X11/Xlib.h>
+
+DLL_HIDDEN
+Bool VA_FGLRXGetClientDriverName( Display *dpy, int screen,
+    int *ddxDriverMajorVersion, int *ddxDriverMinorVersion,
+    int *ddxDriverPatchVersion, char **clientDriverName );
+
+#endif /* VA_FGLRX_H */
diff --git a/examples/thirdparty/libva/va/x11/va_nvctrl.c b/examples/thirdparty/libva/va/x11/va_nvctrl.c
new file mode 100644
index 0000000..20c63d5
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_nvctrl.c
@@ -0,0 +1,400 @@
+/*
+ * Copyright (c) 2008 NVIDIA, Corporation
+ *
+ * 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, sublicense, 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 NONINFRINGEMENT.  IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS 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 _GNU_SOURCE 1
+#include "sysdeps.h"
+#include <string.h>
+
+#define NEED_REPLIES
+#include <stdlib.h>
+#include <X11/Xlibint.h>
+#include <X11/Xutil.h>
+#include <X11/extensions/Xext.h>
+#include <X11/extensions/extutil.h>
+#include "va_nvctrl.h"
+
+#define NV_CONTROL_ERRORS 0
+#define NV_CONTROL_EVENTS 5
+#define NV_CONTROL_NAME "NV-CONTROL"
+
+#define NV_CTRL_TARGET_TYPE_X_SCREEN   0
+#define NV_CTRL_TARGET_TYPE_GPU        1
+#define NV_CTRL_TARGET_TYPE_FRAMELOCK  2
+#define NV_CTRL_TARGET_TYPE_VCSC       3 /* Visual Computing System */
+
+#define NV_CTRL_STRING_NVIDIA_DRIVER_VERSION                    3  /* R--G */
+
+#define X_nvCtrlQueryExtension                      0
+#define X_nvCtrlIsNv                                1
+#define X_nvCtrlQueryStringAttribute                4
+
+typedef struct {
+    CARD8 reqType;
+    CARD8 nvReqType;
+    CARD16 length B16;
+} xnvCtrlQueryExtensionReq;
+#define sz_xnvCtrlQueryExtensionReq 4
+
+typedef struct {
+    BYTE type;   /* X_Reply */
+    CARD8 padb1;
+    CARD16 sequenceNumber B16;
+    CARD32 length B32;
+    CARD16 major B16;
+    CARD16 minor B16;
+    CARD32 padl4 B32;
+    CARD32 padl5 B32;
+    CARD32 padl6 B32;
+    CARD32 padl7 B32;
+    CARD32 padl8 B32;
+} xnvCtrlQueryExtensionReply;
+#define sz_xnvCtrlQueryExtensionReply 32
+
+typedef struct {
+    CARD8 reqType;
+    CARD8 nvReqType;
+    CARD16 length B16;
+    CARD32 screen B32;
+} xnvCtrlIsNvReq;
+#define sz_xnvCtrlIsNvReq 8
+
+typedef struct {
+    BYTE type;   /* X_Reply */
+    CARD8 padb1;
+    CARD16 sequenceNumber B16;
+    CARD32 length B32;
+    CARD32 isnv B32;
+    CARD32 padl4 B32;
+    CARD32 padl5 B32;
+    CARD32 padl6 B32;
+    CARD32 padl7 B32;
+    CARD32 padl8 B32;
+} xnvCtrlIsNvReply;
+#define sz_xnvCtrlIsNvReply 32
+
+typedef struct {
+    CARD8 reqType;
+    CARD8 nvReqType;
+    CARD16 length B16;
+    CARD16 target_id B16;    /* X screen number or GPU number */
+    CARD16 target_type B16;  /* X screen or GPU */
+    CARD32 display_mask B32;
+    CARD32 attribute B32;
+} xnvCtrlQueryStringAttributeReq;
+#define sz_xnvCtrlQueryStringAttributeReq 16
+
+typedef struct {
+    BYTE type;
+    BYTE pad0;
+    CARD16 sequenceNumber B16;
+    CARD32 length B32;
+    CARD32 flags B32;
+    CARD32 n B32;    /* Length of string */
+    CARD32 pad4 B32;
+    CARD32 pad5 B32;
+    CARD32 pad6 B32;
+    CARD32 pad7 B32;
+} xnvCtrlQueryStringAttributeReply;
+#define sz_xnvCtrlQueryStringAttributeReply 32
+
+#define NVCTRL_EXT_NEED_CHECK          (XPointer)(~0)
+#define NVCTRL_EXT_NEED_NOTHING        (XPointer)(0)
+#define NVCTRL_EXT_NEED_TARGET_SWAP    (XPointer)(1)
+
+static XExtensionInfo _nvctrl_ext_info_data;
+static XExtensionInfo *nvctrl_ext_info = &_nvctrl_ext_info_data;
+static /* const */ char *nvctrl_extension_name = NV_CONTROL_NAME;
+
+#define XNVCTRLCheckExtension(dpy,i,val) \
+  XextCheckExtension (dpy, i, nvctrl_extension_name, val)
+#define XNVCTRLSimpleCheckExtension(dpy,i) \
+  XextSimpleCheckExtension (dpy, i, nvctrl_extension_name)
+
+static int close_display();
+static /* const */ XExtensionHooks nvctrl_extension_hooks = {
+    NULL,                               /* create_gc */
+    NULL,                               /* copy_gc */
+    NULL,                               /* flush_gc */
+    NULL,                               /* free_gc */
+    NULL,                               /* create_font */
+    NULL,                               /* free_font */
+    close_display,                      /* close_display */
+    NULL,                               /* wire_to_event */
+    NULL,                               /* event_to_wire */
+    NULL,                               /* error */
+    NULL,                               /* error_string */
+};
+
+static XEXT_GENERATE_FIND_DISPLAY (find_display, nvctrl_ext_info,
+                                   nvctrl_extension_name, 
+                                   &nvctrl_extension_hooks,
+                                   NV_CONTROL_EVENTS, NVCTRL_EXT_NEED_CHECK)
+
+static XEXT_GENERATE_CLOSE_DISPLAY (close_display, nvctrl_ext_info)
+
+static Bool XNVCTRLQueryVersion (Display *dpy, int *major, int *minor);
+
+/*
+ * NV-CONTROL versions 1.8 and 1.9 pack the target_type and target_id
+ * fields in reversed order.  In order to talk to one of these servers,
+ * we need to swap these fields.
+ */
+static void XNVCTRLCheckTargetData(Display *dpy, XExtDisplayInfo *info,
+                                   int *target_type, int *target_id)
+{
+    /* Find out what the server's NV-CONTROL version is and
+     * setup for swapping if we need to.
+     */
+    if (info->data == NVCTRL_EXT_NEED_CHECK) {
+        int major, minor;
+
+        if (XNVCTRLQueryVersion(dpy, &major, &minor)) {
+            if (major == 1 &&
+                (minor == 8 || minor == 9)) {
+                info->data = NVCTRL_EXT_NEED_TARGET_SWAP;
+            } else {
+                info->data = NVCTRL_EXT_NEED_NOTHING;
+            }
+        } else {
+            info->data = NVCTRL_EXT_NEED_NOTHING;
+        }
+    }
+
+    /* We need to swap the target_type and target_id */
+    if (info->data == NVCTRL_EXT_NEED_TARGET_SWAP) {
+        int tmp;
+        tmp = *target_type;
+        *target_type = *target_id;
+        *target_id = tmp;
+    }
+}
+
+
+static Bool XNVCTRLQueryExtension (
+    Display *dpy,
+    int *event_basep,
+    int *error_basep
+){
+    XExtDisplayInfo *info = find_display (dpy);
+
+    if (XextHasExtension(info)) {
+        if (event_basep) *event_basep = info->codes->first_event;
+        if (error_basep) *error_basep = info->codes->first_error;
+        return True;
+    } else {
+        return False;
+    }
+}
+
+
+static Bool XNVCTRLQueryVersion (
+    Display *dpy,
+    int *major,
+    int *minor
+){
+    XExtDisplayInfo *info = find_display (dpy);
+    xnvCtrlQueryExtensionReply rep;
+    xnvCtrlQueryExtensionReq   *req;
+
+    if(!XextHasExtension(info))
+        return False;
+
+    XNVCTRLCheckExtension (dpy, info, False);
+
+    LockDisplay (dpy);
+    GetReq (nvCtrlQueryExtension, req);
+    req->reqType = info->codes->major_opcode;
+    req->nvReqType = X_nvCtrlQueryExtension;
+    if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
+        UnlockDisplay (dpy);
+        SyncHandle ();
+        return False;
+    }
+    if (major) *major = rep.major;
+    if (minor) *minor = rep.minor;
+    UnlockDisplay (dpy);
+    SyncHandle ();
+    return True;
+}
+
+
+static Bool XNVCTRLIsNvScreen (
+    Display *dpy,
+    int screen
+){
+    XExtDisplayInfo *info = find_display (dpy);
+    xnvCtrlIsNvReply rep;
+    xnvCtrlIsNvReq   *req;
+    Bool isnv;
+
+    if(!XextHasExtension(info))
+        return False;
+
+    XNVCTRLCheckExtension (dpy, info, False);
+
+    LockDisplay (dpy);
+    GetReq (nvCtrlIsNv, req);
+    req->reqType = info->codes->major_opcode;
+    req->nvReqType = X_nvCtrlIsNv;
+    req->screen = screen;
+    if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
+        UnlockDisplay (dpy);
+        SyncHandle ();
+        return False;
+    }
+    isnv = rep.isnv;
+    UnlockDisplay (dpy);
+    SyncHandle ();
+    return isnv;
+}
+
+
+static Bool XNVCTRLQueryTargetStringAttribute (
+    Display *dpy,
+    int target_type,
+    int target_id,
+    unsigned int display_mask,
+    unsigned int attribute,
+    char **ptr
+){
+    XExtDisplayInfo *info = find_display (dpy);
+    xnvCtrlQueryStringAttributeReply rep;
+    xnvCtrlQueryStringAttributeReq   *req;
+    Bool exists;
+    int length, numbytes, slop;
+
+    if (!ptr) return False;
+
+    if(!XextHasExtension(info))
+        return False;
+
+    XNVCTRLCheckExtension (dpy, info, False);
+    XNVCTRLCheckTargetData(dpy, info, &target_type, &target_id);
+
+    LockDisplay (dpy);
+    GetReq (nvCtrlQueryStringAttribute, req);
+    req->reqType = info->codes->major_opcode;
+    req->nvReqType = X_nvCtrlQueryStringAttribute;
+    req->target_type = target_type;
+    req->target_id = target_id;
+    req->display_mask = display_mask;
+    req->attribute = attribute;
+    if (!_XReply (dpy, (xReply *) &rep, 0, False)) {
+        UnlockDisplay (dpy);
+        SyncHandle ();
+        return False;
+    }
+    length = rep.length;
+    numbytes = rep.n;
+    slop = numbytes & 3;
+    *ptr = (char *) Xmalloc(numbytes);
+    if (! *ptr) {
+        _XEatData(dpy, length);
+        UnlockDisplay (dpy);
+        SyncHandle ();
+        return False;
+    } else {
+        _XRead(dpy, (char *) *ptr, numbytes);
+        if (slop) _XEatData(dpy, 4-slop);
+    }
+    exists = rep.flags;
+    UnlockDisplay (dpy);
+    SyncHandle ();
+    return exists;
+}
+
+static Bool XNVCTRLQueryStringAttribute (
+    Display *dpy,
+    int screen,
+    unsigned int display_mask,
+    unsigned int attribute,
+    char **ptr
+){
+    return XNVCTRLQueryTargetStringAttribute(dpy, NV_CTRL_TARGET_TYPE_X_SCREEN,
+                                             screen, display_mask,
+                                             attribute, ptr);
+}
+
+
+Bool VA_NVCTRLQueryDirectRenderingCapable( Display *dpy, int screen,
+    Bool *isCapable )
+{
+    int event_base;
+    int error_base;
+
+    if (isCapable)
+        *isCapable = False;
+
+    if (!XNVCTRLQueryExtension(dpy, &event_base, &error_base))
+        return False;
+
+    if (isCapable && XNVCTRLIsNvScreen(dpy, screen))
+        *isCapable = True;
+
+    return True;
+}
+
+Bool VA_NVCTRLGetClientDriverName( Display *dpy, int screen,
+    int *ddxDriverMajorVersion, int *ddxDriverMinorVersion,
+    int *ddxDriverPatchVersion, char **clientDriverName )
+{
+    if (ddxDriverMajorVersion)
+        *ddxDriverMajorVersion = 0;
+    if (ddxDriverMinorVersion)
+        *ddxDriverMinorVersion = 0;
+    if (ddxDriverPatchVersion)
+        *ddxDriverPatchVersion = 0;
+    if (clientDriverName)
+        *clientDriverName = NULL;
+
+    char *nvidia_driver_version = NULL;
+    if (!XNVCTRLQueryStringAttribute(dpy, screen, 0, NV_CTRL_STRING_NVIDIA_DRIVER_VERSION, &nvidia_driver_version))
+        return False;
+
+    char *end, *str = nvidia_driver_version;
+    unsigned long v = strtoul(str, &end, 10);
+    if (end && end != str) {
+        if (ddxDriverMajorVersion)
+            *ddxDriverMajorVersion = v;
+        if (*(str = end) == '.') {
+            v = strtoul(str + 1, &end, 10);
+            if (end && end != str && (*end == '.' || *end == '\0')) {
+                if (ddxDriverMinorVersion)
+                    *ddxDriverMinorVersion = v;
+                if (*(str = end) == '.') {
+                    v = strtoul(str + 1, &end, 10);
+                    if (end && end != str && *end == '\0') {
+                        if (ddxDriverPatchVersion)
+                            *ddxDriverPatchVersion = v;
+                    }
+                }
+            }
+        }
+    }
+    Xfree(nvidia_driver_version);
+
+    if (clientDriverName)
+        *clientDriverName = strdup("nvidia");
+
+    return True;
+}
diff --git a/examples/thirdparty/libva/va/x11/va_nvctrl.h b/examples/thirdparty/libva/va/x11/va_nvctrl.h
new file mode 100644
index 0000000..3617537
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_nvctrl.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2008 NVIDIA, Corporation
+ *
+ * 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, sublicense, 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 NONINFRINGEMENT.  IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS 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 VA_NVCTRLLIB_H
+#define VA_NVCTRLLIB_H
+
+#include <X11/Xlib.h>
+
+DLL_HIDDEN
+Bool VA_NVCTRLQueryDirectRenderingCapable( Display *dpy, int screen,
+    Bool *isCapable );
+
+DLL_HIDDEN
+Bool VA_NVCTRLGetClientDriverName( Display *dpy, int screen,
+    int *ddxDriverMajorVersion, int *ddxDriverMinorVersion,
+    int *ddxDriverPatchVersion, char **clientDriverName );
+
+#endif /* VA_NVCTRLLIB_H */
diff --git a/examples/thirdparty/libva/va/x11/va_x11.c b/examples/thirdparty/libva/va/x11/va_x11.c
new file mode 100644
index 0000000..c0dc69a
--- /dev/null
+++ b/examples/thirdparty/libva/va/x11/va_x11.c
@@ -0,0 +1,250 @@
+/*
+ * Copyright (c) 2007 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.
+ */
+
+#define _GNU_SOURCE 1
+#include "sysdeps.h"
+#include "va.h"
+#include "va_backend.h"
+#include "va_trace.h"
+#include "va_fool.h"
+#include "va_x11.h"
+#include "va_dri2.h"
+#include "va_dricommon.h"
+#include "va_nvctrl.h"
+#include "va_fglrx.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+
+static int va_DisplayContextIsValid (
+    VADisplayContextP pDisplayContext
+)
+{
+    return (pDisplayContext != NULL && 
+            pDisplayContext->pDriverContext != NULL);
+}
+
+static void va_DisplayContextDestroy (
+    VADisplayContextP pDisplayContext
+)
+{
+    VADriverContextP ctx;
+    struct dri_state *dri_state;
+
+    if (pDisplayContext == NULL)
+        return;
+
+    ctx = pDisplayContext->pDriverContext;
+    dri_state = ctx->drm_state;
+
+    if (dri_state && dri_state->close)
+        dri_state->close(ctx);
+
+    free(pDisplayContext->pDriverContext->drm_state);
+    free(pDisplayContext->pDriverContext);
+    free(pDisplayContext);
+}
+
+
+static VAStatus va_DRI2GetDriverName (
+    VADisplayContextP pDisplayContext,
+    char **driver_name
+)
+{
+    VADriverContextP ctx = pDisplayContext->pDriverContext;
+
+    if (!isDRI2Connected(ctx, driver_name))
+        return VA_STATUS_ERROR_UNKNOWN;
+
+    return VA_STATUS_SUCCESS;
+}
+
+static VAStatus va_NVCTRL_GetDriverName (
+    VADisplayContextP pDisplayContext,
+    char **driver_name
+)
+{
+    VADriverContextP ctx = pDisplayContext->pDriverContext;
+    int direct_capable, driver_major, driver_minor, driver_patch;
+    Bool result;
+
+    result = VA_NVCTRLQueryDirectRenderingCapable(ctx->native_dpy, ctx->x11_screen,
+                                                  &direct_capable);
+    if (!result || !direct_capable)
+        return VA_STATUS_ERROR_UNKNOWN;
+
+    result = VA_NVCTRLGetClientDriverName(ctx->native_dpy, ctx->x11_screen,
+                                          &driver_major, &driver_minor,
+                                          &driver_patch, driver_name);
+    if (!result)
+        return VA_STATUS_ERROR_UNKNOWN;
+
+    return VA_STATUS_SUCCESS;
+}
+
+static VAStatus va_FGLRX_GetDriverName (
+    VADisplayContextP pDisplayContext,
+    char **driver_name
+)
+{
+    VADriverContextP ctx = pDisplayContext->pDriverContext;
+    int driver_major, driver_minor, driver_patch;
+    Bool result;
+
+    result = VA_FGLRXGetClientDriverName(ctx->native_dpy, ctx->x11_screen,
+                                         &driver_major, &driver_minor,
+                                         &driver_patch, driver_name);
+    if (!result)
+        return VA_STATUS_ERROR_UNKNOWN;
+
+    return VA_STATUS_SUCCESS;
+}
+
+static VAStatus va_DisplayContextGetDriverName (
+    VADisplayContextP pDisplayContext,
+    char **driver_name
+)
+{
+    VAStatus vaStatus;
+
+    if (driver_name)
+	*driver_name = NULL;
+    else
+        return VA_STATUS_ERROR_UNKNOWN;
+    
+    vaStatus = va_DRI2GetDriverName(pDisplayContext, driver_name);
+    if (vaStatus != VA_STATUS_SUCCESS)
+        vaStatus = va_NVCTRL_GetDriverName(pDisplayContext, driver_name);
+    if (vaStatus != VA_STATUS_SUCCESS)
+        vaStatus = va_FGLRX_GetDriverName(pDisplayContext, driver_name);
+    return vaStatus;
+}
+
+
+VADisplay vaGetDisplay (
+    Display *native_dpy /* implementation specific */
+)
+{
+  VADisplay dpy = NULL;
+  VADisplayContextP pDisplayContext;
+
+  if (!native_dpy)
+      return NULL;
+
+  if (!dpy)
+  {
+      /* create new entry */
+      VADriverContextP pDriverContext;
+      struct dri_state *dri_state;
+      pDisplayContext = calloc(1, sizeof(*pDisplayContext));
+      pDriverContext  = calloc(1, sizeof(*pDriverContext));
+      dri_state       = calloc(1, sizeof(*dri_state));
+      if (pDisplayContext && pDriverContext && dri_state)
+      {
+	  pDisplayContext->vadpy_magic = VA_DISPLAY_MAGIC;          
+
+	  pDriverContext->native_dpy       = (void *)native_dpy;
+          pDriverContext->display_type     = VA_DISPLAY_X11;
+	  pDisplayContext->pDriverContext  = pDriverContext;
+	  pDisplayContext->vaIsValid       = va_DisplayContextIsValid;
+	  pDisplayContext->vaDestroy       = va_DisplayContextDestroy;
+	  pDisplayContext->vaGetDriverName = va_DisplayContextGetDriverName;
+          pDisplayContext->opaque          = NULL;
+	  pDriverContext->drm_state 	   = dri_state;
+	  dpy                              = (VADisplay)pDisplayContext;
+      }
+      else
+      {
+	  if (pDisplayContext)
+	      free(pDisplayContext);
+	  if (pDriverContext)
+	      free(pDriverContext);
+          if (dri_state)
+              free(dri_state);
+      }
+  }
+  
+  return dpy;
+}
+
+#define CTX(dpy) (((VADisplayContextP)dpy)->pDriverContext)
+#define CHECK_DISPLAY(dpy) if( !vaDisplayIsValid(dpy) ) { return VA_STATUS_ERROR_INVALID_DISPLAY; }
+
+void va_TracePutSurface (
+    VADisplay dpy,
+    VASurfaceID surface,
+    void *draw, /* the target 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 vaPutSurface (
+    VADisplay dpy,
+    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 */
+)
+{
+  VADriverContextP ctx;
+
+  if (fool_postp)
+      return VA_STATUS_SUCCESS;
+
+  CHECK_DISPLAY(dpy);
+  ctx = CTX(dpy);
+  
+  VA_TRACE_LOG(va_TracePutSurface, dpy, surface, (void *)draw, srcx, srcy, srcw, srch,
+               destx, desty, destw, desth,
+               cliprects, number_cliprects, flags );
+  
+  return ctx->vtable->vaPutSurface( ctx, surface, (void *)draw, srcx, srcy, srcw, srch,
+                                   destx, desty, destw, desth,
+                                   cliprects, number_cliprects, flags );
+}
diff --git a/intel-beignet.icd.in b/intel-beignet.icd.in
index 9b2e349..0d45150 100644
--- a/intel-beignet.icd.in
+++ b/intel-beignet.icd.in
@@ -1 +1 @@
- at LIB_INSTALL_DIR@/beignet/libcl.so
+ at BEIGNET_INSTALL_DIR@/libcl.so
diff --git a/kernels/compiler_long_bitcast.cl b/kernels/compiler_long_bitcast.cl
new file mode 100644
index 0000000..4b008ef
--- /dev/null
+++ b/kernels/compiler_long_bitcast.cl
@@ -0,0 +1,47 @@
+__kernel void compiler_bitcast_char8_to_long(__global char8 *src, __global ulong *dst)
+{
+  int tid = get_global_id(0);
+  char8 v = src[tid];
+  ulong dl = as_ulong(v);
+  dst[tid] = dl;
+}
+
+__kernel void compiler_bitcast_long_to_char8(__global ulong *src,  __global uchar8 *dst)
+{
+  int tid = get_global_id(0);
+  ulong v = src[tid];
+  uchar8 dl = as_uchar8(v);
+  dst[tid] = dl;
+}
+
+__kernel void compiler_bitcast_int2_to_long(__global int2 *src, __global ulong *dst)
+{
+  int tid = get_global_id(0);
+  int2 v = src[tid];
+  ulong dl = as_ulong(v);
+  dst[tid] = dl;
+}
+
+__kernel void compiler_bitcast_long_to_int2(__global ulong *src,  __global uint2 *dst)
+{
+  int tid = get_global_id(0);
+  ulong v = src[tid];
+  uint2 dl = as_uint2(v);
+  dst[tid] = dl;
+}
+
+__kernel void compiler_bitcast_short4_to_long(__global short4 *src, __global ulong *dst)
+{
+  int tid = get_global_id(0);
+  short4 v = src[tid];
+  ulong dl = as_ulong(v);
+  dst[tid] = dl;
+}
+
+__kernel void compiler_bitcast_long_to_short4(__global ulong *src,  __global ushort4 *dst)
+{
+  int tid = get_global_id(0);
+  ulong v = src[tid];
+  ushort4 dl = as_ushort4(v);
+  dst[tid] = dl;
+}
diff --git a/kernels/runtime_mirror_effect.cl b/kernels/runtime_mirror_effect.cl
new file mode 100644
index 0000000..a978792
--- /dev/null
+++ b/kernels/runtime_mirror_effect.cl
@@ -0,0 +1,24 @@
+__kernel void
+runtime_mirror_effect(__read_only image2d_t src_y,
+                      __read_only image2d_t src_uv,
+                      __write_only image2d_t dst_y,
+                      __write_only image2d_t dst_uv,
+                      int src_height)
+{
+  const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_FILTER_NEAREST;
+  int2 loc = (int2)(get_global_id(0), get_global_id(1));
+  uint4 color_y, color_uv;
+
+  if (loc.y < src_height/2) {
+    color_y = read_imageui(src_y, sampler, loc);
+    color_uv = read_imageui(src_uv, sampler, loc/2);
+  } else {
+    int2 newloc = (int2)(loc.x, src_height - loc.y);
+    color_y = read_imageui(src_y, sampler, newloc);
+    color_uv = read_imageui(src_uv, sampler, newloc/2);
+  }
+
+  write_imageui(dst_y, loc, color_y);
+  write_imageui(dst_uv, loc/2, color_uv);
+
+}
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index a55f84d..d4181d8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -46,7 +46,10 @@ cl_internal_copy_buf_unalign_dst_offset cl_internal_copy_buf_unalign_src_offset
 cl_internal_copy_buf_rect cl_internal_copy_buf_rect_align4
 cl_internal_copy_image_1d_to_1d cl_internal_copy_image_2d_to_2d
 cl_internal_copy_image_3d_to_2d cl_internal_copy_image_2d_to_3d cl_internal_copy_image_3d_to_3d
-cl_internal_copy_image_2d_to_buffer cl_internal_copy_image_3d_to_buffer
+cl_internal_copy_image_2d_to_2d_array cl_internal_copy_image_1d_array_to_1d_array
+cl_internal_copy_image_2d_array_to_2d_array cl_internal_copy_image_2d_array_to_2d
+cl_internal_copy_image_2d_array_to_3d cl_internal_copy_image_3d_to_2d_array
+cl_internal_copy_image_2d_to_buffer cl_internal_copy_image_2d_to_buffer_align16 cl_internal_copy_image_3d_to_buffer
 cl_internal_copy_buffer_to_image_2d cl_internal_copy_buffer_to_image_3d
 cl_internal_fill_buf_align8 cl_internal_fill_buf_align4
 cl_internal_fill_buf_align2 cl_internal_fill_buf_unalign
diff --git a/src/cl_command_queue.c b/src/cl_command_queue.c
index 89afa07..f843548 100644
--- a/src/cl_command_queue.c
+++ b/src/cl_command_queue.c
@@ -133,6 +133,10 @@ cl_command_queue_bind_image(cl_command_queue queue, cl_kernel k)
     int id = k->images[i].arg_idx;
     struct _cl_mem_image *image;
     assert(interp_kernel_get_arg_type(k->opaque, id) == GBE_ARG_IMAGE);
+
+    //currently, user ptr is not supported for cl image, so offset should be always zero
+    assert(k->args[id].mem->offset == 0);
+
     image = cl_mem_image(k->args[id].mem);
     set_image_info(k->curbe, &k->images[i], image);
     cl_gpgpu_bind_image(gpgpu, k->images[i].idx, image->base.bo, image->offset,
@@ -166,9 +170,9 @@ cl_command_queue_bind_surface(cl_command_queue queue, cl_kernel k)
     offset = interp_kernel_get_curbe_offset(k->opaque, GBE_CURBE_KERNEL_ARGUMENT, i);
     if (k->args[i].mem->type == CL_MEM_SUBBUFFER_TYPE) {
       struct _cl_mem_buffer* buffer = (struct _cl_mem_buffer*)k->args[i].mem;
-      cl_gpgpu_bind_buf(gpgpu, k->args[i].mem->bo, offset, buffer->sub_offset, k->args[i].mem->size, interp_kernel_get_arg_bti(k->opaque, i));
+      cl_gpgpu_bind_buf(gpgpu, k->args[i].mem->bo, offset, k->args[i].mem->offset + buffer->sub_offset, k->args[i].mem->size, interp_kernel_get_arg_bti(k->opaque, i));
     } else {
-      cl_gpgpu_bind_buf(gpgpu, k->args[i].mem->bo, offset, 0, k->args[i].mem->size, interp_kernel_get_arg_bti(k->opaque, i));
+      cl_gpgpu_bind_buf(gpgpu, k->args[i].mem->bo, offset, k->args[i].mem->offset, k->args[i].mem->size, interp_kernel_get_arg_bti(k->opaque, i));
     }
   }
 
diff --git a/src/cl_command_queue_gen7.c b/src/cl_command_queue_gen7.c
index eec39b4..253c4f2 100644
--- a/src/cl_command_queue_gen7.c
+++ b/src/cl_command_queue_gen7.c
@@ -268,7 +268,7 @@ cl_bind_printf(cl_gpgpu gpgpu, cl_kernel ker, void* printf_info, int printf_num,
   int32_t offset = interp_kernel_get_curbe_offset(ker->opaque, value, 0);
   size_t buf_size = global_sz * sizeof(int) * printf_num;
   if (offset > 0) {
-    if (cl_gpgpu_set_printf_buffer(gpgpu, 0, buf_size, offset, interp_get_printf_indexbuf_bti(printf_info)) != 0)
+    if (cl_gpgpu_set_printf_buffer(gpgpu, 0, buf_size*2, offset, interp_get_printf_indexbuf_bti(printf_info)) != 0)
       return -1;
   }
 
diff --git a/src/cl_context.h b/src/cl_context.h
index 38ad2fd..fdbfd2a 100644
--- a/src/cl_context.h
+++ b/src/cl_context.h
@@ -53,7 +53,14 @@ enum _cl_internal_ker_type {
   CL_ENQUEUE_COPY_IMAGE_3D_TO_2D,             //copy image 3d to image 2d
   CL_ENQUEUE_COPY_IMAGE_2D_TO_3D,             //copy image 2d to image 3d
   CL_ENQUEUE_COPY_IMAGE_3D_TO_3D,             //copy image 3d to image 3d
+  CL_ENQUEUE_COPY_IMAGE_2D_TO_2D_ARRAY,       //copy image 2d to image 2d array
+  CL_ENQUEUE_COPY_IMAGE_1D_ARRAY_TO_1D_ARRAY, //copy image 1d array to image 1d array
+  CL_ENQUEUE_COPY_IMAGE_2D_ARRAY_TO_2D_ARRAY, //copy image 2d array to image 2d array
+  CL_ENQUEUE_COPY_IMAGE_2D_ARRAY_TO_2D,       //copy image 2d array to image 2d
+  CL_ENQUEUE_COPY_IMAGE_2D_ARRAY_TO_3D,       //copy image 2d array to image 3d
+  CL_ENQUEUE_COPY_IMAGE_3D_TO_2D_ARRAY,       //copy image 3d to image 2d array
   CL_ENQUEUE_COPY_IMAGE_2D_TO_BUFFER,   //copy image 2d to buffer
+  CL_ENQUEUE_COPY_IMAGE_2D_TO_BUFFER_ALIGN16,
   CL_ENQUEUE_COPY_IMAGE_3D_TO_BUFFER,   //copy image 3d tobuffer
   CL_ENQUEUE_COPY_BUFFER_TO_IMAGE_2D,   //copy buffer to image 2d
   CL_ENQUEUE_COPY_BUFFER_TO_IMAGE_3D,   //copy buffer to image 3d
diff --git a/src/cl_device_id.c b/src/cl_device_id.c
index 3032a38..0fd4a69 100644
--- a/src/cl_device_id.c
+++ b/src/cl_device_id.c
@@ -395,13 +395,14 @@ brw_gt3_break:
       printf("cl_get_gt_device(): error, unknown device: %x\n", device_id);
   }
 
+  if (ret == NULL)
+    return NULL;
+
   if (!CompilerSupported()) {
-    if (ret != NULL) {
-      ret->compiler_available = CL_FALSE;
-      //ret->linker_available = CL_FALSE;
-      ret->profile = "EMBEDDED_PROFILE";
-      ret->profile_sz = strlen(ret->profile) + 1;
-    }
+    ret->compiler_available = CL_FALSE;
+    //ret->linker_available = CL_FALSE;
+    ret->profile = "EMBEDDED_PROFILE";
+    ret->profile_sz = strlen(ret->profile) + 1;
   }
 
 #ifdef HAS_USERPTR
diff --git a/src/cl_gen75_device.h b/src/cl_gen75_device.h
index 8cf2dcd..43f6e8f 100644
--- a/src/cl_gen75_device.h
+++ b/src/cl_gen75_device.h
@@ -20,7 +20,7 @@
 /* Common fields for both SNB devices (either GT1 or GT2)
  */
 .max_parameter_size = 1024,
-.global_mem_cache_line_size = 128, /* XXX */
+.global_mem_cache_line_size = 64, /* XXX */
 .global_mem_cache_size = 8 << 10, /* XXX */
 .local_mem_type = CL_GLOBAL,
 .local_mem_size = 64 << 10,
diff --git a/src/cl_gen7_device.h b/src/cl_gen7_device.h
index 6857f8a..4ad5d96 100644
--- a/src/cl_gen7_device.h
+++ b/src/cl_gen7_device.h
@@ -19,7 +19,7 @@
 
 /* Common fields for both IVB devices (either GT1 or GT2) */
 .max_parameter_size = 1024,
-.global_mem_cache_line_size = 128, /* XXX */
+.global_mem_cache_line_size = 64, /* XXX */
 .global_mem_cache_size = 8 << 10, /* XXX */
 .local_mem_type = CL_GLOBAL,
 .local_mem_size = 64 << 10,
diff --git a/src/cl_mem.c b/src/cl_mem.c
index 3225fd2..57d27dd 100644
--- a/src/cl_mem.c
+++ b/src/cl_mem.c
@@ -266,6 +266,7 @@ cl_mem_allocate(enum cl_mem_type type,
   mem->magic = CL_MAGIC_MEM_HEADER;
   mem->flags = flags;
   mem->is_userptr = 0;
+  mem->offset = 0;
 
   if (sz != 0) {
     /* Pinning will require stricter alignment rules */
@@ -279,15 +280,21 @@ cl_mem_allocate(enum cl_mem_type type,
 #ifdef HAS_USERPTR
     if (ctx->device->host_unified_memory) {
       int page_size = getpagesize();
+      int cacheline_size = 0;
+      cl_get_device_info(ctx->device, CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE, sizeof(cacheline_size), &cacheline_size, NULL);
+
       /* currently only cl buf is supported, will add cl image support later */
       if (type == CL_MEM_BUFFER_TYPE) {
         if (flags & CL_MEM_USE_HOST_PTR) {
           assert(host_ptr != NULL);
           /* userptr not support tiling */
           if (!is_tiled) {
-            if ((((unsigned long)host_ptr | sz) & (page_size - 1)) == 0) {
+            if (ALIGN((unsigned long)host_ptr, cacheline_size) == (unsigned long)host_ptr) {
+              void* aligned_host_ptr = (void*)(((unsigned long)host_ptr) & (~(page_size - 1)));
+              mem->offset = host_ptr - aligned_host_ptr;
               mem->is_userptr = 1;
-              mem->bo = cl_buffer_alloc_userptr(bufmgr, "CL userptr memory object", host_ptr, sz, 0);
+              size_t aligned_sz = ALIGN((mem->offset + sz), page_size);
+              mem->bo = cl_buffer_alloc_userptr(bufmgr, "CL userptr memory object", aligned_host_ptr, aligned_sz, 0);
             }
           }
         }
@@ -514,6 +521,8 @@ cl_mem_new_sub_buffer(cl_mem buffer,
   mem->ref_n = 1;
   mem->magic = CL_MAGIC_MEM_HEADER;
   mem->flags = flags;
+  mem->offset = buffer->offset;
+  mem->is_userptr = buffer->is_userptr;
   sub_buf->parent = (struct _cl_mem_buffer*)buffer;
 
   cl_mem_add_ref(buffer);
@@ -1061,16 +1070,19 @@ cl_mem_delete(cl_mem mem)
   }
 
   /* Remove it from the list */
-  assert(mem->ctx);
-  pthread_mutex_lock(&mem->ctx->buffer_lock);
-    if (mem->prev)
-      mem->prev->next = mem->next;
-    if (mem->next)
-      mem->next->prev = mem->prev;
-    if (mem->ctx->buffers == mem)
-      mem->ctx->buffers = mem->next;
-  pthread_mutex_unlock(&mem->ctx->buffer_lock);
-  cl_context_delete(mem->ctx);
+  if (mem->ctx) {
+    pthread_mutex_lock(&mem->ctx->buffer_lock);
+      if (mem->prev)
+        mem->prev->next = mem->next;
+      if (mem->next)
+        mem->next->prev = mem->prev;
+      if (mem->ctx->buffers == mem)
+        mem->ctx->buffers = mem->next;
+    pthread_mutex_unlock(&mem->ctx->buffer_lock);
+    cl_context_delete(mem->ctx);
+  } else {
+    assert((mem->prev == 0) && (mem->next == 0));
+  }
 
   /* Someone still mapped, unmap */
   if(mem->map_ref > 0) {
@@ -1115,7 +1127,9 @@ cl_mem_delete(cl_mem mem)
     cl_buffer_unreference(mem->bo);
   }
 
-  if (mem->is_userptr && (mem->flags & CL_MEM_ALLOC_HOST_PTR))
+  if (mem->is_userptr &&
+      (mem->flags & CL_MEM_ALLOC_HOST_PTR) &&
+      (mem->type != CL_MEM_SUBBUFFER_TYPE))
     cl_free(mem->host_ptr);
 
   cl_free(mem);
@@ -1600,27 +1614,43 @@ cl_mem_kernel_copy_image(cl_command_queue queue, struct _cl_mem_image* src_image
       ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_2D_TO_3D,
           cl_internal_copy_image_2d_to_3d_str, (size_t)cl_internal_copy_image_2d_to_3d_str_size, NULL);
     } else if(dst_image->image_type == CL_MEM_OBJECT_IMAGE2D_ARRAY) {
+      extern char cl_internal_copy_image_2d_to_2d_array_str[];
+      extern size_t cl_internal_copy_image_2d_to_2d_array_str_size;
 
-      cl_mem_copy_image_to_image(dst_origin, src_origin, region, dst_image, src_image);
-      return CL_SUCCESS;
+      ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_2D_TO_2D_ARRAY,
+          cl_internal_copy_image_2d_to_2d_array_str, (size_t)cl_internal_copy_image_2d_to_2d_array_str_size, NULL);
     }
   } else if(src_image->image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY) {
     if(dst_image->image_type == CL_MEM_OBJECT_IMAGE1D_ARRAY) {
+      extern char cl_internal_copy_image_1d_array_to_1d_array_str[];
+      extern size_t cl_internal_copy_image_1d_array_to_1d_array_str_size;
 
-      cl_mem_copy_image_to_image(dst_origin, src_origin, region, dst_image, src_image);
-      return CL_SUCCESS;
+      ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_1D_ARRAY_TO_1D_ARRAY,
+          cl_internal_copy_image_1d_array_to_1d_array_str,
+          (size_t)cl_internal_copy_image_1d_array_to_1d_array_str_size, NULL);
     }
   } else if(src_image->image_type == CL_MEM_OBJECT_IMAGE2D_ARRAY) {
     if(dst_image->image_type == CL_MEM_OBJECT_IMAGE2D_ARRAY) {
+      extern char cl_internal_copy_image_2d_array_to_2d_array_str[];
+      extern size_t cl_internal_copy_image_2d_array_to_2d_array_str_size;
 
-      cl_mem_copy_image_to_image(dst_origin, src_origin, region, dst_image, src_image);
-      return CL_SUCCESS;
+      ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_2D_ARRAY_TO_2D_ARRAY,
+          cl_internal_copy_image_2d_array_to_2d_array_str,
+          (size_t)cl_internal_copy_image_2d_array_to_2d_array_str_size, NULL);
     } else if(dst_image->image_type == CL_MEM_OBJECT_IMAGE2D) {
-      cl_mem_copy_image_to_image(dst_origin, src_origin, region, dst_image, src_image);
-      return CL_SUCCESS;
+      extern char cl_internal_copy_image_2d_array_to_2d_str[];
+      extern size_t cl_internal_copy_image_2d_array_to_2d_str_size;
+
+      ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_2D_ARRAY_TO_2D,
+          cl_internal_copy_image_2d_array_to_2d_str,
+          (size_t)cl_internal_copy_image_2d_array_to_2d_str_size, NULL);
     } else if(dst_image->image_type == CL_MEM_OBJECT_IMAGE3D) {
-      cl_mem_copy_image_to_image(dst_origin, src_origin, region, dst_image, src_image);
-      return CL_SUCCESS;
+      extern char cl_internal_copy_image_2d_array_to_3d_str[];
+      extern size_t cl_internal_copy_image_2d_array_to_3d_str_size;
+
+      ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_2D_ARRAY_TO_3D,
+          cl_internal_copy_image_2d_array_to_3d_str,
+          (size_t)cl_internal_copy_image_2d_array_to_3d_str_size, NULL);
     }
   } else if(src_image->image_type == CL_MEM_OBJECT_IMAGE3D) {
     if(dst_image->image_type == CL_MEM_OBJECT_IMAGE2D) {
@@ -1636,8 +1666,11 @@ cl_mem_kernel_copy_image(cl_command_queue queue, struct _cl_mem_image* src_image
       ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_3D_TO_3D,
           cl_internal_copy_image_3d_to_3d_str, (size_t)cl_internal_copy_image_3d_to_3d_str_size, NULL);
     } else if(dst_image->image_type == CL_MEM_OBJECT_IMAGE2D_ARRAY) {
-      cl_mem_copy_image_to_image(dst_origin, src_origin, region, dst_image, src_image);
-      return CL_SUCCESS;
+      extern char cl_internal_copy_image_3d_to_2d_array_str[];
+      extern size_t cl_internal_copy_image_3d_to_2d_array_str_size;
+
+      ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_3D_TO_2D_ARRAY,
+          cl_internal_copy_image_3d_to_2d_array_str, (size_t)cl_internal_copy_image_3d_to_2d_array_str_size, NULL);
     }
   }
 
@@ -1679,6 +1712,10 @@ cl_mem_copy_image_to_buffer(cl_command_queue queue, struct _cl_mem_image* image,
   uint32_t intel_fmt, bpp;
   cl_image_format fmt;
   size_t origin0, region0;
+  size_t kn_dst_offset;
+  int align16 = 0;
+  size_t align_size = 1;
+  size_t w_saved;
 
   if(region[1] == 1) local_sz[1] = 1;
   if(region[2] == 1) local_sz[2] = 1;
@@ -1689,24 +1726,48 @@ cl_mem_copy_image_to_buffer(cl_command_queue queue, struct _cl_mem_image* image,
   /* We use one kernel to copy the data. The kernel is lazily created. */
   assert(image->base.ctx == buffer->ctx);
 
-  fmt.image_channel_order = CL_R;
-  fmt.image_channel_data_type = CL_UNSIGNED_INT8;
   intel_fmt = image->intel_fmt;
   bpp = image->bpp;
-  image->intel_fmt = cl_image_get_intel_format(&fmt);
-  image->w = image->w * image->bpp;
-  image->bpp = 1;
+  w_saved = image->w;
   region0 = region[0] * bpp;
-  origin0 = src_origin[0] * bpp;
+  kn_dst_offset = dst_offset;
+  if((image->image_type == CL_MEM_OBJECT_IMAGE2D) && ((image->w * image->bpp) % 16 == 0) &&
+      ((src_origin[0] * bpp) % 16 == 0) && (region0 % 16 == 0) && (dst_offset % 16 == 0)){
+    fmt.image_channel_order = CL_RGBA;
+    fmt.image_channel_data_type = CL_UNSIGNED_INT32;
+    align16 = 1;
+    align_size = 16;
+  }
+  else{
+    fmt.image_channel_order = CL_R;
+    fmt.image_channel_data_type = CL_UNSIGNED_INT8;
+    align_size = 1;
+  }
+  image->intel_fmt = cl_image_get_intel_format(&fmt);
+  image->w = (image->w * image->bpp) / align_size;
+  image->bpp = align_size;
+  region0 = (region[0] * bpp) / align_size;
+  origin0 = (src_origin[0] * bpp) / align_size;
+  kn_dst_offset /= align_size;
   global_sz[0] = ((region0 + local_sz[0] - 1) / local_sz[0]) * local_sz[0];
 
   /* setup the kernel and run. */
   if(image->image_type == CL_MEM_OBJECT_IMAGE2D) {
+    if(align16){
+      extern char cl_internal_copy_image_2d_to_buffer_align16_str[];
+      extern size_t cl_internal_copy_image_2d_to_buffer_align16_str_size;
+
+      ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_2D_TO_BUFFER_ALIGN16,
+                cl_internal_copy_image_2d_to_buffer_align16_str,
+                (size_t)cl_internal_copy_image_2d_to_buffer_align16_str_size, NULL);
+    }
+    else{
       extern char cl_internal_copy_image_2d_to_buffer_str[];
       extern size_t cl_internal_copy_image_2d_to_buffer_str_size;
 
       ker = cl_context_get_static_kernel_from_bin(queue->ctx, CL_ENQUEUE_COPY_IMAGE_2D_TO_BUFFER,
           cl_internal_copy_image_2d_to_buffer_str, (size_t)cl_internal_copy_image_2d_to_buffer_str_size, NULL);
+    }
   }else if(image->image_type == CL_MEM_OBJECT_IMAGE3D) {
     extern char cl_internal_copy_image_3d_to_buffer_str[];
     extern size_t cl_internal_copy_image_3d_to_buffer_str_size;
@@ -1728,7 +1789,7 @@ cl_mem_copy_image_to_buffer(cl_command_queue queue, struct _cl_mem_image* image,
   cl_kernel_set_arg(ker, 5, sizeof(cl_int), &origin0);
   cl_kernel_set_arg(ker, 6, sizeof(cl_int), &src_origin[1]);
   cl_kernel_set_arg(ker, 7, sizeof(cl_int), &src_origin[2]);
-  cl_kernel_set_arg(ker, 8, sizeof(cl_int), &dst_offset);
+  cl_kernel_set_arg(ker, 8, sizeof(cl_int), &kn_dst_offset);
 
   ret = cl_command_queue_ND_range(queue, ker, 1, global_off, global_sz, local_sz);
 
@@ -1736,7 +1797,7 @@ fail:
 
   image->intel_fmt = intel_fmt;
   image->bpp = bpp;
-  image->w = image->w / bpp;
+  image->w = w_saved;
 
   return ret;
 }
@@ -1853,6 +1914,10 @@ cl_mem_unmap_gtt(cl_mem mem)
 LOCAL void*
 cl_mem_map_auto(cl_mem mem, int write)
 {
+  //if mem is not created from userptr, the offset should be always zero.
+  if (!mem->is_userptr)
+    assert(mem->offset == 0);
+
   if (IS_IMAGE(mem) && cl_mem_image(mem)->tiling != CL_NO_TILE)
     return cl_mem_map_gtt(mem);
   else {
diff --git a/src/cl_mem.h b/src/cl_mem.h
index fd50220..e027f15 100644
--- a/src/cl_mem.h
+++ b/src/cl_mem.h
@@ -94,6 +94,7 @@ typedef  struct _cl_mem {
   uint8_t mapped_gtt;       /* This object has mapped gtt, for unmap. */
   cl_mem_dstr_cb *dstr_cb;  /* The destroy callback. */
   uint8_t is_userptr;       /* CL_MEM_USE_HOST_PTR is enabled*/
+  size_t offset;            /* offset of host_ptr to the page beginning, only for CL_MEM_USE_HOST_PTR*/
 } _cl_mem;
 
 struct _cl_mem_image {
diff --git a/src/intel/intel_driver.c b/src/intel/intel_driver.c
index 21546d9..ea71cfe 100644
--- a/src/intel/intel_driver.c
+++ b/src/intel/intel_driver.c
@@ -124,14 +124,15 @@ intel_driver_aub_dump(intel_driver_t *driver)
   }
 }
 
-static void
+static int
 intel_driver_memman_init(intel_driver_t *driver)
 {
   driver->bufmgr = drm_intel_bufmgr_gem_init(driver->fd, BATCH_SIZE);
-  assert(driver->bufmgr);
+  if (!driver->bufmgr) return 0;
   drm_intel_bufmgr_gem_enable_reuse(driver->bufmgr);
   driver->device_id = drm_intel_bufmgr_gem_get_devid(driver->bufmgr);
   intel_driver_aub_dump(driver);
+  return 1;
 }
 
 static void
@@ -149,14 +150,14 @@ intel_driver_context_destroy(intel_driver_t *driver)
   driver->ctx = NULL;
 }
 
-static void 
+static int
 intel_driver_init(intel_driver_t *driver, int dev_fd)
 {
   driver->fd = dev_fd;
   driver->locked = 0;
   pthread_mutex_init(&driver->ctxmutex, NULL);
 
-  intel_driver_memman_init(driver);
+  if (!intel_driver_memman_init(driver)) return 0;
   intel_driver_context_init(driver);
 
 #if EMULATE_GEN
@@ -183,6 +184,7 @@ intel_driver_init(intel_driver_t *driver, int dev_fd)
   else
     driver->gen_ver = 4;
 #endif /* EMULATE_GEN */
+  return 1;
 }
 
 static cl_int
@@ -271,19 +273,20 @@ intel_driver_is_active(intel_driver_t *driver) {
 LOCAL int 
 intel_driver_init_shared(intel_driver_t *driver, dri_state_t *state)
 {
+  int ret;
   assert(state);
   if(state->driConnectedFlag != DRI2)
     return 0;
-  intel_driver_init(driver, state->fd);
+  ret = intel_driver_init(driver, state->fd);
   driver->need_close = 0;
-  return 1;
+  return ret;
 }
 #endif
 
 LOCAL int
 intel_driver_init_master(intel_driver_t *driver, const char* dev_name)
 {
-  int dev_fd;
+  int dev_fd, ret;
 
   drm_client_t client;
 
@@ -296,7 +299,7 @@ intel_driver_init_master(intel_driver_t *driver, const char* dev_name)
 
   // Check that we're authenticated
   memset(&client, 0, sizeof(drm_client_t));
-  int ret = ioctl(dev_fd, DRM_IOCTL_GET_CLIENT, &client);
+  ret = ioctl(dev_fd, DRM_IOCTL_GET_CLIENT, &client);
   if (ret == -1) {
     fprintf(stderr, "ioctl(dev_fd, DRM_IOCTL_GET_CLIENT, &client) failed: %s\n", strerror(errno));
     close(dev_fd);
@@ -309,26 +312,26 @@ intel_driver_init_master(intel_driver_t *driver, const char* dev_name)
     return 0;
   }
 
-  intel_driver_init(driver, dev_fd);
+  ret = intel_driver_init(driver, dev_fd);
   driver->need_close = 1;
 
-  return 1;
+  return ret;
 }
 
 LOCAL int
 intel_driver_init_render(intel_driver_t *driver, const char* dev_name)
 {
-  int dev_fd;
+  int dev_fd, ret;
 
   // usually dev_name = "/dev/dri/renderD%d"
   dev_fd = open(dev_name, O_RDWR);
   if (dev_fd == -1)
     return 0;
 
-  intel_driver_init(driver, dev_fd);
+  ret = intel_driver_init(driver, dev_fd);
   driver->need_close = 1;
 
-  return 1;
+  return ret;
 }
 
 LOCAL int 
diff --git a/src/kernels/cl_internal_copy_image_1d_array_to_1d_array.cl b/src/kernels/cl_internal_copy_image_1d_array_to_1d_array.cl
new file mode 100644
index 0000000..0c7c6e2
--- /dev/null
+++ b/src/kernels/cl_internal_copy_image_1d_array_to_1d_array.cl
@@ -0,0 +1,21 @@
+kernel void __cl_copy_image_1d_array_to_1d_array(__read_only image1d_array_t src_image, __write_only image1d_array_t dst_image,
+                             unsigned int region0, unsigned int region1, unsigned int region2,
+                             unsigned int src_origin0, unsigned int src_origin1, unsigned int src_origin2,
+                             unsigned int dst_origin0, unsigned int dst_origin1, unsigned int dst_origin2)
+{
+  int i = get_global_id(0);
+  int k = get_global_id(2);
+  int4 color;
+  const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_NONE | CLK_FILTER_NEAREST;
+  int2 src_coord;
+  int2 dst_coord;
+  if((i >= region0) || (k>=region2))
+    return;
+
+  src_coord.x = src_origin0 + i;
+  src_coord.y = src_origin2 + k;
+  dst_coord.x = dst_origin0 + i;
+  dst_coord.y = dst_origin2 + k;
+  color = read_imagei(src_image, sampler, src_coord);
+  write_imagei(dst_image, dst_coord, color);
+}
diff --git a/src/kernels/cl_internal_copy_image_2d_array_to_2d.cl b/src/kernels/cl_internal_copy_image_2d_array_to_2d.cl
new file mode 100644
index 0000000..89e36c0
--- /dev/null
+++ b/src/kernels/cl_internal_copy_image_2d_array_to_2d.cl
@@ -0,0 +1,21 @@
+kernel void __cl_copy_image_2d_array_to_2d(__read_only image2d_array_t src_image, __write_only image2d_t dst_image,
+                             unsigned int region0, unsigned int region1, unsigned int region2,
+                             unsigned int src_origin0, unsigned int src_origin1, unsigned int src_origin2,
+                             unsigned int dst_origin0, unsigned int dst_origin1, unsigned int dst_origin2)
+{
+  int i = get_global_id(0);
+  int j = get_global_id(1);
+  int4 color;
+  const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_NONE | CLK_FILTER_NEAREST;
+  int4 src_coord;
+  int2 dst_coord;
+  if((i >= region0) || (j>= region1))
+    return;
+  src_coord.x = src_origin0 + i;
+  src_coord.y = src_origin1 + j;
+  src_coord.z = src_origin2;
+  dst_coord.x = dst_origin0 + i;
+  dst_coord.y = dst_origin1 + j;
+  color = read_imagei(src_image, sampler, src_coord);
+  write_imagei(dst_image, dst_coord, color);
+}
diff --git a/src/kernels/cl_internal_copy_image_2d_array_to_2d_array.cl b/src/kernels/cl_internal_copy_image_2d_array_to_2d_array.cl
new file mode 100644
index 0000000..3653660
--- /dev/null
+++ b/src/kernels/cl_internal_copy_image_2d_array_to_2d_array.cl
@@ -0,0 +1,23 @@
+kernel void __cl_copy_image_2d_array_to_2d_array(__read_only image2d_array_t src_image, __write_only image2d_array_t dst_image,
+                             unsigned int region0, unsigned int region1, unsigned int region2,
+                             unsigned int src_origin0, unsigned int src_origin1, unsigned int src_origin2,
+                             unsigned int dst_origin0, unsigned int dst_origin1, unsigned int dst_origin2)
+{
+  int i = get_global_id(0);
+  int j = get_global_id(1);
+  int k = get_global_id(2);
+  int4 color;
+  const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_NONE | CLK_FILTER_NEAREST;
+  int4 src_coord;
+  int4 dst_coord;
+  if((i >= region0) || (j>= region1) || (k>=region2))
+    return;
+  src_coord.x = src_origin0 + i;
+  src_coord.y = src_origin1 + j;
+  src_coord.z = src_origin2 + k;
+  dst_coord.x = dst_origin0 + i;
+  dst_coord.y = dst_origin1 + j;
+  dst_coord.z = dst_origin2 + k;
+  color = read_imagei(src_image, sampler, src_coord);
+  write_imagei(dst_image, dst_coord, color);
+}
diff --git a/src/kernels/cl_internal_copy_image_2d_array_to_3d.cl b/src/kernels/cl_internal_copy_image_2d_array_to_3d.cl
new file mode 100644
index 0000000..424f6b5
--- /dev/null
+++ b/src/kernels/cl_internal_copy_image_2d_array_to_3d.cl
@@ -0,0 +1,23 @@
+kernel void __cl_copy_image_2d_array_to_3d(__read_only image2d_array_t src_image, __write_only image3d_t dst_image,
+                             unsigned int region0, unsigned int region1, unsigned int region2,
+                             unsigned int src_origin0, unsigned int src_origin1, unsigned int src_origin2,
+                             unsigned int dst_origin0, unsigned int dst_origin1, unsigned int dst_origin2)
+{
+  int i = get_global_id(0);
+  int j = get_global_id(1);
+  int k = get_global_id(2);
+  int4 color;
+  const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_NONE | CLK_FILTER_NEAREST;
+  int4 src_coord;
+  int4 dst_coord;
+  if((i >= region0) || (j>= region1) || (k>=region2))
+    return;
+  src_coord.x = src_origin0 + i;
+  src_coord.y = src_origin1 + j;
+  src_coord.z = src_origin2 + k;
+  dst_coord.x = dst_origin0 + i;
+  dst_coord.y = dst_origin1 + j;
+  dst_coord.z = dst_origin2 + k;
+  color = read_imagei(src_image, sampler, src_coord);
+  write_imagei(dst_image, dst_coord, color);
+}
diff --git a/src/kernels/cl_internal_copy_image_2d_to_2d_array.cl b/src/kernels/cl_internal_copy_image_2d_to_2d_array.cl
new file mode 100644
index 0000000..4384f01
--- /dev/null
+++ b/src/kernels/cl_internal_copy_image_2d_to_2d_array.cl
@@ -0,0 +1,21 @@
+kernel void __cl_copy_image_2d_to_2d_array(__read_only image2d_t src_image, __write_only image2d_array_t dst_image,
+                                          unsigned int region0, unsigned int region1, unsigned int region2,
+                                          unsigned int src_origin0, unsigned int src_origin1, unsigned int src_origin2,
+                                          unsigned int dst_origin0, unsigned int dst_origin1, unsigned int dst_origin2)
+{
+  int i = get_global_id(0);
+  int j = get_global_id(1);
+  int4 color;
+  const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_NONE | CLK_FILTER_NEAREST;
+  int2 src_coord;
+  int4 dst_coord;
+  if((i >= region0) || (j>= region1))
+    return;
+  src_coord.x = src_origin0 + i;
+  src_coord.y = src_origin1 + j;
+  dst_coord.x = dst_origin0 + i;
+  dst_coord.y = dst_origin1 + j;
+  dst_coord.z = dst_origin2;
+  color = read_imagei(src_image, sampler, src_coord);
+  write_imagei(dst_image, dst_coord, color);
+}
diff --git a/src/kernels/cl_internal_copy_image_2d_to_buffer_align16.cl b/src/kernels/cl_internal_copy_image_2d_to_buffer_align16.cl
new file mode 100644
index 0000000..a32e5f2
--- /dev/null
+++ b/src/kernels/cl_internal_copy_image_2d_to_buffer_align16.cl
@@ -0,0 +1,19 @@
+kernel void __cl_copy_image_2d_to_buffer_align16( __read_only image2d_t image, global uint4* buffer,
+                                        unsigned int region0, unsigned int region1, unsigned int region2,
+                                        unsigned int src_origin0, unsigned int src_origin1, unsigned int src_origin2,
+                                        unsigned int dst_offset)
+{
+
+  int i = get_global_id(0);
+  int j = get_global_id(1);
+  if((i >= region0) || (j>= region1))
+    return;
+  uint4 color;
+  const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_NONE | CLK_FILTER_NEAREST;
+  int2 src_coord;
+  src_coord.x = src_origin0 + i;
+  src_coord.y = src_origin1 + j;
+  color = read_imageui(image, sampler, src_coord);
+
+  *(buffer + dst_offset + region0*j + i) = color;
+}
diff --git a/src/kernels/cl_internal_copy_image_3d_to_2d_array.cl b/src/kernels/cl_internal_copy_image_3d_to_2d_array.cl
new file mode 100644
index 0000000..8041a32
--- /dev/null
+++ b/src/kernels/cl_internal_copy_image_3d_to_2d_array.cl
@@ -0,0 +1,23 @@
+kernel void __cl_copy_image_3d_to_2d_array(__read_only image3d_t src_image, __write_only image2d_array_t dst_image,
+                             unsigned int region0, unsigned int region1, unsigned int region2,
+                             unsigned int src_origin0, unsigned int src_origin1, unsigned int src_origin2,
+                             unsigned int dst_origin0, unsigned int dst_origin1, unsigned int dst_origin2)
+{
+  int i = get_global_id(0);
+  int j = get_global_id(1);
+  int k = get_global_id(2);
+  int4 color;
+  const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_NONE | CLK_FILTER_NEAREST;
+  int4 src_coord;
+  int4 dst_coord;
+  if((i >= region0) || (j>= region1) || (k>=region2))
+    return;
+  src_coord.x = src_origin0 + i;
+  src_coord.y = src_origin1 + j;
+  src_coord.z = src_origin2 + k;
+  dst_coord.x = dst_origin0 + i;
+  dst_coord.y = dst_origin1 + j;
+  dst_coord.z = dst_origin2 + k;
+  color = read_imagei(src_image, sampler, src_coord);
+  write_imagei(dst_image, dst_coord, color);
+}
diff --git a/utests/CMakeLists.txt b/utests/CMakeLists.txt
index 8c42f1a..9cbf260 100644
--- a/utests/CMakeLists.txt
+++ b/utests/CMakeLists.txt
@@ -178,6 +178,7 @@ set (utests_sources
   compiler_long_asr.cpp
   compiler_long_mult.cpp
   compiler_long_cmp.cpp
+  compiler_long_bitcast.cpp
   compiler_function_argument3.cpp
   compiler_function_qualifiers.cpp
   compiler_bool_cross_basic_block.cpp
diff --git a/utests/compiler_fill_image_1d_array.cpp b/utests/compiler_fill_image_1d_array.cpp
index cc7cf0a..67f9643 100644
--- a/utests/compiler_fill_image_1d_array.cpp
+++ b/utests/compiler_fill_image_1d_array.cpp
@@ -10,6 +10,11 @@ static void compiler_fill_image_1d_array(void)
   size_t origin[3] = { };
   size_t region[3];
   uint32_t* dst;
+  uint32_t* src;
+
+  region[0] = w;
+  region[1] = array;
+  region[2] = 1;
 
   memset(&desc, 0x0, sizeof(cl_image_desc));
   memset(&format, 0x0, sizeof(cl_image_format));
@@ -26,9 +31,9 @@ static void compiler_fill_image_1d_array(void)
 
   OCL_CREATE_IMAGE(buf[0], 0, &format, &desc, NULL);
 
-  OCL_MAP_BUFFER_GTT(0);
-  memset(buf_data[0], 0, sizeof(uint32_t) * w * array);
-  OCL_UNMAP_BUFFER_GTT(0);
+  src = (uint32_t*)malloc(w*array*sizeof(uint32_t));
+  memset(src, 0, sizeof(uint32_t) * w * array);
+  OCL_WRITE_IMAGE(buf[0], origin, region, src);
 
   // Run the kernel
   OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);
@@ -39,9 +44,6 @@ static void compiler_fill_image_1d_array(void)
   OCL_NDRANGE(2);
 
   // Check result
-  region[0] = w;
-  region[1] = array;
-  region[2] = 1;
   dst = (uint32_t*)malloc(w*array*sizeof(uint32_t));
   OCL_READ_IMAGE(buf[0], origin, region, dst);
 
diff --git a/utests/compiler_long_bitcast.cpp b/utests/compiler_long_bitcast.cpp
new file mode 100644
index 0000000..112363a
--- /dev/null
+++ b/utests/compiler_long_bitcast.cpp
@@ -0,0 +1,227 @@
+#include <cstdint>
+#include <cstring>
+#include <iostream>
+#include "utest_helper.hpp"
+
+void compiler_bitcast_char8_to_long(void)
+{
+  const size_t n = 64;
+  const int v = 8;
+  char src[n * v];
+  uint64_t *dst = (uint64_t *)src;
+
+  // Setup kernel and buffers
+  OCL_CREATE_KERNEL_FROM_FILE("compiler_long_bitcast", "compiler_bitcast_char8_to_long");
+  OCL_CREATE_BUFFER(buf[0], 0, sizeof(src), NULL);
+  OCL_CREATE_BUFFER(buf[1], 0, sizeof(src), NULL);
+  OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);
+  OCL_SET_ARG(1, sizeof(cl_mem), &buf[1]);
+  globals[0] = n;
+  locals[0] = 16;
+
+  for (int32_t i = 0; i < (int32_t) n*v; ++i) {
+    src[i] = (char)rand();
+  }
+
+  OCL_MAP_BUFFER(0);
+  memcpy(buf_data[0], src, sizeof(src));
+  OCL_UNMAP_BUFFER(0);
+
+  // Run the kernel on GPU
+  OCL_NDRANGE(1);
+
+  // Compare
+  OCL_MAP_BUFFER(1);
+  for (int32_t i = 0; i < (int32_t) n; ++i) {
+    OCL_ASSERT(((uint64_t *)(buf_data[1]))[i] == dst[i]);
+    //printf("ref is 0x%lx, result is 0x%lx\n", dst[i], ((int64_t *)(buf_data[1]))[i]);
+  }
+  OCL_UNMAP_BUFFER(1);
+}
+
+void compiler_bitcast_long_to_char8(void)
+{
+  const size_t n = 64;
+  const int v = 8;
+  uint64_t src[n];
+  char *dst = (char *)src;
+
+  // Setup kernel and buffers
+  OCL_CREATE_KERNEL_FROM_FILE("compiler_long_bitcast", "compiler_bitcast_char8_to_long");
+  OCL_CREATE_BUFFER(buf[0], 0, sizeof(src), NULL);
+  OCL_CREATE_BUFFER(buf[1], 0, sizeof(src), NULL);
+  OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);
+  OCL_SET_ARG(1, sizeof(cl_mem), &buf[1]);
+  globals[0] = n;
+  locals[0] = 16;
+
+  for (int32_t i = 0; i < (int32_t) n; ++i) {
+    src[i] = ((int64_t)rand() << 32) + rand();
+  }
+
+  OCL_MAP_BUFFER(0);
+  memcpy(buf_data[0], src, sizeof(src));
+  OCL_UNMAP_BUFFER(0);
+
+  // Run the kernel on GPU
+  OCL_NDRANGE(1);
+
+  // Compare
+  OCL_MAP_BUFFER(1);
+  for (int32_t i = 0; i < (int32_t) n*v; ++i) {
+    OCL_ASSERT(((char *)(buf_data[1]))[i] == dst[i]);
+//    printf("ref is 0x%2x, result is 0x%2x\n", dst[i], ((char *)(buf_data[1]))[i]);
+  }
+  OCL_UNMAP_BUFFER(1);
+}
+
+void compiler_bitcast_int2_to_long(void)
+{
+  const size_t n = 64;
+  const int v = 2;
+  int src[n * v];
+  uint64_t *dst = (uint64_t *)src;
+
+  // Setup kernel and buffers
+  OCL_CREATE_KERNEL_FROM_FILE("compiler_long_bitcast", "compiler_bitcast_int2_to_long");
+  OCL_CREATE_BUFFER(buf[0], 0, sizeof(src), NULL);
+  OCL_CREATE_BUFFER(buf[1], 0, sizeof(src), NULL);
+  OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);
+  OCL_SET_ARG(1, sizeof(cl_mem), &buf[1]);
+  globals[0] = n;
+  locals[0] = 16;
+
+  for (int32_t i = 0; i < (int32_t) n*v; ++i) {
+    src[i] = (int)rand();
+  }
+
+  OCL_MAP_BUFFER(0);
+  memcpy(buf_data[0], src, sizeof(src));
+  OCL_UNMAP_BUFFER(0);
+
+  // Run the kernel on GPU
+  OCL_NDRANGE(1);
+
+  // Compare
+  OCL_MAP_BUFFER(1);
+  for (int32_t i = 0; i < (int32_t) n; ++i) {
+    OCL_ASSERT(((uint64_t *)(buf_data[1]))[i] == dst[i]);
+    //printf("ref is 0x%lx, result is 0x%lx\n", dst[i], ((int64_t *)(buf_data[1]))[i]);
+  }
+  OCL_UNMAP_BUFFER(1);
+}
+
+void compiler_bitcast_long_to_int2(void)
+{
+  const size_t n = 64;
+  const int v = 2;
+  uint64_t src[n];
+  uint32_t *dst = (uint32_t *)src;
+
+  // Setup kernel and buffers
+  OCL_CREATE_KERNEL_FROM_FILE("compiler_long_bitcast", "compiler_bitcast_long_to_int2");
+  OCL_CREATE_BUFFER(buf[0], 0, sizeof(src), NULL);
+  OCL_CREATE_BUFFER(buf[1], 0, sizeof(src), NULL);
+  OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);
+  OCL_SET_ARG(1, sizeof(cl_mem), &buf[1]);
+  globals[0] = n;
+  locals[0] = 16;
+
+  for (int32_t i = 0; i < (int32_t) n; ++i) {
+    src[i] = ((int64_t)i << 32) + i;
+  }
+
+  OCL_MAP_BUFFER(0);
+  memcpy(buf_data[0], src, sizeof(src));
+  OCL_UNMAP_BUFFER(0);
+
+  // Run the kernel on GPU
+  OCL_NDRANGE(1);
+
+  // Compare
+  OCL_MAP_BUFFER(1);
+  for (int32_t i = 0; i < (int32_t) n*v; ++i) {
+    OCL_ASSERT(((uint32_t *)(buf_data[1]))[i] == dst[i]);
+    //printf("ref is 0x%2x, result is 0x%2x\n", dst[i], ((uint32_t *)(buf_data[1]))[i]);
+  }
+  OCL_UNMAP_BUFFER(1);
+}
+
+void compiler_bitcast_short4_to_long(void)
+{
+  const size_t n = 64;
+  const int v = 4;
+  short src[n * v];
+  uint64_t *dst = (uint64_t *)src;
+
+  // Setup kernel and buffers
+  OCL_CREATE_KERNEL_FROM_FILE("compiler_long_bitcast", "compiler_bitcast_short4_to_long");
+  OCL_CREATE_BUFFER(buf[0], 0, sizeof(src), NULL);
+  OCL_CREATE_BUFFER(buf[1], 0, sizeof(src), NULL);
+  OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);
+  OCL_SET_ARG(1, sizeof(cl_mem), &buf[1]);
+  globals[0] = n;
+  locals[0] = 16;
+
+  for (int32_t i = 0; i < (int32_t) n*v; ++i) {
+    src[i] = (short)rand();
+  }
+
+  OCL_MAP_BUFFER(0);
+  memcpy(buf_data[0], src, sizeof(src));
+  OCL_UNMAP_BUFFER(0);
+
+  // Run the kernel on GPU
+  OCL_NDRANGE(1);
+
+  // Compare
+  OCL_MAP_BUFFER(1);
+  for (int32_t i = 0; i < (int32_t) n; ++i) {
+    OCL_ASSERT(((uint64_t *)(buf_data[1]))[i] == dst[i]);
+    //printf("ref is 0x%lx, result is 0x%lx\n", dst[i], ((int64_t *)(buf_data[1]))[i]);
+  }
+  OCL_UNMAP_BUFFER(1);
+}
+
+void compiler_bitcast_long_to_short4(void)
+{
+  const size_t n = 64;
+  const int v = 4;
+  uint64_t src[n];
+  uint16_t *dst = (uint16_t *)src;
+
+  // Setup kernel and buffers
+  OCL_CREATE_KERNEL_FROM_FILE("compiler_long_bitcast", "compiler_bitcast_long_to_short4");
+  OCL_CREATE_BUFFER(buf[0], 0, sizeof(src), NULL);
+  OCL_CREATE_BUFFER(buf[1], 0, sizeof(src), NULL);
+  OCL_SET_ARG(0, sizeof(cl_mem), &buf[0]);
+  OCL_SET_ARG(1, sizeof(cl_mem), &buf[1]);
+  globals[0] = n;
+  locals[0] = 16;
+
+  for (int32_t i = 0; i < (int32_t) n; ++i) {
+    src[i] = ((int64_t)rand() << 32) + rand();
+  }
+
+  OCL_MAP_BUFFER(0);
+  memcpy(buf_data[0], src, sizeof(src));
+  OCL_UNMAP_BUFFER(0);
+
+  // Run the kernel on GPU
+  OCL_NDRANGE(1);
+
+  // Compare
+  OCL_MAP_BUFFER(1);
+  for (int32_t i = 0; i < (int32_t) n*v; ++i) {
+    OCL_ASSERT(((uint16_t *)(buf_data[1]))[i] == dst[i]);
+    //printf("ref is 0x%2x, result is 0x%2x\n", dst[i], ((uint16_t *)(buf_data[1]))[i]);
+  }
+  OCL_UNMAP_BUFFER(1);
+}
+
+MAKE_UTEST_FROM_FUNCTION(compiler_bitcast_char8_to_long);
+MAKE_UTEST_FROM_FUNCTION(compiler_bitcast_long_to_char8);
+MAKE_UTEST_FROM_FUNCTION(compiler_bitcast_int2_to_long);
+MAKE_UTEST_FROM_FUNCTION(compiler_bitcast_long_to_int2);
+MAKE_UTEST_FROM_FUNCTION(compiler_bitcast_short4_to_long);
+MAKE_UTEST_FROM_FUNCTION(compiler_bitcast_long_to_short4);
diff --git a/utests/runtime_use_host_ptr_buffer.cpp b/utests/runtime_use_host_ptr_buffer.cpp
index 79273c3..54f39d3 100644
--- a/utests/runtime_use_host_ptr_buffer.cpp
+++ b/utests/runtime_use_host_ptr_buffer.cpp
@@ -7,7 +7,7 @@ static void runtime_use_host_ptr_buffer(void)
   // Setup kernel and buffers
   OCL_CREATE_KERNEL("runtime_use_host_ptr_buffer");
 
-  int ret = posix_memalign(&buf_data[0], 4096, sizeof(uint32_t) * n);
+  int ret = posix_memalign(&buf_data[0], 64, sizeof(uint32_t) * n);
   OCL_ASSERT(ret == 0);
 
   for (uint32_t i = 0; i < n; ++i) ((uint32_t*)buf_data[0])[i] = i;

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-opencl/beignet.git



More information about the Pkg-opencl-commits mailing list